Skip to content

wooryeol/compose_base

Repository files navigation

Compose MVVM Sample

Android 채용 공고를 보다 보니 Compose와 MVVM 경험을 요구하는 경우가 많았습니다. 강의만 듣고 넘어가기보다 직접 한번 만들어보자는 생각으로 시작한 학습용 프로젝트입니다.


프로젝트 한 줄 소개

외부 API에서 고양이 fact를 가져와 화면에 보여주는 간단한 Android 앱입니다.

Compose와 MVVM을 강의로만 접하는 것이 아니라, 직접 부딪혀보며 익혀보기 위해 만들었습니다.

프로젝트 개요

기존에는 XML 기반 개발 경험이 더 많았고, Compose는 간단한 예제만 따라 해본 정도였습니다.

마침 채용 공고에서 Compose와 MVVM 경험을 자주 요구하는 것을 보면서,

"강의만 듣고 끝내지 말고, 직접 한번 만들어보자."

라는 생각으로 이 프로젝트를 시작했습니다.

기능은 단순합니다. 버튼을 누르면 외부 API에서 고양이 fact를 가져와 화면에 보여주는 것이 전부입니다.

대신 이 작은 기능 안에 실제 프로젝트에서 자주 사용하는 흐름을 직접 넣어봤습니다.

  • Compose와 StateFlow를 이용한 상태 관리
  • ViewModel과 Repository의 역할 분리
  • Hilt를 활용한 의존성 주입
  • Retrofit 기반 API 호출 및 결과 처리

거창한 서비스를 만드는 것보다, 요즘 Android 개발에서 자주 보이는 구조를 직접 손으로 익혀보는 것에 더 의미를 두었습니다.

프로젝트 화면

  • MainScreen (app/src/main/java/com/example/compose_mvvm/ui/main/MainScreen.kt)

    초기 상태 결과 상태
    초기 화면 결과 화면

    버튼을 누르면 API를 호출해 고양이 fact를 가져오고, 로딩 상태와 결과/에러 상태를 화면에 그대로 반영합니다.

기술 스택

기술 사용 목적
Kotlin 안드로이드 앱 개발 언어
Jetpack Compose 선언형 UI 구현
MVVM UI - 상태 - 데이터 레이어 분리
Coroutine · StateFlow 비동기 API 호출 및 UI 상태 관리
Hilt 의존성 주입 (Repository, Retrofit 등)
Retrofit / OkHttp 외부 REST API(catfact.ninja) 통신

배운 점

  • Compose를 사용해보며 화면을 그리는 것보다 상태가 어떻게 흘러가는지를 이해하는 것이 더 중요하다는 것을 느꼈습니다.
  • 작은 기능이라도 직접 만들어보니 강의만 볼 때보다 기술을 훨씬 빠르게 익힐 수 있었습니다.
  • 강의에서는 당연하게 보였던 ViewModel과 Repository의 역할 분리를 직접 구현해보며, 왜 이런 구조를 사용하는지 조금 더 체감할 수 있었습니다.
  • 새로운 기술이 필요할 때 막연히 공부하기보다, 작은 프로젝트를 만들어 직접 부딪혀보는 방식이 저에게 더 잘 맞는다는 것을 알게 되었습니다.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages