๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
728x90

๐ŸŽ iOS61

[iOS] ๋„ค์ด๋ฒ„์ง€๋„ ์•ฑ ์—ฐ๋™ - Place ID ๋กœ ์•ฑ ์—ด๊ธฐ ๋‹ค๋ฅธ ์•ฑ์—์„œ ๋„ค์ด๋ฒ„ ์ง€๋„๋ฅผ ์—ด๊ณ , ํŠน์ • ์œ„์น˜๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๋ฐฉ๋ฒ•์„ ์ž‘์„ฑํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค! ๊ณต์‹ ๊ฐ€์ด๋“œ์˜ ๋‚ด์šฉ์ธ๋ฐ, ๋งํฌ ์ด๋™์ด ์•ˆ๋˜์–ด์„œ ๋ถˆํŽธํ•œ ์ ์ด ์žˆ๋”๋ผ๊ตฌ์š” ๐Ÿ˜ข ์ผ๋‹จ "๋„ค์ด๋ฒ„ ์ง€๋„์•ฑ ์‹คํ–‰" ๋ฒ„ํŠผ์€ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ ํ•ด์š”. ํ•˜์ง€๋งŒ, UIButton ์„ ์ด์šฉํ•ด ๋ฒ„ํŠผ์„ ์ƒ์„ฑํ•˜๊ณ  URL Scheme ์„ ์ฐธ๊ณ ํ•ด์„œ ๋„ค์ด๋ฒ„์ง€๋„๋กœ ์ด๋™ํ•˜๊ฒŒ๋” ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค ๐Ÿ˜€ ๐Ÿ’ก ์ง€๋„์•ฑ ์—ฐ๋™ URL Scheme ๋„ค์ด๋ฒ„ ์ง€๋„ ์•ฑ์„ ์—ด์–ด์„œ, ์ด๋™ํ•˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ณ„๋„์˜ ๋„ค์ด๋ฒ„ ํด๋ผ์šฐ๋“œ ๊ฐ€์ž…์€ ํ•„์š”ํ•˜์ง€ ์•Š์•„์š”! ์ง€๋„์˜ ๋ฉ”์ธ ํ‘œ์‹œ, ์ขŒํ‘œ๊ฐ’์„ ํ†ตํ•ด ์ด๋™ํ•˜๋Š” ๋‚ด์šฉ์ด ๋‚˜์™€์žˆ๋Š”๋ฐ์š”. ์ขŒํ‘œ(์œ„๋„&๊ฒฝ๋„)๋ฅผ ์ด์šฉํ•ด์„œ ์ง€๋„๋ฅผ ์—ด์–ด์ฃผ๋ฉด, ํŠน์ • ์œ„์น˜์˜ ์ด๋ฆ„์ด ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์žฅ์†Œ ํ‘œ์‹œ๋„ ์ขŒํ‘œ๋ฅผ ํ†ตํ•ด ํ‘œ์‹œํ•˜๋Š” ๋‚ด์šฉ๋งŒ ์žˆ๊ณ , ๋„ค์ด๋ฒ„์ง€๋„์—์„œ ๋ฆฌ๋ทฐ, ์ƒ์„ธ์ •๋ณด๊ฐ€ ๋‚˜ํƒ€๋‚˜๋Š” .. 2021. 7. 16.
[iOS] MVVM & RxSwift ์Šคํ„ฐ๋”” W2 - TableView bind items, modelSelected, cell prepareForReuse [iOS] MVVM & RxSwift ์Šคํ„ฐ๋”” W2 - TableView ๋งŒ๋“ค์–ด๋ณด๊ธฐ iamchiwon/RxSwift_In_4_Hours RxSwift, 4์‹œ๊ฐ„ ์•ˆ์— ๋น ๋ฅด๊ฒŒ ์ตํ˜€ ์‹ค๋ฌด์— ์‚ฌ์šฉํ•˜๊ธฐ. Contribute to iamchiwon/RxSwift_In_4_Hours development by creating an account on GitHub. github.com ๊ณฐํŠ€๊น€๋‹˜ ๊ฐ•์˜ ์˜์ƒ์˜.. jellysong.tistory.com ๊ณฐํŠ€๊น€๋‹˜ RxSwift ๊ฐ•์˜ ์ค‘ step1 ์„ MVVM + TableView ๋กœ ๋ฐ”๊ฟ”๋ณธ ์œ„์˜ ํฌ์ŠคํŒ…์—์„œ View Controller ์—์„œ์˜ ๋ฐ์ดํ„ฐ๋ฐ”์ธ๋”ฉ, TableViewCell ์—์„œ ์ด๋ฏธ์ง€ ์ฒ˜๋ฆฌ๋ฅผ ๋”ฐ๋กœ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค! 1 ListViewController / 2 Detai.. 2021. 7. 15.
[iOS] MVVM & RxSwift ์Šคํ„ฐ๋”” W2 - TableView ๋งŒ๋“ค์–ด๋ณด๊ธฐ iamchiwon/RxSwift_In_4_Hours RxSwift, 4์‹œ๊ฐ„ ์•ˆ์— ๋น ๋ฅด๊ฒŒ ์ตํ˜€ ์‹ค๋ฌด์— ์‚ฌ์šฉํ•˜๊ธฐ. Contribute to iamchiwon/RxSwift_In_4_Hours development by creating an account on GitHub. github.com ๊ณฐํŠ€๊น€๋‹˜ ๊ฐ•์˜ ์˜์ƒ์˜ ์ฝ”๋“œ๋Š” step1 ~ 4 ๊นŒ์ง€ ์žˆ๋Š”๋ฐ์š”. step1 ์€ JSON ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ์ž‘์—…์„ ๋น„๋™๊ธฐ๋กœ ์ฒ˜๋ฆฌํ•˜๊ณ  ์ด๋ฅผ editView ์— ๋„์›Œ์ฃผ๋Š” ๊ฒƒ์ด๊ณ . step2 ๋Š” step1 ๊ณผ ๊ฐ™์€ JSON ํŒŒ์ผ์„ tableView ๋กœ ๋ณด์—ฌ์ฃผ๋Š” ์ฝ”๋“œ์—์š”. ๊ฐ•์˜์—์„œ step2 ๋Š” ํŒจ์Šคํ•˜์…”์„œ ์ด๋ฅผ ์—ฐ์Šตํ•ด๋ดค์Šต๋‹ˆ๋‹น ๐Ÿง ๐Ÿ‘€ MVVM + RxSwift TableView ์˜ˆ์ œ step2 ์™„์„ฑ ์ฝ”๋“œ์—์„œ๋Š” ํƒ€์ด๋จธ์™€ LOAD ๋ฒ„.. 2021. 7. 15.
[iOS] RxSwift - Subject vs Observable ๊ณฐํŠ€๊น€๋‹˜ ๊ฐ•์˜ [3๊ต์‹œ] RxSwift ํ™œ์šฉ๋ฒ”์œ„ ๋„“ํžˆ๊ธฐ์— ํ•ด๋‹นํ•˜๋Š” ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค! ๐Ÿ’ก RxSwift - Observable vs Subject Observable ์€ ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ๋‚ด๋ณด๋‚ด์•ผํ• ์ง€ ๋ฏธ๋ฆฌ ์ •ํ•ด์ง„ ํ˜•ํƒœ์˜ ์ŠคํŠธ๋ฆผ์ด๋‹ค. create ํ•˜๋Š” ์‹œ์ ๋ถ€ํ„ฐ ๊ฐ’์ด ์ •ํ•ด์ ธ์žˆ๊ณ , ์ค‘๊ฐ„์— ๋ฐ์ดํ„ฐ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค. ๋ฒ„ํŠผ ์กฐ์ž‘์œผ๋กœ ๋ฐ์ดํ„ฐ ๊ฐ’์„ ๋ณ€๊ฒฝํ•ด์•ผํ•˜๋Š” ๋“ฑ์˜ ์ƒํ™ฉ์—์„œ๋Š” Observable ๋Œ€์‹  Subject ๋ฅผ ์ด์šฉํ•˜๋ฉด ๋œ๋‹ค. Subject ๋Š” Observable ์™ธ๋ถ€์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์–ด์ค„ ์ˆ˜๋„ ์žˆ๊ณ , ๊ตฌ๋…ํ•  ์ˆ˜๋„ ์žˆ๋Š” ์–‘๋ฐฉํ–ฅ์„ฑ์„ ๊ฐ€์ง„ ํƒ€์ž…์ด๋‹ค! Subject ๋Š” ์ผ๋ฐ˜ Observable ์ฒ˜๋Ÿผ subscribe ํ•˜์—ฌ event ๋ฅผ ์ „๋‹ฌ๋ฐ›์„ ์ˆ˜ ์žˆ์Œ๊ณผ ๋”๋ถˆ์–ด, Subject ์™ธ๋ถ€์—์„œ onNext, onCompleted,.. 2021. 7. 14.
[iOS] RxSwift - Observables ์ƒ์„ฑ๊ณผ ๊ตฌ๋…, ์ƒ๋ช…์ฃผ๊ธฐ, operator ๐Ÿ’ก ReacitveX - Observable ReactiveX ์—์„œ Observer ๋Š” Observable ์„ subscribe ํ•œ๋‹ค. observer ๋Š” Observable ์ด ๋ฐฉ์ถœํ•˜๋Š” ์•„์ดํ…œ (๋‹จ์ผ ํ˜น์€ ์‹œํ€€์Šค)์— ์‘๋‹ตํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋™์‹œ์„ฑ(concurrency) ์—ฐ์‚ฐ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. Observable ์ด ๊ฐ์ฒด๋ฅผ ๋ฐฉ์ถœํ•  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆด ํ•„์š” ์—†์ด, ๊ฐ์ฒด๊ฐ€ ๋ฐฉ์ถœ๋˜๋ฉด ๊ทธ ์‹œ์ ์„ ๊ฐ์‹œํ•˜๋Š” ๊ด€์ฐฐ์ž๋ฅผ observer ๋‚ด์— ๋‘๊ณ , ๊ทธ๋ฅผ ํ†ตํ•ด ์•Œ๋ฆผ์„ ๋ฐ›๋Š”๋‹ค. โœ”๏ธŽ Observer ์ƒ์„ฑ & ๊ตฌ๋… ๋น„๋™๊ธฐ ๋ชจ๋ธ์—์„œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ํ๋ฆ„๋Œ€๋กœ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋œ๋‹ค. async method ํ˜ธ์ถœ๋กœ ๊ฒฐ๊ณผ๋ฅผ ๋ฆฌํ„ด๋ฐ›๊ณ , ํ•„์š”ํ•œ ๋™์ž‘์„ ์ฒ˜๋ฆฌํ•˜๋Š” method ๋ฅผ ์ •์˜ํ•œ๋‹ค. * Observer ์˜ ์ผ๋ถ€ Observable ๋กœ ๋น„๋™๊ธฐ ํ˜ธ์ถœ์„ ์ •.. 2021. 7. 11.
[iOS] MVVM & RxSwift ์Šคํ„ฐ๋”” W1 - Observable ์ƒ๋ช…์ฃผ๊ธฐ์™€ ์“ฐ๋ ˆ๋“œ๊ด€๋ฆฌ iamchiwon/RxSwift_In_4_Hours RxSwift, 4์‹œ๊ฐ„ ์•ˆ์— ๋น ๋ฅด๊ฒŒ ์ตํ˜€ ์‹ค๋ฌด์— ์‚ฌ์šฉํ•˜๊ธฐ. Contribute to iamchiwon/RxSwift_In_4_Hours development by creating an account on GitHub. github.com ๊ณฐํŠ€๊น€๋‹˜ ๊ฐ•์˜ ์˜์ƒ์„ ๋ณด๊ณ , ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค! [1๊ต์‹œ] RxSwift ๋ฅผ ์ด์šฉํ•œ ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๐Ÿ’ก RxSwift ๋Š” ๋น„๋™๊ธฐ ์ž‘์—…์˜ ๊ฒฐ๊ณผ๋ฅผ Completion closure ๊ฐ€ ์•„๋‹Œ, ํ•จ์ˆ˜์˜ return ๊ฐ’์œผ๋กœ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•œ ์œ ํ‹ธ๋ฆฌํ‹ฐ ์ค‘ ํ•˜๋‚˜์ด๋‹ค! ๐Ÿ‘€ ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ, RxSwift ๊ฐ€ ์™œ ํ•„์š”ํ• ๊นŒ? ๋„คํŠธ์›Œํฌ ์ž‘์—… ๋“ฑ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ค๋Š” ๋ฐ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๋Š” ์ž‘์—…์˜ ๊ฒฝ์šฐ, ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด ํ•„์š”ํ•˜๋‹ค. ๋™๊ธฐ(sync).. 2021. 7. 11.
[iOS] FLO ์•ฑ ๊ฐœ๋ฐœ ์ผ์ง€ #2. TableView ๋กœ ๊ฐ€์‚ฌ ํ™”๋ฉด ๊ฐœ๋ฐœํ•˜๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์—ฐ์Šต ๊ณผ์ œ์˜ FLO ์•ฑ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋ฐ”ํƒ•์œผ๋กœ ๊ฐœ๋ฐœํ•œ ์•ฑ์ž…๋‹ˆ๋‹ค. FLO ์•ฑ ๊ฐœ๋ฐœ ์ผ์ง€ #1. MVVM ํŒจํ„ด๊ณผ Data Binding [iOS] FLO ์•ฑ ๊ฐœ๋ฐœ ์ผ์ง€ #2. TableView ๋กœ ๊ฐ€์‚ฌ ํ™”๋ฉด ๊ฐœ๋ฐœํ•˜๊ธฐ ์ด๋ฒˆ ๊ฐœ๋ฐœ ์ผ์ง€๋Š” ์ „์ฒด ๊ฐ€์‚ฌ ๋ณด๊ธฐ ํ™”๋ฉด์„ ๊ฐœ๋ฐœํ•˜๋ฉด์„œ TableView ๋ฅผ ์–ด๋–ป๊ฒŒ ์ด์šฉํ–ˆ๋Š”์ง€์— ๋Œ€ํ•ด ์ž‘์„ฑํ•ด๋ณผ๊ฒŒ์š”! ์•„๋ž˜ ์ˆœ์„œ๋กœ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค 1. ๋ฌธ์ž์—ด์˜ ๊ฐ€์‚ฌ๋ฅผ ๋”•์…”๋„ˆ๋ฆฌ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ 2. TableView ๋กœ ์ „์ฒด ๊ฐ€์‚ฌ ํ™”๋ฉด UI ๊ฐœ๋ฐœํ•˜๊ธฐ 3. Music Player ์˜ ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ๊ฐ€์‚ฌ๊ฐ€ ๋ณ€๊ฒฝ๋˜๋„๋ก ํ•˜๊ธฐ * Issue :: Observer ๋ฅผ ๋“ฑ๋กํ•˜๊ณ  ํ™”๋ฉด์ด ์ข…๋ฃŒ๋ ๋•Œ ํ•ด์ œํ•ด์ฃผ์ง€ ์•Š์•„ ๊ฐ€์‚ฌ ์‹ฑํฌ๊ฐ€ ๋งž์ง€์•Š๋Š” ์ด์Šˆ๊ฐ€ ๋ฐœ์ƒ (ํ•ด๊ฒฐ) 4. TableView ๋กœ ํŠน์ • ๊ฐ€์‚ฌ ํ„ฐ์น˜ ์‹œ ํ•ด๋‹น ๊ตฌ๊ฐ„.. 2021. 6. 30.
[iOS] FLO ์•ฑ ๊ฐœ๋ฐœ ์ผ์ง€ #1. MVVM ํŒจํ„ด๊ณผ Data Binding ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๊ณผ์ œ๊ด€์— FLO ๋ฎค์ง ํ”Œ๋ ˆ์ด์–ด iOS ์•ฑ ์—ฐ์Šต ๊ณผ์ œ๊ฐ€ ์žˆ์–ด์„œ, ์ด๋ฅผ ๊ฐœ๋ฐœํ•˜๋ฉด์„œ ์ ์šฉํ•œ ๊ฒƒ์ด๋‚˜ ๋ฐœ์ƒํ–ˆ๋˜ ์ด์Šˆ๋“ค์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•ด๋ณด๋„๋ก ํ• ๊ฒŒ์š”! ํ•ด๋‹น ์•ฑ์„ ๊ฐœ๋ฐœํ•˜๊ธฐ๋กœ ํ•œ ์ด์œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. 1. ์ •ํ•ด์ง„ ์•ฑ์˜ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ, ํ™”๋ฉด ๊ตฌ์„ฑ ์š”์†Œ, ๊ธฐ๋Šฅ ์š”๊ตฌ์‚ฌํ•ญ์— ๋งž์ถฐ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•ด์„œ 2. ๋น„๊ต์  ์ž‘์€ ๊ทœ๋ชจ์˜ ์•ฑ์—์„œ MVVM ํŒจํ„ด์„ ์ ์šฉํ•ด๋ณด๊ธฐ ์œ„ํ•ด์„œ 3. ๋ถ€์ŠคํŠธ์ฝ”์Šค 1๊ฐ•์—์„œ ํ•™์Šตํ•œ ์Œ์•… ํ”Œ๋ ˆ์ด์–ด์˜ ์—ฐ์žฅ์„ ์œผ๋กœ ํ•™์Šตํ•˜๊ธฐ ์œ„ํ•ด์„œ ๐ŸŽต Demo ์˜์ƒ (iPhone 11, iOS14.5) โœ”๏ธŽ FLO ์•ฑ์˜ ์Œ์•… ์žฌ์ƒ ํ™”๋ฉด์—์„œ MVVM ํŒจํ„ด ์ ์šฉํ•˜๊ธฐ ๐Ÿ’ก MVVM ํŒจํ„ด์˜ ๊ธฐ๋ณธ ๋ฃฐ 1. View (View Controller)๋Š” View Model ์„ ๊ฐ€์ง€๊ณ , View Model ์€ Model ์„ ๊ฐ€์ง„๋‹ค. 2. Vie.. 2021. 6. 29.
[iOS] MVC ํŒจํ„ด (Model - View - Controller) ๋””์ž์ธํŒจํ„ด ์ค‘ ์•ฑ ๊ฐœ๋ฐœ์— ์ ์šฉ๋˜๋Š” MVC(Model-View-Controller) ํŒจํ„ด์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋ณด์ž! iOS ์•ฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ถ€์ŠคํŠธ์ฝ”์Šค ๋ฌด๋ฃŒ ๊ฐ•์˜ www.boostcourse.org 1์žฅ์—์„œ ์Œ์•…์žฌ์ƒ ์•ฑ์„ ๋งŒ๋“ค๋ฉด์„œ ์•„๋ž˜์˜ ๋‚ด์šฉ๋“ค์„ ํ•™์Šตํ–ˆ์Šต๋‹ˆ๋‹ค. ์—์…‹(Asset) - ์•ฑ ์•„์ด์ฝ˜, ์ด๋ฏธ์ง€ ํŒŒ์ผ, ๋ฐ์ดํ„ฐ ํŒŒ์ผ์„ ๊ด€๋ฆฌ, ์•ฑ ์‹คํ–‰์‹œ ํŒŒ์ผ์— ์‰ฝ๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค€๋‹ค. ์•ฑ ์‹œ๋‹(App thinning)๊ณผ ์•ฑ ์Šฌ๋ผ์ด์‹ฑ(App slicing) - ๋‹ค์–‘ํ•œ ๋””๋ฐ”์ด์Šค์—์„œ ๋น ๋ฅด๊ฒŒ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์ตœ์ ํ™” ๊ธฐ์ˆ  Cocoa Touch, UIKit, Foundation - iOS ์•ฑ ๊ฐœ๋ฐœ์— ํ•„์š”ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ Autolayout ์„ ์ ์šฉํ•˜๋ฉฐ UI๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฒ• - ์ธํ„ฐํŽ˜์ด์Šค ๋นŒ๋” vs ์ฝ”๋“œ๋กœ ์ž‘์„ฑ iOS์˜ View.. 2021. 6. 18.
728x90