현재 구글 플레이스토어 정책 강화로 인하여 어플리케이션 검색이 되지 않습니다. 한국 정보화 진흥원에 앱 등록을 문의한 후, 플레이스토어에 재 개시 될 수 있도록 하겠습니다. -> 재출시 되었습니다!!
건강보험심사평가원에서의 오픈 API 제공 중단에 따라 본 어플리케이션은 더이상 운용되지 않습니다.
Google Play - https://play.google.com/store/apps/details?id=com.jh.mask_radar
ONE Store - https://onestore.co.kr/userpoc/apps/view?pid=0000748572
공적마스크 검색 어플리케이션입니다.
Only For Android - 안드로이드 전용입니다.
2020년도 초, 코로나19의 확산에 따라 마스크 수급불안이 발생하였고 이에 정부는 2020년 3월 5일 '마스크 수급 안정화 대책' 을 발표하였습니다. (출생연도 끝자리에 따라 마스크를 구입할 수 있는 요일을 지정)
다만, 각 약국마다 배분할 수 있는 마스크의 수에 제한이 있었다보니 약국별로 재고가 얼마나 남아있는지 알 수 있도록 관련 API도 제공하기 시작하였습니다. (3월 11일) - 참고 링크
저 또한 사람들이 편리하게 마스크를 살 수 있도록 돕기 위해 어플리케이션 개발에 착수하였습니다.
최초버전인 Ver 1.0을 제작하는데에 소요된 시간 - 약 1주일
이후 UI 변경 및 불편사항들을 반영하여 업데이트 진행.
개발은 혼자 진행하였으며 아이콘 및 디자인 부분에서는 박유진 학생(yujinp@gmail.com)의 도움을 받아 진행하였습니다.
개발에 사용된 언어: Java, Kotlin(일부)
사실 심사받는 과정이 길어져 출시에는 몇주 더 소요되었었다.(코로나로 인한 재택근무 등의 영향)
출시된 이후에도 '코로나 관련 어플리케이션 정책'변경으로 인해 한차례 구글 플레이에서 삭제되었었다가 '한국지능정보사회진흥원(구 한국정보화진흥원) PasS-TA' 문의를 통해 해결하였었다.
Kotlin은 Code with Joyce 및 테크과학! DiMo 유튜브, 구글검색 등을 이용하여 학습하였음.
- 네이버 지도
- Google Material Design
- Volley
- play-services-location
- Room
- swipe refresh layout
- 기타 legacy support나 kotlin 지원 라이브러리 등
- MVVM Architecture (Model - View - ViewModel)
제대로 사용했다고 볼 수는 없다. 새로운 Activity/Fragment 등을 만들 때 자동으로 만들 수 있다는 점이 궁금하여 구글 검색 후 사용을 시도해보았지만.. 굉장히 미숙하게 사용했다. (Model, View, ViewModel의 분리를 전혀 하지 못했다.) - Factory Pattern (객체 생성의 시점을 바로 결정하지 않고 서브클래스로 미룸)
이 패턴 또한 올바르게 사용했다고 생각이 들지는 않는다.(ViewModel 생성 시 ViewModelProvider 이용) - Observer Pattern
Fragment에서 ViewModel의 멤버 인스턴스를 Observe하는 데 사용. - Binding (양방향 바인딩)
자체적으로 제공하는 양방향 data binding을 사용해보았다. - Singletone Pattern
- Local에 데이터를 저장하기 위해 Room Library 이용
- 비동기를 위한 멀티쓰레딩 구현 시 Excutors ThreadPool 이용
- 스파게티 코드(spaghetti code)로 작성한 탓에 나조차도 유지 보수를 하기가 어려웠다.
- NullPointerException
자바로 개발을 했는데 런타임 중간중간 의도치 않은 예외가 발생했었다. 이를 디버깅하는 것은 상당히 까다로웠다. (Null Safety가 얼마나 좋은 것인지 알 수 있었다.)
- Activity/Fragment의 LifeCycle에 맞춰 각종 뷰 바인딩이나 메소드 호출 등의 위치 변경 필요 (아무대나 막 호출하고 선언하고 그랬는데 그러면 안된다.)
- 스파게티 코드(spaghetti code) 개선 필요
초기버전에서 네비게이션의 위치를 변경하였으며 즐겨찾기 기능을 추가하였습니다.
데이터는 '건강보험심사평가원-공적마스크 판매정보'를 통해 가져왔습니다.(공공데이터포털) https://www.data.go.kr/dataset/15043025/openapi.do
- 지도는 '네이버 지도'를 사용하였습니다. https://www.ncloud.com/product/applicationService/maps
- 폰트는 '우아한 형제들'사의 배달의 민족 글꼴을 사용하였습니다. https://www.woowahan.com/#/fonts
- 사용된 폰트: 한나는 열한살, 한나 Air, 주아체
- 별도로 '네이버'사의 글꼴을 사용하였습니다. https://hangeul.naver.com/font
- 사용된 폰트: 나눔 스퀘어
- 어플리케이션에 사용된 ic_map, ic_move_to_inbox, ic_notification_black, ic_settings, ic_settings_outline, ic_start, ic_start_border, ic_update, ic_warning xml 파일들은 Google Material Design 아이콘을 사용하였습니다. Material.io - Available under Apache license version 2.0
- ic_nh, ic_marker_nh, ic_unselected_nh 아이콘에 사용된 농협 마크는 NH농협의 CI 심볼마크를 사용하였습니다. NH농협 CI 소개
- ic_post_offece, ic_marker_post_office, ic_unselected_post_office 아이콘에 사용된 우체국 마크는 우정사업본부의 우정 제비 CI를 사용하였습니다. 우정 제비 CI
- ic_marker_pharm, ic_unselected_pharm, ic_pill, ic_pill_color 아이콘, 어플리케이션 로고 및 그래픽 이미지의 저작권은 박유진 학생(yujinp@gmail.com) 및 안진홍(ictechgy@gmail.com)에 있습니다.