λ΄μ© νΉμ widget μμ μ±μΌλ‘ μ κ·Ό μλ₯Ό ꡬλΆνμ¬ λΆκΈ° μ²λ¦¬λ₯Ό λμν΄λ³΄μ. μμ ―μ widgetURL() λ‘λΆν° λκ²¨μ€ URL μ 쿼리λ₯Ό 맀κ°λ³μλ‘ μ¬μ©ν΄λ³΄μ. μ°μ , widget μΌλ‘ μ±μ μ κ·Όν λμ μν©μ ν¬κ² λ κ°μ§λ‘ λλ©λλ€. μ±μ μ€νμμΌμ foreground λ‘ μ§μ background μμ foreground λ‘ μ§μ μ΄ μν©λ€μ λμνκΈ° μν΄μ λ€μμ λ©μλλ₯Ό SceneDelegate μμ μ¬μ©ν μ μμ΅λλ€. scene(_:willConnectTo:options:) delegate(UISceneDelegate) μκ² μ±μ scene μΆκ°μ λν΄μ μ립λλ€. // scene: app μ μ°κ²°λλ scene κ°μ²΄. // session: scene configuration μ λν μΈλΆ..
λͺ©ν configurable widget μ κΈ°λ³Έκ°μ μ€μ ν΄λ³΄κ² μ΅λλ€. λͺ ν¨μ΄ μλ€λ©΄ μ ν°λ·°λ₯Ό, λͺ ν¨μ΄ μλ€λ©΄ 첫 λ²μ§Έ λͺ ν¨μ κΈ°λ³Έκ°μΌλ‘ μ€μ ν΄λ³΄κ² μ΅λλ€. 첫 λ²μ§Έ λͺ ν¨μ΄ λ°λλ κ²½μ°, ν΄λΉ λͺ ν¨μ΄ μμ λλ κ²½μ°, λ‘κ·Έμμ λ° νμνν΄μ λμν΄μ κΈ°μ‘΄μ κΈ°λ³Έκ°μ μ λ°μ΄νΈν΄λ³΄κ² μ΅λλ€. λ κ°μ§ λ°©λ²μ ν΅ν΄μ Widget μ κΈ°λ³Έκ°μ μ€μ ν΄ λ³΄κ² μ΅λλ€. 첫 λ²μ§Έ λ°©λ²μ IntentHandler μμ μλ²ν΅μ μ ν΅ν΄ Intent μ κΈ°λ³Έκ°μ μ€μ νμ¬μ Widget μ getSnapshot(for:in:completion:) μμ μ€μ νλ κ²μ΄κ³ , λ λ²μ§Έ λ°©λ²μ Widget μ getSnapshot(for:in:completion:) μμ μλ²ν΅μ μ ν΅ν΄ μ€μ νλ κ²μ λλ€. λ€μ΄κ°κΈ° μ λ κ°μ§ λ°©λ²μ μ μ©ν΄..
λ΄μ© iOS μ±μ νλ©΄ μΆμ , μ΄λ²€νΈ μΆμ μ μν GA(Google Analytics) λ₯Ό μ μ©ν΄ λ³΄κ² μ΅λλ€. μ λ‘κΉ λκ³ μλμ§ Xcode μμ νμΈν΄ λ³΄κ² μ΅λλ€. λ€μμ μ°Έκ³ ν΄μ μ 리νμμ΅λλ€. Google μ λ리ν±μ€ μμνκΈ° | Firebaseμ© Google μ λ리ν±μ€ μμνκΈ° CocoaPods μ νμ©ν SDK μΆκ° pod 'Firebase/Analytics' μ± λ리μμ application(_:didFinishLaunchingWithOptions:) λ©μλμμ FirebaseApp 곡μ μΈμ€ν΄μ€λ₯Ό ꡬμ±ν©λλ€. // AppDelegate.swift func application(_ application: UIApplication, didFinishLaunchingWithOptions launch..
μλ κ°λ°μ λ¬Έμλ₯Ό μ°Έκ³ ν΄μ timeline μ΄ λ³κ²½λμμ λ WidgetKit μ μ리λ λ°©λ²μ λν΄ μμλ³΄κ² μ΅λλ€. Keeping a widget up to date | Apple Developer Documentation κ·Έλ¦¬κ³ λ€μμ λͺ©νλ₯Ό ꡬνν΄λ³΄κ² μ΅λλ€. νμνν΄ or λ‘κ·Έμμν λλ μμ ―μ μ ν°λ·°λ‘ μ λ°μ΄νΈνκ³ , μμ ―μ΄ νννλ λͺ ν¨μ΄ μμ λ λλ μμ ―μ λνλͺ ν¨(첫 λ²μ§Έ λͺ ν¨)μΌλ‘ μ λ°μ΄νΈν΄λ³΄κ² μ΅λλ€. Inform WidgetKit when a timeline changes 무μΈκ° widget μ νμ¬ timeline μ μν₯μ λ―ΈμΉ λ, μ±μ΄ WidgetKit μκ² μλ‘μ΄ timeline μ μμ²ν μ μμ΅λλ€. μλ₯Ό λ€μ΄, κ²μ μμ ― μμ μμ νμμ΄ μΊλ¦ν°μκ² μΉμ λ¬Όμ½μ μ£Όμλ€λ νΈμ..
λ΄μ© μ΅μλ²μ κ³Ό κ΄λ ¨νμ¬ μμ ―μ΄ λ±μ₯νμ§ μλ λ¬Έμ μμΈ νμ λ° ν΄κ²° iOS deployment target 15.0 μΌλ‘ μ€μ λ μνμμ μ κΈ νλ©΄ μμ ―(16.0+) λμν΄λ³΄κΈ° π¨ λ¬Έμ μν© μΈμ λ©μΈ μ± νκ²μ μ΅μ λ²μ μ 15.0 μ΄μμ΅λλ€. 16.0 λ²μ μ μμ΄ν°μμ μ±μ μ€μΉν μ μμ§λ§, μμ ―μ μ€μΉν μ μμμ΅λλ€. κ·Έ μ΄μ λ widget extension μ μ΅μ λ²μ μ΄ 16.2 λ‘ μ€μ λμ΄ μμκΈ° λλ¬Έμ΄μμ΅λλ€. μ 16.2 μμλ? PreviewProvider νλ‘ν μ½μ μ±ννμ¬ preview νλ struct μμ Live Activity μ 미리보기λ₯Ό λ§λ€ μ μλ λ©μλκ° μλλ° ν΄λΉ λ©μλμ μ§μ λ²μ μ΄ 16.2+ μ΄κΈ° λλ¬Έμ΄μμ΅λλ€. previewContext(_:isStal..
λ΄μ© λ€μκ³Ό κ°μ΄ YPImagePicker λ₯Ό ν΅ν΄ ꡬνν΄λ³΄μ. μ¬μ§ λΌμ΄λΈλ¬λ¦¬μμλ§ μ΄λ―Έμ§λ₯Ό κ°μ Έμ¨λ€. νλμ μ¬μ§λ§ μ νν μ μλλ‘ νλ€. μ΄μ μ κ³ λ₯Έ μ¬μ§μ΄ μ νλλ€. crop ν μ μλ λΉμ¨μ 컀μ€ν νλ€. νν°λ μ¬μ©νμ§ μλλ€. μ΄λ―Έμ§λ₯Ό λ°λ‘ μ μ₯νμ§ μλλ€. μ΄λ―Έμ§ μ ν μμ μ·¨μ μμ notification μ post νλ€. μ°μ , YPImagePicker λ₯Ό μ¬μ©νλ μ΄μ μ΄μ μλ crop μ λν κΈ°λ₯μ κΈ°λνλ©° UIImagePicker λ₯Ό μ¬μ©νμλλ° ν¬κΈ°λ₯Ό 컀μ€ν ν μ μμμ΅λλ€. λ§μ κ°λ°μλ€μ μμ¬μμ μ¬λ¬ κΈλ€μμ μ½μ μ μμκ³ λ€μμ μ΄μ λ‘ YPImagePicker λ₯Ό μ ννμμ΅λλ€. μνλ μ¬μ΄μ¦λ‘ crop ν μ μλ μ΄λ―Έμ§ λΌμ΄λΈλ¬λ¦¬λ λ§μ΄ μμκ³ , κ·Έ μ€ λ§μ μ¬..
λ΄μ© FlexLayout κ³Ό PinLayout μ μμλ³΄κ³ , μ¬μ©νμ¬ UIλ₯Ό ꡬνν΄λ³΄μ. λͺ©ν : μλμ [μ λ°μ΄νΈλ₯Ό μν νμ λ·°]λ₯Ό ꡬνν΄λ³΄κ² μ΅λλ€. π FlexLayout κ³Ό PinLayout μ μ¬μ©λ°©λ²μ λν΄μλ κ²μκΈμ΄ λ§κ³ , κΉνλΈ λ¦¬λλ―Έλ₯Ό μ½μΌλ©΄ μ½κ² μ μ μμ λ§νΌ λ¬Έλ²μ΄ κ°νΈν©λλ€. π μ΄ κΈμμλ μμ μ½λμμ νμΈν μ μλ μ¬μ©λ°©λ²μ λν΄μ κ°λ¨νκ² μ£Όμμ μμ±νκ³ , μ€μ λ‘ νΉμ λ·°λ₯Ό λ§λλλ° μ μ©ν μ½λλ₯Ό 곡μ νλλ° μ΄μ μ λ§μΆ°μ μμ±νμμ΅λλ€. 1οΈβ£ why? FlexLayout? FlexLayout μλν΄μ 곡μλ¬Έμλ₯Ό ν΅ν΄ μ 리ν΄λ³΄κ² μ΅λλ€. https://github.com/layoutBox/FlexLayout UIStackView λ₯Ό κ°μ ν νλ μμν¬λ‘μ¨ AutoLayou..
- containerBackground
- WWDC22
- MOYA
- watchOS
- MVVM
- WWDC
- configurable widget
- Swift
- CloneCoding
- Algorithm
- IOS
- YPImagePicker
- μλ²ν΅μ
- RxCocoa
- github
- Notification
- async/await
- rxswift
- WidgetKit
- Widget
- Protocol
- Firebase
- OpenSourceLibrary
- 2022 KAKAO TECH INTERNSHIP
- APNS
- urlsession
- Objective-C
- UserDefaults
- projectsetting
- SwiftUI
μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Total
- Today
- Yesterday