날씨, 사진과 함께 기록하는 일기장 앱 만들기
날씨, 사진과 함께 기록하는 일기장 앱 만들기 기획서 내용은 아래 링크에서 확인하실 수 있습니다.
https://developer-p.tistory.com/158
개발하면서 참고했던 링크들도 모두 함께 첨부합니다.
최종 결과물
프로젝트에 사용된 전체 코드는 최하단 링크에서 확인할 수 있습니다.
[UITableView] 테이블 뷰에 사용된 개념
- Delegation
- Protocol
테이블 뷰 작성 방법
- "Data" 를 가져온다. (Array를 이용한다.)
- "UITableView" 를 생성한다.
- "UITableViewCell" 을 생성한다.
- "UITableViewCell"을 tableView에 등록한다. (UITableViewCell 내부에 바로 작성하는 방법 vs UITableViewCell.swift를 따로 만드는 방법)
- "UITableViewDelegate", "UITableViewDataSource" 를 채택한다.
- 프로토콜에서 반드시 구현해야하는 메소드를 구현한다. (tableView(...numberOfRowAt) / tableView(...cellForRowAt)
CRUD
C : 일기 작성하기
R : 작성한 일기 표시
U : 일기 수정 및 업데이트
D : 작성한 일기 삭제
DB(데이터) 관리
UserDefaults : 로그인에 사용.
CoreData : 그 외 사용.
https://zeddios.tistory.com/987
Main Color
FFFFF0 - 아이보리
ECECE3 - 회색
구현 페이지
1. 스플래쉬(런치스크린) 페이지
참고 자료
https://minominodomino.github.io/devlog/2019/05/12/ios-splashScreen/
2. 권한 설정 : 사진첩, 위치 사용 권한
: 거절 시 UIApplication 기능을 통해 권한 설정하도록 유도.
2-1. 사진첩 권한
참고 자료
사진첩 권한 허용 적용 O https://gonslab.tistory.com/28
권한 설정 유도 적용 O https://0urtrees.tistory.com/19
선택 사진만 허용 적용 X https://zeddios.tistory.com/1126
2-2. 위치 권한
참고 자료
https://42kchoi.tistory.com/299
글에서, import CoreLocation이 빠져 있습니다.
아래 코드도 빠져 있습니다.
locationManager = CLLocationManager() // 위치 권한 허용을 위한 객체 생성.
iOS 14.0부터 설정법이 바뀌었습니다.
https://gonslab.tistory.com/26
3. 로그인 페이지
: 자동로그인 시, 로그인 페이지 생략
참고 자료
https://www.youtube.com/watch?v=golbLITIkok&t=359s
4. 일기 목록 페이지
: 테이블뷰 & 이미지 뷰
4-1. 테이블 뷰 Core Data
참고 자료
: Core Data를 사용한 노트앱 - Navigation Controller
https://www.youtube.com/watch?v=35mKM4IkHS8
: 테이블 뷰 cell auto size
// cell 높이 유동(self sizing table view cell)
self.uiDiaryList.rowHeight = UITableView.automaticDimension
self.uiDiaryList.estimatedRowHeight = 120
https://www.youtube.com/watch?v=Z_aJWjarRpg&t=43s
4-2. 이미지 뷰 Core Data
이미지를 CoreData에 저장하는 상세한 방법은 하단 링크에 적어놨습니다.
https://developer-p.tistory.com/148
참고 자료
https://cb510.medium.com/saving-images-to-core-data-in-ios-473b92d5fd4f
5. 일기 글쓰기 페이지
5-1. 현재 위치 & 날씨 api 연동
날씨 api 연동(URLSession) - OpenWeathermap 사용.
날씨 API 연동의 경우, 네트워킹은 URLSession을 사용했습니다.
참고 자료
켈빈 → 섭씨로 변경 방법.
https://milyo-codingstories.tistory.com/25
5-2. 갤러리에 접근 & 사진 업로드
6. (작성된) 일기 페이지
- 작성된 일기 클릭 시, 내용 수정 및 삭제하기
프로젝트에 사용된 전체 코드는 아래 링크에서 확인할 수 있습니다.
https://github.com/SuminPark-developer/3week_WeatherDiary
최근댓글