[UIKit] 설정 탭 리뷰 (Feat. 나만의 Todo)

2025. 5. 20. 16:15·iOS 개발/UIKit

state.viewModels = State.viewModels(
    todoCount: todoCount,
    memoCount: memoCount,
    recordingCount: recordingCount
)

오늘은 나만의 Todo 앱 프로젝트의 마무리를 기록하려 합니다.

이번 프로젝트는 UIKit으로 시작했지만, 이후에는 SwiftUI 버전도 구현해볼 생각입니다.

 

마지막으로 리뷰할 화면은 설정 탭입니다.

설정 탭은 복잡한 기능을 넣지 않고, 지금까지 내가 작성한 Todo, 메모, 녹음의 갯수를 간단히 확인할 수 있도록 구성했습니다.


📡 데이터 불러오기

설정 탭에서는 사용자가 지금까지 작성한 Todo, 메모, 녹음의 개수를 각각 Firestore에서 불러와 보여주도록 구성했습니다.

구현 흐름은 다음과 같이 간단한 구조를 따릅니다.

 

1. viewDidLoad에서 데이터 로드 요청

viewModel.process(.loadData)

화면이 로드되면 .loadData 액션을 ViewModel로 전달합니다.

 

 

2. ViewModel이 Firestore에서 비동기 병렬로 데이터 요청

async let todoSnapshot = db.collection("Todo").document("List").getDocument()
async let memoSnapshot = db.collection("Memo").document("List").getDocument()
async let recordingSnapshot = db.collection("Recording").document("List").getDocument()

 

async let을 사용해 세 가지 데이터를 병렬로 요청합니다. 모두 완료되면 다음과 같이 결과를 count로 정리합니다.

process(.getDataSuccess(
    todoCount: todoResponse.todo.count,
    memoCount: memoResponse.memo.count,
    recordingCount: recordingResponse.recording.count
))

 

3. 상태 업데이트 및 뷰에 반영

state.viewModels = State.viewModels(
    todoCount: todoCount,
    memoCount: memoCount,
    recordingCount: recordingCount
)

 

viewModels에 값을 할당하면, Swift의 Combine을 통해 자동으로 ViewController에 바인딩되어 UI가 업데이트됩니다.

todoCount.text = "\(viewModel.state.viewModels.todoCount)"
memoCount.text = "\(viewModel.state.viewModels.memoCount)"
recordingCount.text = "\(viewModel.state.viewModels.recordingCount)"

 

참 쉽죠? 😎

파이어스토어에서 데이터 병렬로 받아오고, Combine으로 바인딩하고, UILabel에 쓱쓱 넣으면 끝!


🧩 마무리

오늘은 간단히 앱의 설정 탭에 대해서 간단히 리뷰해보았습니다. 다음 포스팅에는 SwiftUI버전으로 다시 구현해보는 과정을 
공유드릴 예정입니다.!

 

📌 전체 코드가 궁금하신 분들은 GitHub 저장소를 참고해주세요:

👉 🔗 GitHub 저장소 바로가기

 

GitHub - woolnd/UIKit_MyTodo

Contribute to woolnd/UIKit_MyTodo development by creating an account on GitHub.

github.com

 

앞으로도 꾸준히 기록하며 성장하는 개발자가 되기 위해 달려보겠습니다! 🚀

읽어주셔서 감사합니다 😊

'iOS 개발 > UIKit' 카테고리의 다른 글

[UIKit] Timer 기능 리뷰 (Feat. 나만의 Todo)  (0) 2025.05.16
[UIKit] 녹음 기능 리뷰 (Feat. 나만의 Todo)  (0) 2025.05.12
[UIKit] 메모 기능 구현 리뷰 (Feat. 나만의 Todo)  (1) 2025.05.09
[UIKit] Todo 기능 구현 리뷰 (Feat. 나만의 Todo)  (0) 2025.05.07
[UIKit] Launch & Onboarding 화면 구현 리뷰 (Feat. 음성메모앱)  (2) 2025.05.05
'iOS 개발/UIKit' 카테고리의 다른 글
  • [UIKit] Timer 기능 리뷰 (Feat. 나만의 Todo)
  • [UIKit] 녹음 기능 리뷰 (Feat. 나만의 Todo)
  • [UIKit] 메모 기능 구현 리뷰 (Feat. 나만의 Todo)
  • [UIKit] Todo 기능 구현 리뷰 (Feat. 나만의 Todo)
Riu
Riu
안녕하세요 iOS 개발자를 꿈꾸는 Riu입니다. Github: woolnd
  • Riu
    Riu 개발노트
    Riu
  • 전체
    오늘
    어제
    • 분류 전체보기 (27) N
      • 티스토리 (2)
      • iOS 개발 (21) N
        • SwiftUI (9)
        • UIKit (6)
        • Combine (5)
        • Architecture (1) N
      • 알고리즘 (1)
      • 회고록 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • Github
  • 공지사항

  • 인기 글

  • 태그

    figma
    티스토리
    ios개발
    안드로이드
    시작
    Combine
    알고리즘
    ios
    SWIFT
    막자알림서비스
    SWIF
    cleanArchitecture
    구름톤유니브
    UIKit
    앗차!
    나만의todo
    SwiftUI
    Architecture
    회고록
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
Riu
[UIKit] 설정 탭 리뷰 (Feat. 나만의 Todo)
상단으로

티스토리툴바