λ°©νμμ λ‘ κ·Έλ¦Ό μΌκΈ° κ·Έλ €μ μ μΆνλ κ² κΈ°μ΅νμλμ? draweeλ κ·Έλ¦Ό μΌκΈ°λ₯Ό 곡μ νλ SNS μ λλ€.
draweeλ μ¬μ©μκ° λ§€μΌ μ£Όμ΄μ§λ κ³΅ν΅ μ£Όμ μ λ°λΌ κ·Έλ¦Όκ³Ό κΈλ‘ κ°μΈμ μΈ κΈ°μ΅μ κΈ°λ‘νκ³ , μ΄λ₯Ό κΎΈλ―Έκ³ κ³΅μ ν μ μλ μμ λ€νΈμν¬ μλΉμ€μ λλ€. μ¬μ©μλ€μ μμ λ§μ μ°½μμ μΈ λ°©μμΌλ‘ μ΄μΌκΈ°λ₯Ό νμ΄λκ°λ©°, μλ‘μ κ·Έλ¦ΌμΌκΈ°μ μ’μμλ₯Ό 보λ΄κ±°λ, λκΈμ λ¨κΈ°λ λ±μ λ°©μμΌλ‘ κ΅λ₯ν μ μμ΅λλ€.
-
κ΅¬κΈ λ‘κ·ΈμΈ: κ΅¬κΈ κ³μ μΌλ‘ κ°νΈνκ² νμκ°μ λ° λ‘κ·ΈμΈμ ν μ μμ΅λλ€.
-
κ³΅ν΅ μ£Όμ μ 곡: λ§€μΌ μλ‘κ² μ 곡λλ μ£Όμ μ λ§μΆμ΄ κΈκ³Ό κ·Έλ¦Όμ μμ±ν μ μμ΅λλ€.
-
λ μ¨λ³ κ·Έλ¦ΌμΌκΈ°: μλ‘ λ€λ₯Έ μ μ κ° μμ±ν κ·Έλ¦ΌμΌκΈ°λ€ μ€ κ°μ λ μ¨λΌλ¦¬ λͺ¨μμ νμΈν΄ λ³Ό μ μμ΅λλ€.
-
μ£Όμ λ³ κ·Έλ¦ΌμΌκΈ°: λ§€μΌ μλ‘κ² μ 곡λλ μ£Όμ λΏλ§ μλλΌ, μμΉ΄μ΄λΉ λμ΄ μλ κΈ°μ‘΄ μ£Όμ λ³λ‘ κ·Έλ¦ΌμΌκΈ°λ₯Ό λͺ¨μ λ³Ό μ μμ΅λλ€. κ²μ κΈ°λ₯μ νμ©ν©λλ€.
-
κ·Έλ¦Ό κΎΈλ―ΈκΈ°: μ¬μ©μκ° μ§μ κ·Έλ¦° κ·Έλ¦Όμ λμ, νμΈν , μ΄λͺ¨μ§ μ€ν°μ»€ λ±λ±μ νμ©ν΄ κΎΈλ―ΈκΈ°κ° κ°λ₯ν©λλ€.
-
κΈ°λ‘ λ° κ³΅μ : μμ±λ κ·Έλ¦Ό μΌκΈ°λ₯Ό μ μ₯νκ³ λ€λ₯Έ μ¬μ©μλ€κ³Ό 곡μ ν μ μμ΅λλ€.
-
μμ λ€νΈμν¬ κΈ°λ₯: λ€λ₯Έ μ¬μ©μμ μνμ κ°μνκ³ , λκΈμ΄λ μ’μμλ₯Ό ν΅ν΄ μν΅ν μ μμ΅λλ€.
| Technologies | Tools |
|---|---|
| μΈμ΄ | |
| νλ μμν¬ | |
| λ°μ΄ν°λ² μ΄μ€ | |
| μλν° | |
| νμ | |
| μ£Όμ λΌμ΄λΈλ¬λ¦¬ |
(Click!)λλ ν 리 ꡬ쑰
βββ add_mock_data.dart # μ± κ΅¬λ ν
μ€νΈ μν κ°μ§ λ°μ΄ν° μμ±
βββ constant # μ± μ»¬λ¬ μ½λ λ±μ μ€μ
βΒ Β βββ colors.dart
βΒ Β βββ text_pattern.dart
βββ core # νμ΄μ΄λ² μ΄μ€ μ€μ
βΒ Β βββ utils
βΒ Β βββ firestore_utils.dart
βββ data # λ°μ΄ν°
βΒ Β βββ data_sources # data/data_sources
βΒ Β βΒ Β βββ algolia_subject_data_source.dart
βΒ Β βΒ Β βββ auth_data_source.dart
βΒ Β βΒ Β βββ firebase_auth_data_source.dart
βΒ Β βΒ Β βββ firebase_post_data_source.dart
βΒ Β βΒ Β βββ firebase_recommend_subject_data_source.dart
βΒ Β βΒ Β βββ firebase_user_data_source.dart
βΒ Β βΒ Β βββ post_data_source.dart
βΒ Β βΒ Β βββ recommend_subject_data_source.dart
βΒ Β βΒ Β βββ subject_data_source.dart
βΒ Β βΒ Β βββ user_data_source.dart
βΒ Β βββ dto # data/dto
βΒ Β βΒ Β βββ post_dto.dart
βΒ Β βΒ Β βββ recommend_subject_dto.dart
βΒ Β βΒ Β βββ subject_dto.dart
βΒ Β βΒ Β βββ user_dto.dart
βΒ Β βββ repositories # data/repositories
βΒ Β βββ auth_repository_impl.dart
βΒ Β βββ post_repository_impl.dart
βΒ Β βββ recommend_subject_repository_impl.dart
βΒ Β βββ subject_repository_impl.dart
βΒ Β βββ user_repository_impl.dart
βββ domain # λλ©μΈ
βΒ Β βββ entities # domain/entities
βΒ Β βΒ Β βββ post.dart
βΒ Β βΒ Β βββ recommend_subject.dart
βΒ Β βΒ Β βββ subject.dart
βΒ Β βΒ Β βββ user.dart
βΒ Β βββ repositories # domain/repositories
βΒ Β βΒ Β βββ auth_repository.dart
βΒ Β βΒ Β βββ post_repository.dart
βΒ Β βΒ Β βββ recommend_subject_repository.dart
βΒ Β βΒ Β βββ subject_repository.dart
βΒ Β βΒ Β βββ user_repository.dart
βΒ Β βββ usecases # domain/usecases
βΒ Β βββ auth # auth μ¬μ©μ μΈμ¦
βΒ Β βΒ Β βββ sign_in_google_usecase.dart
βΒ Β βββ post # post κ·Έλ¦ΌμΌκΈ° ν¬μ€νΈ
βΒ Β βΒ Β βββ create_post_usecase.dart
βΒ Β βΒ Β βββ delete_post_usecase.dart
βΒ Β βΒ Β βββ get_post_usecase.dart
βΒ Β βΒ Β βββ get_posts_by_subject_id_usecase.dart
βΒ Β βΒ Β βββ get_posts_by_user_id_usecase.dart
βΒ Β βΒ Β βββ get_posts_by_weather_usecase.dart
βΒ Β βΒ Β βββ get_posts_usecase.dart
βΒ Β βΒ Β βββ update_post_usecase.dart
βΒ Β βββ recommend_subject # μΆμ² μ£Όμ
βΒ Β βΒ Β βββ get_recommend_subject_usecase.dart
βΒ Β βββ subject # μ£Όμ κ΄λ ¨
βΒ Β βΒ Β βββ get_subject_usecase.dart
βΒ Β βΒ Β βββ get_subjects_usecase.dart
βΒ Β βββ user # μ μ κ΄λ ¨
βΒ Β βββ create_user_usecase.dart
βΒ Β βββ delete_user_usecase.dart
βΒ Β βββ get_user_usecase.dart
βΒ Β βββ update_user_usecase.dart
βββ firebase_options.dart
βββ main.dart
βββ presentation # νλ μ ν
μ΄μ
λ μ΄μ΄
βββ providers # νλ‘λ°μ΄λ λͺ¨μ
βΒ Β βββ auth_providers.dart
βΒ Β βββ post_providers.dart
βΒ Β βββ recommend_subject_providers.dart
βΒ Β βββ subject_providers.dart
βΒ Β βββ user_providers.dart
βββ ui # ui νλ©΄
βΒ Β βββ home # μ±μ 첫 μ§μ
μ , ννλ©΄
βΒ Β βΒ Β βββ home_page.dart
βΒ Β βΒ Β βββ widgets
βΒ Β βΒ Β βββ weather_box.dart
βΒ Β βββ layout
βΒ Β βΒ Β βββ main_layout.dart
βΒ Β βββ login # λ‘κ·ΈμΈ νλ©΄
βΒ Β βΒ Β βββ login_page.dart
βΒ Β βββ mypage # λ§μ΄νμ΄μ§
βΒ Β βΒ Β βββ mypage_page.dart
βΒ Β βββ register # νμ κ°μ
βΒ Β βΒ Β βββ register_page.dart
βΒ Β βββ splash # μ€νλμ¬ νλ©΄
βΒ Β βΒ Β βββ splash_page.dart
βΒ Β βββ subject_post # μ£Όμ λ³ λ λλ§
βΒ Β βΒ Β βββ subject_post_page.dart
βΒ Β βββ subject_search # μ£Όμ κ²μ
βΒ Β βΒ Β βββ subject_search_page.dart
βΒ Β βββ weather_post # λ μ¨λ³ λ λλ§
βΒ Β βΒ Β βββ weather_post_page.dart
βΒ Β βββ widgets
βΒ Β βΒ Β βββ post_card.dart
βΒ Β βββ write_post # κ·Έλ¦ΌμΌκΈ° μμ±
βΒ Β βββ widgets
βΒ Β βΒ Β βββ diary_input_field.dart
βΒ Β βΒ Β βββ hint_text.dart
βΒ Β βΒ Β βββ section_title.dart
βΒ Β βΒ Β βββ weather_button.dart
βΒ Β βββ write_post_page.dart
βΒ Β βββ write_post_view_model.dart
βββ viewmodels # λ·°λͺ¨λΈ λͺ¨μ
βββ auth_view_model.dart
βββ post_view_model.dart
βββ recommend_subject_view_model.dart
βββ subject_view_model.dart
βββ user_view_model.dart
$ git clone https://github.com/5GHS/drawee.git
$ cd drawee
$ flutter pub get
λ£¨νΈ λλ ν 리μμ .env νμΌ μμ± ν, μλ λ΄μ©μ λΆμ¬λ£κ³ κ°κ°μ κ°μ μ
λ ₯νμΈμ.
ALGOLIA_APP_ID=μ¬κΈ°μ IDλ₯Ό μ
λ ₯νμΈμ.
ALGOLIA_API_KEY=μ¬κΈ°μλ Key κ°μ μ
λ ₯νμΈμ.
νμ΄μ΄λ² μ΄μ€ νλ‘μ νΈλ₯Ό μμ±νκ³ , Firestoreλ₯Ό νμ±νν©λλ€. Storageλ νμν©λλ€.
- Firebase μ½μμμ
GoogleService-Info.plistλ₯Ό λ€μ΄λ°μμios/Runner/μλμ μΆκ°ν©λλ€. google-services.jsonνμΌμandroid/app/μλμ μΆκ°ν©λλ€.

