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

๐ŸŽ iOS61

[iOS/Swift] ์˜จ๋ณด๋”ฉ(Onboarding) ํŽ˜์ด์ง€ ๋งŒ๋“ค๊ธฐ - Storyboard, UserDefaults, SceneDelegate ๐Ÿ’ก ์˜จ๋ณด๋”ฉ, Onboarding ์˜จ๋ณด๋”ฉ ํŽ˜์ด์ง€๋Š” ์ƒˆ๋กœ์šด ์œ ์ €๋‚˜ ๋‹ค์‹œ ๋Œ์•„์˜จ ์œ ์ €๋ฅผ ํ™˜์˜ํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ์œ ์ €์—๊ฒŒ ์–ดํ”Œ์˜ ์‚ฌ์šฉ๋ฒ•์„ ์•Œ๋ ค์ฃผ๊ฑฐ๋‚˜ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ํŒ, ์ฝ˜ํ…์ธ  ์ƒ˜ํ”Œ ๋“ฑ์„ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค. ์ฒ˜์Œ์— ์•ฑ ์ตœ์ดˆ ์‹คํ–‰์‹œ ๋‚˜ํƒ€๋‚˜๋Š” ํŽ˜์ด์ง€, ์›ฐ์ปด ํŽ˜์ด์ง€ ๋“ฑ์œผ๋กœ ๊ฒ€์ƒ‰์„ ํ–ˆ์„ ๋•Œ์—๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ๊ธฐ๊ฐ€ ์–ด๋ ค์› ๋‹ค. ์˜จ๋ณด๋”ฉ์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค๋Š” ๊ฒƒ์„ ์ตœ๊ทผ์— ์•Œ๊ฒŒ๋˜์—ˆ๋‹ค. ๐Ÿ™‚.. ๊ฐœ๋ฐœํ•˜๊ณ ์ž ํ•˜๋Š” ๋‚ด์šฉ์ด ๋ฌด์—‡์œผ๋กœ ๋ถˆ๋ฆฌ๋Š”์ง€ ์•„๋Š”๊ฒŒ ์ค‘์š”ํ•˜๋‹ค๊ณ  ๋Š๊ผˆ๋‹ค. (HIG ๋ฅผ ๋จผ์ € ์ฐพ์•„๋ดค๋‹ค๋ฉด ์‰ฝ๊ฒŒ ์ฐพ์•˜๊ฒ ๋‹ค..) ์˜จ๋ณด๋”ฉ ํŽ˜์ด์ง€๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ , ์•ฑ์˜ ์ตœ์ดˆ ์‹คํ–‰์‹œ์—๋งŒ ๋‚˜ํƒ€๋‚˜๊ฒŒ ํ•˜๋Š” ์˜ˆ์ œ๋ฅผ ๊ฐœ๋ฐœํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค! Xcode ํ”„๋กœ์ ํŠธ์— Onboarding storyboard ์ถ”๊ฐ€ํ•˜๊ธฐ Storyboard ๋“ค์˜ ์ฒซ ๋ฒˆ์งธ VC ์˜ Storyboard ID ์ง€์ •ํ•˜๊ธฐ.. 2021. 3. 8.
[iOS/Swift] UserDefaults ๋ฅผ ์ด์šฉํ•ด ๋ฐ์ดํ„ฐ ์ €์žฅํ•˜๊ธฐ, ์•ฑ ์ตœ์ดˆ ์‹คํ–‰ ์—ฌ๋ถ€ ํŒ๋‹จํ•˜๊ธฐ ๐Ÿ‘€ UserDefaults class UserDefaults : NSObject ๐Ÿ’ก An interface to the user’s defaults database, where you store key-value pairs persistently across launches of your app. ์‚ฌ์šฉ์ž์˜ defaults ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— Key-Value ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. Foundation framework ์— ํฌํ•จ๋˜์–ด ๊ธฐ๋ณธ์œผ๋กœ ์ œ๊ณต๋˜๋Š” ํด๋ž˜์Šค๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. defaults ๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ์ด์œ ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์•ฑ ์‹œ์ž‘์‹œ ๊ธฐ๋ณธ ์ƒํƒœ ๋˜๋Š” ๊ธฐ๋ณธ ์ž‘๋™ ๋ฐฉ์‹์„ ๊ฒฐ์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. โœ”๏ธŽ UserDefaults object ๊ฐ€์ ธ์˜ค๊ธฐ let def.. 2021. 3. 7.
[iOS/Swift] TableView ๋กœ ์ดˆ๊ฐ„๋‹จ TodoList ๋งŒ๋“ค๊ธฐ ์ด์ „์— ํฌ์ŠคํŒ…ํ•œ UITableView, UITableViewCell, Protocols ์„ ์ด์šฉํ•ด์„œ ์•ฑ์„ ์‹ค์ œ๋กœ ๋งŒ๋“ค์–ด๋ณผ๊ฒŒ์š”. ๊ณต์‹๋ฌธ์„œ๋ฅผ ๋ณด๊ณ  ์ •๋ฆฌํ–ˆ๋˜ ๋‚ด์šฉ๋“ค์ด๋ผ ์–ด๋ ต๊ฒŒ ์ž‘์„ฑํ•œ๊ฒƒ ๊ฐ™์•„์„œ ์‹ค์Šต์œผ๋กœ ํ•œ ๋ฒˆ ๋” ํ™˜๊ธฐํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค! ๊ฐœ๋ฐœ ์ˆœ์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์•„์š” ๐Ÿ™‚ Storyboard ์—์„œ TableView ์ถ”๊ฐ€ํ•˜๊ธฐ TableView ๋‚ด์— TableCell ๊ตฌ์„ฑ ๋งŒ๋“ค๊ธฐ CustomCell ํด๋ž˜์Šค ๋งŒ๋“ค๊ณ  ์—ฐ๊ฒฐํ•˜๊ธฐ TableView Protocol ์ค€์ˆ˜ํ•˜๊ธฐ ์•ฑ ์‹คํ–‰ํ•˜๊ธฐ 1. Storyboard ์—์„œ TableView ์ถ”๊ฐ€ํ•˜๊ธฐ ์Šคํ† ๋ฆฌ๋ณด๋“œ๋ฅผ ์ด์šฉํ•ด์„œ UI ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. TableView ์™€ TableViewCell ์„ ์ถ”๊ฐ€ํ•ด์ค๋‹ˆ๋‹ค! 2. TableView ๋‚ด์— TableCell ๊ตฌ์„ฑ ๋งŒ๋“ค๊ธฐ Table View.. 2021. 3. 1.
[iOS/Swift] TableView ๋ฅผ ์œ„ํ•œ Protocol :: Datasource, Delegate TableView ๋ฅผ ์œ„ํ•œ Protocol UITableView ๋ฅผ ์œ„ํ•œ Protocol ์€ UITableViewDataSource, UITableViewDelegate ๊ฐ€ ์žˆ๋‹ค. ์—ฌ๊ธฐ์„œ Protocol ์€ TableView๋ฅผ ์ด์šฉํ•˜๊ธฐ ์œ„ํ•ด ํ•ด์•ผํ•  ์ผ๋“ค์˜ ๋ชฉ๋ก, ์ฆ‰ ๊ตฌํ˜„ํ•ด์•ผํ•  method ๋“ค์ด๋‹ค. protocol ์ค€์ˆ˜๋Š” ํด๋ž˜์Šค๊ฐ„ ์ƒ์†์„ ํ•˜๋“ฏ์ด ์ž‘์„ฑํ•ด์ฃผ๋ฉด ๋œ๋‹ค. UITableViewDataSource protocol ์˜ ๊ฒฝ์šฐ, ํ•„์ˆ˜ ๊ตฌํ˜„ ํ•จ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์œผ๋ฉด, ์•„๋ž˜์™€ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. Fix ๋ฅผ ๋ˆ„๋ฅด๋ฉด ์ž๋™์œผ๋กœ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค. extension BountyViewController: UITableViewDataSource { } UITableViewDataSource protocol UITableVie.. 2021. 3. 1.
[iOS/Swift] TableView ์˜ ๊ธฐ์ดˆ :: UITableView, UITableViewCell UITableView class UITableView : UIScrollView ๐Ÿ’กA view that presents data using rows arranged in a single column. UITableView ๋Š” ํ•˜๋‚˜์˜ ์—ด์„ ๊ฐ–๋Š” ์—ฌ๋Ÿฌ๊ฐœ์˜ ํ–‰์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œํ˜„ํ•˜๋Š” View ์ด๋‹ค. UIScrollView ๋ฅผ ์ƒ์†๋ฐ›์€ ํด๋ž˜์Šค์ด๋ฏ€๋กœ, ์ˆ˜์ง์œผ๋กœ ์Šคํฌ๋กค์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ํ•˜๋‚˜์˜ ๊ธด ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ณด์—ฌ์ค„ ์ˆ˜๋„ ์žˆ๊ณ , ๊ด€๋ จ๋œ rows ๋ฅผ ๊ทธ๋ฃน์ง€์–ด ๋ณด์—ฌ์ค„ ์ˆ˜๋„ ์žˆ๋‹ค. ์‚ฌ์ง„์˜ Contacts app ์„ ๋ณด๋ฉด, ์•ŒํŒŒ๋ฒณ ์ˆœ์œผ๋กœ ๊ทธ๋ฃน์ง€์–ด์ ธ ์žˆ๊ณ  Settings app ๋„ title ์€ ์—†์ง€๋งŒ ๊ทธ๋ฃน์ง€์–ด์ ธ ์žˆ๋‹ค. Table view ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๊ณ„์ธต์ ์ธ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์•ฑ์—์„œ ์ด์šฉ๋˜๋ฉฐ, navigation view co.. 2021. 3. 1.
[iOS/Swift] Launch Screen :: ์•ฑ์˜ ์‹œ์ž‘ ํ™”๋ฉด Launch screen Launch Screen ์€ ์•ฑ์ด ์‹œ์ž‘๋  ๋•Œ ๋‚˜ํƒ€๋‚ฌ๋‹ค๊ฐ€ ์•ฑ์˜ ์ฒซ๋ฒˆ์งธ ํ™”๋ฉด์œผ๋กœ ๋น ๋ฅด๊ฒŒ ์ „ํ™˜๋œ๋‹ค. ์•ฑ์ด ์‹คํ–‰๋˜๊ณ  ์‚ฌ์šฉ๋  ์ค€๋น„๊ฐ€ ๋˜์—ˆ์Œ์„ ์•Œ๋ ค์ฃผ๋Š” ์—ญํ• ์„ ํ•˜๋ฉฐ, ์•ฑ์ด ๋น ๋ฅด๊ณ  ๋ฐ˜์‘์ ์ด๋ผ๋Š” ์ธ์ƒ์„ ์ฃผ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค. ๊ฐ€์ด๋“œ์—์„œ ์‹œ๊ฐ์ ์ธ ํšจ๊ณผ๋ฅผ ์ฃผ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋ผ๊ณ  ํ•œ๋‹ค. ์•ˆ๋“œ๋กœ์ด๋“œ ๊ฐœ๋ฐœ์‹œ์—๋Š” Splash screen ์ด๋ผ๊ณ  ๋ถˆ๋ €๋Š”๋ฐ, iOS ์—์„œ๋Š” Launch Screen ์ด๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ์ ์ด ๋‹ค๋ฅด๋‹ค. Launch screen in Xcode Xcode ํ”„๋กœ์ ํŠธ๋Š” launch screen ์„ ์œ„ํ•ด launch storyboard ๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ์œ ์ €๊ฐ€ ์•ฑ์„ ์ฒ˜์Œ ์‹คํ–‰ํ–ˆ์„ ๋•Œ, ์‹œ์Šคํ…œ์€ ์•ฑ์˜ UI๋ฅผ ํ™”๋ฉด์— ๋ณด์—ฌ์ค„ ์ค€๋น„๊ฐ€ ๋  ๋•Œ๊นŒ์ง€ launch storyboard ๋ฅผ ๋ณด์—ฌ์ค€๋‹ค. ๋งŒ.. 2021. 2. 21.
[iOS/Swift] Tab Bar - UITabBar, UITabBarController ๐Ÿ’ก Tab Bar Tab bar ๋Š” ์•ฑ ํ™”๋ฉด์˜ ํ•˜๋‹จ์— ์œ„์น˜ํ•˜๋ฉฐ, ์‚ฌ๋žŒ๋“ค์ด ๋‹ค๋ฅธ ์„น์…˜๋“ค๊ฐ„ ์ „ํ™˜์„ ๋น ๋ฅด๊ฒŒ ํ•˜๋„๋ก ํ•œ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค๋ฅธ ์ข…๋ฅ˜์˜ ์ •๋ณด๋“ค์„ ๋ณด์—ฌ์ค„ ๋•Œ, ํ˜น์€ ๊ฐ™์€ ์ •๋ณด๋ฅผ ์™„์ „ํžˆ ๋‹ค๋ฅธ ์Šคํƒ€์ผ๋กœ ๋ณด์—ฌ์ค„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. โœ”๏ธŽ Tab Bar ์™€ Toolbar ์˜ ์ฐจ์ด์  Tab bar ์™€ ๋น„์Šทํ•˜๊ฒŒ ํ•˜๋‹จ์— ์œ„์น˜ํ•œ toolbar ์˜ ์ฐจ์ด์ ์„ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค. Tab bar ๋Š” ์•ฑ์˜ ์—ฌ๋Ÿฌ ์„น์…˜ ์ค‘ ์ „ํ™˜์„ ํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด ๋ชฉ์ ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด, ์‹œ๊ณ„ ์•ฑ์˜ ์•Œ๋žŒ, ์Šคํƒ‘์›Œ์น˜, ํƒ€์ด๋จธ ํƒญ๋“ค์ด ์žˆ๋‹ค. Toolbar ๋Š” ํ˜„์žฌ ๋ณด์—ฌ์ง€๋Š” ๋‚ด์šฉ๊ณผ ์—ฐ๊ด€์žˆ๋Š” ์•ก์…˜์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฒ„ํŠผ๋“ค์„ ํฌํ•จํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด, ์•„์ดํ…œ์„ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•˜๊ธฐ, ๋ถ๋งˆํฌ์— ์ถ”๊ฐ€ํ•˜๊ธฐ, ๊ณต์œ ํ•˜๊ธฐ ๋“ฑ์ด ์žˆ๋‹ค. Tab bar ์™€ Toolbar ๋‘˜ ๋‹ค ํ•˜๋‹จ์—.. 2021. 2. 14.
728x90