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

[Feat] #15 - Tuist로 DemoApp 생성 #16

Merged
merged 3 commits into from
Nov 27, 2022

Conversation

L-j-h-c
Copy link
Contributor

@L-j-h-c L-j-h-c commented Nov 26, 2022

🌴 PR 요약

🌱 작업한 브랜치

🌱 PR Point

1. 총 2가지 DemoApp 생성 : SOPT-Stamp-Demo / DSKitDemoApp

image

아래와 같이 스킴에서 선택하여 빌드할 수 있습니다.
image

2. 두가지 Demo App 구현 방식

TestGraph

위의 그래프를 보면 알 수 있듯, 총 두 가지의 방식으로 DemoApp을 구현했습니다.

먼저 SOPT-Stamp-Demo는 SOPT-Stamp-iOS와 같이 기존 모든 모듈들에 대한 의존성을 가지고 있고, 따라서 다른 모듈에서 구현한 요소들을 사용할 수 있습니다. 단순히 Project 파일을 하나 더 생성하고 소스 파일들에 대한 경로를 지정하는 방식으로 수행했습니다. 이 Demo를 통해 메인 앱에 테스팅하기 곤란한 소스코드들을 테스트해볼 수 있을 것 같습니다.

다음으로 DSKitDemoApp은 기존 DSKit에 .app 속성의 target을 추가하는 식으로 구현했습니다.

image

위와 같이 hasDemoApp을 true로 설정하고, 아래와 같이 project+template.swift에서 적절히 분기처리 했습니다.

image

위 사진에서 demoGlobs에 UIFonts+를 excluding하는 것을 확인하실 수 있는데, 이는 Tuist의 ResourceSynthesizers가 만들어 준 DSKitFontsFamily에 대한 의존성을 DSKitDemoApp이 가질 수가 없어서 빌드 에러를 막기 위해 분기처리해준 것입니다. Tuist repository의 discussion을 보니 이전에는 config에서 resource에 대한 참조를 해결할 수 있었던 것 같은데, 지금은 deprecated 되어서 약간은 편법같이 처리했습니다.

📌 논의해 볼 사항

DemoApp의 종류는 적절한가?

일단은 전체 앱에 대한 Demo와 DSKit에 구현된 Components를 테스트하기 위한 Demo, 총 2가지 정도만 생각했는데, 다른 부분에도 필요할 지 이야기해봐도 좋을 것 같아요!

DemoApp을 위한 의존성 구조 재정립

개인적인 생각으로는 SOPT-Stamp-Demo를 구현할 때와 같이 모든 의존성을 참조하여 가져오는 것이 아니라, Presentation, Data에 대한 의존성을 가진 새로운 Feature Module들을 두는 것이 좋아보입니다. 저번에 공유해드린 자료에서도 동일한 방식을 채택하고 있습니다. 또는 Presentation을 제거하고 Domain과 Data에 대한 의존성만 유지하는 방법도 괜찮을 것 같습니다.

📮 관련 이슈

@L-j-h-c L-j-h-c added Feat 새로운 기능 구현 준호🏅 labels Nov 26, 2022
@L-j-h-c L-j-h-c self-assigned this Nov 26, 2022
Copy link
Member

@lsj8706 lsj8706 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

데모앱까지..!!
수고하셨습니다!!!

@yangsubinn
Copy link
Member

먼저 SOPT-Stamp-Demo는 SOPT-Stamp-iOS와 같이 기존 모든 모듈들에 대한 의존성을 가지고 있고, 따라서 다른 모듈에서 구현한 요소들을 사용할 수 있습니다. 단순히 Project 파일을 하나 더 생성하고 소스 파일들에 대한 경로를 지정하는 방식으로 수행했습니다. 이 Demo를 통해 메인 앱에 테스팅하기 곤란한 소스코드들을 테스트해볼 수 있을 것 같습니다.

혹시 메인 앱에 테스팅하기 곤란한 소스코드들 예를들면 어떤 것들이 있을까여?
지금 요런거 해보면 되겠구나 감 잡고 싶은데 딱 바로 생각나는게 없어서 질문 한번 드립니다 .. @L-j-h-c

아직 해보지 않아서 맞을진 모르겠지만,, Presentation, Data에 대한 의존성을 가진 새로운 Feature Module들을 두는 것이 좋을 것 같다는 의견에 동의합니다
그렇게 되면 지금 있는 데모 앱도 특정 기능에 대한 모듈이 되는걸까여? 아님 그냥 전체에 대한 데모 앱으로 남겨두게 되는걸까여?

@L-j-h-c L-j-h-c merged commit c461ff2 into sopt-makers:develop Nov 27, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feat 새로운 기능 구현 size/L 준호🏅
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Feat] Tuist로 demoApp 세팅
3 participants