일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- flutter
- dart
- Widget
- UIAccessibility
- algorithm
- Extentsion
- listview
- GIT
- designPattern
- keyWindow
- OSLog
- protocol
- xcode
- pubspec.yaml
- COMMIT
- enumerations
- toyproject
- swiftlint
- SwiftGen
- basic
- IOS
- ToDoRim
- reetcode
- Swift
- tip
- it
- Leetcode
- github
- pubspec
- Equatable
- Today
- Total
수니의 개발새발
[iOS/ToyProject] 1인 앱 개발 : 기획부터 배포까지 -ToDoRim 본문
안녕하세요. 오늘은 저의 첫 토이 프로젝트 ToDoRim 개발 경험을 적어보려고 합니다.
ToDoRim 배포 정보는 아래 포스팅에 정리되어 있어요!
토이 프로젝트 어떻게 시작하게 됐나.
SI회사 1년 차에 프로젝트를 철수하고 본사에서 대기하고 있었어요. 그때 팀장님께서 자기 계발 겸 개인 앱을 기획부터 배포하는 경험을 하면 좋을 것 같다고 제안을 받았습니다. 그래서 어떤 앱을 만들어볼까 부터 배포까지 당시 저의 멘토분에게 자문을 구하면서 시도해보았습니다. (지금까지 이때의 경험은 정말 저의 개발자 인생의 중요한 경험이라고 생각해요. 제안 주신 팀장님께 감사합니다.'◡'✿)
프로젝트 주제와 목적 (2019. 08. 26)
왜 ToDoRim이었나?
처음에는 만들고 싶은 앱이 2가지가 있었어요. 둘 다 라이프스타일 앱이었는데, '감정 쓰레기통'과 '문화생활 리뷰 관리' 앱이었어요.
그런데 그 앱들을 만드려고 하니 '근데 이 앱에서 어떤 기술을 사용해볼 수 있을까?'라는 의문이 들었어요. 그 당시 앱을 기획하고 배포하는 것도 큰 의미가 있다고 생각했지만, 앱을 만들면서 다양한 기술을 써보고 싶었어요. 그래서 두 앱은 추후로 미루고, iOS에서 개발할 수 있는 기능(Cocoa Touch Framework)을 중심으로 찾아 '위치 알림'이 되는 투두 리스트를 만들기로 결정했습니다.
토이 프로젝트 주제
- 위치 알림 투두 리스트
토이 프로젝트 목적
1. UserNotifications를 사용한 로컬 푸시 구현
2. CoreLocation을 사용한 위치 알림 기능 구현
3. UITableView, UICollectionView를 사용한 투두 리스트 구현
4. Realm을 사용한 DataBase 구현
5. 사용하기 좋은 UI/UX 구현
기획 (2019. 09. 02)
벤치마킹
프로젝트의 목적과 주제를 정하고, 벤치마킹을 시작했어요.
투두 앱은 스토어에 정말 많아서 보다 보니 여러 가지 기능을 넣고 싶었지만, 1인 개발이라 모든 투두 앱이 가지고 있는 핵심 기능만 추렸어요.
그리고 디자인이 막막했는데, 사용하기 좋은 UI/UX는 눈으로 보기 이쁜 것도 중요하다고 생각했어요. 그래서 pinterest와 dribbble에 디자이너분들이 올려둔 디자인들을 열심히 벤치 했답니다.
기능 정의
벤치가 끝난 뒤, IA 정의서를 작성했어요. 기획자 분들의 눈에는 미흡한 IA겠지만, 그 당시에 열심히 작성하고 뿌듯했던 기억이 있네요. (˃̶᷄‧̫ ˂̶᷅๑ )
이때 화면 설계서를 작성하지는 않았지만, 머릿속에 화면을 구상하면서 기능 정의를 했어요.
그리고 화면 설계를 하면서 부족한 곳은 채워 넣고, 뺄 기능은 빼고를 반복했습니다.
화면 설계서 작성
IA정의서와 벤치 디자인을 토대로 화면 설계서를 만들었어요.
처음에 원하는 디자인이 2개 있었어요. 하나는 그러데이션이 들어간 조금 화려한 감성이었고, 하나는 깔끔한 감성이었어요. 근데 그 당시 왜 이렇게 그러데이션이 이뻐 보였는지, 그러데이션으로 정해버렸네요.
제가 디자인에 자신이 없어 디자인 과정을 스킵했어요. 그래서 화면 설계를 그리면서 색감과 디자인 구조를 구상하면서 만들었어요!
개발 (2019.09.16)
기술 검토
사실 기획을 하면서 기술 검토를 했지만, 개발 전에 한 번 더 기술검토를 하면서 필요한 라이브러리와 기술을 정리하고 아키텍처를 구상했어요.
그렇게 정리를 한 뒤, Xcode를 열고 개발을 시작했어요.
개발을 하면서 가장 중요하게 생각했던 것은 단위 테스트였어요. 하나의 기능을 개발하고, 테스트하고, 수정하고를 반복하면서 오류를 줄이고 앱의 완성도를 높여 갔어요. (이때의 습관이 지금까지도 이어져 완성도 있는 결과물을 도출하는데 큰 도움이 되고 있어요! (▰˘◡˘▰))
Architecture & Stacks 아키텍처와 사용기술
Deployment Target : iOS 11.0
Swift Version : Swift 5
Design Pattern : MVC
Database : Realm
Cocoa Touch
- CoreLocation : 내 위치 찾기, 위치 알림 구현
- MapKit : 지도에서 장소 찾기, 위치 알림 반경 설정 구현
- UserNotifications :로컬 푸시 알림 구현
- UIKit : UICollectionView, UITableView의 주요 기능을 사용하여, 화면 구성
Libary
- FAPaginationLayout : 커스텀하여 CollectionView의 페이징 애니메이션 구현
- Hero : 화면 전환 애니메이션
- RealmSwift : Realm DB 사용
테스트 및 수정 (2019. 09. 30)
개발을 완료하고, 전수 테스트를 진행했어요.
테스트는 본사에 계신 팀원분들이 도와주셨어요. (아마 다들 그때 저의 앱 개발기를 흥미롭게 봐주셨던 것 같아요. (๑´◡ુ`๑)) 단위 테스트를 아무리 해도 개발한 사람은 놓치는 오류가 꼭 있다고 생각해서 꼼꼼히 매몰차게 봐달라고 했습니다. 그렇게 오류가 발견되면 수정하고 앱 완성을 향해 달려갔어요.
이때 다들 위치 알림을 재밌게 봐주셨어요. 회사를 반경으로 50m 떨어지면 '퇴근' 푸시를 설정하기도 하고 다들 재밌어 하신게 생각나네요.
앱스토어 출시 (2019. 10. 07)
준비
이때 앱 스토어 출시 준비를 처음 해봤어요!
그 당시 개발자 게정이 없었는데.. 1년 구독비가 계정 생성을 고민하게 만들더라고요. 그때 팀장님께서 회사 계정을 흔쾌히 사용하라고 하셨고, 회사 게정에 앱을 올리기로 했어요!
출시를 준비하는데 생각보다 준비할 것들이 많았고, 개발자인 저에게 제일 걱정이었던건 스토어 스크린샷 작업이었어요. 이 당시에 앱 아이콘도 만들지 못한 상태였는데, 저의 멘토님이 Sketch라는 툴을 알려주셨어요. 멘토님도 개발자셨는데 디자인 툴을 잘 다루시는 걸 보고 존경스러웠습니다. 미숙하지만 열심히 툴을 만져보면서 스크린샷과 아이콘을 만들었고 생각보다 굉장히 만족스러운 결과를 얻었습니다!
출시 (2019. 10. 11)
모든 준비를 맞춘 뒤, 심사를 올렸어요. 첫 애플 심사에 긴장했지만 운 좋게(?) 한 번에 통과하여 바로 배포했습니다!
앱을 처음 출시해본 저는 설레는 마음으로 다운로드나 리뷰를 자주 봤어요. 처음에는 다운로드 수가 1000명이 넘어갈 때, 여기저기 자랑했던게 생각나네요. (๑´◡ુ`๑)
첫 토이 프로젝트를 마치며..
이렇게 저의 1인 앱 개발 프로젝트가 마무리됐어요. 이 프로젝트 경험은 지금의 저에게도 소중한 경험이에요.
가장 먼저 기획부터 배포까지의 첫 경험이었어요. 이러한 경험은 이후 회사 구축 프로젝트에 참여하면서도 큰 도움이 되었어요. 프로젝트에 참여해서 개발자로서 기획 단계부터 기획자분들에게 필요한 사항을 먼저 요청드리고, 함께 챙겨나가면서 구멍 없는 프로젝트를 진행하기 위해 노력할 수 있었어요.
그리고 메인화면과 서브화면이 모두 CollectionView, TableView로 이루어져 있어 이 뷰들과 굉장히 친해질 수 있었어요. 그래서 추후 프로젝트에 리스트나 페이징뷰를 구현해야 때 자신감이 생겼어요.
또한, 원하는 UX를 구성하기 위해 라이브러리를 커스텀을 해보았어요. 이때 라이브러리를 커스텀하는 능력을 많이 길렀던 것 같아요.
지금의 ToDoRim
2년이 지난 지금의 ToDoRim이에요
개인적으로 토이 프로젝트 앱 중에 가장 애정이 많이 가는 앱이에요. 평소 일하면서 번아웃이 오거나 힘들 때 사용자분들의 리뷰를 보고 힘을 얻곤 합니다.
저의 작고 소소했던 경험을 읽어주셔서 감사합니다.
다들 즐거운 개발 하세요. ⁽⁽◝( ˙ ꒳ ˙ )◜⁾⁾
'Project' 카테고리의 다른 글
[iOS/ToyProject] ToDoRim - 할일 관리, 미리 알림 (0) | 2022.01.17 |
---|