4
4
[ ![ Hits] ( https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2Fboostcampwm-2022%2Fandroid05-MoGakRun&count_bg=%239CBF87&title_bg=%23555555&icon=&icon_color=%23E7E7E7&title=hits&edge_flat=false )] ( https://hits.seeyoufarm.com )
5
5
6
6
7
+
7
8
# MoGakRun
8
9
<img height =" 250 " src =" https://user-images.githubusercontent.com/65655825/204984450-cd7aa396-edd6-4d6c-9a72-3ac9253e9675.png " ></img >
9
- > ** _ 모여서 각자 달려 볼까?~ 🏃♂️🏃♀️, MoGakRun_ ** <br /><br />
10
+ > ** _ 모여서 각자 달려 볼까?~ 🏃♂️🏃♀️ with MoGakRun_ ** <br /><br />
10
11
> ** 개발기간: 2021.11.07 ~ 2021.12.16**
11
12
12
13
<br />
17
18
18
19
__ 모각런__ 은 친구들과 함께 러닝 그룹을 형성하고 규칙에 맞춰
19
20
20
- ** 각자 ** 러닝을 즐길 수 있게 도와주는 당신의 러닝메이트입니다.
21
+ __ 모여서 각자 러닝 __ 을 즐길 수 있게 도와주는 당신의 러닝메이트입니다.
21
22
22
23
<br />
23
24
24
- ## 🌳 이거 왜 안돼로이더(Whyranoid) 🌳
25
+ ## 😎 이거 왜 안돼로이더(Whyranoid)
25
26
26
- | K022 소병희| S023 신승민| K046 전현수| K051 주용한|
27
+ | K022 소병희| K023 신승민| K046 전현수| K051 주용한|
27
28
| :-:| :-:| :-:| :-:|
28
29
| <img src =" https://user-images.githubusercontent.com/65655825/204984450-cd7aa396-edd6-4d6c-9a72-3ac9253e9675.png " width =200 style =" border-radius :100% " >| <img src =" https://user-images.githubusercontent.com/65655825/204984450-cd7aa396-edd6-4d6c-9a72-3ac9253e9675.png " width =200 style =" border-radius :100% " >| <img src =" https://user-images.githubusercontent.com/65655825/204988296-fc8e10b8-aabf-485c-9c6a-73346c09910a.jpg " width =200 style =" border-radius :100% " >| <img src =" https://user-images.githubusercontent.com/65655825/204987646-91eb987b-1a66-4f39-b4f4-0aae6a2b9368.png " width =200 style =" border-radius :100% " >|
29
30
| [ @bngsh ] ( https://github.com/bngsh ) | [ @Seungmin-develop ] ( https://github.com/Seungmin-develop ) | [ @soopeach ] ( https://github.com/devjungwonlee ) | [ @yonghanJu ] ( https://github.com/yonghanJu ) |
30
31
31
32
32
33
<br />
33
34
34
- ## ⚙️ 개발환경 및 라이브러리
35
+ ## ⚙️ 개발환경 및 라이브러리
35
36
36
37
<p align =" center " >
37
38
<img src =" https://img.shields.io/badge/Kotlin-1.9.0-yellowgreen?logo=kotlin " />
@@ -42,18 +43,81 @@ __모각런__ 은 친구들과 함께 러닝 그룹을 형성하고 규칙에
42
43
43
44
| Purpose | Library |
44
45
| ------------------------------------------------------------ | ------------------------------------------------------- |
45
- | 백그라운드 작업 | Jetpack Work Manager |
46
- | 비동기 작업 | Flow, Shared Flow, State Flow, Coroutine |
47
- | 의존성 주입 | Hilt |
46
+ | Background Task | Jetpack Work Manager |
47
+ | Async Task | Flow, Shared Flow, State Flow, Coroutine |
48
+ | Dependecy Injection | Hilt |
48
49
| CI | GitAction |
49
- | 로깅 | Timber |
50
- | 페이징 | Paging3 |
51
- | 메모리 관리 | LeakCanary |
52
- | 데이터베이스 로컬 | Room, PreferenceDataStore |
53
- | 데이터베이스 서버 | Firebase FireStore Database, Firebase Storage |
50
+ | Logging | Timber |
51
+ | Paging | Paging3 |
52
+ | Memory Management | LeakCanary |
53
+ | Local Database | Room, PreferenceDataStore |
54
+ | Server Database | Firebase FireStore Database, Firebase Auth |
54
55
| Device | LocationServices, LocationManager, Broadcast Receiver |
55
- | Presentation | Material Design2, Jetpack Navigation, ViewPager2, Lottie, Glide, Shimmer, Naver Map, CalendarView |
56
+ | Presentation | Material Design2, Jetpack Navigation, ViewPager2, Lottie, Glide, Shimmer, NaverMap, Kizitonwose Calendar |
57
+
58
+ <br >
59
+
60
+ ## 📁 프로젝트 주요 기능
61
+
62
+ > 🔑 Google 계정을 통해 회원가입, 로그인을 할 수 있어요!
63
+
64
+ <img src =" https://user-images.githubusercontent.com/65655825/204984450-cd7aa396-edd6-4d6c-9a72-3ac9253e9675.png " width =30% ><img src =" https://user-images.githubusercontent.com/65655825/204984450-cd7aa396-edd6-4d6c-9a72-3ac9253e9675.png " width =30% >
65
+ <img src =" https://user-images.githubusercontent.com/65655825/204984450-cd7aa396-edd6-4d6c-9a72-3ac9253e9675.png " width =30% >
66
+
67
+ > 🏃 모각런과 함께 운동을 시작해 볼까요?!
68
+
69
+ <img src =" https://user-images.githubusercontent.com/65655825/204984450-cd7aa396-edd6-4d6c-9a72-3ac9253e9675.png " width =30% ><img src =" https://user-images.githubusercontent.com/65655825/204984450-cd7aa396-edd6-4d6c-9a72-3ac9253e9675.png " width =30% >
70
+ <img src =" https://user-images.githubusercontent.com/65655825/204984450-cd7aa396-edd6-4d6c-9a72-3ac9253e9675.png " width =30% >
71
+ <img src =" https://user-images.githubusercontent.com/65655825/204984450-cd7aa396-edd6-4d6c-9a72-3ac9253e9675.png " width =30% ><img src =" https://user-images.githubusercontent.com/65655825/204984450-cd7aa396-edd6-4d6c-9a72-3ac9253e9675.png " width =30% >
72
+ <img src =" https://user-images.githubusercontent.com/65655825/204984450-cd7aa396-edd6-4d6c-9a72-3ac9253e9675.png " width =30% >
73
+
74
+ > 👍 나의 운동 기록을 친구들에게 자랑해보세요!
75
+
76
+ <img src =" https://user-images.githubusercontent.com/65655825/204984450-cd7aa396-edd6-4d6c-9a72-3ac9253e9675.png " width =30% ><img src =" https://user-images.githubusercontent.com/65655825/204984450-cd7aa396-edd6-4d6c-9a72-3ac9253e9675.png " width =30% >
77
+ <img src =" https://user-images.githubusercontent.com/65655825/204984450-cd7aa396-edd6-4d6c-9a72-3ac9253e9675.png " width =30% >
78
+
79
+ > 🙌 그룹원들과 모여서 각자 달려보는건 어떨까요?
80
+
81
+ <img src =" https://user-images.githubusercontent.com/65655825/204984450-cd7aa396-edd6-4d6c-9a72-3ac9253e9675.png " width =23% ><img src =" https://user-images.githubusercontent.com/65655825/204984450-cd7aa396-edd6-4d6c-9a72-3ac9253e9675.png " width =23% >
82
+ <img src =" https://user-images.githubusercontent.com/65655825/204984450-cd7aa396-edd6-4d6c-9a72-3ac9253e9675.png " width =23% ><img src =" https://user-images.githubusercontent.com/65655825/204984450-cd7aa396-edd6-4d6c-9a72-3ac9253e9675.png " width =23% >
83
+
84
+ > 😊 나의 운동 기록들을 한눈에 살펴보아요
85
+
86
+ <img src =" https://user-images.githubusercontent.com/65655825/204984450-cd7aa396-edd6-4d6c-9a72-3ac9253e9675.png " width =30% ><img src =" https://user-images.githubusercontent.com/65655825/204984450-cd7aa396-edd6-4d6c-9a72-3ac9253e9675.png " width =30% >
87
+
88
+ <br />
89
+ <br />
90
+
91
+ ## 기술적 도전들
92
+
93
+ ### 캘린더를 원하는 형태로 커스텀하고 모듈 라이브러리화 시켜보기!
94
+
95
+ - 마이런 탭에서 캘린더 뷰를 통해 나의 운동 기록을 한 눈에 보여줍니다. 이때 캘린더에게 요했던 기능들을 커스텀하고 라이브러리화 및 배포를 통해 다른 프로젝트에서 재사용이 가능하도록 만들었습니다.
96
+
97
+ <br >
98
+
99
+ ### 엄격한 관심사 분리 및 재사용이 가능한 모듈화 분리
100
+
101
+ - 위 캘린더뷰와 비슷한 맥락으로 엄격한 관심사 분리를 통해 레이어별, 기능별 모듈을 분리해서 내부 프로젝트 또는 외부에서도 재사용이 가능한 모듈 분리를 위해 노력했습니다.
102
+
103
+ <br >
104
+
105
+ ### 웨어러블 디바이스와 연동
106
+ - 기능별 모듈을 분리하는 이유로는 웨어러블 디바이스에서의 재활용이 있습니다! 러닝 앱인 만큼 웨어러블 디바이스와의 연결을 지원하면 좋겠다고 생각을 했고 그러기 위해서는 공유 가능한 기능별 모듈 분리가 필수적이라고 생각했습니다!
107
+
108
+ <br >
109
+
110
+ ### 단방향 데이터 흐름을 만들기
111
+ - Firebase 제공해주는 여러 API들은 콜백 기반이며 이는 data, domain, presentation 레이어에 걸체 단방향 데이터 흐름을 만들기에 힘들고 따라서 가독성이 떨어지고 반응형 프로그래밍 작성이 힘들다고 생각했습니다. 이런 부분들을 개선하기 위해 suspend, flow를 활용해 단방형 데이터 흐름을 만들었습니다.
112
+
113
+ <br >
114
+
115
+ ### 배포, 유지 보수, Compose로 전환
116
+
117
+ - 부스트캠프는 "이거 왜 안돼로이더"의 여정의 끝이 아닌 시작입니다.
118
+ 프로젝트 배포와 유지보수를 목표로하고 있습니다.
119
+ 서브 브랜치를 통해 WearOS 지원을 위한 코드 분리와 일부 화면 Compose 마이그레이션이 진행 중입니다.
56
120
57
121
<br >
58
122
59
- ## 🌟 프로젝트 주요 기능
123
+ ** [ 이거 왜 안돼로이더의 개발일지 보러가기!! ] ( https://www.notion.so/6c16bd9841cd452587bf59f96adcaaa4 ) **
0 commit comments