μ²μλ
μ μΌμμ λ€μ±λ‘κ³ νλΆνκ²,
μ²μλ
ν΅ν© μΈμ¦ μλΉμ€μ λ€μν νλ&νν μ 보λ₯Ό μ 곡νλ μλΉμ€μ
λλ€.
| λ΄λΉμ | λ°μμ |
μ΅ν¨μ |
μ λν |
|---|---|---|---|
| github | @kpk0616 | @wonniiii | @pastapeter |
μμ
- κ³΅ν΅ μ»€μ€ν νλ° : UITabBar μ΄μ©, BazierPath λ‘ μ»€μ€ν
- Home : Segmented Control κ³Ό CollectionView μ΄μ©
- μμΈ μΈν¬ : μ€ν¬λ‘€ λ·°
- μ μ₯ λ·° : μ½λ μ λ·°
- κ²μ λ·° : PerformBatchUpdate, CollectionView μ΄μ©
- κ° λ·° μ΄λ―Έμ§ : νΉνΌμ μ΄μ©ν΄ μ΄λ―Έμ§ μΊμ±
ν¨μ
- λλ©νμ΄μ§
β PageControlλ‘ Indicatorλ₯Ό λ§λ€μκ³ Scroll Viewλ₯Ό μ΄μ©ν΄μ μ΄λ―Έμ§λ§ μ¬λΌμ΄λ λλλ‘ κ΅¬ννμμ΅λλ€. νμκ°μ κ³Ό λ‘κ·ΈμΈ μ€νμΌμ νλ‘μ νΈμμ λ§μ΄ μ°μ΄λ μ€νμΌμ΄λΌμ λ°λ‘ extensionμ λ§λ€μ΄μ μ¬μ¬μ©ν΄μ£Όμμ΅λλ€.
-
νμκ°μ (λ€λ ν΄λν° μΈμ¦ λ·° + μ±ν₯ νκ·Έ λ·° + μ 보 νμΈ λ° κ΄μ¬μ¬ νκ·Έ λ·°)
β μ±μΌ λ¨μμμλ λ€λ APIλ₯Ό μ΄μ©νμ§ μκ³ λλ―Έλ°μ΄ν°λ‘ λμκ°κ² νμκ³ , μ±ν₯ νκ·Έλ UIImageλ‘ λ£μ΄μ ν΄λ¦λλ©΄ μ΄λ―Έμ§κ° λ³κ²½λκ² κ΅¬ννμ΅λλ€. μ 보 νμΈ λ° κ΄μ¬μ¬ νκ·Έλ CollectionViewλ₯Ό μ΄μ©νμ¬ μ μν΄μ£Όμκ³ , μΈλ―Έλ μΉ΄μΉ΄μ€ μ¬ν κ³Όμ μ²λΌ Index μκ³ λ¦¬μ¦μ λ°λ‘ λ§λ€μ΄μ ν΄λ¦ν μμμ λ°λΌ Indexκ° λ³κ²½λκ² νμμ΅λλ€.
-
μ €λ¦¬ μμ± λ·°
β μ μ κ° μ νν μ±ν₯κ³Ό κ΄μ¬μ¬λ₯Ό λ°νμΌλ‘ μ €λ¦¬κ° μμ±μ΄ λκ³ , μλ²μμ λ°μμ¨ μ 보λ₯Ό λ°νμΌλ‘ μΊλ¦ν° νμ κ³Ό, μ €λ¦¬ μ΄λ―Έμ§, μμ΄ν μ λ³κ²½λκ² ν΄μ£Όμμ΅λλ€. λμ μμ΄ν λΆλΆμ CollectionViewλ‘ κ΅¬ννμκ³ , μΊλ¦ν° νμ μ ν΄λ¦νλ©΄ 컀μ€ν ν ViewμΈ BottomSheetμ΄ λμ€λλ‘ κ΅¬ννμ΅λλ€.\
-
κ°νΈ λΉλ°λ²νΈ μ€μ λ·°
β λ§μ§λ§ λ¨κ³ ν μ€νΈ λ©μμ§λ Toast-Swift λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©νμκ³ , λ°μ λ²νΈνμ CollectionViewλ‘ λ§λ€μμ΅λλ€. Cellμ΄ ν΄λ¦λ λλ§λ€ μ§ν μ΄λ―Έμ§κ° λ°λλλ‘ μ§μ£Όμκ³ , 첫λ²μ§Έλ‘ μ λ ₯ν λΉλ°λ²νΈλ₯Ό dataBindνμ¬ λ€μνλ©΄μμ μ λ ₯ν λΉλ°λ²νΈμ κ°μ λ ν λ·°λ‘ λμ΄κ°λλ‘ λ§λ€μ΄μ£Όμμ΅λλ€.
λν
OCR μΉ΄λ©λΌ κΈ°λ₯μ ꡬννμμ΅λλ€. AVFoundationμ μ¬μ©ν΄μ μΉ΄λ©λΌ, preview viewλ₯Ό 컀μ€ν νμμ΅λλ€.
BottomSheetViewControllerλ₯Ό ꡬννμμΌλ©°, PresentationStyleμ 컀μ€ν νμ¬μ λ§λ€μ΄μ΅λλ€.
IDViewControllerλ₯Ό ꡬννλ©΄μ, Userμ λ§κ² λ³ννλ νλ‘μ°λ₯Ό μ¬μ©νκΈ° μν΄μ, Viewμ VCλ₯Ό λλ μ ꡬννμμ΅λλ€.
μμ
μλ²μμ λ€λ₯Έ ν΅μ μ λ€ λλλ° μ 체쑰ν ν΅μ μ΄ μ λλ λ¬Έμ κ° λ°μνλ€. ν¬μ€νΈλ§¨μ μ΄μ©ν΄ ν ν°κ°μ λ£κ³ ν€λμ Content-Type κΉμ§ μ λ£μ΄μ 리νμ€νΈλ₯Ό 보λμμλ μ 체쑰νμμ κ³μν΄μ νμμμ μλ¬κ° λ°μνλ€. μλ²μΈ‘κ³Ό ν¬μ€νΈλ§¨μ λκ°μ΄ λμ‘°ν΄μ 보λ΄λ΄λ μ λκ³ , μ°¨μ΄μ μ μ°Ύμ§ λͺ»νλ€. κ·Όλ° μλ²μΈ‘ μ»΄ν¨ν°μμλ λμνκ³ , ν΄λΌμΈ‘ μ»΄ν¨ν°μμλ λμνμ§ μμλ€. μ½λμμλ μλ²μ ν΅μ μ μ λλλ° μ 체쑰ν λΆλΆμμλ§ νμ μμ μλ¬κ° κ³μν΄μ λ°μνλ€. μκ³ λ³΄λ μλ² μΈ‘μμ νμκ°μ μ΄ μ΄λ£¨μ΄μ§ ν μ±ν₯ μ²΄ν¬ λ‘μ§μ κ±°μ³μΌμ§λ§ μ 체 μ‘°νκ° μ΄λ£¨μ΄μ§λλ‘ μ²λ¦¬λ₯Ό ν΄ μ£ΌμκΈ° λλ¬Έμ μλ¬κ° λ°μνλ κ²μ΄μλ€. ν¬μ€νΈλ§¨μ μ΄μ©ν΄ λ°κΈλ°μ ν ν°μ μ΄μ©ν΄ μ±ν₯ μ²΄ν¬ API μ 리νμ€νΈλ₯Ό λ λ¦° ν, ν΄λΉ ν ν°μ μ μ©μν€λ λ¬Έμ κ° ν΄κ²°λμλ€.
ν¨μ
λλ©νμ΄μ§λ₯Ό κ·Έλ₯ ViewControllerλ₯Ό 4κ° λ§λ€μ΄μ PageViewControllerλ‘ ViewControllerμ체λ₯Ό λ°λκ² λ§λ€λ €κ³ νλλ° λκ° λΉν¨μ¨μ μΈ κ² κ°μμ μ‘°κΈ λ ν¨μ¨μ μΌλ‘ λ§λ€ μ μλ λ°©λ²μ μ°Ύλλ° μ΄λ €μμ΄ μμμ΅λλ€. κ·Έλμ λ§μ λΈλ‘κ·Έλ₯Ό μ°Ύμλ΄μ PageControlκ³Ό ScollViewλ₯Ό μ΄μ©νμ¬ ViewControllerλ₯Ό 1κ°λ§ λ§λ€μ΄μ κ·Έ μμμ λ€ μ²λ¦¬ν΄μ£Όμμ΅λλ€.
ν¨μ
iOSκΈ°κΈ° Camera I/Oκ° λ λ, Camera buffer μ μ‘΄μ¬νλ νλ μμ κΈ°λ°μΌλ‘ μλOCR κΈ°λ₯ ꡬν, νλ μ κΈ°λ°μΌλ‘ λ€μ΄μ€λ camerabufferμ κ°μ μνλ μ¬μ§ ν¬κΈ°λ‘ μλ₯΄λ κ², μλOCR κΈ°λ₯ ꡬνμ΄ μ΄λ €μ μ΅λλ€. μΉ΄λ©λΌ λ²νΌμμ λ€μ΄μ€λ νλ μμ ν¬κΈ°μ νμ¬ ν΄λν°νλ©΄μ ν¬κΈ°λ₯Ό λΉκ΅νκ³ , λΉλ‘λλ‘ μλμ΅λλ€. μλ₯Έ κ²μ OCRμ νμ©ν΄μ νμν μ 보λ₯Ό μΆμΆν©λλ€.
λν μΉ΄λ©λΌλ λ°±κ·ΈλΌμ΄λ μ€λ λμμ λμνλλ°, ν΄λΉ μΉ΄λ©λΌ i/oλμκ³Ό μ¬μ§ νλ‘μΈμ±νλ κ²μ μ€λ λλ₯Ό λλ μΌν©λλ€. λ°λΌμ μ¬μ§ νλ‘μΈμ±νλ λμκ³Ό μΉ΄λ©λΌ I/Oλ₯Ό λλλ©΄μ νλ‘μΈμ±ν λ, μΉ΄λ©λΌ I/Oμ blockνμ΅λλ€. μ¬μ§ νλ‘μΈμ±νλ λ²νΌκ° λ€ μ°¨λ©΄ μΉ΄λ©λΌ λΈλμν€λ κ³Όμ μ DispatchSemaphoreμ μ¬μ©ν΄μ λΈλμμΌ°μ΅λλ€.
| λΌμ΄λΈλ¬λ¦¬ | μ¬μ© λͺ©μ | Version |
|---|---|---|
| FloatingPanel | ViewController κ°νΈν | 2.5.5 |
| Floaty | UIButton κ°νΈν | master |
| Kingfisher | μ΄λ―Έμ§ μλ² ν΅μ | 7.4.1 |
| SnapKit | UI Layout | 5.6.0 |
| Then | UI μ μΈ | 3.0.0 |
| Moya | μλ² ν΅μ | 15.0.3 |
| Toast | ν μ€νΈ μλ¦Ό View κ°νΈν | 5.0.1 |
| Google MLKit | OCR κΈ°λ₯ ꡬν | 6.25.0 |
- Indentation 2μΉΈμΌλ‘
- μ΅λ μ€ κΈΈμ΄ 99μ€
- MARK μ΅λν λ§μ΄ μ¬μ©νκΈ°
- get μ μ¬λ§νλ©΄ λΆμ΄μ§ μκΈ°
- ν΄λλ§μ λ·° λ³λ‘ λλκΈ°
- Constantλ ν΄λΉ λ·° λ΄μμ λ§λ€μ΄ μ¬μ©νκΈ°
- μλ¬λ 맨 μμμ μ²λ¦¬ν΄μ£ΌκΈ°
- else ꡬ문 μ΅λν μ§μνκΈ°
πͺ΅ Branch μ λ΅
main: κ°λ°μ΄ μλ£λ μ°μΆλ¬Όμ΄ μ μ₯λ 곡κ°develop: feature λΈλμΉμμ ꡬνλ κΈ°λ₯λ€μ΄ mergeλ λΈλμΉfeature: κΈ°λ₯μ κ°λ°νλ λΈλμΉ, μ΄μλ³/μμ λ³λ‘ λΈλμΉλ₯Ό μμ±νμ¬ κΈ°λ₯μ κ°λ°νλ€release: 릴리μ¦λ₯Ό μ€λΉνλ λΈλμΉ, λ¦΄λ¦¬μ¦ μ§μ QA κΈ°κ°μ μ¬μ©νλ€hotfix: λ²κ·Έλ₯Ό μμ νλ λΈλμΉ
π μμ±λ°©μ
- μν /#(μ΄μλ²νΈ)
π¬ Commit Message
- [Hotfix] : issueλ, QAμμ κΈν λ²κ·Έ μμ μ μ¬μ©
- [Fix] : λ²κ·Έ, μ€λ₯ ν΄κ²°
- [Add] : Feat μ΄μΈμ λΆμμ μΈ μ½λ μΆκ°, λΌμ΄λΈλ¬λ¦¬ μΆκ°, μλ‘μ΄ νμΌ μμ± μ
- [Style] : μ½λ ν¬λ§·ν , μΈλ―Έμ½λ‘ λλ½, μ½λ λ³κ²½μ΄ μλ κ²½μ°
- [Feat] : μλ‘μ΄ κΈ°λ₯ ꡬν
- [Del] : μΈλͺ¨μλ μ½λ μμ
- [Docs] : READMEλ WIKI λ±μ λ¬Έμ κ°μ
- [Mod] : storyboard νμΌλ§ μμ ν κ²½μ°
- [Chore] : μ½λ μμ , λ΄λΆ νμΌ μμ , λΉλ μ 무 μμ , ν¨ν€μ§ λ§€λμ μμ
- [Correct] : μ£Όλ‘ λ¬Έλ²μ μ€λ₯λ νμ μ λ³κ²½, μ΄λ¦ λ³κ²½ λ±μ μ¬μ©ν©λλ€.
- [Move] : νλ‘μ νΈ λ΄ νμΌμ΄λ μ½λμ μ΄λ
- [Rename] : νμΌ μ΄λ¦ λ³κ²½μ΄ μμ λ μ¬μ©ν©λλ€.
- [Improve] : ν₯μμ΄ μμ λ μ¬μ©ν©λλ€.
- [Refactor] : μ λ©΄ μμ μ΄ μμ λ μ¬μ©ν©λλ€
- [Init] : Initial Commit
βββ Keyneez
βββ Keyneez
β βββ Application
β β βββ Assets.xcassets
β β β βββ AccentColor.colorset
β β β βββ AppIcon.appiconset
β β βββ Base.lproj
β βββ Auth
β β βββ SignIn
β β βββ SignUp
β βββ Global
β β βββ Color
β β βββ Font
β β βββ NetworkLayer
β β βββ Views
β βββ Tab
β βββ Home
β βββ ID
β βββ Like
β βββ MyPage
βββ Keyneez.xcodeproj
β βββ project.xcworkspace
β β βββ xcshareddata
β β β βββ swiftpm
β β β βββ configuration
β β βββ xcuserdata
β β βββ jungpeter.xcuserdatad
β βββ xcuserdata
β βββ jungpeter.xcuserdatad
β βββ xcschemes
βββ KeyneezTests
βββ KeyneezUITests