Android/Application

BPM - 당신의 바디 프로필 매니저

jyotti 2023. 7. 3. 02:49

 

 

 

 

GitHub - jangjh123/bpm-android

Contribute to jangjh123/bpm-android development by creating an account on GitHub.

github.com

 <BPM>은 바디 프로필 촬영을 도와주는 앱입니다!

국내에서 선풍적인 인기를 끌고 있는 바디 프로필 촬영,

준비하기 어려웠던 분들이 많으실 거에요. 저희 BPM 이 도와드릴게요!

 

📷 ScreenShots

 


💻 Language

100% Kotlin

🏗 Architecture Pattern

MVI(Model-View-Intent) + Repository Pattern + CleanArchitecture + Modularization

🛠 Used Skill & Library

Jetpack Compose + Android View (XML)

for UI

Retrofit2

for Network Request

OkHttp3

for Network Interceptor

Coroutines + Kotlin Flow

for Asynchronous Job

Room

for Local Database

Dagger-Hilt

for Dependency Injection

Glide

for Image Loading

DataStore, SharedPreferences

for Storing Values

Paging 3

for List Pagination

📢 Role

강민석 (Backend)

구영회 (Android)

송지민 (Design)

장보듬 (Design)

장지호 (Android)


장장 6개월에 걸쳐 개발한 앱입니다. 현재 플레이스토어 심사 진행 중입니다.

DND 8기를 통해 만난 멤버들과 개발을 진행하였으며, 현재는 해당 프로젝트 고도화 및 팀 결성을 통한 지속적인 앱 개발 및 배포를 고려하고 있습니다.

 

해당 앱을 개발하면서 정말 많이 배웠는데요. 클린 아키텍처에 대한 제대로 된 이해와 MVI 아키텍처 및 Compose 와의 통합에 대한 진지한 고민을 할 수 있어 정말 즐거웠습니다. 

 

협업에 대해서도 많은 경험을 할 수 있었는데, 가장 좋았던 것은 큰 테크 팀에서 깃을 오래동안 사용해 본 동료로부터 배울 수 있는 깃 사용법이었습니다. 사실상 브랜치 나누고 커밋하고 머지하는 것이 전부였었는데, 이번 기회를 통해 더욱 다양한 방법으로 깃을 사용하게 되었어요.

 

너무나 즐거웠습니다. 유능한 동료들과 프로덕트를 개발하는 일이 이렇게 신나는 일임을 알게 되었습니다.

 

🙄 What I learned

  • DND 를 통해 IT 동아리를 처음 진행해보면서 협업이 주는 즐거움과 네트워킹의 중요성을 배웠습니다.
  • MVI Architecture 를 처음 동비해보면서 'Jetpack Compose 와 찰떡궁합인 아키텍처' 라는 것을 느끼게 되었습니다.
  • Clean Architecture 에 대해 자세히 알게 되었고, 왜 해당 아키텍처가 많은 이들에게 오랜 시간 사랑 받는지를 배웠습니다.
  • CoroutineExceptionHandler 를 처음 적용해보면서 Coroutine 을 안전하게 사용하는 방법을 알게 되었습니다.
  • Jetpack Compose 의 Android View 를 통해 Composable 이 없는 라이브러리를 Compose 환경에 적용하는 방법에 대해 알게 되었습니다.

 

이 외에도 여러 Compose 관련 지식을 학습할 수 있었고, 이에 관한 내용은 블로그에도 포스팅해 두었습니다.

 

 

[Jetpack Compose] Column 속 LazyColumn 의 OverScroll 을 막는 방법

Nested Scroll Jetpack Compose 에서는 자손 Composable 의 터치 및 스크롤 이벤트가 조상 Composable 로 전파됩니다. DND 8기로 활동하면서 개발 중인 앱에는 Column 내에 LazyColumn 이 포함되어 있는 형태의 화면이

blothhundr.tistory.com

 

[Jetpack Compose] LazyColumn, LazyRow 의 항목 삭제가 정상적으로 이루어지지 않는 이슈

개발 도중, 제목과 같은 이슈가 발생했습니다. 아래는 이해를 돕기 위한 영상입니다. 야키토리, 휘낭시에, 스시, 생고기 네 장의 사진을 불러왔고, 그 중 두 개의 사진을 삭제합니다. LazyList 의 ite

blothhundr.tistory.com

 

[Jetpack Compose] List 아이템의 필드 변경이 UI 업데이트를 트리거 해야 할 때

어떤 이슈가 있었나? List 내 원소의 필드를 직접 수정하여 UI 를 업데이트 하려 하였으나, 생각하는 대로 되지 않았습니다. 당연히, 해당 List의 객체가 이전의 객체와 같으므로 UI 업데이트가 진행

blothhundr.tistory.com