๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
728x90
๋ฐ˜์‘ํ˜•

๐ŸŽ iOS/iOS49

[iOS ๋ฉด์ ‘์งˆ๋ฌธ] Delegate์™€ Protocol ์•ˆ๋…•ํ•˜์„ธ์š” Foma ์ž…๋‹ˆ๋‹ค!! ์ด๋ฒˆ์— ์•Œ์•„๋ณผ ์ฃผ์ œ๋Š” ๋ฐ”๋กœ Delegate์™€ Protocol์ž…๋‹ˆ๋‹ค! Xcode์— Project๋ฅผ ๋งŒ๋“ค๊ฒŒ ๋˜๋ฉด AppDelegate,SceneDelegate,UITableViewDelegate....๋“ฑ ๋งŽ์€ ๋”œ๋ฆฌ๊ฒŒ์ดํŠธ๋ฅผ ๋ณด์…จ์„๊ฑฐ์—์š”. ์ €๋„ ์ด๊ฒŒ ์–ด๋–ค ์—ญํ• ์„ ํ•˜๋Š”์ง€ ๋Œ€์ถฉ์€ ์•Œ๊ณ  ์žˆ์—ˆ๋Š”๋ฐ ๋ง‰์ƒ ์„ค๋ช…์„ ํ•˜๋ คํ•˜๋‹ˆ ๋ง์ด ์•ˆ๋‚˜์˜ค๋”๋ผ๊ตฌ์š” ๊ทธ๋ž˜์„œ ์•Œ์•„๋ณด๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์‹œ์ž‘ํ•ด๋ณผ๊ฒŒ์šฉ~ Protocol ๋จผ์ € ๋”œ๋ฆฌ๊ฒŒ์ดํŠธ๋ฅผ ์•Œ๊ธฐ ์œ„ํ•ด์„  Protocol์˜ ๊ฐœ๋…์„ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•ด์š”. ์Šค์œ„ํ”„ํŠธ ๋ฌธ์„œ์—” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•˜๊ฒŒ ์˜ˆ์‹œ๋กœ ์„ค๋ช…๋“œ๋ฆด๊ฒŒ์š” ์ถ•๊ตฌ์„ ์ˆ˜ 3๋ช…์ด ์žˆ๋‹ค๊ณ  ํ• ๊ฒŒ์š”. ๊ทธ๋ ‡๋‹ค๋ฉด ํ”„๋กœํ† ์ฝœ์€ ๊ณต๊ฒฉ์ˆ˜,์ˆ˜๋น„์ˆ˜,๊ณจํ‚คํผ๊ฐ€ ๋ ๊ฑฐ์—์š” ๊ณต๊ฒฉ์ˆ˜๋Š” ์ŠˆํŒ…,๋“œ๋ฆฌ๋ธ”๋ง,์‹ค์ˆ˜ ์ˆ˜๋น„์ˆ˜๋Š” ๋ง‰๊ธฐ,ํƒœํด,๋†“์นจ ๊ณจ.. 2020. 11. 16.
[iOS] Swift๋กœ Apple๋กœ๊ทธ์ธ ๊ตฌํ˜„ํ•˜๊ธฐ ์•ˆ๋…•ํ•˜์„ธ์š” Foma ์ž…๋‹ˆ๋‹ค!! 2019 WWDC์—์„œ ๋ฐœํ‘œํ•œ Sign in with apple์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณผ๊ฑด๋ฐ์š”. ๋ฐœํ‘œ์™€ ๋™์‹œ์— Apple์€ ์ƒˆ๋กœ์šด ๊ฐ€์ด๋“œ ๋ผ์ธ์„ ์ถ”๊ฐ€ํ–ˆ๋Š”๋ฐ ๋ฐ”๋กœ ํƒ€์‚ฌ ์†Œ์…œ ๋กœ๊ทธ์ธ์ด ์žˆ๋‹ค ๋ฉด Apple ๋กœ๊ทธ์ธ์„ ํ•„์ˆ˜๋กœ ์ œ๊ณตํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด์ฃ ! ๊ทธ๋Ÿฌ๋‹ˆ๊น "ํƒ€์‚ฌ ๋กœ๊ทธ์ธ์„ ์ง€์›ํ• ๊ฑฐ๋ฉด ์šฐ๋ฆฌ๊บผ๋„ ๋ฌด์กฐ๊ฑด ์ง€์›ํ•ด!! " ๋ผ๋Š” ๊ฒƒ์ด์ฃ . ๊ทธ๋Ÿฌ๋ฉด ๊ตฌํ˜„ํ•˜๊ธฐ์— ์•ž์„œ ๊ฐ€์žฅ ๋จผ์ € ํ•„์š”ํ•œ ๊ฒƒ์€ ์• ํ”Œ ๊ฐœ๋ฐœ์ž ๊ณ„์ •์ž…๋‹ˆ๋‹ค. ์• ํ”Œ ๊ฐœ๋ฐœ์ž ๊ณ„์ •์ด ์žˆ์–ด์•ผ Sign in with apple ๊ถŒํ•œ์„ ์–ป์„ ์ˆ˜ ์žˆ์–ด์š” ใ…  ๊ฐœ๋ฐœ์ž ๊ณ„์ • ๋“ฑ๋ก๋ฐฉ๋ฒ•์€ ์•„๋ž˜ ์‚ฌ์ดํŠธ๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”! Apple Developer ์•ฑ์—์„œ ๊ณ„์ • ๋“ฑ๋ก ๋ฐ ๊ด€๋ฆฌํ•˜๊ธฐ - ์ง€์› - Apple Developer ๋ฌธ์˜ํ•˜๊ธฐ ์–ด๋–ป๊ฒŒ ๋„์™€๋“œ๋ฆด ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ๋ ค์ฃผ์‹œ๋ฉด ํ•ธ๋“œํฐ์ด๋‚˜ ์ด.. 2020. 11. 15.
[iOS ๋ฉด์ ‘์งˆ๋ฌธ]์‹ค์ œ ๋””๋ฐ”์ด์Šค๊ฐ€ ์—†์„ ๊ฒฝ์šฐ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๊ณผ ์—†๋Š” ๊ฒƒ ์•ˆ๋…•ํ•˜์„ธ์š” Foma ์ž…๋‹ˆ๋‹ค!! ์˜ค๋Š˜ ์•Œ์•„๋ณผ ๋ฉด์ ‘์งˆ๋ฌธ์€ ์‹ค์ œ ๋””๋ฐ”์ด์Šค๊ฐ€ ์—†์„ ๊ฒฝ์šฐ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๊ณผ ์—†๋Š” ๊ฒƒ์ธ๋ฐ์š”. ์ด๊ฒƒ์€ ๋‹ค๋ฅธ ๋ง๋กœ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋งŒ์œผ๋กœ๋Š” ํ•  ์ˆ˜ ์—†๋Š” ๊ฒƒ์„ ์•Œ์•„๋ณด๋ฉด ๋ ๊ฑฐ๊ฐ™์•„์„œ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์˜ ํ•œ๊ณ„์— ๋Œ€ํ•ด์„œ ์ฐพ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค! ํ•˜๋“œ์›จ์–ด ๊ฐ€์†๋„ ์„ผ์„œ ๊ฐ€์••๊ณ„ ์„ผ์„œ,์ฃผ๋ณ€๊ด‘ ์„ผ์„œ๋ฅผ,GPS ์„ผ์„œ ๊ธฐ๋Šฅ์„ ์ด์šฉํ•  ์ˆ˜๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋งˆ์šฐ์Šค๋กœ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์˜ ํ„ฐ์น˜๋ฅผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‘ ์†๊ฐ€๋ฝ์œผ๋กœ ํ•˜๋Š” ์คŒ์ธ ์คŒ์•„์›ƒ ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ํ…Œ์ŠคํŠธ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์นด๋ฉ”๋ผ๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋งˆ์ดํฌ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ „ํ™”๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. API Apple์˜ ํ‘ธ์‹œ ์•Œ๋ฆผ ๋ฐ›๊ธฐ์™€ ๋ณด๋‚ด๊ธฐ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‚ฌ์ง„,์—ฐ๋ฝ์ฒ˜,์บ˜๋ฆฐ๋”์— ์•ก์„ธ์Šคํ•˜๊ธฐ ์œ„ํ•ด ๊ฐœ์ธ ์ •๋ณด ๋ณดํ˜ธ ์•Œ๋ฆผ์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Handoff ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค... 2020. 11. 13.
[iOS ๋ฉด์ ‘์งˆ๋ฌธ]Bounds์™€ Frame์˜ ์ฐจ์ด ์•ˆ๋…•ํ•˜์„ธ์š” Foma ์ž…๋‹ˆ๋‹ค!! ์ด๋ฒˆ์— ์•Œ์•„๋ณผ๊ฑด Bounds์™€ Frame์˜ ์ฐจ์ด์ž…๋‹ˆ๋‹ค. ๋ฉด์ ‘์—์„œ ์ž˜ ๋‚˜์˜ค๋Š” ์œ ํ˜•์ด๋ผ๊ณ  ํ•ด์„œ ์•Œ์•„๋ณด๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ๋ฐ”๋กœ ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. Frame์ด๋ž€? ์Šˆํผ๋ทฐ ์•ˆ์—์„œ์˜ ์œ„์น˜๋ฅผ ์ •ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋งˆ์น˜ ํฐ ๋ฒฝ์ด ์Šˆํผ๋ทฐ์ด๊ณ  ์ •ํ•˜๋Š” ๋ทฐ๊ฐ€ ์•ก์ž๋ผ๊ณ  ๋ณด๋ฉด ๋ฉ๋‹ˆ๋‹ค! ํฐ ๋ฒฝ์— ์•ก์ž๋ฅผ ์–ด๋””์—๋‹ค ๊ฑธ์ง€ ์œ„์น˜๋ฅผ ์ •ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•ก์ž(view)๋ฅผ ํฐ ๋ฒฝ์˜ (0,0) ์œ„์น˜์— ๊ฑธ์–ด์ค˜๋ผ๊ณ  ๋งํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์œ„์น˜๋ฅผ 0,0 ์—์„œ 50,50์œผ๋กœ ์ด๋™ํ•˜๊ฒŒ ๋˜๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ์š”? ๋งž์Šต๋‹ˆ๋‹ค !! ์˜ค๋ฅธ์ชฝ ์•„๋ž˜ ๋Œ€๊ฐ์„ ์œผ๋กœ ์•ก์ž๊ฐ€ ์ด๋™ํ•˜๊ฒŒ ๋˜๊ฒ ์ฃ !! Bounds๋ž€? ๋ทฐ ์ž์ฒด ์•ˆ์—์„œ์˜ ์œ„์น˜๋ฅผ ์ •ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ์—” ์•ก์ž๊ฐ€ ๋ทฐ๋ผ๋ฉด 0,0์„ ๋œปํ•˜๋Š” ๊ฒƒ์€ ์•ก์ž ์•ˆ์—์„œ์˜ 0,0์„ ๋œปํ•˜๋Š” ๊ฒƒ์ด์ฃ ! ํฐ ๋ฒฝ๊ณผ๋Š” ์•„๋ฌด.. 2020. 11. 9.
[iOS] @escaping (2) - ์˜ํ™” API ์˜ˆ์ œ๋กœ ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ธฐ (@escaping with movieAPI Example) ์•ˆ๋…•ํ•˜์„ธ์š” Foma ์ž…๋‹ˆ๋‹ค !! ์ „ ์‹œ๊ฐ„์—๋Š” Escaping Closure๋ฅผ ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ํ†ตํ•ด ์ •์˜์™€ ์˜ˆ์ œ๋กœ ์•Œ์•„๋ณด์•˜๋Š”๋ฐ์š”. ( ๊ถ๊ธˆํ•˜์‹  ๋ถ„๋“ค์€ ์—ฌ๊ธฐ ๋ฅผ ๋ˆŒ๋Ÿฌ์ฃผ์„ธ์š”) ๊ณต์‹ ๋ฌธ์„œ์˜ ์˜ˆ์ œ๋กœ๋Š” ์ดํ•ดํ•˜๊ธฐ๊ฐ€ ํž˜๋“œ์‹  ๋ถ„๋“ค์ด๋‚˜ ์ด๊ฒŒ ์–ด๋””์„œ ์“ฐ์ด๋Š”์ง€ ๊ตฌ์ฒด์ ์œผ๋กœ ์•Œ๊ณ ์‹ถ์€ ๋ถ„๋“ค์„ ์œ„ํ•ด ์ž‘์„ฑํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์šฐ์„  ๊ฐ€์žฅ ๋งŽ์ด ์“ฐ์ด๋Š” ๊ณณ์€ API๋ฅผ ์‚ฌ์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋น„๋™๊ธฐ๋ฐฉ์‹์œผ๋กœ ๋ฐ›์•„์˜ฌ ๋•Œ์ธ๋ฐ ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. Storyboard ์šฐ์„  ์ฒซ๋ฒˆ์งธ๋กœ ๋„ค๋น„๊ฒŒ์ด์…˜ ์ปจํŠธ๋กค๋Ÿฌ์™€ ํ…Œ์ด๋ธ”๋ทฐ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ์ƒ์„ฑํ•ด์ค๋‹ˆ๋‹ค. ๊ทธ ๋‹ค์Œ ํ…Œ์ด๋ธ”๋ทฐ ์…€์—” ์˜ํ™”ํฌ์Šคํ„ฐ๋ฅผ ๋„์šธ ์ด๋ฏธ์ง€๋ทฐ์™€ ์˜ํ™” ์ด๋ฆ„์„ ๋„์šธ ๋ ˆ์ด๋ธ”์„ ๋„ฃ์–ด์ค๋‹ˆ๋‹ค. Xcode ํ…Œ์ด๋ธ”๋ทฐ์…€์— ์—ฐ๊ฒฐํ•ด์ค๋‹ˆ๋‹ค. ์˜ํ™” ํฌ์Šคํ„ฐ์™€ ์ด๋ฆ„์„ ๊ฐ€์งˆ ๋ชจ๋ธ์„ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค. MoiveAPIํŒŒ์ผ์„ ๋งŒ๋“ค์–ด์ค€ ๋’ค ์˜ํ™”๋ชจ๋ธ์„ ๋งŒ.. 2020. 11. 1.
[iOS ๋ฉด์ ‘์งˆ๋ฌธ]@escaping์ด๋ž€? (1) - ๊ฐœ๋… ์•ˆ๋…•ํ•˜์„ธ์š” Foma ์ž…๋‹ˆ๋‹ค!! ์˜ค๋Š˜ ์•Œ์•„๋ณผ ๋‚ด์šฉ Escaping Closure์ž…๋‹ˆ๋‹ค. ์˜ˆ์ „๋ถ€ํ„ฐ ์–ด๋–ค ๋ฉ”์†Œ๋“œ๋ฅผ ๋ณด๋ฉด ์ธ์ž๊ฐ’ ์•ž์— @escaping์ด๋ผ๊ณ  ๋˜์–ด์žˆ๋Š” ๊ฒƒ์„ ๋ณธ ์ ์ด ์žˆ๋Š”๋ฐ ์ด๊ฒŒ ๋ฌด์Šจ ์—ญํ• ์„ ํ•˜๋Š”์ง€ ์ž์„ธํžˆ ์•Œ์ง€ ๋ชปํ•œ์ฑ„ ๋„˜์–ด๊ฐ”์—ˆ๋Š”๋ฐ์š”. ๊ทธ๋ž˜์„œ ์˜ค๋Š˜์€ ํ•œ๋ฒˆ ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. Swift Documentation ์šฐ์„  ๊ณต์‹๋ฌธ์„œ๋ฅผ ์š”์•ฝํ•˜๋ฉด "ํ•จ์ˆ˜๋ฅผ ํƒˆ์ถœํ•  ์ˆ˜ ์žˆ๊ณ  ๊ฐ’์ด ๋ฐ˜ํ™˜๋œ ํ›„์— ๋ถˆ๋ ค์งˆ ์ˆ˜ ์žˆ๋‹ค " ๋ผ๊ณ  ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค. ์›๋ž˜ ํด๋กœ์ ธ๋Š” ์ธ์ž๊ฐ€ ํ•จ์ˆ˜ ๋ฐ–์—์„œ๋„ ์œ ํšจํ•œ ๊ฒƒ์€ ๊ฐ€๋Šฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ @noescape ์œผ๋กœ ์„ค์ •๋˜์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. (@noescape๋กœ ์„ค์ •๋œ ์ด์œ ๋Š” ํ•จ์ˆ˜๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ์ž๋™์ ์œผ๋กœ ํด๋กœ์ ธ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ํ•ด์ œ๋˜๊ณ  ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๊ฐ€ ์‰ฝ๊ฒŒ๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.) ํ•˜์ง€๋งŒ ์ด @esca.. 2020. 11. 1.
์•ฑ ์ƒ๋ช…์ฃผ๊ธฐ(AppLifeCycle)(2) - ํ™œ์šฉ(feat.Youtube Premium) ์•ˆ๋…•ํ•˜์„ธ์š” Foma ์ž…๋‹ˆ๋‹ค! ์ €๋ฒˆ ์‹œ๊ฐ„์—๋Š” ์•ฑ ์ƒ๋ช…์ฃผ๊ธฐ ๊ฐœ๋…์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์•˜๋Š”๋ฐ์š”. 2020. 10. 20.
[iOS ๋ฉด์ ‘์งˆ๋ฌธ]์•ฑ ์ƒ๋ช…์ฃผ๊ธฐ(App LifeCycle) (1) - ๊ฐœ๋…(์•ฑ์ด In-Active ์ƒํƒœ๊ฐ€ ๋˜๋Š” ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์„ค๋ช…ํ•˜์‹œ์˜ค.) ์•ˆ๋…•ํ•˜์„ธ์š” Foma ์ž…๋‹ˆ๋‹ค! ์˜ค๋Š˜ ์•Œ์•„๋ณผ ๋ณผ ๊ฑด ๋ฐ”๋กœ ์•ฑ ์ƒ๋ช…์ฃผ๊ธฐ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  iOS ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ 5๊ฐ€์ง€ ์ƒํƒœ์— ์žˆ์Šต๋‹ˆ๋‹ค. States 1. Not running ์•ฑ์ด ์‹คํ–‰๋˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜ ์™„์ „ํžˆ ์ข…๋ฃŒ๋˜์—ˆ์„ ๋•Œ ์ƒํƒœ์ž…๋‹ˆ๋‹ค. 2.In-active(๋น„ํ™œ์„ฑํ™”) ์•ฑ์ด ์‹คํ–‰๋˜๋ฉด์„œ ํฌ์–ด๊ทธ๋ผ์šด๋“œ์— ์ง„์ž…ํ•˜์ง€๋งŒ ์–ด๋– ํ•œ ์ด๋ฒคํŠธ๋„ ๋ฐ›์ง€ ์•Š๋Š” ์ƒํƒœ์ž…๋‹ˆ๋‹ค. 3.Active(ํ™œ์„ฑํ™”) ์•ฑ์ด ์‹คํ–‰ ์ค‘์ด๋ฉฐ ํฌ์–ด๊ทธ๋ผ์šด๋“œ์— ์žˆ๊ณ  ์ด๋ฒคํŠธ๋ฅผ ๋ฐ›๊ณ  ์žˆ๋Š” ์ƒํƒœ์ž…๋‹ˆ๋‹ค. 4.Background ์•ฑ์ด ๋ฐฑ๊ทธ๋ผ์šด๋“œ์— ์žˆ์œผ๋ฉฐ ๋‹ค๋ฅธ ์•ฑ์œผ๋กœ ์ „ํ™˜๋˜์—ˆ๊ฑฐ๋‚˜ ํ™ˆ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ๋ฐ–์œผ๋กœ ๋‚˜๊ฐ”์„ ๋•Œ์˜ ์ƒํƒœ์ž…๋‹ˆ๋‹ค. 5.Suspended ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ํŠน๋ณ„ํ•œ ์ž‘์—…์ด ์—†์„ ๊ฒฝ์šฐ ์ „ํ™˜๋˜๋Š” ์ƒํƒœ์ž…๋‹ˆ๋‹ค. ์•ฑ์˜ ์ƒ๋ช…์ฃผ๊ธฐ ์ƒํƒœ์— ๋”ฐ๋ผ์„œ AppDelegate์™€ SceneDelegate์—์„œ .. 2020. 10. 20.
[iOS] Notification์œผ๋กœ ๋ฐ์ดํ„ฐ ๋ณด๋‚ด๊ธฐ(Pass data using Notification) ์•ˆ๋…•ํ•˜์„ธ์š” Foma ์ž…๋‹ˆ๋‹ค!! ์˜ค๋Š˜์€ Notification์œผ๋กœ ๋ฐ์ดํ„ฐ ๋ณด๋‚ด๊ธฐ๋ฅผ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํ‰์†Œ์— ๋‹ค๋ฅธ ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ผ ๋•Œ ์„ธ๊ทธ๋ฅผ ์ด์šฉํ•˜๊ฑฐ๋‚˜ ์•„๋‹ˆ๋ฉด ๋ฐ˜๋“œ์‹œ ๊ทธ ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ๋กœ ์ด๋™ํ•ด์•ผ๋˜๋Š” ๋ถˆํŽธํ•จ์ด ์žˆ์—ˆ๋Š”๋ฐ ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ์—์„œ ์•„๋ฌด๋Ÿฐ ์ด๋™์—†์ด ๋ฐ์ดํ„ฐ๋งŒ ๋ณด๋‚ผ ์ˆœ ์—†์„๊นŒ?๋ฅผ ๊ณ ๋ฏผํ•˜๋‹ค๊ฐ€ ๊ตฌ๊ธ€๋งํ•œ ๊ฒฐ๊ณผ NotificationCenter๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ž ๊ทธ๋Ÿผ ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค! ๋จผ์ € ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ผ ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ 1๊ฐœ์™€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์„ ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ 1๊ฐœ๋ฅผ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค. ์ €๋Š” ViewController์™€ TabbarViewController1์„ ๋งŒ๋“ค์–ด์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค. ViewController์—” item๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ์ „์†ก์ด๋˜๊ณ  TabbarViewController1์— ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œ์‹œํ•  Label์„ ๊ฐ๊ฐ .. 2020. 9. 14.
[iOS] Carthage๋กœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ด€๋ฆฌํ•˜๊ธฐ Carthage๋Š” CocoaPods์™€ ๊ฐ™์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ๊ฐ€๋” ์ฝ”์ฝ”์•„ํŒŸ์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์–ด ์ด๋Ÿด ๋• ์นด๋ฅดํƒ€๊ณ ๋ฅผ ์‚ฌ์šฉํ•ด์ค˜์•ผํ•˜๋Š”๋ฐ ์šฐ์„  brew๋ผ๋Š” MacOS์šฉ ํŒจํ‚ค์ง€๊ด€๋ฆฌ์ž๋ฅผ ์„ค์น˜ํ•ด์ค๋‹ˆ๋‹ค. https://brew.sh/index_ko Homebrew The Missing Package Manager for macOS (or Linux). brew.sh ๊ทธ๋Œ€๋กœ ํ„ฐ๋ฏธ๋„์— ๋ถ™์—ฌ๋„ฃ๊ธฐ ํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค! ๊ทธ ๋‹ค์Œ ์œ„์—์„œ ์„ค์น˜ํ•œ Homebrew๋ฅผ ์ด์šฉํ•ด carthage๋ฅผ ์„ค์น˜ํ•ด์ค๋‹ˆ๋‹ค. $ brew install carthage ๊ทธ๋ฆฌ๊ณค ์›ํ•˜๋Š” ํ”„๋กœ์ ํŠธ์— Cartfile์„ ๋งŒ๋“ค์–ด์ค˜์•ผ ํ•˜๋Š”๋ฐ ๋ฐฉ๋ฒ•์€ ํ„ฐ๋ฏธ๋„์—์„œ ์ž์‹ ์ด ์žˆ๋Š” ํ”„๋กœ์ ํŠธ๋กœ ์ด๋™ํ•œ ๋’ค 'touch Cartfile'์„ ์ณ์ฃผ์‹œ๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด .. 2020. 4. 15.
[iOS] ๊ฑธ๋ฆฐ ์‹œ๊ฐ„ ๊ตฌํ•˜๊ธฐ 1 2 3 4 5 6 7 8 9 10 func processTime(blockFunction: () -> ()) { let startTime = CFAbsoluteTimeGetCurrent() blockFunction() let processTime = CFAbsoluteTimeGetCurrent() - startTime print("๊ฑธ๋ฆฐ ์‹œ๊ฐ„ = \(processTime)") } processTime { } http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter https://kka7.tistory.com/67 ์•„๋ž˜ ๋ธ”๋กœ๊ทธ๋ฅผ ์ฐธ์กฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์ˆ˜ํ–‰ ์‹œ๊ฐ„ .. 2020. 2. 16.
[iOS/API] Swift๋กœ ์นด์นด์˜ค ๋กœ๊ทธ์ธ ๊ตฌํ˜„ํ•˜๊ธฐ ์นด์นด์˜คSDK์„ค์น˜ ์•„๋ž˜ ์‚ฌ์ง„์—์„œ ํŒŒ๋ž€์ƒ‰ SDK ๋‹ค์šด๋กœ๋“œ๋ฅผ ๋ˆ„๋ฅด๋ฉด ๋‹ค์šด๋กœ๋“œ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค, SDK ์••์ถ•ํ’€๊ณ  xcode์˜ General์— ์•„๋ž˜ Frameworks, Libraries, and Embedded Content ์ด ๋ถ€๋ถ„์— ํ”Œ๋Ÿฌ์Šค ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์ค€๋‹ค. (๋‚œ ์ด๋ฏธ ์—ฐ๊ฒฐํ•ด๋†“์€ ์ƒํƒœ๋ผ ์นด์นด์˜ค์˜คํ”ˆSDKํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์žˆ๋Š”๋ฐ ์›๋žœ ๋น„์–ด์žˆ๋‹ค.) ๋ˆ„๋ฅด๋ฉด ์ด์™€ ๊ฐ™์€ ์‚ฌ์ง„์ด ๋œจ๋Š”๋ฐ ์ขŒ์ธกํ•˜๋‹จ Add Other์—์„œ Add Files๋ฅผ ๋ˆŒ๋Ÿฌ์ค€๋‹ค ๊ทธ๋ฆฌ๊ณ  ์•„๊นŒ ๋‹ค์šด๋ฐ›์•˜๋˜ SDK์—์„œ KakaoOpenSDK.framework๋ฅผ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ถ”๊ฐ€๋˜์žˆ๋Š” ๊ฑธ ๋ณผ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  Build Settings์˜ Linking์˜ Other Linker Flags์— -all_load๋ฅผ ๋„ฃ์–ด์ค€๋‹ค ๊ทธ๋ฆฌ๊ณ  ์นด์นด์˜ค ๋””๋ฒจ๋กœํผ ์‚ฌ์ดํŠธ์—.. 2020. 2. 7.
728x90
๋ฐ˜์‘ํ˜•