Skip to content

sopt-makers/SOPT-iOS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SOPT 공식 앱

2022.09 ~ Now

💫 솝트 활동을 더욱 알차고 즐겁게 !

SOPT는 IT와 벤처 창업에 뜻이 있는 대학생들이 모인 국내 최대 규모의 대학생 연합 IT 벤처 창업 동아리입니다.

SOPT에서 활동하고 있는 회원들도, SOPT의 열정이 되고 싶은 분들도 모두 SOPT에 대해서 더 알아갈 수 있는 서비스예요.

앱스토어 이미지

앱스토어에서 다운 받기


기능 소개

출석

  • SOPT 활동 기수 회원들을 위한 출석 기능을 제공하고 있어요
  • 나의 출석 점수와 출결 현황을 확인하고, 실시간으로 출석을 인증해요

공식 홈페이지

  • SOPT의 열정이 되고 싶은 분들은 ‘비회원'으로 로그인해서 둘러볼 수 있어요
  • 공식 홈페이지와 더불어 활동 후기, 프로젝트 내용, FAQ까지 쉽고 빠르게 확인할 수 있어요

플레이그라운드

  • SOPT 회원들만을 위한 플레이그라운드에도 쉽게 접근할 수 있어요
  • 활동 멤버와 프로젝트, 그리고 모임 생성과 참여까지 한 번에 가능해요

미션과 랭킹

  • SOPT를 제대로 즐기기 위한 ‘솝탬프'도 참여할 수 있어요
  • 달성할 수 있는 미션이 있다면 사진과 메모를 업로드하고, 도장을 받을 수 있어요
  • 완료한 미션을 모아보고 랭킹을 비교하며 SOPT에서의 추억을 쌓아가봐요!

오늘의 솝마디

  • 매일 도착하는 창업 운세, 오늘의 솝마디로 즐거운 하루를 시작해보세요
  • 오늘의 창업운을 높여줄 행운의 파트너를 콕 찌르고, 커피챗을 신청해보세요. SOPT인의 여정에 뜻밖의 인연을 가져다 줄지도 몰라요!

솝탬프 자세히 보기

📮 미션

  • 솝트를 제대로 즐겨본 사람들이 엄선한 솝트 관련 미션을 확인해 보세요.
  • 달성 가능한 미션이 있다면 사진과 메모를 업로드해 보세요. 귀여운 도장도 받을 수 있어요!
  • 완료한 미션을 모아보며 솝트에서의 추억을 간직해 보세요.


💪 랭킹

  • 달성한 미션 난이도에 따라 랭킹을 결정하는 점수가 부여돼요.
  • 랭킹 내에서 다른 사람들의 미션 현황, 한마디도 확인할 수 있어요.

오늘의 솝마디 자세히 보기

🍀 오늘의 솝마디

  • 매일 도착하는 창업 운세, 오늘의 솝마디로 즐거운 하루를 시작해보세요.
  • 오늘의 창업운을 높여줄 행운의 파트너를 콕 찌르고, 커피챗을 신청해보세요!
  • 나의 하루를 더욱 빛내줄 부적과 함께, 잊지 못할 특별한 하루를 만들어보세요.



문의사항 및 서비스 의견제안은 언제든지 환영합니다 :)



📱 App Version

날짜 버전
23.01 v1.0.0
23.01 v1.0.1
23.02 v1.0.2
23.04 v2.0.0
23.04 v2.1.0
23.04 v2.1.1
23.05 v2.1.2
23.05 v2.1.3
23.09 v2.2.0
23.10 v2.2.1
23.12 v2.2.2
24.01 v2.3.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


⛳️ 로드맵

  • Tuist 기반 Clean Architecture Project 세팅
  • Fastlane, Makefile 세팅
  • 로그인 플로우
  • SOPT-AMP
  • 마이페이지
  • 앱 메인
  • 웹 프로덕트 라우팅
  • 출석
  • 푸시 알림
    • 딥링크, 웹링크 라우팅
  • Makers Design System
    • Toast
    • Dialog
    • Color
    • Typography
  • WKWebView로 전환
  • 콕 찌르기
  • 캘린더

🏡 Skills

Clean Architecture + MVVM Pattern

MVVM

  • Presentation, Data, Domain Layer를 분리하여 계층 내외의 의존성을 효율적으로 관리합니다.
  • MVVM Pattern으로 UI와 비즈니스 로직을 분리합니다.

Combine Reactive Programming

  • 애플의 기본 API인 Combine을 이용하여 반응형 프로그래밍을 구현합니다.
  • 비동기 처리를 직관적이고 편리하게 구현합니다.

Factory Pattern과 Dependency Injection

DI

  • 각 Feature의 Builder가 Factory의 역할을 수행하여 뷰와 뷰모델을 추상화한 Presentable을 생성합니다.
  • 이 과정에서 VC, ViewModel, UseCase, Repository를 주입합니다.

Coordinator

image

  • 화면 전환을 Coordinator가 책임집니다.
  • Coordinator는 Router에 의존하고 Router는 UINavigationController에 의존합니다.
  • VC와 ViewModel 모두 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줄을 입력하면 자동으로 모든 환경이 세팅됩니다.

사전 준비

설치

  1. 현재 레포지토리를 Fork 합니다.
  2. Fork한 레포지토리를 Clone 합니다.
    git clone https://github.com/your_username_/Project-Name.git
  3. 프로젝트 경로로 이동하고 다음과 같이 입력합니다.
    fastlane start_project
  4. 이제 터미널에서 입력을 요청하는 정보를 입력하고 기다리면 모든 세팅이 완료됩니다.

프로젝트에 기여하고 싶다면?

  1. 현재 레포지토리에 Issue를 생성합니다.
  2. Fork 한 레포지토리에서 브랜치를 생성합니다.
  3. 해당 브랜치에서 작업을 진행합니다.
  4. Push 및 Pull Request를 작성합니다.
  5. 1명 이상 코드 리뷰 및 Approve를 받은 뒤 develop 브랜치에 Merge 합니다.


🍏 Contributors

윤수빈 이세진 이준호 양수빈 김영인 이승호
1, 2, 3기 1, 2, 3, 4기 1, 2기 1기 2, 3기 2, 3, 4기
김민재 강윤서 김승찬 이재현 장석우
4기 5기 5기 5기 5기