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

Interesting Facts About Jetpack Compose - Alpha...

Interesting Facts About Jetpack Compose - Alpha Edition

The goal of this presentation is to put the light on the building blocks of the mindset of Jetpack Compose, the newly introduced Android UI Toolkit.

Whereas by the date of presentation, the toolkit was still in Alpha release, its core concepts were already in place. The presentation explains those core concepts in an intuitive manner.

The talk was given at DevFest 2020, an online event co-organized by GDG Algiers and WTM Algiers.

Licenced under CC BY-NC 4.0 Licence

Avatar for Oussama Hafferssas

Oussama Hafferssas

November 14, 2020
Tweet

More Decks by Oussama Hafferssas

Other Decks in Programming

Transcript

  1. Oussama Hafferssas Interesting Facts About Jetpack Compose Alpha Edition Mobile

    Software Engineer @Capgemini Financial Services* devfest’20 *The content and opinions expressed in this presentation are solely those of the presenter. Content and opinions don’t represent Capgemini TS by any mean.
  2. @OussamaHaff devfest’20 Image Processing 2015 2010 2016 Freelance 2020 2017

    Mobile Software Engineer Interesting Facts About Jetpack Compose Alpha Edition ::about-me 2012 <3
  3. @OussamaHaff devfest’20 Interesting Facts About Jetpack Compose Alpha Edition ::about-me

    + ! + ! + ! ::keep-in-mind ::facts #01-programming-pattern #02-fun-mindset #03-state-awareness ::Q-&-A
  4. @OussamaHaff devfest’20 Interesting Facts About Jetpack Compose Alpha Edition ::keep-in-mind

    ::about-me Entities Business Rules UI XML + (Kotlin or Java) Minimum recommended Android app architecture
  5. @OussamaHaff devfest’20 Interesting Facts About Jetpack Compose Alpha Edition ::keep-in-mind

    ::about-me Entities Business Rules UI XML + (Kotlin or Java) Minimum recommended Android app architecture Android Architecture Components Libraries
  6. @OussamaHaff devfest’20 Interesting Facts About Jetpack Compose Alpha Edition ::keep-in-mind

    ::about-me Entities Business Rules UI XML + (Kotlin or Java) Minimum recommended Android app architecture Android Architecture Components Libraries Jetpack Compose
  7. @OussamaHaff devfest’20 Interesting Facts About Jetpack Compose Alpha Edition ::keep-in-mind

    ::about-me Entities Business Rules UI Minimum recommended Android app architecture Android Architecture Components Libraries Jetpack Compose Kotlin only XML + (Kotlin or Java)
  8. Core Concepts @OussamaHaff devfest’20 Interesting Facts About Jetpack Compose Alpha

    Edition ::keep-in-mind ::about-me Entities Business Rules UI Minimum recommended Android app architecture Android Architecture Components Libraries Jetpack Compose Kotlin only
  9. @OussamaHaff devfest’20 Interesting Facts About Jetpack Compose Alpha Edition ::keep-in-mind

    ::about-me Entities Business Rules UI Minimum recommended Android app architecture Android Architecture Components Libraries Jetpack Compose Kotlin only ::facts
  10. Alpha Edition @OussamaHaff devfest’20 Interesting Facts About Jetpack Compose ::keep-in-mind

    ::about-me ::facts Classic UI Programming style for Android #01-programming-pattern
  11. Alpha Edition @OussamaHaff devfest’20 Interesting Facts About Jetpack Compose ::keep-in-mind

    ::about-me ::facts Compose’ Programming style for Android #01-programming-pattern
  12. Alpha Edition @OussamaHaff devfest’20 Interesting Facts About Jetpack Compose ::keep-in-mind

    ::about-me ::facts Compose’ Programming style for Android #01-programming-pattern
  13. See on GitHub ↗ @OussamaHaff devfest’20 Interesting Facts About Jetpack

    Compose ::keep-in-mind ::about-me ::facts Composable function #01-programming-pattern Alpha Edition
  14. See on GitHub ↗ @OussamaHaff devfest’20 Interesting Facts About Jetpack

    Compose ::keep-in-mind ::about-me ::facts Composable function Composable params Composable function(s) #01-programming-pattern Alpha Edition
  15. @OussamaHaff devfest’20 Interesting Facts About Jetpack Compose ::keep-in-mind ::about-me ::facts

    Composable function Composable params See on GitHub ↗ Composable function(s) #01-programming-pattern Alpha Edition
  16. @OussamaHaff devfest’20 Interesting Facts About Jetpack Compose ::keep-in-mind ::about-me ::facts

    Composable function Composable params See on GitHub ↗ Composable function(s) A Slot #01-programming-pattern Alpha Edition
  17. @OussamaHaff devfest’20 Interesting Facts About Jetpack Compose ::keep-in-mind ::about-me ::facts

    Composable function Composable params See on GitHub ↗ Composable function(s) #01-programming-pattern Alpha Edition
  18. @OussamaHaff devfest’20 Interesting Facts About Jetpack Compose ::keep-in-mind ::about-me ::facts

    Composable function Composable params See on GitHub ↗ Composable function(s) #01-programming-pattern Alpha Edition
  19. @OussamaHaff devfest’20 Interesting Facts About Jetpack Compose ::keep-in-mind ::about-me ::facts

    •Composables are functions •Slots pattern Qt Framework ↗ Composable function Composable params Composable function(s) #01-programming-pattern Alpha Edition
  20. @OussamaHaff devfest’20 Interesting Facts About Jetpack Compose ::keep-in-mind ::about-me ::facts

    #02-fun-mindset •Trailing lambdas •Pure functions Alpha Edition
  21. @OussamaHaff devfest’20 Interesting Facts About Jetpack Compose ::keep-in-mind ::about-me ::facts

    #03-state-awareness Column Composable Text Composable Button Composable Alpha Edition
  22. @OussamaHaff devfest’20 Interesting Facts About Jetpack Compose ::keep-in-mind ::about-me ::facts

    #03-state-awareness Column Composable Text Composable Button Composable counter 0 As State Alpha Edition
  23. @OussamaHaff devfest’20 Interesting Facts About Jetpack Compose ::keep-in-mind ::about-me ::facts

    #03-state-awareness Column Composable Text Composable Button Composable counter 0 As State Alpha Edition
  24. @OussamaHaff devfest’20 Interesting Facts About Jetpack Compose ::keep-in-mind ::about-me ::facts

    #03-state-awareness Column Composable Text Composable Button Composable Slot Table counter 0 Alpha Edition
  25. @OussamaHaff devfest’20 Interesting Facts About Jetpack Compose ::keep-in-mind ::about-me ::facts

    #03-state-awareness Column Composable Text Composable Button Composable Slot Table Uses counter counter 0 Alpha Edition
  26. @OussamaHaff devfest’20 Interesting Facts About Jetpack Compose ::keep-in-mind ::about-me ::facts

    #03-state-awareness Column Composable Text Composable Button Composable Slot Table Uses counter counter 0 declare consumer Alpha Edition
  27. @OussamaHaff devfest’20 Interesting Facts About Jetpack Compose ::keep-in-mind ::about-me ::facts

    #03-state-awareness Column Composable Text Composable Button Composable Slot Table Uses counter counter 0 declare consumer Alpha Edition
  28. @OussamaHaff devfest’20 Interesting Facts About Jetpack Compose ::keep-in-mind ::about-me ::facts

    #03-state-awareness Column Composable Text Composable Button Composable Slot Table Uses counter counter 0 declare consumer +1 Alpha Edition
  29. @OussamaHaff devfest’20 Interesting Facts About Jetpack Compose ::keep-in-mind ::about-me ::facts

    #03-state-awareness Column Composable Text Composable Button Composable Slot Table Uses counter counter 0 declare consumer +1 Alpha Edition
  30. @OussamaHaff devfest’20 Interesting Facts About Jetpack Compose ::keep-in-mind ::about-me ::facts

    #03-state-awareness Column Composable Text Composable Button Composable Slot Table Uses counter counter 1 declare consumer +1 Alpha Edition
  31. @OussamaHaff devfest’20 Interesting Facts About Jetpack Compose ::keep-in-mind ::about-me ::facts

    #03-state-awareness Column Composable Text Composable Button Composable Slot Table Uses counter counter 1 declare consumer +1 Recompose Alpha Edition
  32. @OussamaHaff devfest’20 Interesting Facts About Jetpack Compose ::keep-in-mind ::about-me ::facts

    #03-state-awareness Column Composable Text Composable Button Composable Slot Table Uses counter counter 1 declare consumer +1 Recompose Alpha Edition
  33. @OussamaHaff devfest’20 Interesting Facts About Jetpack Compose ::keep-in-mind ::about-me ::facts

    #03-state-awareness Column Composable Text Composable Button Composable Slot Table Uses counter counter 1 declare consumer +1 Recompose Alpha Edition
  34. @OussamaHaff devfest’20 Interesting Facts About Jetpack Compose ::keep-in-mind ::about-me ::facts

    #03-state-awareness Column Composable Text Composable Button Composable Slot Table Uses counter counter 1 declare consumer Render new value +1 Alpha Edition
  35. @OussamaHaff devfest’20 Interesting Facts About Jetpack Compose ::keep-in-mind ::about-me ::facts

    #03-state-awareness Column Composable Text Composable Button Composable Slot Table Uses counter counter 1 declare consumer Render new value +1 • Positional Memoization Alpha Edition
  36. @OussamaHaff devfest’20 Interesting Facts About Jetpack Compose ::keep-in-mind ::about-me ::facts

    #03-state-awareness • Positional Memoization Alpha Edition • Recompose only parts using a State object
  37. @OussamaHaff devfest’20 Interesting Facts About Jetpack Compose ::keep-in-mind ::about-me ::facts

    #03-state-awareness • Positional Memoization • Recompose only parts using a State object • Do not survive configuration changes Alpha Edition
  38. @OussamaHaff devfest’20 Interesting Facts About Jetpack Compose Alpha Edition Repositories

    ViewModel Minimum recommended Android app architecture UI with Compose ::keep-in-mind ::about-me ::facts
  39. @OussamaHaff devfest’20 Interesting Facts About Jetpack Compose ::keep-in-mind ::facts #01-programming-pattern

    #02-fun-mindset #03-state-awareness ::Q-&-A Thank you ! Oussama Hafferssas