Skip to content

야곰 아카데미 iOS 일기장 프로젝트 저장소입니다

Notifications You must be signed in to change notification settings

redmango1447/ios-diary

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎬 Diary

image

프로젝트 기간 23/08/28 ~ 23/09/15

📖 목차

  1. 소개
  2. 팀원
  3. 타임라인
  4. 시각화된 프로젝트 구조
  5. 실행 화면
  6. 트러블 슈팅
  7. 참고 링크

🍀 소개

일기장을 읽고 쓰고 수정하고 삭제할 수 있습니다. 모든 행위는 CoreData를 통해 영구저장됩니다. 일기를 작성했던 날짜를 기반으로 OpenWeather의 API를 이용해 날씨 아이콘을 일기 목록에 추가합니다. 일기를 작성하면서 나가거나 백그라운드로 이동하거나 키보드를 내리면 여태 작성했던 내용을 영구 저장합니다. 따라서 실수로 내용이 날라가버리는 일은 일어나지 않습니다.


👨‍💻 팀원

redmango Minsup
Github Profile Github Profile

⏰ 타임라인

날짜 내용
2023.08.28 - Swift Lint 적용, DiaryDTO 추가 및 샘플 Json 추가
2023.08.29 - CompositionalLayout를 이용한 UICollectionView구현
- UICollectionViewListCell 구현
2023.08.30 - DiaryView 구현
2023.09.01 - README 작성 및 수정사항 반영
2023.09.04 - CoreData의 컨테이너 객체 생성 및 전달
2023.09.07 - 새 일기 생성 기능 구현
2023.09.11 - background 진입 시 저장 구현
2023.09.14 - CLLocationManager를 이용해 현재 위치를 기반으로 날씨아이콘을 가져오는 기능 구현
2023.09.15 - 코드 정리 및 README 작성

👀 시각화된 프로젝트 구조

추후 추가예정

ℹ️ File Tree

파일구조

image

📐 Diagram

image


💻 실행 화면

읽기 쓰기 수정 삭제
일기장 읽기 일기장 쓰기 일기장 수정 일기장 삭제 압축

🧨 트러블 슈팅

1️⃣ ContentView

🔒 🧐문제점🧐
cell의 크기가 44로 고정되어 어떻게 해도 cell의 크기가 변하지 않고 오히려 내부의 컨텐츠들이 잘려서 출력되는 문제점이 발견되었습니다.

🔑 😆해결방법😆
알고보니 기존에 stackView를 contentView가 아닌 view에 add하고 stackView 레이아웃을 잡을 때 view에 걸어주었기 때문에 cell이 stackView 사이즈에 맞게 커지지 않는 거였습니다.

stackView를 cell의 contentView에 add하고 레이아웃을 contentView에 잡아줌으로서 문제를 해결할 수 있었습니다.

contentView.addSubview(view)

NSLayoutConstraints.activate([ 
    view.topAnchor.constraint(equalTo: contentView.topAnchor)
])

2️⃣ 로케일

🔒 🧐문제점🧐
Locale.current는 사용자의 기기의 현재 위치와 언어를 가져올 수 있는 API입니다. 하지만 이 current를 이용해 Date를 표시하려고 했지만 계속 영어가 나왔습니다. 아무리 설정을 확인해보고 변경을 해봤지만 해결되지 않았습니다.

🔑 😆해결방법😆
앱이 한국어를 지원안하기 때문에 생긴 문제였습니다. 프로젝트 설정에서 한국어를 지원하면 Locale.current가 잘 작동하는 것을 확인할 수 있습니다.



📚 참고 링크

About

야곰 아카데미 iOS 일기장 프로젝트 저장소입니다

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Swift 100.0%