Skip to content

kumgold/blind-clone-flutter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

96 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Blind Clone

Blind Clone์€ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๋ธ”๋ผ์ธ๋“œ ์ปค๋ฎค๋‹ˆํ‹ฐ ์„œ๋น„์Šค๋ฅผ ํด๋ก  ์ฝ”๋”ฉํ•œ ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค.
Firebase Realtime Database๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๊ฒŒ์‹œ๊ธ€, ์Šคํ† ๋ฆฌ CRUD ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ–ˆ์œผ๋ฉฐ, ์ผ๋ถ€ ํ™”๋ฉด์€ Dummy Data๋ฅผ ํ™œ์šฉํ•ด UI๋ฅผ ๊ตฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“– ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ

  • ์ปค๋ฎค๋‹ˆํ‹ฐ ์„œ๋น„์Šค ๊ตฌ์กฐ ํ•™์Šต์„ ๋ชฉ์ ์œผ๋กœ ๋ธ”๋ผ์ธ๋“œ๋ฅผ ํด๋ก  ๊ฐœ๋ฐœ
  • Firebase Realtime Database๋ฅผ ํ†ตํ•œ ๊ฒŒ์‹œ๊ธ€ ๋ฐ ์Šคํ† ๋ฆฌ CRUD ๊ตฌํ˜„
  • ์ผ๋ถ€ ํ™”๋ฉด์€ Dummy Data๋ฅผ ํ™œ์šฉํ•˜์—ฌ UI/UX ์œ„์ฃผ๋กœ ๊ตฌ์„ฑ
  • ๊ฐœ๋ฐœ์ž ๊ด€์ ์—์„œ ์‹ค์ œ ์„œ๋น„์Šค์˜ ๋™์ž‘ ์›๋ฆฌ์™€ ๋ฐ์ดํ„ฐ ํ๋ฆ„ ์ดํ•ด๋„๋ฅผ ๋†’์ด๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ์ง„ํ–‰

๐Ÿ›  ๊ธฐ์ˆ  ์Šคํƒ

Category Technology
Framework Flutter
Language Dart
State Management Bloc (Business Logic Component)
Dependency Injection Provider (Repository Injection)
Backend / DB Firebase Realtime Database
Image Loader image_picker

โœจ ์ฃผ์š” ๊ธฐ๋Šฅ (Key Features)

1. ๊ฒŒ์‹œ๊ธ€ & ์Šคํ† ๋ฆฌ CRUD (Firebase)

  • ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™”: Firebase Realtime Database๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๊ฒŒ์‹œ๊ธ€๊ณผ ์Šคํ† ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ์ฆ‰์‹œ ํ”ผ๋“œ(Feed)์— ๋ฐ˜์˜๋ฉ๋‹ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ: ๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ, ์ˆ˜์ •, ์‚ญ์ œ ๊ธฐ๋Šฅ์„ ์™„๋ฒฝํ•˜๊ฒŒ ๊ตฌํ˜„ํ•˜์—ฌ ๋™์ ์ธ ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

2. ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๋ฐ์ดํ„ฐ ์šด์šฉ

  • ํ•ต์‹ฌ ๊ธฐ๋Šฅ: ๊ฒŒ์‹œ๊ธ€, ์Šคํ† ๋ฆฌ ๋“ฑ ์œ ์ € ์ƒํ˜ธ์ž‘์šฉ์ด ํ•„์š”ํ•œ ๋ถ€๋ถ„์€ ์‹ค์ œ ์„œ๋ฒ„(Firebase)์™€ ํ†ต์‹ ํ•ฉ๋‹ˆ๋‹ค.
  • UI ํ”„๋กœํ† ํƒ€์ดํ•‘: ์„ค์ • ํ™”๋ฉด์ด๋‚˜ ์ •์ ์ธ ์ •๋ณด ํ™”๋ฉด์€ Dummy Data๋ฅผ ํšจ์œจ์ ์œผ๋กœ ํ™œ์šฉํ•˜์—ฌ ์™„์„ฑ๋„ ๋†’์€ UI/UX๋ฅผ ๊ตฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

3. ์Šคํ† ๋ฆฌ ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ

  • ๋ฏธ๋””์–ด ์ฒ˜๋ฆฌ: ๋””๋ฐ”์ด์Šค ๊ฐค๋Ÿฌ๋ฆฌ ์ ‘๊ทผ ๊ถŒํ•œ์„ ๊ด€๋ฆฌํ•˜๊ณ , ์ด๋ฏธ์ง€๋ฅผ ์„ ํƒํ•˜์—ฌ ์Šคํ† ๋ฆฌ์— ์—…๋กœ๋“œํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.

4. ๋””์ž์ธ ์ตœ์ ํ™”

  • LLM ํ™œ์šฉ: ์ผ๋ถ€ UI ์ปดํฌ๋„ŒํŠธ ๋””์ž์ธ ๋ฐ ๋ ˆ์ด์•„์›ƒ ๊ตฌ์„ฑ ๋‹จ๊ณ„์—์„œ ์ƒ์„ฑํ˜• AI๋ฅผ ๋ณด์กฐ ๋„๊ตฌ๋กœ ํ™œ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœ ์ƒ์‚ฐ์„ฑ์„ ๋†’์ด๊ณ  ๋””์ž์ธ ๋””ํ…Œ์ผ์„ ์ฑ™๊ฒผ์Šต๋‹ˆ๋‹ค.

๐Ÿž๏ธ ํ™”๋ฉด

๐Ÿ“Š ์‹œ์Šคํ…œ ๊ตฌ์กฐ

  • Firebase Realtime Database
    • ํ™ˆ ํ™”๋ฉด ๋ฐ์ดํ„ฐ๋Š” ๋ชจ๋‘ Firebase API ํ˜ธ์ถœ์„ ํ†ตํ•ด ๊ฐ€์ ธ์˜ด
    • Post & Story ๋ฐ์ดํ„ฐ CRUD ์ง€์›
  • Dummy Data ํ™œ์šฉ
    • ์ผ๋ถ€ ํ™”๋ฉด(UI ์ „์šฉ)์€ Dummy Data๋กœ ๊ตฌ์„ฑํ•˜์—ฌ ํ”„๋กœํ† ํƒ€์ž… ์™„์„ฑ
flowchart TD
    A[Firebase] --> B[Post, Story]
    B --> C[Home Screen]

    D[Dummy Data] --> E[Other Screen]
Loading

๐Ÿ‘€ ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•œ ์ด์Šˆ

1. ํด๋ผ์šฐ๋“œ ์Šคํ† ๋ฆฌ์ง€ ๋น„์šฉ ๋ฌธ์ œ์™€ ๋กœ์ปฌ ์ €์žฅ์†Œ ์ „ํ™˜

  • ๋ฌธ์ œ ์ƒํ™ฉ: ์ดˆ๊ธฐ ๊ธฐํš ๋‹จ๊ณ„์—์„œ๋Š” ์Šคํ† ๋ฆฌ ๊ธฐ๋Šฅ์„ ์œ„ํ•ด Firebase Storage์— ์ด๋ฏธ์ง€๋ฅผ ์—…๋กœ๋“œํ•˜๊ณ  ๋‹ค์šด๋กœ๋“œ URL์„ ๋ฐ›์•„์˜ค๋Š” ๋ฐฉ์‹์„ ๊ณ ๋ คํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ฐœ์ธ ํ•™์Šต์šฉ ํ”„๋กœ์ ํŠธ ํŠน์„ฑ์ƒ ํด๋ผ์šฐ๋“œ ์Šคํ† ๋ฆฌ์ง€์˜ ๊ณผ๊ธˆ ๋ฌธ์ œ ๋ฐ ํŠธ๋ž˜ํ”ฝ ์ œํ•œ์ด ์šฐ๋ ค๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•: ์„œ๋ฒ„ ์—…๋กœ๋“œ ๋ฐฉ์‹ ๋Œ€์‹  **๋‚ด๋ถ€ ์ €์žฅ์†Œ(Local Storage)**๋ฅผ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์„ค๊ณ„๋ฅผ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค. image_picker๋ฅผ ํ†ตํ•ด ๊ฐ€์ ธ์˜จ ์ด๋ฏธ์ง€์˜ ๋กœ์ปฌ ๊ฒฝ๋กœ(Path)๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•˜๊ณ , ์•ฑ ๋‚ด๋ถ€์—์„œ ํ•ด๋‹น ๊ฒฝ๋กœ๋ฅผ ์ฐธ์กฐํ•˜์—ฌ ์ด๋ฏธ์ง€๋ฅผ ๋ Œ๋”๋งํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ•˜์—ฌ ๋น„์šฉ ๋ฌธ์ œ ์—†์ด ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ ๊ธฐ๋Šฅ์„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ–ˆ์Šต๋‹ˆ๋‹ค. (โ€ป ํ–ฅํ›„ ๋ฐฐํฌ ๋‹จ๊ณ„์—์„œ๋Š” AWS S3 ๋˜๋Š” Firebase Storage๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํ•  ์ˆ˜ ์žˆ๋„๋ก Repository ํŒจํ„ด์œผ๋กœ ๋กœ์ง์„ ๋ถ„๋ฆฌํ•ด ๋‘์—ˆ์Šต๋‹ˆ๋‹ค.)

๐ŸŽฏ ํ–ฅํ›„ ๊ณ„ํš (Future Plans)

  • Firebase Authentication: ์ด๋ฉ”์ผ/ํšŒ์‚ฌ ์ธ์ฆ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„.
  • Storage ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜: ๋กœ์ปฌ ๊ฒฝ๋กœ ์ €์žฅ ๋ฐฉ์‹์„ ์‹ค์ œ ํด๋ผ์šฐ๋“œ ์Šคํ† ๋ฆฌ์ง€ ์—…๋กœ๋“œ ๋ฐฉ์‹์œผ๋กœ ์ „ํ™˜.
  • ๋Œ“๊ธ€/๋Œ€๋Œ“๊ธ€ ๊ธฐ๋Šฅ: ๊ฒŒ์‹œ๊ธ€์— ๋Œ€ํ•œ ์‹ฌ๋„ ์žˆ๋Š” ์ƒํ˜ธ์ž‘์šฉ ๊ธฐ๋Šฅ ์ถ”๊ฐ€.

About

๐Ÿ“ Blind clone built with Flutter. This project uses the Material library for UI design and integrates Firebase as the external database.

Resources

Stars

Watchers

Forks

Contributors

Languages