맵모는 방문했던 위치에 대해 이미지, 날짜, 메모를 남겨 차트, 캘린더, 지도를 통해 탐색할 수 있는 위치 기반 메모 앱입니다.
- 개발 인원: iOS 1인 개발
- 개발 기간: 2주 (2024.03.10 ~ 2024.03.24)
- 개발 환경: 최소 버전 16.0 / 세로 모드 / 아이폰용 / 다크모드
| 지도 탐색 | 좋아요한 맵모 | 캘린더 탐색 | 맵모 상세화면 |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
| 메모 생성 | 메모 삭제 | 메모 좋아요 | 카테고리 추가 |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
- 메모 | 생성 / 수정 / 삭제 / 조회 / 좋아요
- 장소 검색
- 탐색 | 지도 화면 / 캘린더 화면 / 좋아요
- 카테고리 추가
Framework - UIKit
Pattern - MVVM / Singleton / Delegate / Repository
Network - Alamofire / Codable
Database - Realm
OpenSource - SnapKit / ToastSwift / TapMan / FSCalendar / IQKeyboardManagerSwift / Naver Map SDK / FloatingPanel / Firebase Analytics / Firebase Crashlytics
Etc - Custom Observable / CoreLocation
Alamofire
- Router 패턴과 Generic을 적용하여 API 요청과 관련된 로직을 캡슐화
Realm
- writeAsync를 사용하여 쓰기 트랜잭션을 비동기적으로 수행
- Realm List를 활용하여 To Many Relationship 구현
- Repository 패턴을 적용하여 CRUD에 대한 유지보수성 및 확장성 향상
Etc
- UIGraphicsImageRenderer을 통해 커스텀 뷰 마커 구현
- MVVM과 Custom Observable을 구현하여 비즈니스 로직과 UI 코드 분리
- NWPathMonitor를 통해 네트워크 단절 상황 대응
- Firebase Analytics와 Crashlytics를 활용하여 사용자 이탈지점 및 충돌 데이터 수집을 통해 앱의 안정성 향상
- final 키워드와 접근제어자를 통해 컴파일 최적화 달성
해결방안
- writeAsync를 사용하여 비동기적으로 쓰기 작업을 수행
해결 방안
- UIGraphicsImageRenderer의 image 메서드를 사용하여 Custom View를 UIImage 객체로 변환
- 메모리 그래프를 통해 메모리가 누수되는 문제 확인
해결 방안 - weak 키워드를 통해 객체를 약한 참조 해줌으로써 메모리 누수 해결
| 해결 전 | 해결 후 |
|---|---|
![]() |
![]() |












