Skip to content

๐Ÿ›  ๊ธฐ์ˆ  ์ •๋ณด

Yongwoo Marco Kim edited this page Oct 14, 2022 · 3 revisions

Project Tool

Fastlane

  • fastlane release - ๋นŒ๋“œ ํ›„ ์•ฑ์Šคํ† ์–ด ์—…๋กœ๋“œ + ํŒ€ ๋””์Šค์ฝ”๋“œ ๋…ธํ‹ฐ
  • fastlane beta - ๋นŒ๋“œ ํ›„ TestFlight ์—…๋กœ๋“œ + ํŒ€ ๋””์Šค์ฝ”๋“œ ๋…ธํ‹ฐ
  • Fastfile ๋ณด๊ธฐ

Tuist

  • tuist generate ๋ช…๋ น์–ด Xcode ์ƒ์„ฑ - Merge Conflict ํ•ด๊ฒฐ
  • AppTarget - Dependency Targets ์ด์šฉํ•ด์„œ ๋ชจ๋“ˆํ™”
    Project Navigation Image

Architecture & Design Pattern

Clean Architecture (iOS) + MVVM

  • ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ์˜ ๊ณ„์ธต์„ ๋‚˜๋ˆ„์–ด ๊ด€์‹ฌ์‚ฌ๋ฅผ ๋ถ„๋ฆฌ
    • ํ”„๋ ˆ์ž„์›Œํฌ ๋…๋ฆฝ์ 

      ex)AVFAudio ํ”„๋ ˆ์ž„์›Œํฌ๋Š” AudioService ์—์„œ๋งŒ ์‚ฌ์šฉ

    • ํ…Œ์ŠคํŠธ ์šฉ์ด

      ex) ๊ฐ Layer(Target) ๋…๋ฆฝ๋œ ํ…Œ์ŠคํŠธ ๊ตฌํ˜„

    • UI ๋…๋ฆฝ์ 

      ex) Presentation Layer ๋…๋ฆฝ ๊ตฌํ˜„ (public ์™ธ๋ถ€ ๋ชจ๋“ˆ ์ ‘๊ทผ, internal ๋ชจ๋“ˆ ๋‚ด๋ถ€)

    • DB ๋…๋ฆฝ์ 

      ex) Business Logic๊ณผ ๋ณ„๊ฐœ๋กœ ๋™์ž‘ (CoreData, FileSystem)

    • ์™ธ๋ถ€ ๊ธฐ๋Šฅ ๋…๋ฆฝ์ 

      ex) ํ•„์š” ์‹œ Network Layer ๋ถ„๋ฆฌ ๊ตฌํ˜„ ๊ฐ€๋Šฅ (iOS-CleanArcitecture-MVVM ์˜ˆ์ œ ์ฐธ๊ณ )

  • UML

Reference by
The Clean Architecture by Robert C.Martin
Clean architecture series โ€” Part 3 _ The Cone
iOS-CleanArcitecture-MVVM

MVVM

  • ViewModel - View ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ ๊ด€๊ณ„ ํ˜•์„ฑ

    ex) @Published View ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋“œ

Framework & Library

Apple Framework

Combine

  • Combine ์ด์šฉํ•œ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ Flow ์ ์šฉ

    ex1) (Data) FetchedList -> (Domain) DataSource -> (Presentation) List
    ex2) (Domain) CurrentTime -> (Presentation) CurrentTime

  • .assing(to:) ํ™œ์šฉํ•œ @Published ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ

    @Published - Published<Type>.Publisher ์—ฐ๋™

SwiftUI

AppDelegate, SceneDelegate ์—†๋Š” SwiftUI Project ํ˜•ํƒœ๋กœ ๊ตฌํ˜„
CasualConversationApp.swift ๋ณด๊ธฐ

AVFAudio

  • AVAudioSession - ๊ถŒํ•œ์„ค์ • ๋ฐ setCategory
  • AVAudioRecorder - ๋…น์Œ๊ธฐ๋Šฅ
  • AVAudioPlayer - ์žฌ์ƒ๊ธฐ๋Šฅ

CoreData

  • NSManagedObject

FileSystem

  • FileManager - ๋…น์ŒํŒŒ์ผ ์ €์žฅ ๋ฐ ๊ด€๋ฆฌ

Dependency

UnitTest (BDD)

  • Quick
  • Nimble