-
'νμκΈ λνΉ μ±'μ μ μνλ©΄μ λ°°μ΄ μ νκ³iOS/π€ App 2021. 3. 5. 22:41
νμκΈ λνΉ μ±μ 3λ¨κ³μ κ³Όμ μ κ±°μ³μ μ΅μ’ κ²°κ³Όλ¬Όμ΄ λμμ΅λλ€. 1. MVC ν¨ν΄μ κ°μ§κ³ ν μ΄λΈ λ·° (UITableView) μ λν μΌ λ·° (UIView) λ‘ κ΅¬μ±λ μ± μμ±νκΈ° 2. MVC ν¨ν΄μ MVVM ν¨ν΄μΌλ‘ 리ν©ν°λ§νκΈ° 3. ν μ΄λΈ λ·°λ₯Ό 컬λ μ λ·°λ‘ λ³κ²½νκ³ , λν μΌ λ·°μ μ λλ©μ΄μ μΆκ°νκΈ° μ λ¨κ³μ μμλλ‘ μλ‘ λ°°μ°κ±°λ 볡μ΅ν μ μ κΈλ‘ λ¨κΈ°λ €κ³ ν©λλ€. 1λ¨κ³: MVC ν¨ν΄μ κ°μ§κ³ ν μ΄λΈ λ·° μ λν μΌ λ·°λ‘ κ΅¬μ±λ μ± μμ±νκΈ° a. MVC μ΄μ κΈμμ ν λ² λ€λ£¬ λ΄μ©μ λλ€. MVC ν¨ν΄μ νΉμ§μ μ± λ΄μ μ€λΈμ νΈλ₯Ό 3κ°μ ν° μν (λ μ΄μ΄) λ‘ λλκ³ , μν κ° μ΄μμ μΌλ‘ μν΅νλ λ°©μμ΄ μλ€λ κ²μ λλ€. Model, View, Contoller : View μ Model μλ ..
-
[UIKit] λ·° νκΉ μ¬μ©ν΄λ³΄κΈ° (View Tagging)iOS/π€ App 2021. 3. 5. 15:19
μ°Έκ³ κΈ: developer.apple.com/documentation/uikit/uiview/1622493-tag λ·° 컨νΈλ‘€λ¬μμ λ·°μ μ κ·Όνλ €λ©΄ λ³΄ν΅ @IBOutlet μ ν΅ν΄ μ°Έμ‘°λ₯Ό μ»μ΄μ μ κ·Όν©λλ€. μ΄ μΈμ λ λ€λ₯Έ λ°©λ²μ΄ μλλ°, λ°λ‘ View Tagging μ λλ€. κ°κ°μ λ·°μ νκ·Έ κ°μ λΆμ¬ν΄μ, UIView μ μΈμ€ν΄μ€ λ©μλμΈ viewWithTag(_:) μ νκ·Έ κ°μ μ λ¬νμ¬ μ¬μ©ν©λλ€. μ¬μ© μμ class MyViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() /* 1 */ let myView = view.viewWithTag(0) } } /* 1 */ UIViewController..
-
[iOS] MVC λ? (feat. Cocoa MVC)iOS/π€ App 2021. 3. 3. 23:30
1μ°¨ μμ : 21.07.26 2μ°¨ μμ : 21.08.05 μ ν μμΉ΄μ΄λΈ λ¬Έμλ₯Ό μ€μ¬μΌλ‘ μμ±νμμ΅λλ€. μλ νμΈμπΆ μ΄λ² μκ°μλ iOS κ°λ° μ λ¬Έ μκΈ°μ κ±°μ νμ°μ μΌλ‘ μ¬μ©νλ μν€ν μ² ν¨ν΄μΈ Model-view-controller (MVC) ν¨ν΄μ κΈ°λ³Έ κ°λ μ μμλ³΄κ³ , μ νμμ μ μνλ Cocoa MVC μ λν΄μ λ€λ€λ³΄λ €κ³ ν©λλ€. κ·ΈλΌ μμν΄λ³Όκ²μ!!!π₯ μ΄ κΈμμ λ€λ£¨λ κ²: MVCμ κΈ°λ³Έ κ°λ Cocoa MVCλ? Model, View, View controller μ μν Cocoa MVCμ μ₯μ κ³Ό λ¨μ μ°μ , MVC μ κΈ°λ³Έ κ°λ μ΄ ν¨ν΄μ User Interface λ₯Ό κ°λ°ν λ μ£Όλ‘ μ¬μ©λλ ν¨ν΄μΌλ‘, 1. μ¬μ©μλ‘λΆν° μ 보λ₯Ό μ λ ₯λ°λ κ³Όμ 2. λ΄λΆμ μΌλ‘ μ 보λ₯Ό μ²λ¦¬νκ³ νννλ..
-
[iOS] Frame κ³Ό Bounds μ 곡ν΅μ κ³Ό μ°¨μ΄μ iOS/π€ App 2021. 2. 4. 10:46
곡ν΅μ iOS μμ Frame κ³Ό Bounds λ λ·°μ μ’νμ μμΉλ₯Ό λνλ΄λ ꡬ쑰체μ λλ€. λ°λΌμ UIView μΈμ€ν΄μ€μ΄κ±°λ UIView ν΄λμ€λ₯Ό μμν μΈμ€ν΄μ€λ .frame κ³Ό .bounds μμ±μ κ°μ§κ³ μμ΅λλ€. μ’νλ μμΉλ₯Ό νννλ μλ¨μ΄κ³ , iOS μμλ 2μ°¨μ μ’νκ³λ₯Ό μ¬μ©ν©λλ€. μμΉλ 곡μλ¬Έμμ `dimensions` λΌλ λ¨μ΄λ‘ ννλμ΄ μκ³ , μ¬κΈ°μλ width(λλΉ) μ height(λμ΄) κ°μ λνλ λλ€. μ°μ Frame κ³Ό Boundsμ νμ μ λͺ¨λ CGRect μ λλ€. κ·Έλ¦¬κ³ CGRect μ μ£Όμ μμ±μ origin κ³Ό size μ λλ€. origin μ CGPoint νμ , size λ CGSize νμ μ λλ€. μ¦, Frame κ³Ό Bounds λ μ’νλ₯Ό orign μμ±μΌλ‘,..
-
[iOS] About the App Launch Sequence (μ± μ€ν μμ μ μΌμ΄λλ μΌλ€)iOS/π€ App 2021. 2. 2. 06:38
1μ°¨ μμ : 21.08.02 μλ νμΈμπΆ μ΄λ² μκ°μλ "About the App Launch Sequence" μ±μ μ€ν μμ μ μ€νλλ μ½λλ€μ λν΄μ μμλ³΄κ² μ΅λλ€. μ±μ μ¬μ©μμ μν΄ foregroundλ‘ μ€νλκΈ°λ νκ³ , μμ€ν μ μν΄ background λ‘ μ€νλκΈ°λ νμ£ ? print("hello, world") μ κ°μ λ¨μν μ μ°¨μ§ν₯ νλ‘κ·Έλ¨κ³Ό λ¬λ¦¬ μ±μ μ€ννλ κ²μ 볡μ‘ν λ¨κ³μ κ³Όμ μ κ±°μΉ©λλ€. μ΄ κ³Όμ λ€ λλΆλΆμ UIKitμ΄ μλμΌλ‘ μ²λ¦¬ν©λλ€. μ± μ€ν κ³Όμ μ€, UIKit μ AppDelegate μ λ©μλλ€μ νΈμΆν©λλ€. νλ‘μ νΈ ν νλ¦ΏμΌλ‘ κΈ°λ³Έ μ 곡νλ AppDelegate ν΄λμ€λ UIResponder μ UIApplicationDelegate νλ‘ν μ½μ μ±ννκ³ μμ΅λλ€...
-
[iOS] UIApplication μ΄λ?iOS/π€ App 2021. 1. 28. 22:04
μλ νμΈμπΆ μ΄λ² μκ°μλ `UIApplication` ν΄λμ€μ λν΄μ μμλ³΄κ² μ΅λλ€. μ΄ ν΄λμ€κ° μΈμ λ±μ₯νλ μ§λ μ΄μ κΈμ μ½κ³ μ€μλ©΄ μ’μ κ² κ°μμ!!! " iOS μ±μ μ μ΄μ μ‘°μ μ ꡬμ¬μ " class UIApplication : UIResponder κ°μ λͺ¨λ iOS μ±μ μ νν λ¨ νλμ UIApplication μΈμ€ν΄μ€λ₯Ό κ°μ§κ³ μμ΅λλ€. μμ£Ό λλ¬Έκ²½μ°, UIApplicationλ₯Ό μλΈν΄λμ±ν μΈμ€ν΄μ€λ₯Ό μ¬μ©νλ€κ³ ν©λλ€. μ±μ΄ μ€νλλ©΄, μμ€ν μ UIApplicationMain(_:_:_:_:) λ₯Ό νΈμΆν©λλ€. :: μ΄μ κΈμ λμ¨ λ΄μ©μ΄μ§λ§, λ³΄ν΅ AppDelegate.main() μ μ€νμΌλ‘ νΈμΆλ©λλ€. ν΄λΉ λ©μλμ μμ μ€ νλλ UIApplication μ€λΈμ νΈλ₯Ό λ§λλ κ²..
-
[iOS] Responding to the Launch of Your App (곡μλ¬Έμ μ 리)iOS/π€ App 2021. 1. 28. 12:05
1μ°¨ μμ : 2021/06/16 μλ νμΈμπΆ μ΄λ² μκ°μλ 'Responding to the Launch of Your App', μ¦ μ± μμμ λ°μνλ μΌλ€μ λμνλ λ΄μ©μ λ΄μ 곡μλ¬Έμλ₯Ό μ 리ν΄λ³΄λ €κ³ ν©λλ€. μ΄μ κΈμ λ¨Όμ μ½κ³ 보μλ κ²λ μ’μ κ² κ°μμπ "μ±μ μλ£ κ΅¬μ‘°λ₯Ό μ΄κΈ°ννκ³ , μ±μ μ€νμν€κΈ°μν΄ μ€λΉνκ³ , launch-time μ μ€λ μμ€ν μμ²λ€μ λμν©λλ€." κ°λ΅ν κ°μ μ¬μ©μκ° ν νλ©΄μ μ± μμ΄μ½μ νν λ, μμ€ν μ μ°λ¦¬μ μ±μ μμμν΅λλ€. λ§μ½ μ±μ΄ νΉμ ν μ΄λ²€νΈλ₯Ό μμ²νλ€λ©΄, μμ€ν μ λ§μ°¬κ°μ§λ‘ κ·Έ μ΄λ²€νΈλ₯Ό μ²λ¦¬νκΈ° μν΄ `background`μμ μ±μ μμμν΅λλ€. :: Scene-based μ±μμ, μμ€ν μ μμ λΉμ·νκ² μ±μ μμν©λλ€. :: νλ©΄ μμ λνλ ..
-
[iOS] Managing Your App's Life Cycle (곡μλ¬Έμ μ 리)iOS/π€ App 2021. 1. 26. 21:17
1μ°¨ μμ : 2021/06/16 μλ νμΈμπΆ μ΄λ² μκ°μλ 'Managing Your App's Life Cycle', μ¦ μ±μ μλͺ μ£ΌκΈ°λ₯Ό λ€λ£¬ 곡μλ¬Έμλ₯Ό μ 리ν΄λ³΄λ €κ³ ν©λλ€. μ±μ μλͺ μ£ΌκΈ°λ₯Ό κ΄λ¦¬νλ κ²μ μ±μ μνμ λ°λΌ λ°μνλ `system notification` μ μλ΅νκ³ , λ€λ₯Έ μ€μν μμ€ν κ΄λ ¨ μ΄λ²€νΈλ€μ μ²λ¦¬νλ κ²μ΄λΌκ³ λ³Ό μ μμ΅λλ€. μ±μ μν μ±μ νμ¬ μν(state) μ λ°λΌ ν μ μλ λμλ€μ΄ μ ν΄μ Έμμ΅λλ€. μλ₯Ό λ€μ΄ `foreground` μνμ μ±μ μ¬μ©μμ μ£Όμλ₯Ό λκ³ μμΌλ―λ‘, CPUλ₯Ό ν¬ν¨ν μμ€ν μμμ λν μ°μ κΆμ κ°μ§κ³ μμ΅λλ€. λ°λλ‘ `background`μνμΈ μ±μ μμ μ μμ νμ§ μκ±°λ, κ°λ₯ν μ κ² ν΄μΌ ν©λλ€. :: νλ©΄μμ 보μ΄μ§ μλ μν..
-
Review of Implement a Custom Control (2) - Food TrackeriOS/π€ App 2021. 1. 22. 19:05
Add Support for Interface Builder @IBDesignable Interface Builderλ viewμ μ°κ²°λ 컀μ€ν μ½λμ λν΄μ μ ν λͺ¨λ¦ λλ€. κ·Έλμ 컀μ€ν μ½λλ₯Ό λ°μνμ§ μμ μ± μΈμ€ν΄μ€ννμ¬ canvasμ 그립λλ€. 컀μ€ν μ½λλ₯Ό λ°μνκ² νλ λ°©λ²μ custom control code μμ @IBDesignable attribute λ₯Ό μΆκ°νλ κ²μ λλ€. μ΄ Attribute μ ν΅ν΄ Interface Builder κ° canvasμ viewλ₯Ό 그릴λ, 컀μ€ν μ½λλ₯Ό μ¬λ°λ₯΄κ² λ°μνμ¬ κ·Έλ¦΄ μ μκ² ν΄μ€λλ€. " This lets Interface Builder instantiate and draw a copy of your control directly in th..