๐Ÿš€ ์•ˆ๋“œ๋กœ์ด๋“œ Jetpack ์•Œ์•„๋ณด๊ธฐ

๊น€๋ช…์ง„ยท2021๋…„ 3์›” 27์ผ
2

์•ˆ๋“œ๋กœ์ด๋“œ

๋ชฉ๋ก ๋ณด๊ธฐ
17/25
post-thumbnail
post-custom-banner

๐Ÿš€ ์•ˆ๋“œ๋กœ์ด๋“œ Jetpack์ด๋ž€?

์•ˆ๋“œ๋กœ์ด๋“œ์˜ Jetpack๋ฅผ ์„ค๋ช…ํ•˜๊ธฐ์ „์— ์šฐ์„  Jetpack์ด ๋ฌด์—‡์ธ์ง€ ์•Œ๊ณ  ๊ฐ€๋ฉด ๋”์šฑ์–ด ์ดํ•ดํ•˜๋Š”๋ฐ ์‰ฝ๋‹ค. Jetpack์„ ๋„ค์ด๋ฒ„ ์˜ํ•œ ์‚ฌ์ „์— ๊ฒ€์ƒ‰ํ•ด๋ณด๋ฉด "๋“ฑ์— ๋ฉ”๋Š” ๊ฐœ์ธ์šฉ ๋ถ„์‚ฌ ์ถ”์ง„๊ธฐ"์ด๋ผ๊ณ  ์ •์˜ํ•˜๊ณ  ์žˆ๋‹ค. ์ด ์ •์˜๋ฅผ ๋ณด๋ฉด ์•ˆ๋“œ๋กœ์ด๋“œ Jetpack์€ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๋Š”๋ฐ ๋ญ”๊ฐ€ ๋ถ€์Šคํ„ฐ ์—ญํ• ์„ ํ•˜๊ณ  ์žˆ๊ฒ ๊ตฌ๋‚˜๋ผ๋Š” ์ถ”์ธก์„ ํ•ด๋ณผ ์ˆ˜ ์žˆ๋‹ค.

Google Developer ๊ณต์‹์‚ฌ์ดํŠธ์—์„œ๋Š” Jetpack๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜ํ•˜๊ณ  ์žˆ๋‹ค.

Jetpack์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ด€์‹ฌ ์žˆ๋Š” ์ฝ”๋“œ์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ถŒ์žฅ์‚ฌํ•ญ ์ค€์ˆ˜, ์ƒ์šฉ๊ตฌ ์ฝ”๋“œ ์ œ๊ฑฐ, ๋ชจ๋“  Android ๋ฒ„์ „๊ณผ ๊ธฐ๊ธฐ์—์„œ ์ผ๊ด€๋˜๊ฒŒ ์ž‘๋™ํ•˜๋Š” ์ฝ”๋“œ ์ž‘์„ฑ์„ ๋•๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ชจ์Œ์ž…๋‹ˆ๋‹ค.

์ฆ‰, ์•ˆ๋“œ๋กœ์ด๋“œ Jetpack์€ ๊ฐœ๋ฐœ์— ์ž์ฃผ ์“ฐ์ด๋Š” ์—ฌ๋Ÿฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค๊ณผ ํˆด๋“ค์„ ๋ฌถ์–ด๋†“์€ ๋ชจ์Œ์ง‘์ด๋‹ค. ๊ฐœ๋ฐœ์ž๋“ค์ด ๋”์šฑ๋” ํŽธ๋ฆฌํ•˜๊ธฐ, ๋น ๋ฅด๊ฒŒ, ์‰ฝ๊ฒŒ ๋†’์€ ํ€„๋ฆฌํ‹ฐ์˜ ์•ฑ์„ ๊ฐœ๋ฐœํ•˜๋„๋ก ๋•๋Š” ๋ชจ์Œ ๋„๊ตฌ์ด๋‹ค.

์•ˆ๋“œ๋กœ์ด๋“œ Jetpack์˜ ์žฅ์ ์ค‘ ํ•˜๋‚˜๋Š” ์ด์ „ ์•ˆ๋“œ๋กœ์ด๋“œ ๋ฒ„์ „๋“ค๊ณผ ํ˜ธํ™˜์ด ๋œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. Jetpack์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์€ androidx.* ๋กœ ํŒจํ‚ค์ง€ํ™”๊ฐ€ ๋˜์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์— API๋กœ๋ถ€ํ„ฐ ๋ถ„๋ฆฌ๋˜์–ด ์žˆ๋‹ค. ๋˜ํ•œ API์™€ ๋ถ„๋ฆฌ๋˜์–ด ์žˆ๊ณ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ˜•ํƒœ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ž์ฃผ ์—…๋ฐ์ดํŠธ๊ฐ€ ๋˜์–ด ํ•ญ์ƒ ๊ฐ€์žฅ ๋›ฐ์–ด๋‚œ ์ตœ์‹  ๋ฒ„์ „์˜ Jetpack ๊ตฌ์„ฑ์š”์†Œ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Jetpack์€ androidx.* ํŒจํ‚ค์ง€๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— android.x ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด ํ•„์š”ํ•˜๋‹ค.

๐Ÿš€ ์•ˆ๋“œ๋กœ์ด๋“œ Jetpack์˜ ๊ตฌ์„ฑ์š”์†Œ

Jetpack์€ ํฌ๊ฒŒ 4๊ฐ€์ง€์˜ ๊ตฌ์„ฑ์š”์†Œ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๊ณ  ๊ฐ ๊ตฌ์„ฑ์š”์†Œ์—๋Š” ๋‹ค์–‘ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค๊ณผ ํˆด๋“ค์ด ์กด์žฌํ•œ๋‹ค.

Architecture

  • Data Binding: xmlํŒŒ์ผ์— Data๋ฅผ ์—ฐ๊ฒฐํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ค€๋‹ค
  • Lifecycles: ์•ˆ๋“œ๋กœ์ด๋“œ activity ์ƒ๋ช…์ฃผ๊ธฐ ๊ด€๋ จ ์œ ํ‹ธ๋ฆฌํ‹ฐ
  • LiveData: ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€๊ฒฝ๋ ๋•Œ ์‹ค์‹œ๊ฐ„์œผ๋กœ view์— ์•Œ๋ ค์ค€๋‹ค
  • Navigation: activity, fragment๊ฐ„ ์ด๋™์„ ์‰ฝ๊ฒŒ ๋„์™€์ค€๋‹ค
  • Paging: ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํŠธ๋ฅผ ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ์œ ํ‹ธ๋ฆฌํ‹ฐ
  • Room: Database ๋ณด๋‹ค ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ค€๋‹ค
  • WorkManager: ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ž‘์—…์„ ๋ณด๋‹ค ์‰ฝ๊ฒŒ ๋„์™€์ค€๋‹ค

Foundation

  • AppCompat: ํ•˜์œ„ ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ์—์„œ ์ตœ๊ธด๋ฒ„์ „ sdk๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค€๋‹ค.
  • Android KTX: ์ฝ”ํ‹€๋ฆฐ ์ฝ”๋“œ๋ฅผ ๋”์šฑ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์ค€๋‹ค.
  • Multidex: dex ๊ด€๋ฆฌ ๊ด€๋ จ ์œ ํ‹ธ๋ฆฌํ‹ฐ
  • Test: ์•ˆ๋“œ๋กœ์ด๋“œ ํ…Œ์Šคํ‹ฐ๊ด€๋ จ ์œ ํ‹ธ๋ฆฌํ‹ฐ

Behavior

  • Download manager: ํฐ ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ์„ service ์ฐจ์›์—์„œ ๊ด€๋ฆฌ๋ฅผ ๋„์™€์ค€๋‹ค.
  • Media & Playback: ๋ฏธ๋””์–ด ํŒŒ์ผ ์žฌ์ƒ ๊ด€๋ จ ์œ ํ‹ธ๋ฆฌํ‹ฐ
  • Permissions: ์•ˆ๋“œ๋กœ์ด๋“œ ๊ถŒํ•œ ๊ด€๋ จ ์œ ํ‹ธ๋ฆฌํ‹ฐ
  • Notifications: ์•ˆ๋“œ๋กœ์ด๋“œ notification ๊ด€๋ จ ์œ ํ‹ธ๋ฆฌํ‹ฐ
  • Sharing: Actionbar์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‹ค ์‰ฝ๊ฒŒ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค€๋‹ค

UI

  • ์•ฑ์—์„œ์˜ ๋‹ค์–‘ํ•œ ์• ๋‹ˆ๋ฉ”์ด์…˜, ์ด๋ชจ์ง€ ๋˜๋Š” ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ (TV, ์›Œ์น˜) ๊ณผ๋ จ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ปดํฌ๋„ŒํŠธ.

๋˜ํ•œ Jetpack์˜ ์ปดํฌ๋„ŒํŠธ๋Š” ์•ˆ๋“œ๋กœ์ด๋“œ API ํ”Œ๋žซํผ์˜ ์ผ๋ถ€๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ์›ํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ๋ฅผ๋งŒ androidx.* ํŒจํ‚ค์ง€์—์„œ ์„ ํƒํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

profile
๊ฟˆ๊พธ๋Š” ๊ฐœ๋ฐœ์ž
post-custom-banner

0๊ฐœ์˜ ๋Œ“๊ธ€