iOS 앱 개발 시작!
앱 개발을 시작하기 전에...
하나의 프로젝트를 본격적으로 시작하기 전에 프로젝트 생성부터 마무리까지 적어보고자 한다.
나중에 또 다른 프로젝트를 시작할 때의 나를 위해서 남겨놓는 글이라고 생각하고 자세히, 필요한 부분들을 기록해놓으려고 한다!
이번 프로젝트는 2019년도부터 혼자 생각하고 기획했던 앱이고 2021년도에 학과 공모전에 혼자 나가서 금상을 탔던 앱인 만큼 이렇게 기록해두고 싶었다!!
Xcode 프로젝트 생성 / 초기 설정 세팅
- 지원하는 Device
우선, 아이폰 전용 앱으로 설정하기 위해 기본으로 설정되어있는 MacOS, iPadOS를 삭제한다.
- Minimum Deployments
지원하려는 최소 iOS 버전 설정, 일단 대부분의 사람들이 사용하는 16.0 버전으로 설정했다.
- Deployment Info
앱의 화면을 가로로 제공하지 않고 세로로만 제공하기 위해 Landscape를 모두 off 해준다.
상태바도 나중에 설정할 수 있지만 일단 Default로 설정
- Localizations
어느 지역에서 앱을 사용할 수 있도록 설정하는 곳, 우선 Koreans을 추가해주었다.
Project - Info - Localizations 에서 + 버튼을 눌러서 추가 가능
이외의 설정들은 프로젝트를 진행하면서 변경할 점이 있으면 바꿔나갈 예정!!
프로젝트 파일, 폴더 구조 설정
- Resource
폰트, 애니메이션 등 기타 Resource 파일들
- Extension
Font, View, Text, Color, String 등 다양한 Extension들 모음
자주 사용하는 버튼 디자인, 텍스트 강조, 색 지정 등 미리 Extension으로 만들어 두면 재사용성이 증가한다.
- Model
서버 API 통신에 필요한 데이터 Model
- View
앱의 화면을 구성하는 모든 View, 카테고리 별로 View 파일 안에 나눠서 관리한다.
- Store
UIKit에서 SwiftUI로 변해가는 시점에서 SwiftUI에는 ViewModel의 데이터바인딩 개념이 포함되어있다. 이렇게 되면 ViewModel은 존재이유를 잃고, 'ViewModel'이라는 단어 자체도 의미가 애매해진다.
이러한 이유로, UI를 담당하는 View와 로직을 분리하기 위해 ViewModel을 사용하기 보단 Flux적인 Store로 분리한다.
"SwiftUI에서 MVVM 사용을 멈추자"라고 생각이 들었던 이유
위의 글을 읽고 MVVM에 대한 개념이 더 정리가 잘되었고 앞으로 어떻게 사용해야할지 정리가 잘 되었다.
MVVM에 대한 개념이 부족하거나 헷갈리는 사람들이라면 한번 읽어보면 좋겠다!
아무튼! 이 Store에는 서버 통신에 필요한 로직들을 Store로 따로 분리하여 관리하려고 한다!
프로젝트 초기 설정 끝!
아직 로그인, 회원가입 화면을 구성중이고.. 디자인은 1차적으로 마무리가 되어서 지난 회의때 전체적으로 피드백을 진행했다. 서버도 열심히 DB, 서버 구축중이고...! 아직 API는 구현이 안되어 있기 때문에 우선 UI 디자인 나온 화면들을 만들어보려고 한다!
이번 프로젝트를 성공적으로 앱스토어에 런칭할때까지 꾸준하게 프로젝트 진행상황을 기록해보려고 한다!