SOPT 공식 앱
2022.09 ~ Now
💫 솝트 활동을 더욱 알차고 즐겁게 !
SOPT는 IT와 벤처 창업에 뜻이 있는 대학생들이 모인 국내 최대 규모의 대학생 연합 IT 벤처 창업 동아리입니다.
SOPT에서 활동하고 있는 회원들도, SOPT의 열정이 되고 싶은 분들도 모두 SOPT에 대해서 더 알아갈 수 있는 서비스예요.
기능 소개
출석
- SOPT 활동 기수 회원들을 위한 출석 기능을 제공하고 있어요
- 나의 출석 점수와 출결 현황을 확인하고, 실시간으로 출석을 인증해요
공식 홈페이지
- SOPT의 열정이 되고 싶은 분들은 ‘비회원'으로 로그인해서 둘러볼 수 있어요
- 공식 홈페이지와 더불어 활동 후기, 프로젝트 내용, FAQ까지 쉽고 빠르게 확인할 수 있어요
플레이그라운드
- SOPT 회원들만을 위한 플레이그라운드에도 쉽게 접근할 수 있어요
- 활동 멤버와 프로젝트, 그리고 모임 생성과 참여까지 한 번에 가능해요
미션과 랭킹
- SOPT를 제대로 즐기기 위한 ‘솝탬프'도 참여할 수 있어요
- 달성할 수 있는 미션이 있다면 사진과 메모를 업로드하고, 도장을 받을 수 있어요
- 완료한 미션을 모아보고 랭킹을 비교하며 SOPT에서의 추억을 쌓아가봐요!
오늘의 솝마디
- 매일 도착하는 창업 운세, 오늘의 솝마디로 즐거운 하루를 시작해보세요
- 오늘의 창업운을 높여줄 행운의 파트너를 콕 찌르고, 커피챗을 신청해보세요. SOPT인의 여정에 뜻밖의 인연을 가져다 줄지도 몰라요!
콕 찌르기
- 콕 찌르기로 솝트 회원과 더욱 가까워져요
- 나와 공통점이 있는 친구를 찾아 친한 친구, 단짝 친구, 그리고 천생연분이 되어보아요
> 📮 미션
- 솝트를 제대로 즐겨본 사람들이 엄선한 솝트 관련 미션을 확인해 보세요.
- 달성 가능한 미션이 있다면 사진과 메모를 업로드해 보세요. 귀여운 도장도 받을 수 있어요!
- 완료한 미션을 모아보며 솝트에서의 추억을 간직해 보세요. 솝탬프 자세히 보기
> 💪 랭킹
- 달성한 미션 난이도에 따라 랭킹을 결정하는 점수가 부여돼요.
- 랭킹 내에서 다른 사람들의 미션 현황, 한마디도 확인할 수 있어요.

> 🍀 오늘의 솝마디
- 매일 도착하는 창업 운세, 오늘의 솝마디로 즐거운 하루를 시작해보세요.
- 오늘의 창업운을 높여줄 행운의 파트너를 콕 찌르고, 커피챗을 신청해보세요!
- 나의 하루를 더욱 빛내줄 부적과 함께, 잊지 못할 특별한 하루를 만들어보세요. 오늘의 솝마디 자세히 보기
문의사항 및 서비스 의견제안은 언제든지 환영합니다 :)
- 서비스 의견제안 : https://forms.gle/L2HpRCvFMh9VvcA57
- e-mail : [email protected]
- 솝트가 더 궁금하다면? : https://sopt.org
📱 App Version
| 날짜 | 버전 | 날짜 | 버전 | |:--|:--|:--|:--| | 23.01 |v1.0.0 | 24.10 | v2.6.1 |
| 23.01 | v1.0.1 | 24.11 | v2.6.2 |
| 23.02 | v1.0.2 | 25.01 | v2.6.3 |
| 23.04 | v2.0.0 | 25.01 | v2.6.4 |
| 23.04 | v2.1.0 | 25.03 | v3.0.0 |
| 23.04 | v2.1.1 | 25.04 | v3.0.1 |
| 23.05 | v2.1.2 | 25.05 | v3.0.2 |
| 23.05 | v2.1.3 | 25.05 | v3.0.3 |
| 23.09 | v2.2.0 | 25.05 | v3.0.4 |
| 23.10 | v2.2.1 | 25.06 | v3.0.5 |
| 23.12 | v2.2.2 | 25.06 | v3.0.6 |
| 24.01 | v2.3.0 | 25.09 | v4.0.0 |
| 24.06 | v2.4.0 | | |
| 24.08 | v2.5.0 | | |
| 24.10 | v2.6.0 | | |
🛠 개발 환경 및 라이브러리
![swift]() ![xcode]() ![tuist]() ![Moya]() ![Then]() ![Kingfisher]() ![Snapkit]() ![Quick]() ![Nimble]() ![Lottie]() ![Inject]() ![Sentry]()⛳️ 로드맵
- [x] Tuist 기반 Clean Architecture Project 세팅
- [x] Fastlane, Makefile 세팅
- [x] 로그인 플로우
- [x] SOPT-AMP
- [x] 마이페이지
- [x] 앱 메인
- [x] 웹 프로덕트 라우팅
- [x] 출석
- [x] 푸시 알림
- [ ] Makers Design System
- [x] 콕 찌르기
- [x] 솝트로그
- [x] 인증중앙화(인증 방식 변경)
- [x] Coordinator 리팩토링
- [ ] WKWebView로 전환
🏡 Skills
Clean Architecture + MVVM Pattern
!MVVM- Presentation, Data, Domain Layer를 분리하여 계층 내외의 의존성을 효율적으로 관리합니다.
- MVVM Pattern으로 UI와 비즈니스 로직을 분리합니다.
Combine Reactive Programming
- 애플의 기본 API인 Combine을 이용하여 반응형 프로그래밍을 구현합니다.
- 비동기 처리를 직관적이고 편리하게 구현합니다.
Factory Pattern과 Dependency Injection
- 각 Feature의 Builder가 Factory의 역할을 수행하여 뷰와 뷰모델을 추상화한 Presentable을 생성합니다.
- 이 과정에서 VC, ViewModel, UseCase, Repository를 주입합니다.
Coordinator
!image- 화면 전환을 Coordinator가 책임집니다.
- Coordinator는 UINavigationController로 직접 화면전환을 수행합니다.
- VC → ViewModel → Coordinator의 참조 관계에 따라 VC가 해제되면 Coordinator도 메모리에서 해제됩니다.
- 대신 Coordinator가 Factory를 참조하여 Presentable을 생성하고 런타임에 클로저 주입으로 화면 전환 시 액션을 지정합니다.
Modular Architecture
!graph_after_web_2024 10 28- SOPT-iOS 앱은 Makers App 팀과 Makers 운영 서비스 팀의 공동 작업물입니다.
- 목적조직의 형태이기 때문에, 각 Feature 간의 독립적인 개발 환경을 보장하기 위해 Feature Interface를 도입했습니다.
- 모듈을 분리하여 응집도 높고 결합도가 낮은 코드를 작성할 수 있는 환경을 구현합니다.
- Demo 타겟을 통해 개발 환경과 테스트 환경을 분리합니다.
Tuist
- Tuist를 이용하여 다양한 모듈을 Mono Repo에서 구현합니다. 모듈 및 개발 환경을 편리하게 관리할 수 있습니다.
Testability
- 전반적으로 Testable한 코드를 지향합니다.
- 이러한 이점을 살려, Unit Test를 작성하고 신뢰성 및 유지보수성을 확보합니다.
🚙 Getting Started
Fastlane과 Makefile을 활용하여 번거로운 개발 환경 세팅을 자동화하고 있습니다.
공개하지 않아야 하는 파일들과 배포를 위한 인증서들은 Private 레포지토리에 있으며 이 곳에 초대를 받은 사람이라면 명령어 1줄을 입력하면 자동으로 모든 환경이 세팅됩니다.
사전 준비
- Fastlane을 설치합니다. (가이드)
설치
- 현재 레포지토리를 Fork 합니다.
- Fork한 레포지토리를 Clone 합니다.
git clone https://github.com/your_username_/Project-Name.git
- 프로젝트 경로로 이동하고 다음과 같이 입력합니다.
fastlane start_project
- 이제 터미널에서 입력을 요청하는 정보를 입력하고 기다리면 모든 세팅이 완료됩니다.
프로젝트에 기여하고 싶다면?
- 현재 레포지토리에 Issue를 생성합니다.
- Fork 한 레포지토리에서 브랜치를 생성합니다.
- 해당 브랜치에서 작업을 진행합니다.
- Push 및 Pull Request를 작성합니다.
- 1명 이상 코드 리뷰 및 Approve를 받은 뒤 develop 브랜치에 Merge 합니다.
🍏 Contributors
|
|
|
|
|
|
|--|--|--|--|--|--|
| 윤수빈| 이세진 | 이준호| 양수빈| 김영인| 이승호 |
| 1, 2, 3기 | 1, 2, 3, 4기 | 1, 2기 | 1기 | 2, 3기 | 2, 3, 4기 |
| 4기 | 5, 36, 37, 38기 | 5기 | 5, 36, 37기 | 5, 36기 | 37, 38기 |
| 37기 | 38기 | | | | |