Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- Git
- reactivex
- JSONDecoder
- 에어팟
- JSONEncoder
- Singleton Design Pattern
- 오늘의성취도
- uicollectionview
- CustomStringConvertible
- IOS
- UIDocument
- unowned
- AVFoundation
- rxswift
- MVP
- weak
- UIDocumentBrowserViewController
- Arc
- Observable
- UIGestureRecognizer
- UIBezierPath
- Hashable
- NSAttributedString
- PhotoKit
- Equatable
- Swift
- UIDynamicAnimator
- Stanford cs193p
- CoreGraphics
- Codable
Archives
- Today
- Total
아직은 개린이
[App 제작] Ribrary 본문
소개
- 영화, 책, 전시회 등의 카테고리를 설정하고, 리뷰를 기록 및 관리하기 위한 앱
사용한 기술 및 라이브러리
- Swift5
- Alamofire
- 네이버 검색 Open API
- Firebase Realtime DB, Firebase Storage
개발 인원 및 기간
- 1인
- 2020.03.28 ~ 2020.03.30
- https://github.com/jiyeonlab/PieceShelf
기능소개
메인화면
-
Tab Bar Controller를 이용하여, Main 탭과 Setting 탭 구성
-
Main 탭에서 카테고리별 리스트 확인 가능
-
Setting 탭에서 카테고리를 추가 및 삭제 가능
카테고리 전체보기 화면
-
전체보기 버튼을 누르면, 해당 카테고리에 있는 표지 데이터를 표시
데이터 추가 화면
-
메인 화면이나 카테고리 화면의 우측 상단 + 버튼을 눌러 데이터 추가
-
표지 이미지는 웹 검색, 사진첩, 카메라 촬영으로 불러오기 가능
-
이미지, 제목, 날짜, 카테고리는 필수 입력 조건
상세 보기 화면
-
선택한 데이터의 상세 정보를 볼 수 있는 화면
-
우측 상단의 삭제 버튼을 눌러 삭제 가능
어려웠던점 및 문제점
- 네이버 검색 Open API를 이용하여, 검색어에 해당하는 이미지를 불러오고 원하는 Layout으로 보여주는 것
- 웹에서 검색한 이미지가 아닌 앨범이나 카메라 촬영을 통해 저장하는 이미지는 Firebase Storage를 이용하는데, 초기 설계 미습으로 DB에 저장하는 데이터 형태가 적절하지 않음.
- 이 부분은 DB 구조 변경이 필요함.
- 로컬 DB가 아닌 네트워크를 통해 이미지 데이터를 받아오기 때문에 상황별로 UIActivityIndicator를 추가하는 것
- 메인 화면에서는 이미지가 다 받아지지 않았을 때, 화면 전체가 아닌 각 cell에 activity indicator를 추가했는데 수정이 필요함.
새롭게 터득한 것
- 네이버 검색 Open API 사용
- Alamofire 사용
- Firebase DB, Storage 사용
- 다크모드 대응법
- UISearchBar
- CollectionViewDelegateFlowLayout
추가 계획
- 카테고리 및 아이템의 정렬 방식 선택 기능 추가
- 상세 정보를 수정할 수 있는 기능 추가
'Project' 카테고리의 다른 글
[App 제작] 오늘의 성취도 (0) | 2020.02.20 |
---|---|
[부스트코스] 영화 정보 앱 (0) | 2020.02.13 |
[부스트코스] 앨범 앱 (1) | 2020.02.12 |
[부스트코스] 날씨 정보 앱 (0) | 2020.02.12 |
[부스트코스] 회원가입 화면 구현 (2) | 2020.02.12 |