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에서의 추억을 쌓아가봐요!

솝탬프 자세히 보기

📮 미션

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

💪 랭킹

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

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



📱 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

🛠 개발 환경 및 라이브러리

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

  • 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기 1, 2기 1기 2,3기 2,3기