Android/Jetpack Compose

Android App 개발기 feat. 이집내집

chattymin 2023. 7. 7. 00:04
728x90
반응형

Jetpack Compose 관련해서 한동안 글을 못썼다.

 

내가 글을 쓴 텀을 보면 대충 예상이 가겠지만 난 지금 대학생이다.

그래서 학기중엔 현생에 치여 살고... 방학에나 공부하는걸 정리하는 블로그다보니 한학기동안 글을 거의 못썼다.

 

그렇다고 Jetpack Compose를 공부를 하나도 안했냐 하면? 절대 아니지 ㅋㅋ

놀랍게도 지금까지 공부한걸 써먹기도 하고, 공부하며 어플을... 하나... 만들었다. 

 

우리학교에선 "심화 캡스톤"이라는 이름의 작업물 만드는 수업이 있다. 이건 4학년 1학기에 듣는 일종의 졸작 같은 개념이다. 그래서 이걸 연습이라고 해야할까 여튼 3학년 1학기에도 하는 수업이 "기초캡스톤"이다. 그래서 팀을 짜고 열심히 개발하느라고 블로그를 정리할 시간이 없었다. 그래도 결과물은 잘 나왔으니까 만족...

 

결과부터 말하자면 "이집내집"이라는 어플을 만들었고, PlayStore에 출시도 했다.

 

PlayStore에 올리는데 정말 많은 시행착오가 있었다. 구글로그인을 구현 다 했는데 예시 아이디를 주니까 자꾸 인증하라고 해서 반려된거다. 아오 짜증나... 그래서 걍 올릴때는 Guest로그인으로 올렸다. 깃허브에 올릴땐 구글 로그인 구현한걸로 올렸지만...

 

대충 기능은 이렇다. 내가 만들고싶은 인테리어를 설명후 검색하면 GPT로 그에 맞는 인테리어 설명으로 바꿔주고, DALL-E를 통해 그림으로 만들어 사용자에게 보여주는 그런 어플이다. 내가 만든걸 공유할 수도 있고, 다른사람이 만든걸 구경할 수도 있다. 다양한 태그들로 인테리어를 검색할 수도 있다.

 

어떻게든 얼레벌레 만들었는데 생각보다 이쁘게 나와서 만족스럽다. 그리고 구현하고자 했던 기능들을 전부 구현했다는 것도 행복하다. 그래도 내가 지금까지 공부한게 헛되진 않았구나 싶다. 물론 거의 혼자서 다 만들면서 화도 났긴 했지만...^^

 

지금까지 공부해온 Kotlin과 Jetpack Compose를 활용해서 어플을 만들었다는게 신기하면서도 뿌듯했다. 지금까지 배운 개념을 적용해서 만들어 보는게 처음이다보니 시행착오도 많았고, 협업으로 어플을 만드는것도 처음이라 힘들었다. 직접 만들다보니 모르는 것에 부딪히고 구글링과 지피티 교수님에게 물어보며 개발하다보니 솔직히 다 이해하고 작성한 코드는 아니다. 그냥 복붙하고 돌아가니까 오케이. 이러고 넘어간것도 많다. 그래서 이번 방학동안 내가 만든 어플을 뜯어보며 기능들을 정리하고, 이해해서 완전히 써먹을 수 있게 해보려고 한다.

 

1. Retrofit

: 이거는 HTTP 통신을 하기위해서 사용하는 친구다. 일단 써먹긴 했는데 작동원리를 정확하게 이해한게 아니라 다시 공부해보려고 한다.

 

2. Gson

: Google Json이라고 생각해도 된다. Json을 쉽게 쓰려고 만들어진 라이브러리다. 그래서 사용했는데 내 코드 다시보니까 안썼더라.... 그냥 써야지 해놓고는 손수 Json을 하나씩 파싱했다. 하하하... 공부하자

 

3. Navigation

: 아주 중요한 기능이다. 앱에서 화면을 넘어가고, 하단바를 통해서 다양한 목록에 접근하는것. 전부 이 기능을 활용한 것이다. 일단은 구현하는데는 성공했지만, 중첩을 하는법을 몰라 따로 두개를 쓰기도 했고 다 이해하지 못했다.

 

4. 다양한 remeber 값들

: 지금까지 mutablestate로 String, Boolean, Int 등등을 저장하는 용도로만 사용했는데 Array를 저장하기도 하고 다양한게 가능하더라. 확실히 숙지하면 어플을 만들때 편하고 편해질 것 같다

 

5. 사진 업로드

: 사진 업로드 기능이 있었다. 그런데 이건 시간이 부족해서 구현하지 못했다. 이것도 공부해서 구현하는게 목표.

 

6. MVVM 디자인 패턴

: 이번 프로젝트에서 가장 아쉬운 부분이다. 원래는 적용해서 개발하고 싶었지만 시간이 부족했다... 그래서 M은 분리했지만 VVM이 섞여있는 스파게티를 맛있게 만들어냈다. 공부하고 다음 프젝부터는 적용해보자.

 

7. 재사용성

: 딴에는 재사용하고자 이것저것 만들었는데 다시보니까 재사용성이 정말 별로다. 내가 재사용하겠다면서 만든 이런 저런 Composable들 내부에는 중복되는 코드 투성이고, 그로 인한 수정사항 반영이 힘들었다.

 

8. 파일 정리

: 코드를 작성하다보면 코드 줄 수가 상당히 많아진다. 내가 이번에 만든 코드만 해도 8000줄 ~ 10000줄 정도 됐다. 그렇다보니 파일정리는 필수다. 또 딴엔 정리했지만 규칙도 없고 막판엔 대충 만들고 해서 보기에 좋지 않다. 게다가 함수 분리를 제대로 하지 않고, 분리해도 위치를 이상하게 해둬서 똑같은 기능을 하는 함수를 여러개 만든적도 있다.  

 

 

이것들 다 공부하고 이해하고 블로그 정리하고.... 어우 막막하다. 그래도 방학때 열심히 해보자. 그럴려고 새 책상에 모니터에 마우스까지 장만했으니까. 아자자!

 

 

내가 만든 어플이 궁금하면 아래 링크를 들어가보면 될거다. 물론 서버비용이랑 API 비용이랑 해서 유지비가 너무 비싸서 기능을 막았다. playstore에 올린거에 만족하기로 했다.

https://play.google.com/store/apps/details?id=com.dongminpark.projectgd&hl=ko-KR 

 

이집내집 - Google Play 앱

상상속의 인테리어를 현실로! 내 손안의 인테리어 전문가 이집내집

play.google.com

https://github.com/EzipNaezip/gd-app

 

GitHub - EzipNaezip/gd-app: 이집내집 안드로이드 애플리케이션

이집내집 안드로이드 애플리케이션. Contribute to EzipNaezip/gd-app development by creating an account on GitHub.

github.com

 

728x90
반응형