유튜브에 올라온 강의들과 유데미의 강의로 플러터를 공부하면서 기본적이고 핵심적인 내용들을 다 학습하고 나면 간단한 앱을 만들어서 스토어에 게시까지 해보리라 다짐했었다.
그러다가 이번에 어느정도 목표한 부분까지 학습이 끝나게 되어서 토이프로젝트를 진행하게 되었고 스토어에 게시까지 성공하게 되었다.
비록 정말 단순한 앱이지만 플러터 개발의 첫 시작이 되는 이번 토이프로젝트를 기록으로 남기고자 한다.
1. 토이프로젝트의 목표
이번 토이프로젝트로 이루고자 했던 목표는 다음 세 가지였다.
- 앱 개발부터 배포까지 해보기
- 이번 토이프로젝트의 가장 큰 목표이다. 우선 간단한 프로젝트로 앱 개발의 전체적인 흐름을 경험함으로써 겪을 수 있는 많은 문제들을 미리 핸들링해보고, 추후에 더욱 복잡한 앱을 만들어 배포하게 될 때 더욱 효율적으로 개발을 하고자 한다.
- 핵심기능만 빠르게 완성해보기
- 개인 프로젝트를 진행하다가 실패하게되는 가장 큰 이유중 하나가 너무 많은 기능을 기획하고 개발하려다가 지치게 되고 포기하게 되는 경우라고 한다. 이번 토이프로젝트의 가장 큰 목표는 앱 개발부터 배포까지 전체적인 사이클을 경험해 보는 것으로 핵심기능만 집중하여 개발하고 나중에 추가, 수정등을 통해 업데이트 해보기로 하였다.
- 내가 꾸준히 사용 할 앱을 만들어보기
- Todo 앱이나 뽀모도로 앱과 같이 토이프로젝트 하면 흔히 볼 수 있는 프로젝트 주제들이 있지만, 아무래도 내가 실제로 필요로 하고 자주 사용하는 앱을 만들어야 문제점을 개선하고 기능을 추가하는데 더욱 도움이 되지 않을까 생각했다.
평소에 집 지하주차장에 차를 대고 다음에 차를 타러 갈 때 몇 층에 댔는지 자주 잊어버려 층을 왔다갔다 한 경험이 많다. 집 뿐만 아니라 마트등에 갈 때도 주차한 층을 자주 잊어버리곤 하는데 간단하게 주차한 층을 기록하는 앱 정도면 빠르게 만들어 볼 수 있겠다 싶어 이번 프로젝트의 주제로 결정하였다.
- Todo 앱이나 뽀모도로 앱과 같이 토이프로젝트 하면 흔히 볼 수 있는 프로젝트 주제들이 있지만, 아무래도 내가 실제로 필요로 하고 자주 사용하는 앱을 만들어야 문제점을 개선하고 기능을 추가하는데 더욱 도움이 되지 않을까 생각했다.
2. 개발 환경
언어 - Dart
프레임워크 - Flutter
IDE - Android studio Flamingo
형상관리 - Git, GitHub
디자인 - Figma
3. 화면 설계
화면은 간단한 싱글페이지 구성으로 주차 위치가 지상인지 지하인지 구분하는 버튼과 층을 선택할 수 있는 버튼, 그리고 저장 버튼으로 구성했다.
사실상 일상에서 주차하는 건물에는 지상이든 지하이든 10층 이상으로는 가는 경우가 거의 없기 때문에 층 버튼은 숫자 키패드와 비슷하게 1층에서 9층까지만 두었고 이 내용을 바탕으로 간단하게 틀을 잡고 개발을 시작했다.
4. 화면 및 기능 개발
설계한 내용을 바탕으로 화면 레이아웃을 만들고 기능들을 추가했다.
한번 저장한 데이터는 다음에 앱을 다시 실행하더라도 유지가 되어야 하므로 DB와의 연결이 필요했는데 저장할 데이터가 단순하고 양이 적었기 때문에 별도 서버구성은 하지않고 기기내에서 저장할 수 있도록 shared_preferences 패키지를 사용하여 저장기능을 구현하였다. 또한 저장시 저장 완료 알림을 위해 fluttertoast 패키지로 토스트 알림창을 적용하였다.
5. 배포 준비
앱 배포를 위해서 피그마를 이용하여 앱 실행 아이콘을 디자인 해주었다. 앱 실행 아이콘을 개발하면서 앱 실행시 초기에 보여지는 스플래시 화면과 스토어 등록할 때 필요한 그래픽 이미지와 스크린샷 등도 같이 만들어 주었다.
스크린샷 이미지 역시 피그마를 통해 만들었고 커뮤니티에서 템플릿을 받아 제작하였다.
플레이 스토어에 출시할 앱의 버전 지정과 서명등은 안드로이드 개발자 사이트에 정리가 잘 되어있어 참고하여 진행하였다.
https://developer.android.com/studio/publish/app-signing?hl=ko
마지막으로 안드로이드 스튜디오 개발자 계정을 등록하여 앱 배포 준비를 완료 하였다.
안드로이드 개발자 계정의 경우에는 25달러를 한번 결제하면 개발자 계정을 사용할 수 있지만 애플같은 경우에는 1년마다 129,000 원의 멤버십을 연장하며 사용해야한다고 한다.
지금 진행하는 프로젝트는 수익이 발생하는 앱도 아니고 멤버십에 들어가는 비용이 적지는 않은 비용이라 이번에는 안드로이드로만 진행을 하였다.
6. 배포
지금까지 준비한 소스와 이미지들로 스토어 정보들을 등록하고 앱을 게시하였다.
프로젝트는 2023.06.19 ~ 2023.06.23 까지 총 5일이 소요되었으며 등록한 앱은 검토를 거쳐서 이틀 뒤인 6월 25일에 스토어에 프로덕션 상태로 등록되게되었다.
https://play.google.com/store/apps/details?id=com.hyojun.where_is_my_car
7. 개선 방향
가장 먼저 상태관리 패키지인 Provider를 이용하여 소스코드 전체를 리팩토링 할 예정이다. 지금은 화면 하나에 기능도 몇 개 없어서 크게 문제가 없지만 나중에 기능이 추가되고 화면이 늘어나게 되었을 때 관리를 쉽게 하기 위해서는 필수적인 작업이라고 생각된다.
기능적으로는 우선 저장을 누른 순간부터 주차한 시간이 얼마나 지났는지를 표시해주는 화면을 하나 더 만들어서 추가해볼 예정이다. 이외에도 사용해보다가 추가되면 유용할 것 같은 기능들은 계속해서 수정해보려고한다.
현재는 한 페이지 짜리 실험용 앱이지만 지속적으로 업데이트 하여 단순한 토이프로젝트를 넘어 실제로 사람들이 사용하는 앱으로 발전하기를 기대해본다.
'개발 > Flutter' 카테고리의 다른 글
[Flutter] 어플리케이션 실행 아이콘 변경하기 2 - 플러그인 이용 (0) | 2023.05.25 |
---|---|
[Flutter] 어플리케이션 실행 아이콘 변경하기 (0) | 2023.05.25 |
[Flutter] flutter windows version 이슈 해결하기 (0) | 2023.04.10 |
[Flutter] 윈도우 플러터 개발환경 세팅하기 (0) | 2022.09.06 |