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

Jetpack Compose - 실무에 발라보기

Avatar for HyunWoo Lee HyunWoo Lee
December 01, 2023

Jetpack Compose - 실무에 발라보기

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

Avatar for HyunWoo Lee

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