🔗 Link
Source
Project : https://github.com/agfalcon/lbs_newrun
📖 상세 내용
🛠️ 사용 기술 및 라이브러리
- Kotlin, Android
- Google Maps
- Retrofit2
- kizitonwose
- Firebase, Kakao SDK, Naver oauth
- Figma, Postman, GitHub
- Flask
- Stable Diffusion & Control Net
📱 담당한 기능(Android)
- Figma를 활용하여 앱 디자인
- 홈 화면 기능
- 달리기 기능
- Custom Calendar를 활용한 기록 기능
- 전체 API 통신
- 전체 아키텍처 설계
📱 담당한 기능(Stable Diffusion API)
- Control Net WEBUI 오픈소스를 API로 쓸 수 있게 변경
- Flask Server를 통한 이미지 생성 API 기능
그 외
- 데이터베이스 스키마 설계
💡 고민한 점
- 달리기 기능에서 백그라운드에서 지속적으로 gps 정보를 받아서 연산 처리가 필요하여 Service를 도입. Background Service의 생명주기에 대해 이해하였고, command에 따라 service의 동작을 제어하는 것을 경험함.
- Service에서 연산 처리한 데이터를 액티비티에서 활용할 필요가 있었음. 4대 컴포넌트 중 하나인 Broadcase Receiver의 동작에 대해 이해하고 이를 통해 서비스에서 다양한 액티비티와 통신할 수 있도록 구현.
- 달리기 데이터에 대한 처리를 위해 서버 담당자와 많은 고민을 함. 경로 데이터에 대한 처리를 DB에서 제공하는 공간 데이터 활용 및 안드로이드에서는 경로 좌표를 제공받지 않고 경로 이미지로 받아서 처리할 수 있도록 구현
- Stable Diffusion 모델이 너무 커서 클라우드 서버에 넣을 수 없는 문제 발생. Stable Diffusion 구동 웹 서버를 통해 이미지를 생성할 수 있도록 하고 이를 flask 서버에서 요청하고 앱으로 전달할 수 있도록 구현.