00. λ€μ΄κ°λ©° μ°λ¦¬λ κ°λ°μ νλ©΄μ λ€μκ³Ό κ°μ μ§λ¬Έμ ν μ μ΄ μμκΉ? - 'μ΄ λΆλΆμ μ΄λ κ² νλ κ²μ΄ μ’μ§ μμκΉμ?' Β· 'μ΄κ±΄ μ΄λ κ² λ°κΏλ³΄λ 건 μ΄λ¨κΉμ?' - κ°λ°μλ λ¨μν μ½λλ§ μ μ§λ©΄ λλ€λ μκ°μμ λ²μ΄λ νλ‘λνΈμ λν΄ '주체μ μΌλ‘' μκ°νκ³ λ§λ€μ΄ λκ°λ μν μ΄ λμ΄μΌ νλ€. λμμ΄λ λ° κΈ°νμλ€κ³Ό '주체μ μΌλ‘' μ¬μ©μ±μ λν΄ μν΅ν μ μλ νμ κΈ°λ₯΄λ κ²μ΄ λ€μ μ€ν°λμ λͺ©νλ€. - μ μΎν μ‘ν μ€ν°λ(UIΒ·UX Challenge) μκ°κΈ μ€ μΌλΆ λ°μ· - 01. Navigation (νν΄ Β· νμ) πΎ μν€νΌλμμ λμμλ Navigationμ μ μλ₯Ό μ°Ύμ보면 νλ² λλ νν΄μ μ΄λΌκ³ λμμμ΅λλ€. νΉν, ν μ₯μμμ λ€λ₯Έ μ₯μλ‘ μ΄λνκΈ° μν λ°©λ² λλ κ·Έλ¬ν κΈ°μ μ΄λΌκ³ ..
π₯ μΈμ¬λ§ μλ
νμΈμ, νλΌμ
λλ€ γ° π λ€μ μΉ΄ν
κ³ λ¦¬μμλ λͺ¨λ₯΄λ κ°λ
μ΄λ ν€μλ, λ¬Έλ² λ± λ€μν λ΄μ©μ μ 리ν©λλ€. λ€μ λ΄μ©μ μ μ μΈμ€ν κ°λ° λ‘κ·Έ κ³μ (@taekki.dev)μλ μ¬λΌκ°λ λ§μ κ΄μ¬ λΆνλλ €μ :) κ°λ
μ λΉκ³΅κ°μ λ©κΏ μ μλ κ·Έλ κΉμ§ νμ΄ν
ν΄λ³΄κ² μ΅λλ€. κ·ΈλΌ μ€λ ν¬μ€ν
μμν΄λ³΄κ² μ΅λλ€. π π¬ λ€μ΄κ°λ©° UIWindowλ₯Ό μ²μ λ§μ£Όνκ±°λ, κ°μ₯ λ§μ΄ 보λ κ³³μ΄ μ΄μ©λ©΄ SceneDelegate.swift λ AppDelegate.swift μΌμ§λ λͺ¨λ¦
λλ€. νμ κ°λ³κ² μ§λμΉκΈ°λ§ νλ UIWindowκ° λ¬΄μμΈμ§ μ΄λ²μ μμλ³΄κΈ°λ‘ νμ΅λλ€. μ΄λ² κΈμ Apple 곡μλ¬Έμμ ꡬ쑰λ₯Ό λ°νμΌλ‘ ꡬμ±νμ΅λλ€. π± UIWindowμ νμ
π νμ
(Type) - ν΄λμ€ νμ
μ ν΄λμ€(Cl..
π λ€μ΄κ°λ©° λͺ¨λ UI μμμ ν¬κΈ°κ° λμΌνλ©΄ μΌλ§λ μ’μκΉμ? νμ§λ§ κ·Έλ μ§ μκΈ° λλ¬Έμ μ°λ¦¬λ λ°©λ²μ μ°Ύκ² λμ£ π₯² νΉνλ 컨ν
μΈ μ μ¬μ΄μ¦μ λ°λΌμ UI μ»΄ν¬λνΈμ μ¬μ΄μ¦λ₯Ό λμ μΌλ‘ μ‘°μ ν΄μ£Όλ μν©μ κ½€λ μμ£Ό λ±μ₯ν©λλ€. κ·Έ μ€μμλ CollectionViewλ λ¨κ³¨ μλμ
λλ€. CollectionView μ체μ λμ΄λ₯Ό λμ μΌλ‘ μ‘°μ νλ μν©μ΄λ, CollectionView Cellμ λλΉλ λμ΄λ₯Ό μ‘°μ νλ μν©μ μλ‘ λ€ μ μκ² λ€μ! β¨ μ€λμ CollectionView Cellμ λλΉλ₯Ό λμ μΌλ‘ μ‘°μ νλ λ°©λ²μ μμ보λλ‘ νκ² μ΅λλ€ γ° πΊ μꡬμ¬ν μ°λ¦¬κ° ꡬνν΄μΌν μν©μ λ€μκ³Ό κ°μμ. λΉ¨κ°μ λ°μ€ μμμ ꡬνν΄μΌ νλλ° κ° μΉ΄ν
κ³ λ¦¬ μμμ΄ ν
μ€νΈ κΈΈμ΄μ λ§κ² λμ μΌλ‘ μ‘°μ λμ΄μΌ ν©λλ€. μ€..
0. λ€μ΄κ°λ©° μλ
νμΈμγ° μ€λμ μ½λκ° μλ TIPμ λ€κ³ μμ΅λλ€. λ°λ‘ κΉνλΈ(GitHub)μμ Issueλ Pull requestλ₯Ό μμ±ν λ μ¬μ©νλ λΌλ²¨(labels)μ κ΄ν λ΄μ©μ
λλ€. μ°λ¦¬λ κ°μΈ νλ‘μ νΈλ₯Ό ν λλ ν νλ‘μ νΈλ₯Ό ν λ μ΄μ κ΅¬λΆ Β· μν κ΅¬λΆ Β· λ΄μ© κ΅¬λΆ λ±μ μ ννκ² μν΄μ λΌλ²¨μ΄λΌλ κ²μ μ¬μ©ν©λλ€. μ΄λ¦ν μ λλ‘ μκ°νλ©΄ νΈνκ² μ£ ? νΉνλ ν κ°λ°μ ν λμλ λμ± μ μ©νκ² μ¬μ©μ΄ λμ£ . μ΄κ²μ΄ μ΄λ€ κ²μ ꡬννκ±΄μ§ λκ° κ΅¬ννκ±΄μ§ ν λ²μ μμλ³Ό μ μλ μ©λλ‘λ μ¬μ©μ΄ λ©λλ€. νμμ μ°λ¦¬λ μ΄λ¬ν λΌλ²¨μ νμμ λ§κ² μμ νκ³ μΆκ°νκ³ νλλ°μ. λ§€λ² μλ‘κ² λΌλ²¨μ μ€μ νλ κ²λ μ΄μ λ μ§κ²Ήκ³ νμ΄ λλλ€... μ΄λ¬ν λΆνΈν¨μ μ‘°κΈμ ν΄μνκ³ μ μ€λμ νμ λ€κ³ ..
λ€μ΄κ°λ©° μ°λ¦¬λ κ°λ°μ νλ©΄μ λ€μκ³Ό κ°μ μ§λ¬Έμ ν μ μ΄ μμκΉ? - 'μ΄ λΆλΆμ μ΄λ κ² νλ κ²μ΄ μ’μ§ μμκΉμ?' Β· 'μ΄κ±΄ μ΄λ κ² λ°κΏλ³΄λ 건 μ΄λ¨κΉμ?' - κ°λ°μλ λ¨μν μ½λλ§ μ μ§λ©΄ λλ€λ μκ°μμ λ²μ΄λ νλ‘λνΈμ λν΄ '주체μ μΌλ‘' μκ°νκ³ λ§λ€μ΄ λκ°λ μν μ΄ λμ΄μΌ νλ€. λμμ΄λ λ° κΈ°νμλ€κ³Ό '주체μ μΌλ‘' μ¬μ©μ±μ λν΄ μν΅ν μ μλ νμ κΈ°λ₯΄λ κ²μ΄ λ€μ μ€ν°λμ λͺ©νλ€. - μ μΎν μ‘ν μ€ν°λ(UIΒ·UX Challenge) μκ°κΈ μ€ μΌλΆ λ°μ· - 01. H.I.Gμμ μμλ³Έ Text Fields λ³Έ λ΄μ©μ H.I.G - Controls - Text Fields λ₯Ό νΈμν κ²μ
λλ€. κ°λ
ν μ€μ κ³ μ μ μΈ λμ΄λ₯Ό κ°μ§ νλ (λ₯κ·Ό λͺ¨μ리λ μ ν μμ) μ¬μ©μκ° νλλ₯Ό νν ..
π₯ μλ‘μ΄ μμ μλ
νμΈμ, νλΌμ
λλ€ γ° π λΈλ‘κ·Έμ μλ‘μ΄ μΉ΄ν
κ³ λ¦¬κ° μκ²Όμ΅λλ€ γ° (μΌνΈ) λλꡬμ? λ°λ‘ 'β¨ iOSλ₯Ό μν κ°λ
μμ' μΉ΄ν
κ³ λ¦¬μΈλ°μ 㰠곡λΆλ₯Ό νλ€λ³΄λ©΄ κ°λμ©(맨λ ) λͺ¨λ₯΄λ κ°λ
μ΄λ ν€μλ, λ¬Έλ² λ±μ΄ λμ€λλ° κ·Έλ° λ΄μ©λ€μ μ 리νλ €κ³ νλ €κ³ ν©λλ€. λ€μ λ΄μ©μ μ μ μΈμ€ν κ°λ° λ‘κ·Έ κ³μ (@taekki.dev)μλ μ¬λΌκ°λ λ§μ κ΄μ¬ λΆνλλ €μ :) μ΄κ±΄ TMIμΈλ° μ«μ μΈλ±μ±μ΄ μΈ μ리μμ£ !? μΈ μ리μκΉμ§ ν¬μ€ν
ν κ·Έ λ μ μν¨μ΄λΌλ... λ κ·Έ λ μ―€ λλ©΄ μ€λ ₯μ΄ μ‘°κΈμ λμ΄μκ² λ€μ(νν) κ·ΈλΌ μ€λ ν¬μ€ν
μμν΄λ³΄κ² μ΅λλ€ π π¬ λ€μ΄κ°λ©° typealiasμ λν΄ κ³΅λΆνλ μ€μ βμλΈν΄λμ±μμ΄ μ»€μ€ν
νμ
μ λ°°μ΄μ μ μνλλ° μ μ©νλ€β μλ° μ΄μΌκΈ°κ° λμμ μλΈν΄λμ±..
μ΄λ³΄λ€ μμΈν μ μλ€.. νλ©΄ μ λΉ¨κ° μ¬κ°νμ λ°λΌμ€λ€λ³΄λ©΄ μ΄λμ κΉνλΈμ μ¬λ μ°λμ΄ λλμλ.. 0. λ€μ΄κ°λ©° νμ
μ νλ€λ³΄λ©΄ νμ
ν΄λ‘μ¨ Slackκ³Ό Notionμ μ¬μ©νκ² λ©λλ€. μ°λ¦¬λ κ·Έ μ€μμ μν΅ μλ¨μΌλ‘μ¨ Slackμ λ§μ΄ μ¬μ©νκ² λλλ°μ. μ΄λ² κΈμμλ Githubμ νμ
Projectμ Pull Request, Issue, Commit λ±μ μννμ λ νμλ€μκ² λ³κ²½μ¬νμ μ½κ² 곡μ ν μ μλλ‘ κΉνλΈ λ΄μ μ¬λμ μ°κ²°νλ λ°©λ²μ μμλ³΄κ² μ΅λλ€. μ 체 νλ©΄μ μΊ‘μ²ν κ²μ΄λ―λ‘ μ μ λ³΄μΌ μ μμ΅λλ€. νλ©΄μ νλν΄μ λ΄μ£ΌμΈμ :) 1. κΉν μ± μΆκ°νλ λ¨κ³ 2. λ΄κ° μμμ λ°κ³ μΆμ μ±λμ κΉνλΈ λ΄μ μΆκ°νλ λ¨κ³ μνλ μ±λμ μ μ νν΄μ£ΌμΈμ. μ¬λ μν¬μ€νμ΄μ€ μμ μ¬..
πμ€λμ κ°λ¨νκ² Delegate Patternμ μ μ©ν΄λ³΄λ μμ μ€μμ νλ©΄ μ ν μ λ°μ΄ν°λ₯Ό λ΄μ보λ΄λ μμ
μ ν΄λ³΄κ² μ΅λλ€. π§π»βπ» λ€μ΄κ°λ©° Delegate Pattern(π? π??), νμ 곡λΆνλ©΄μ κ·Έ μκ°μλ μ΄ν΄νκ³ λΆλͺ
μκ² λλ° λλ체 μ΄λ λΆλΆμ Β· λ μΈμ μ¬μ©ν΄μΌ νλμ§ κ°μ΄ μ μ‘νλλ€... μ μμλ κ·Έλ°λ°μ... μ΄μ© μ μμ΄μ... λ€μν μν©μ μ¨λ³΄λ €κ³ λ
Έλ ₯ν΄λ³΄λ μ λ°μ μ΄λ²μ μ΅λν μ¬λ¬ μν©μ μ¬μ©ν΄λ³΄λ©΄μ μ΄λ€ μ₯λ¨μ μ΄ μλμ§λ μμλ³΄κ³ μ¬μ©λ²μ μ΅μν΄μ§λ €κ³ ν΄λ³΄κ² μ΅λλ€. κ°μ΄ λ
Έλ ₯ν΄λ³΄μμ. πΊ μ€ν νλ©΄ μ€λ ꡬνν΄ λ³Ό νλ©΄μ λ€μκ³Ό κ°μ΅λλ€. ν¬κ² μν νλ©΄κ³Ό μ₯λ°κ΅¬λ λ΄κΈ° νλ©΄ 2κ°μ§λ‘ ꡬμ±λμ΄μꡬμ. μ°μ νλ¦μ μ€λͺ
ν΄λ릴κ²μ. μν νλ©΄μμ μ₯λ°κ΅¬λ λ²νΌμ ν΄..