MyWayλ λ¨μν μ°μ± κΈ°λ‘ μ±μ λμ΄, λΉμ μ λ°μμ·¨λ₯Ό μμ λ‘ λ§λλ νΉλ³ν κ²½νμ μ 곡ν©λλ€. Flutterλ‘ κ°λ°λ μ΄ μ±μ ν΅ν΄ μ¬μ©μλ μμ μ μ°μ± κ²½λ‘λ₯Ό κΈ°λ‘νκ³ , κ·Έ κ²½λ‘λ₯Ό κΈ°λ°μΌλ‘ μΈμμ νλλΏμΈ λμ§νΈ μνΈλ₯Ό μμ±ν μ μμ΅λλ€. λͺ¨λ μ°μ± μ΄ λΉμ λ§μ μλ‘μ΄ μμ μνμ΄ λ©λλ€.
-
π¨ κ²½λ‘ μνΈ μμ± (Path-to-Art)
- κΈ°λ‘λ μ°μ± κ²½λ‘(λμ )λ₯Ό κΈ°λ°μΌλ‘ μλ¦λ€μ΄ μΆμν λλ λΌμΈ μνΈλ₯Ό μμ±ν©λλ€.
- κ°μ κΈΈμ κ±Έμ΄λ λ§€λ² λ€λ₯Έ μ€νμΌμ μνΈκ° λ§λ€μ΄μ Έ μλ‘μ΄ μ¦κ±°μμ μ μ¬ν©λλ€.
-
π°οΈ GPS κΈ°λ° μ°μ± κΈ°λ‘
- μ€μκ°μΌλ‘ μ¬μ©μμ μμΉλ₯Ό μΆμ νμ¬ κ±°λ¦¬, μκ°, κ±Έμ μ, κ²½λ‘ λ±μ μ ννκ² κΈ°λ‘ν©λλ€.
- μ°μ± μ€ μ μ λ©μΆκ±°λ λ€μ μμνλ λ± λ€μν μν©μ μμ½κ² μ μ΄ν μ μμ΅λλ€.
-
π€ λ μ¨ λ° λκΈ°μ§ μ 보 μ 곡
- μ°μ± μ κΈ°μμ² λ° μμ΄μ½λ¦¬μ APIλ₯Ό ν΅ν΄ λ μ¨, κ°μνλ₯ , λ―ΈμΈλ¨Όμ§(PM10), μ΄λ―ΈμΈλ¨Όμ§(PM2.5) μ 보λ₯Ό μ 곡ν©λλ€.
-
ποΈ κ³΅μ μ 보 λ° μΆμ² μ½μ€
- μ¬μ©μ μ£Όλ³μ 곡μμ μ°Ύμμ£Όκ³ , 거리 λ° μμΈ μ 보λ₯Ό μ 곡ν©λλ€.
- λ€μν ν λ§μ μΆμ² μ°μ± μ½μ€λ₯Ό ν΅ν΄ μλ‘μ΄ μ°μ± κ²½νμ μ λν©λλ€.
-
πΌοΈ κ°€λ¬λ¦¬ λ° νλ κ΄λ¦¬
- κ³Όκ±°μ μ°μ± κΈ°λ‘κ³Ό μμ±λ κ²½λ‘ μνΈλ₯Ό κ°€λ¬λ¦¬ ννλ‘ λͺ¨μλ³΄κ³ κ΄λ¦¬ν μ μμ΅λλ€.
- λ μ§, μ₯μλ³λ‘ νλμ νν°λ§νμ¬ μ°Ύμλ³Ό μ μμ΅λλ€.
-
β€οΈ μ¦κ²¨μ°ΎκΈ° κΈ°λ₯
- λ§μμ λλ 곡μμ΄λ μ½μ€λ₯Ό 'μ°'νμ¬ μΈμ λ μ§ μ½κ² λ€μ μ°Ύμλ³Ό μ μμ΅λλ€.
| λΆλ₯ | μ¬μ© κΈ°μ |
|---|---|
| κ°λ° μΈμ΄ | Flutter (Dart) |
| μν κ΄λ¦¬ | Provider (ChangeNotifier) |
| μ§λ/μμΉ | Google Maps API, Location ν¨ν€μ§ λ± |
| λ°±μλ | Firebase Authentication, Firestore, Storage |
| μΈλΆ API | κΈ°μμ² λ¨κΈ°μ보 API, μμ΄μ½λ¦¬μ API, 곡μ API |
| κΈ°ν | HTTP μμ², JSON νμ±, μ¬μ©μ 컀μ€ν μμ ― λ± |
lib/
βββ π₯οΈ screen/ βΆ μ£Όμ UI νλ©΄ ꡬμ±
β βββ home/ βΆ ν νλ©΄
β βββ map/ βΆ μ§λ λ° μ°μ±
κ²½λ‘ νμ
β βββ result/ βΆ μ°μ±
κΈ°λ‘ κ²°κ³Ό νλ©΄
β βββ login/ βΆ λ‘κ·ΈμΈ/νμκ°μ
νλ©΄
β βββ setting/ βΆ μ€μ νλ©΄
β βββ notice/ ⢠곡μ§μ¬ν νλ©΄
β
βββ π¦ model/ βΆ λ°μ΄ν° λͺ¨λΈ - park, step, user λ± λλ©μΈ ν΄λμ€
β
βββ π‘ provider/ βΆ μν κ΄λ¦¬ (Provider κΈ°λ°) - μ§λ, μ μ , λ μ¨, μ°μ±
λ±
β
βββ π services/ βΆ μΈλΆ API μ°λ - 곡μ, λ μ¨, λκΈ°μ§ λ±
β
βββ π¨ const/ βΆ κ³΅ν΅ μμ, μ€νμΌ, κ³΅μ© μμ ―
β
βββ π main.dart βΆ μ± μμμ
| ννλ©΄ | μ°μ± μμ | μ 체λ©λ΄ |
|---|---|---|
![]() |
![]() |
![]() |
| λ μ¨νμ΄μ§ | λμ μ½μ€ | μ£Όκ° κΈ°λ‘ | μκ° κΈ°λ‘ |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
| μΆμ² μ½μ€ | λ΄ μ£Όλ³ κ³΅μ |
|---|---|
![]() |
![]() |
| μ°μ± μμ | μΆμ²μ½μ€ μ°μ± μμ | μ°μ± μ μ₯ | μ°μ± μ’ λ£ | ννλ©΄ λ μ¨ λ²νΌ |
|---|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
- μΉκ΅¬μ 곡λ μνΈμν¬
- μ°μ± μ½ν μΈ λ€μν
- μ°μ± μ±λ¦°μ§ λ° λ°°μ§ μμ€ν λμ
- μ€λ§νΈμμΉ κΈ°κΈ° μ°λ (Galaxy Watch, Apple Watch)
π νκ³ λ‘
μ²μμλ κ°μμ κ°λ° μ€νμΌκ³Ό μλκ° λ¬λΌ μ½λ ν΅ν©μ μΆ©λμ΄ μ¦μκ³ , μΆ©λμ μ§μ ν΄κ²°νλ©΄μ μ΄λ €μμ κ²ͺκΈ°λ νμ΅λλ€. νμ§λ§ λ¨μν λ¬Έμ λ₯Ό νΌμ ν΄κ²°ν기보λ€, μλ‘μ μ½λλ₯Ό κ°μ΄ λ³΄κ³ μν΅νλ©° λ§μΆ°λκ°μ΅λλ€. λ€λ₯Έ μ¬λμ μ½λλ₯Ό μ½κ³ μ΄ν΄ν λ€ λ¦¬ν©ν λ§νλ κ³Όμ μ μ λ μ½μ§ μμμ§λ§, λ μ’μ κ²°κ³Όλ₯Ό μν΄ ν¨κ» κ³ λ―Όνκ³ ν©μμ μ μ°ΎμΌλ € λ Έλ ₯ν κ²½ν μμ²΄κ° μλ―Έ μμμ΅λλ€. 무μλ³΄λ€ μ μ견μ κ· κΈ°μΈμ΄κ³ μ λ°λΌμ μ€ λλΆμ, νμ₯μΌλ‘μ λ§μ΄ λ°°μΈ μ μμκ³ , μ μ μΌν, μ€λ₯Έν, (κΈ°μλ μ΄λμΌ..?)λ€μκ²λ κ°μ¬ν©λλ€.
π νκ³ λ‘
μ²μ κΈ°ννλ μμ΄λμ΄λ νλ½νμ§λ§, κ·Έ κ³Όμ μ μ‘λ μΌμ λ³΄λ€ μμ‘°λ‘κ² μλ‘μ΄ μμ΄λμ΄λ‘ μ ννμ¬ μ±μ κΈ°ννκ³ μ μν μ μμμ΅λλ€. μ΄λ² νλ‘μ νΈμμλ μ΄μ μ ꡬννμ§ λͺ»νλ λ€μν κΈ°λ₯λ€μ μλν΄λ³Ό μ μμκ³ , κ°λ° μ€ μ΄ν΄κ° μ΄λ €μ΄ λΆλΆμ μΈν°λ· κ²μκ³Ό AI λꡬλ₯Ό νμ©ν΄ ν΄κ²°νμ΅λλ€. νΉν, λ¬Έμ λ₯Ό μ΄ν΄νκ³ μ§μ ν΄κ²°ν΄λκ°λ κ³Όμ μμ κ°μ₯ λ§μ μκ°μ ν¬μνμ§λ§, κ·Έλ§νΌ ν° μ±μ₯λ μμμ΅λλ€. Gitμ νμ©νμ¬ κΈ°λ₯λ³λ‘ λΈλμΉλ₯Ό λλκ³ κ΄λ¦¬νλ λ°©λ²μ μ΅νκ² λμκ³ , κΈ°νκ³Ό UI/UX λ¨κ³μμλ λ€μν νΌλλ°±μ ν΅ν΄ λ§μ κ²μ λ°°μ°λ©° λ°μ ν μ μμμ΅λλ€. νλ‘μ νΈ μ€κ°μ μμ κ°λ±μ΄ μκΈ°λ νμ§λ§, κ°μ μ μΌλ‘ λμνμ§ μκ³ μλ‘ λ°°λ €νλ©° νλ ₯ν΄μ€ 1μ‘° νμλ€μκ² μ§μ¬μΌλ‘ κ°μ¬λ립λλ€.
π νκ³ λ‘
_μ΄λ² νλ‘μ νΈλ₯Ό ν΅ν΄ κΈ°λ₯ ꡬνλΏ μλλΌ, μ¬μ©μ κ²½νμ κ³ λ €ν μ€κ³μ ꡬ쑰μ μ€μμ±μ λ°°μΈ μ μμμ΅λλ€. νμ κ³Όμ μμλ Git λΈλμΉ μ λ΅κ³Ό μ½λ 리뷰λ₯Ό ν΅ν΄ μν΅κ³Ό λ²μ κ΄λ¦¬λ₯Ό 체κ³νν μ μμκ³ , μ€μ μ¬μ©μ κ΄μ μμ μκ°νλ μ΅κ΄μ΄ κ°λ°μ μλμ ν° μν₯μ μ€λ€λ κ²μ λκΌμ΅λλ€.
μ¬μ§
π νκ³ λ‘
νκ³ λ₯Ό μμ±ν΄μ£ΌμΈμ... βοΈ














