Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Jetpack Compose - 실무에 발라보기

Jetpack Compose - 실무에 발라보기

2023년 12월 2일에 진행한 Mobile App Developer Conference(MADC)에서 Jetpack Compose - 실무에 발라보기 발표에 사용된 Speaker Deck입니다.

HyunWoo Lee

December 01, 2023
Tweet

More Decks by HyunWoo Lee

Other Decks in Programming

Transcript

  1. 01 BASIC OF MOBILE APP DEV MADC2023 ੉അ਋ ‣ ੹

    .BUIQSFTTP 2"/%" "OESPJE3FBDU /BUJWF&OHJOFFS ‣ (%4$ѤҴ؀೟Ү ӝ -FBE 2
  2. M A D C 2 02 3 .:4503*&4 $PNQPTF ߄ܰҊࡅܰѱ೟णೞӝ

    3FDPNQPTJUJPO ਋ࢶ࢚కҙܻ୓௼ࠗఠ 01 BASIC OF MOBILE APP DEV COMPOSE IN PRATICAL WAY
  3. M A D C 2 02 3 $PNQPTF ߄ܰҊࡅܰѱ೟णೞӝ 01

    BASIC OF MOBILE APP DEV COMPOSE IN PRATICAL WAY
  4. 01 BASIC OF MOBILE APP DEV MADC2023 LESSON LEARNED 12

    COMPOSE যڌѱ ҕࠗೞݶ જਸөਃ? ׮ܲ ࢶ঱ഋ UI ҃೷೧ࠁחѱ જਸөਃ? ߊ಴੗ש ੜ ࢤ҂যਃ COMPOSE ޤࠗఠ ࠁח Ѫ੉ જਸөਃ?
  5. 01 BASIC OF MOBILE APP DEV MADC2023 ੉ী ؀ೠ ઁ

    Ѿۿ 13 ೞա੄ӝמਸ৮੹൤$0.104&۽ ҳഅೞח҃೷ਸоઉࠁ੗
  6. 01 BASIC OF MOBILE APP DEV MADC2023 ੉ী ؀ೠ ઁ

    Ѿۿ 14 ೞա੄ӝמਸ৮੹൤$0.104&۽ ҳഅೞח҃೷ਸоઉࠁ੗ ࢶ঱ഋ6*ীࢲചݶ੉۪؊݂غחו՝ਸঌইঠೠ׮
  7. M A D C 2 02 3 3FDPNQPTJUJPO ਋ࢶ࢚కҙܻ୓௼ࠗఠ 01

    BASIC OF MOBILE APP DEV COMPOSE IN PRATICAL WAY
  8. 01 BASIC OF MOBILE APP DEV MADC2023 3&$0.104*5*0/ 20 $PNQPTBCMF

    'VODUJPO 6*ীࠁ੐ 4UBUFসؘ੉౟ ࢚ഐ੘ਊ
  9. 01 BASIC OF MOBILE APP DEV MADC2023 ޙઁ੼ 21 $PNQPTBCMF

    'VODUJPO 6*ীࠁ੐ 4UBUFসؘ੉౟ ࢚ഐ੘ਊ
  10. 01 BASIC OF MOBILE APP DEV MADC2023 ޙઁ੼ 22 $PNQPTBCMF

    'VODUJPO 6*ীࠁ੐ 4UBUFসؘ੉౟ ࢚ഐ੘ਊ
  11. 01 BASIC OF MOBILE APP DEV MADC2023 ޙઁ੼ 23 $PNQPTBCMF

    'VODUJPO 6*ীࠁ੐ 4UBUFসؘ੉౟ ࢚ഐ੘ਊ
  12. 01 BASIC OF MOBILE APP DEV MADC2023 ޙઁ੼ 24 $PNQPTBCMF

    'VODUJPO 6*ীࠁ੐ 4UBUFসؘ੉౟ ࢚ഐ੘ਊ
  13. 01 BASIC OF MOBILE APP DEV MADC2023 ޙઁ੼ 25 $PNQPTBCMF

    'VODUJPO 6*ীࠁ੐ 4UBUFসؘ੉౟ ࢚ഐ੘ਊ
  14. 01 BASIC OF MOBILE APP DEV MADC2023 ޙઁ੼ 26 ੄بೞ૑

    ঋ਷ RECOMPOSITIONਵ۽ ੋೠ ࢿמ ੷ೞ
  15. 01 BASIC OF MOBILE APP DEV MADC2023 ޙઁ੼ 27 ܻஹನ૑࣌

    ஠਍౟੄ ૐоח ചݶ੄ ߸҃ ૊, ੗োझ۞਍ ੌ
  16. 01 BASIC OF MOBILE APP DEV MADC2023 ੉௏٘ীࢲࠁ੉חޙઁ੼਷j 30 @Composable

    fun HomeScreen(todos: List<Task>) { LazyColumn { items(items = todos) { todo -> TaskIte m (todo) } } }
  17. 01 BASIC OF MOBILE APP DEV MADC2023 ੉௏٘ীࢲࠁ੉חޙઁ੼਷j 31 @Composable

    fun HomeScreenWrapper() { val anotherState by /* state collect */ val list by /* state collect */ HomeScreen(list) }
  18. 01 BASIC OF MOBILE APP DEV MADC2023 -*45חࠛউ੿೤פ׮ 32 @Composable

    fun HomeScreen(todos: List<Task>) { LazyColumn { items(items = todos) { todo -> TaskIte m (todo) } } }
  19. 01 BASIC OF MOBILE APP DEV MADC2023 -*45חࠛউ੿೤פ׮ 33 i

    m port kotlinx.collections. im mutable. Im mutableList @Composable fun HomeScreen(todos: Im mutableList<Task>) { LazyColumn { items(items = todos) { todo -> TaskIte m (todo) } } }
  20. 01 BASIC OF MOBILE APP DEV MADC2023 ژযڃѪ੉੓ਸөਃ 34 i

    m port kotlinx.collections. im mutable. Im mutableList @Composable fun HomeScreen(todos: Im mutableList<Task>) { LazyColumn { items(items = todos) { todo -> TaskIte m (todo) } } }
  21. 01 BASIC OF MOBILE APP DEV MADC2023 -";:-":065 ,&:👍 35

    i m port kotlinx.collections. im mutable. Im mutableList @Composable fun HomeScreen(notes: Im mutableList<Task>) { LazyColumn { items( items = todos, key = { it.id } ) { todo -> TaskIte m (todo) } } }
  22. 01 BASIC OF MOBILE APP DEV MADC2023 1"*/5&3*4"-406/45"#-& 36 I

    m age( painter = painterResource(id = R.ic_add_task) contentDescription = “Add Task Ti tle” )
  23. 01 BASIC OF MOBILE APP DEV MADC2023 1"*/5&3*4"-406/45"#-& 37 val

    resource by rememberUpdatedState( newValue = resourceId ) I m age( painter = painterResource(resource) contentDescription = “Add Task Ti tle” )
  24. 01 BASIC OF MOBILE APP DEV MADC2023 1"*/5&3*4"-406/45"#-& 38 I

    m age( painter = Im ageVector.vectorResource( id = R.ic_add_task ) contentDescription = “Add Task Ti tle” )
  25. 01 BASIC OF MOBILE APP DEV MADC2023 "%%*5*0/"-3&4063$&4 39 +FUQBDL$PNQPTF4UBUF

    https://developer.android.com/jetpack/compose/state +FUQBDL$PNQPTF#FTU1SBDUJDFT https://developer.android.com/jetpack/compose/performance/bestpractices $PNQPTF$PNQJMFSTUBCJMJUZ$POGJHVSBUJPO1BUI TJODF ੌ੹ߊ಴  IUUQTEFWFMPQFSBOESPJEDPNKFUQBDLDPNQPTFQFSGPSNBODF TUBCJMJUZGJYDPOGJHVSBUJPOGJMF