날씨, 사진과 함께 기록하는 일기장 앱 만들기

날씨, 사진과 함께 기록하는 일기장 앱 만들기 기획서 내용은 아래 링크에서 확인하실 수 있습니다.

 

https://developer-p.tistory.com/158

 

[iOS 스터디/week3-1] 날씨, 사진과 함께 기록하는 일기장 어플 만들기 기획서(Diary App Proposal that recor

날씨, 사진과 함께 기록하는 일기장 어플 만들기에 대한 기획서입니다. CRUD C : 일기 작성하기 R : 작성한 일기 표시 U : 일기 수정 및 업데이트 D : 작성한 일기 삭제 (예상) 구현 페이지 스플래쉬

developer-p.tistory.com

 

개발하면서 참고했던 링크들도 모두 함께 첨부합니다.

 



최종 결과물

 

날씨, 사진과 함께 기록하는 일기장 앱 - 최종 결과물

 

프로젝트에 사용된 전체 코드 최하단 링크에서 확인할 수 있습니다.

 


 

[UITableView] 테이블 뷰에 사용된 개념

  • Delegation
  • Protocol

 

테이블 뷰 작성 방법

  1. "Data" 를 가져온다. (Array를 이용한다.)
  2. "UITableView" 를 생성한다.
  3. "UITableViewCell" 을 생성한다.
  4. "UITableViewCell"을 tableView에 등록한다. (UITableViewCell 내부에 바로 작성하는 방법 vs UITableViewCell.swift를 따로 만드는 방법)
  5. "UITableViewDelegate", "UITableViewDataSource" 를 채택한다.
  6. 프로토콜에서 반드시 구현해야하는 메소드를 구현한다. (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/

 

[iOS] 스플래시 화면(Splash Screen)

스플래시 화면(Splash Screen)를 알아보자.

minominodomino.github.io

 


 

2. 권한 설정 : 사진첩, 위치 사용 권한

: 거절 시 UIApplication 기능을 통해 권한 설정하도록 유도.

 


2-1. 사진첩 권한

참고 자료

사진첩 권한 허용 적용 O   https://gonslab.tistory.com/28

 

iOS Swift 카메라 사진 음성 권한 Camera Photo Library Microphone permission request authorization

안녕하세요 Gons 입니다. 오늘은 카메라, 사진, 음성 권한 요청하는 방법을 알아보겠습니다. 먼저 Info.plist 에 3가지 Key를 써주세요. Privacy - Camera Usage Description Privacy - Microphone Usage Desc..

gonslab.tistory.com

 

권한 설정 유도 적용 O   https://0urtrees.tistory.com/19

 

iOS앱 실행 시 UIApplication기능으로 권한설정 유도하기

iOS앱 실행 뒤 사용자가 사진첩권한을 거부한다면 어떻게 처리하는게 좋을까? 안녕하세요! 민군입니다 ^-^// 오늘은 쌈박한 포스팅 주제가 될 것 같아요. 입문자분들이 사진권한이 필요한 앱을 만

0urtrees.tistory.com

 

선택 사진만 허용 적용 X https://zeddios.tistory.com/1126

 

iOS 14+ ) Select Photos 권한 작업 (1)

안녕하세요 :) Zedd입니다. 오늘은 iOS 14이상 && 사진앨범에 접근할 때 사진 선택옵션이 추가되었습니다. 관련 대응을 기록하고자 합니다. 현재 글과 다음 글 총 2편으로 이루어져있습니다. 최종 코

zeddios.tistory.com

 


 

2-2. 위치 권한

참고 자료

https://42kchoi.tistory.com/299

 

swift/iOS 위치 정보 얻기, 위치 권한 설정하기.

xcode에서 위치 정보 얻어오기. swift에서는 위치 정보를 받아오기 위해 얻어와도 되는지 물어보고, 물어본 상태에 따라 로직을 구현해 나가는 과정이 필요하다. 한번이라도 해봤으면 어떤 느낌인

42kchoi.tistory.com

글에서, import CoreLocation이 빠져 있습니다.

아래 코드도 빠져 있습니다.

locationManager = CLLocationManager() // 위치 권한 허용을 위한 객체 생성.

 

iOS 14.0부터 설정법이 바뀌었습니다.

https://stackoverflow.com/questions/64073811/authorizationstatus-for-cllocationmanager-is-deprecated-on-ios-14

 

AuthorizationStatus for CLLocationManager is deprecated on iOS 14

I use this code to check if I have access to the user location or not if CLLocationManager.locationServicesEnabled() { switch CLLocationManager.authorizationStatus() { case .restricted, .

stackoverflow.com

https://gonslab.tistory.com/26

 

iOS Swift 위치 사용 권한 GPS location permission request authorization

안녕하세요 Gons 입니다. 오늘은 위치 사용 권한 요청하는 방법을 알아보겠습니다. 먼저 Info.plist 에 GPS 키를 써주세요. Privacy - Location Always and When In Use Usage Description Privacy - Location Whe..

gonslab.tistory.com

 


 

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

 

iOS | 이미지를 Core Data에 저장하는 방법(Saving Images to Core Data in iOS)

날씨, 사진과 함께 기록하는 일기장 어플을 개발하는 중, Core Data에 이미지를 저장하는 방법이 필요해서 많은 자료를 찾아봤습니다. 영어로 된 자료는 꽤 찾을 수 있었지만, 한글로 정리된 내용

developer-p.tistory.com

 

참고 자료

https://cb510.medium.com/saving-images-to-core-data-in-ios-473b92d5fd4f

 

Saving Images to Core Data in iOS

Enabling a user to be able to save and retrieve images within an app is a common app requirement which can enrich the user experience…

cb510.medium.com

 

 


 

5. 일기 글쓰기 페이지


5-1. 현재 위치 & 날씨 api 연동

날씨 api 연동(URLSession)  - OpenWeathermap 사용.

날씨 API 연동의 경우, 네트워킹 URLSession을 사용했습니다.

 

참고 자료

https://velog.io/@dlskawns96/Swift-%EA%B0%84%EB%8B%A8%ED%95%9C-%EB%82%A0%EC%94%A8-%EC%95%B1-%EB%A7%8C%EB%93%A4%EC%96%B4%EB%B3%B4%EA%B8%B0-01-Swift-OpenWeatherMap

 

[Swift] 간단한 날씨 앱 만들어보기 01 (Swift OpenWeatherMap)

[Swift] 간단한 날씨 앱 만들어보기 01 (Swift OpenWeatherMap)

velog.io

 

켈빈 → 섭씨로 변경 방법.

https://milyo-codingstories.tistory.com/25

 

Swift로 간단하게 화씨를 섭씨로, 섭씨를 화씨로 변환해보자

안녕하세요. 밀쿄입니다. Rx시리즈 기획한다고...포스팅이 없네요.. 조만간 Rx시리즈로 돌아...(지키지 못할 약속 같네요) 여튼 잡담은 여기까지 하고.. 오늘은 Swift로 간단하게 화씨를 섭씨로, 

milyo-codingstories.tistory.com

 

5-2. 갤러리에 접근 & 사진 업로드

 


6. (작성된) 일기 페이지

- 작성된 일기 클릭 시, 내용 수정 및 삭제하기


 

프로젝트에 사용된 전체 코드 아래 링크에서 확인할 수 있습니다.

https://github.com/SuminPark-developer/3week_WeatherDiary

 

GitHub - SuminPark-developer/3week_WeatherDiary: iOS 3주차 스터디 - 날씨, 사진과 함께 기록하는 일기장 어플

iOS 3주차 스터디 - 날씨, 사진과 함께 기록하는 일기장 어플 만들기(TableView, CoreData, UserDefaults, Navigation Controller, ... ) - GitHub - SuminPark-developer/3week_WeatherDiary: iOS 3주차 스터디 - 날씨, 사진과 함께 기

github.com

 

 

반응형