Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

프로젝트 관리 앱 [STEP 1] aCafela coffee #73

Merged
merged 5 commits into from
Mar 4, 2022

Conversation

aCafela-coffee
Copy link

안녕하세요. @hyunable

STEP 1

적용기술 선정

고민 포인트

  • 하위 버전 호환성에는 문제가 없는가?

    • RxSwift 6.5.0: iOS 9.0, Xcode 12.x, Swift 5.x
    • CoreData: iOS 3.0
  • 미래 지속가능성이 있는가?

    • CoreData는 애플에서 만들었으니 오래 지원될 듯 합니다.
    • RxSwift는 Combine, Swift Concurrency로 대체될 가능성이 있습니다.
      • Swift Concurrency는 macOS 12/iOS 15에서 사용 가능합니다.
      • Xcode 13.2에서는 iOS13에서도 사용 가능합니다.
      • xcode13 2
  • 안정적으로 운용 가능한가?

  • 리스크를 최소화 할 수 있는가? 알고있는 리스크는 무엇인가?

    • RxSwift: GitHub 별도 많고, 쓰는 사람도 많아 보입니다. 1~2년 정도는 문제없이 사용가능할 것 입니다. 그러나 나중에도 이게 최선일지는 알 수 없습니다.

    • RxSwift: SPM에서 버그가 있습니다.

      RxSwift
      Note: There is a critical cross-dependency bug affecting many projects including RxSwift in Swift Package Manager. We've filed a bug (SR-12303) in early 2020 but have no answer yet. Your mileage may vary. A partial workaround can be found here.

  • 어떤 의존성 관리도구를 사용하여 관리할 수 있는가?

    • CocoaPod, SPM, Carthage
  • 이 앱의 요구기능에 적절한 선택인가?

    • CoreData: 로컬 데이터 저장에 적절할 것 입니다. 리모트와 동기화는 고민이 필요합니다.
    • RxSwift: 사용법을 잘 모르지만, 공부를 위해 사용하는 것입니다.

@hyunable
Copy link

hyunable commented Mar 2, 2022

몇가지 같이 고민해야할 포인트가 있는 것 같아요 ㅎㅎ
우선 첫번째로 프로젝트 관리 앱 II 에서는 리모트 DB가 필요한것으로 알고 있어요. 그래서 이번에는 괜찮지만 리모트 DB는 어떤걸 사용하면 좋을지에 대해서 미리 고민하는게 좋을 것 같아요 ㅎㅎ

그리고 core data는 local DB는 아니구요 정확히 말하자면 DB를 더 쉽고 직관적으로 다룰 수 있도록 도와주는 프레임워크에요~! 내부에서는 데이터의 영속성을 위해 저장소로 SQLite를 많이 사용하게 됩니다. 요부분에 대해서 조금 더 공부하시면 좋을 것 같아요 ㅎㅎ

그리고 rxswift를 선택하셨는데요 물론 combine으로 100%확률로 대체될 것이지만 최소지원 버전이 높은편이기때문에 대다수의 회사들은 바로당장 combine으로 갈 수 있는 회사는 매우 드뭅니다 ㅠㅠ 특히 서비스가 오래전에 만들어졌던 곳은 더더욱 그렇습니다 따라서 rxswift의 미래지속성은 나쁘지않은 편이라고 생각하구요 ㅎㅎ 저희팀에서도 사용하고있고 사용하다보면 combine에 대한 이해도도 높아져서 좋은 경험이라고 생각합니다. rxswift를 쓰면서 MVVM을 같이 적용하셔도 좋을 것 같네요.

  1. 의존성 관리 도구는 어떤것으로 결정하셨나요? 결정하셔서 의존성 추가까지 해주셔서 추가커밋 올려주세요~!

@aCafela-coffee
Copy link
Author

aCafela-coffee commented Mar 3, 2022

MVVM 적용까지 해보겠습니다. :)
의존성 관리 도구는 SPM을 쓰고싶었는데, PR 작성할 때는 제 컴퓨터에서 사용할 수 없었습니다.
지금은 해결해서 SPM으로 의존성 추가해서 커밋 했습니다.

SPM으로 github에 올라온 라이브러리 추가가 안되는 문제

Xcode 11 ~ 13.2.1 에서 확인한 문제입니다.

https://stackoverflow.com/questions/60857372/xcode-11-couldnt-communicate-with-a-helper-application-when-attempting-to

spm_github_fail

저는 .gitconfig 파일의 아래 부분을 지우니 해결됐습니다.

[includeIf "gitdir:~/Documents/projects/"]
    path = ~/.gitconfig-work

디렉토리에 따라 다른 설정을 적용하기 위한 부분인데, Xcode가 이 부분을 못 읽나봅니다.

@hyunable
Copy link

hyunable commented Mar 4, 2022

이런 이슈가 있으셧군요 ㅠㅠ 해결하느라 고생많으셨어요 ㅎㅎ
RxSwift 디펜던시 추가해주신것 확인했습니다 ~!

@hyunable hyunable merged commit 2a8d6ef into yagom-academy:4_acafelacoffee Mar 4, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants