Giter Site home page Giter Site logo

finedustapp's Introduction

์˜์ง„์ด์˜ ๋ฏธ์„ธ๋จผ์ง€ ์ธก์ • ์–ดํ”Œ

Untitled

Google Play Link

ํ•ด๋‹น ๋งํฌ์—์„œ ์•ฑ์„ ๋‹ค์šด๋ฐ›์œผ์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Android Google Play Link

์‚ฌ์šฉ์ž

  • ํ‰์†Œ์— ์šฐ๋ฆฌ ๋™๋„ค ๋ฏธ์„ธ๋จผ์ง€ ์ˆ˜์น˜๋ฅผ ์•Œ๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ๋“ค
  • ํ˜ธํก๊ธฐ ์งˆํ™˜์ด ์žˆ์–ด ๋ฏธ์„ธ๋จผ์ง€ ์ˆ˜์น˜์— ์˜ˆ๋ฏผํ•œ ์‚ฌ๋žŒ

๊ธฐ๋Šฅ

๋ฏธ์„ธ๋จผ์ง€ ์ธก์ •๊ธฐ๋Šฅ

  • ํ˜„์žฌ ์œ„์น˜๋ฅผ ์ธก์ •ํ•˜์—ฌ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋Œ€๊ธฐ ์˜ค์—ผ ๊ด€์ธก์†Œ ์ •๋ณด๋ฅผ ๋ฐ›์•„์˜ต๋‹ˆ๋‹ค.
  • ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋Œ€๊ธฐ ์˜ค์—ผ ๊ด€์ธก์†Œ์˜ ๋ฏธ์„ธ๋จผ์ง€ ์ •๋ณด๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

์œ„์ ฏ ๊ธฐ๋Šฅ(์ถœ์‹œ ์ด์ „)

  • ๋ฏธ์„ธ๋จผ์ง€ ์ˆ˜์น˜๋ฅผ ์•ฑ์„ ์ง„์ž…ํ•˜์ง€ ์•Š๊ณ ๋„ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.
  • ์•Œ๋ฆผ๋ฐ”์—์„œ ๋ณด์—ฌ์ฃผ๋Š” ๊ธฐ๋Šฅ์œผ๋กœ ๋ณ€๊ฒฝ๋  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ (Clean Architecture)

image

๐Ÿ“š์‚ฌ์šฉ ๊ธฐ์ˆ  ๋ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

  • Clean Architecture, Hilt, LiveData
  • Kakao API TM์ขŒํ‘œ ๋ณ€ํ™˜๊ณ„, Open API Air Korea
  • Retrofit, enum class, Coroutine, OkHttp3, SwipeRefreshLayout, State Pattern

๐Ÿ“ฑ ๋‹ด๋‹นํ•œ ๊ธฐ๋Šฅ (Android)

  • ๊ฒฝ-์œ„๋„ ํ˜•์‹์œผ๋กœ ๋ฐ›์•„์˜จ ์œ„์น˜ ์ •๋ณด๋ฅผ Kakao API๋ฅผ ํ†ตํ•ด TM์ขŒํ‘œ๋กœ ์ „ํ™˜ํ•˜๋Š” ๊ธฐ๋Šฅ ๊ตฌํ˜„
  • ๋ณ€ํ™˜ํ•œ TM์ขŒํ‘œ ๊ธฐ์ค€์œผ๋กœ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๊ด€์ธก์†Œ ์ •๋ณด๋ฅผ ๋ฐ›์•„์˜ค๊ณ  ํ•ด๋‹น ๊ด€์ธก์†Œ์˜ ์‹ค์‹œ๊ฐ„ ๋Œ€๊ธฐ ์˜ค์—ผ ์ •๋ณด๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋Š” ์ฝ”๋“œ ๊ฐœ๋ฐœ
  • enum class๋ฅผ ์ƒ์„ฑํ•˜์—ฌ 4๋‹จ๊ณ„๋กœ ๋‚ด๋ ค์˜ค๋Š” ๋Œ€๊ธฐ ์˜ค์—ผ ํ‰๊ท  ๋“ฑ๊ธ‰์„ ์ƒํƒœ, ์ด๋ชจํ‹ฐ์ฝ˜, ๋ฐฐ๊ฒฝ์ƒ‰์œผ๋กœ ๋“ฑ๊ธ‰ํ™” ํ•˜์—ฌ ํƒ€์ž… ๋ณ€ํ™˜
  • SwipeRefreshLayout์„ ํ™œ์šฉํ•˜์—ฌ ์‘๋‹ต ์‹œ๊ฐ„ ์ง€์—ฐ, ์—๋Ÿฌ ์ƒํ™ฉ์— ์ธก์ • ์„œ๋น„์Šค ๋™๊ธฐํ™” ๊ธฐ๋Šฅ ๊ตฌํ˜„

โœ’ ๋ฐฐ์šด ์ 

  • ํด๋ฆฐ์•„ํ‚คํ…์ณ ๊ธฐ๋ฐ˜์˜ ์•ฑ ๊ตฌ์กฐ๋ฅผ ์„ค๊ณ„ํ•˜๊ณ  ์ง์ ‘ ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒฝํ—˜์ด ๋˜์—ˆ๋‹ค.
  • ์ฒซ ์•ฑ ์ถœ์‹œ์ž‘์œผ๋กœ ์•ฑ์˜ ์ถœ์‹œ ๋ฟ ์•„๋‹ˆ๋ผ ์ง€์†์ ์ธ ์—…๋ฐ์ดํŠธ๊ฐ€ ์ค‘์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜๋‹ค.
  • ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฐ›์•„์˜จ JSON ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Model์˜ ํšจ์œจ์ ์ธ ์„ค๊ณ„๊ฐ€ ํ•„์š”ํ•จ์„ ๊นจ๋‹ฌ์•˜๋‹ค.
    • Kotlin Data Class File from Json ์ด๋ผ๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜๋ฉด Json ์‘๋‹ต์„ ๊ธฐ์ž…๋งŒ ํ•˜๋”๋ผ๋„ ๊ฐ„ํŽธํ•˜๊ฒŒ Model์„ ์„ค๊ณ„ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • MainScope๋ฅผ ํ†ตํ•ด ๊ฐ„๋‹จํ•˜๊ฒŒ Coroutine Scope(์ฝ”๋ฃจํ‹ด์ด ์‹คํ–‰๋˜๋Š” ๋ฒ”์œ„)๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์„ ํ•™์Šต โ†’ Supervisor job job + Dispatchers.Main ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ๋Š” ๊ตฌ์กฐ
  • Main ์“ฐ๋ ˆ๋“œ๋Š” UI ์ž‘์—…์„ ์œ„ํ•ด, IO ์“ฐ๋ ˆ๋“œ๋Š” ๋„คํŠธ์›Œํฌ, ๋””์Šคํฌ I/O ์‹คํ–‰์— ์‚ฌ์šฉ์— ์ตœ์ ํ™” ๋˜์–ด์žˆ๋‹ค๋Š” ์ ์„ ํ•™์Šต(Dispatcher๋Š” ์ฝ”๋ฃจํ‹ด์„ ์–ด๋–ค ์“ฐ๋ ˆ๋“œ์—์„œ ๋™์ž‘ํ•˜๋Š”์ง€์— ๋Œ€ํ•ด์„œ ๋ช…์‹œ)
  • Retrofit ์‚ฌ์šฉ์‹œ Main, IO ์“ฐ๋ ˆ๋“œ๊ฐ€ ์ž๋™์œผ๋กœ Switching๋œ๋‹ค๋Š” ์ ์„ ํ•™์Šต

๐Ÿ”” ์•ž์œผ๋กœ์˜ ๊ณ„ํš

  • ๊ณต๊ณต๋ฐ์ดํ„ฐ ํฌํ„ธ์—์„œ ์ œ๊ณตํ•˜๋Š” Air Korea์˜ API ํ†ต์‹  ์„œ๋ฒ„๊ฐ€ ์ž์ฃผ ๋ถˆ์•ˆ์ •ํ•˜์—ฌ ERR_CONNECTION_TIMED_OUT ์—๋Ÿฌ๊ฐ€ ์ž์ฃผ ๋ฐœ์ƒํ•œ๋‹ค.
  • ์ง์ ‘ ๊ตฌํ˜„ํ•œ ์„œ๋ฒ„๊ฐ€ ์•„๋‹Œ Open API๋ฅผ ์ด์šฉํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋งŒ ๊ตฌํ˜„

finedustapp's People

Contributors

kez-lab avatar android-kwakeuijin avatar

Stargazers

Yoon Seong Sik avatar ์˜ค์„ธ๋ฏผ avatar

Watchers

 avatar

finedustapp's Issues

[๊ธฐํš] : ๋‚ ์”จ ๊ธฐ๋Šฅ์„ ์–ด๋””์— ๋„์ž…ํ•ด์•ผ ํ• ์ง€ ์˜๊ฒฌ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๋‚ ์”จ ๊ธฐ๋Šฅ

ํ˜„์žฌ ๋ฏธ์„ธ๋จผ์ง€ ๊ธฐ๋Šฅ๊ณผ ๋™์ผํ•˜๊ฒŒ ๋‚ ์”จ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.
ํ•ด๋‹น ํ™”๋ฉด์€ ์ด๋ฏธ ์‹ฑ๊ธ€ ์•กํ‹ฐ๋น„ํ‹ฐ ๊ตฌ์กฐ์ด๊ธฐ์— ๋‚ ์”จ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๋Š”๋ฐ์— ์—๋Ÿฌ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.