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

Droidcon Online 2020 quick summary

Droidcon Online 2020 quick summary

This is a quick summary of interesting talk I visited during Droidcon Online 2020. This year the conference was different - due to covid-19. Nevertheless there were some thing worth mentioning!

3d83f31339d239abcc55f869e5f30348?s=128

bkosarzycki

October 26, 2020
Tweet

Transcript

  1. OCTOBER 19, 2020 Quick conference summary Droidcon 2020 Bartosz Kosarzycki

    @bkosarzycki
  2. #SECU #LANG #JETPACK @bkosarzycki #UI #BACKEND #LIBRARY #OTHER #SDK

  3. @bkosarzycki KOTLIN JETPACK Flutter PRs / Digital Nomad / Developer

    life etc. reactive programming / coroutines Security Compose Word cloud – Droidcon 2020
  4. #JETPACK Jetpack navigation - what benefits jetpack navigation gives us

    for multi- module projects Tahsin Dane Ahmet Safa Orhan @bkosarzycki
  5. Jetpack navigation – dynamic feature navigation https://developer.android.com/guide/navig ation/navigation-dynamic https://medium.com/google-developer- experts/exploring-dynamic-feature-

    navigation-on-android-c803bdbbca9b - uses Android App Bundles - reduces initial download size of the app - "Play feature Delivery" (link) - download feature modules on demand @bkosarzycki
  6. SplitInstallRequest .newBuilder() .addModule("pictureMessages") .build() splitInstallManager .startInstall(request) .addOnSuccessListener { sessionId ->

    ... } .addOnFailureListener { exception -> ... } splitInstallManager .deferredInstall(listOf("promotionalFilters")) Jetpack navigation – dynamic feature navigation @bkosarzycki
  7. - translates INT resource ids into human-readable @bkosarzycki

  8. http://goo.gle/compose-samples https://developer.android.com/jetpack/compose/testing #JETPACK Jetpack compose – samples & testing @bkosarzycki

  9. @bkosarzycki #UI

  10. #BACKEND @bkosarzycki KTOR - async microservices, web-applications

  11. #BACKEND @bkosarzycki

  12. #BACKEND @bkosarzycki

  13. #BACKEND @bkosarzycki

  14. #BACKEND @bkosarzycki

  15. @bkosarzycki #LIBRARY Dagger Hilt

  16. @bkosarzycki #LIBRARY Dagger Hilt – Service locator vs Dependency injection

  17. @bkosarzycki #LIBRARY Dagger Hilt

  18. @bkosarzycki #LIBRARY

  19. @bkosarzycki #LIBRARY Dagger Hilt

  20. Code review - Goce Anastasovski #OTHER @bkosarzycki

  21. Droidcon Keynote – modern Android / Romain Guy, Chet Haase

    #OTHER @bkosarzycki
  22. Keynote – modern Android / Romain Guy Chet Haase #OTHER

    @bkosarzycki
  23. Keynote – modern Android / Romain Guy Chet Haase #OTHER

    @bkosarzycki
  24. Keynote – modern Android / Romain Guy Chet Haase #OTHER

    @bkosarzycki
  25. CameraX #OTHER @bkosarzycki

  26. Flipper – Maksim Turaev #OTHER @bkosarzycki

  27. Kotlin multiplatfom – real world examples & performance analysis @bkosarzycki

    #LANG - ups & downs of kotlin-multiplatform development
  28. Kotlin multiplatfom – real world examples & performance analysis @bkosarzycki

    #LANG
  29. Kotlin coroutines – transition & interoperability with rxjava @bkosarzycki #LIBRARY

    - blog: kotlinx-coroutines-rx2 - when migrating from rxjava (project refactoring) - when you want to use Kotlin coroutines in Java (cannot [yet] be used directly)
  30. Kotlin coroutines – transition & interoperability with rxjava @bkosarzycki #LIBRARY

  31. Kotlin coroutines – transition & interoperability with rxjava @bkosarzycki #LIBRARY

  32. Kotlin coroutines – transition & interoperability with rxjava @bkosarzycki #LIBRARY

  33. Kotlin coroutines – transition & interoperability with rxjava @bkosarzycki #LIBRARY

  34. Kotlin coroutines – transition & interoperability with rxjava @bkosarzycki #LIBRARY

    Structured concurrency is a programming paradigm aimed at improving the clarity, quality, and development time of a computer program by using a structured approach to concurrent programming. The core concept is the encapsulation of concurrent threads of execution (here encompassing kernel and userland threads and processes) by way of control flow constructs that have clear entry and exit points and that ensure all spawned threads have completed before exit. The concept is analogous to structured programming, which introduced control flow constructs that encapsulated sequential statements and subroutines. Such encapsulation allows errors in concurrent threads to be propagated to the control structure's parent scope and managed by the native error handling mechanisms of each particular computer language. It allows control flow to remain readily evident by the structure of the source code despite the presence of concurrency. To be effective, this model must be applied consistently throughout all levels of the program-- otherwise concurrent threads may leak out, become orphaned, or fail to have runtime errors correctly propagated.
  35. Android App Bundles – required for new apps on Google

    Play #SDK @bkosarzycki
  36. Android App Bundles – required for new apps on Google

    Play #SDK @bkosarzycki
  37. Android App Bundles – required for new apps on Google

    Play #SDK @bkosarzycki
  38. Google Compose – examples from Chris Banes #JETPACK @bkosarzycki

  39. Coroutine exception handling @bkosarzycki #LANG

  40. Coroutine exception handling @bkosarzycki #LANG

  41. Coroutine exception handling @bkosarzycki #LANG

  42. Coroutine exception handling @bkosarzycki #LANG

  43. Coroutine exception handling @bkosarzycki #LANG

  44. Coroutine exception handling @bkosarzycki #LANG

  45. Coroutine exception handling @bkosarzycki #LANG

  46. Coroutine exception handling @bkosarzycki #LANG

  47. Coroutine exception handling @bkosarzycki #LANG

  48. Coroutine exception handling @bkosarzycki #LANG

  49. Coroutine exception handling @bkosarzycki #LANG

  50. Coroutine exception handling @bkosarzycki #LANG

  51. https://dev.to/kpgalligan/series/3739 https://github.com/touchlab/KNConcurrencySamples Practical Kotlin Native Concurrency Series https://dev.to/touchlab #LANG @bkosarzycki

    Droidcon NYC in Kotlin multiplatform - source code + live coding LINK Kotlin multiplatform - TOUCHLAB - app development, workshops, trainings
  52. #SECU ASK QUESTIONS: https://community.guardsquare.com/ @bkosarzycki Effects of Kotlin on byte

    code & app security - We've extended our open source code optimizer ProGuard and our protection software DexGuard to fully support Kotlin - new open source tool to view the Kotlin metadata hiding inside your apps
  53. #SECU ASK QUESTIONS: https://community.guardsquare.com/ @bkosarzycki Effects of Kotlin on byte

    code & app security - example of DexGuard removing kotlin compiler metadata for enhanced security
  54. https://android-developers.googleblog.com/2020/09/prefer- storing-data-with-jetpack.html Jetpack DataStore – replaces Android SharedPrefs - (Y)

    async access via coroutines Flow - (X) no synchronous access - has transactions - data migration from SharedPrefs is possible Coroutines flow #JETPACK Jetpack DataStore Google DataStore CodeLab - https://codelabs.developers.google.com/codelabs/android- preferences-datastore/#0 https://youtu.be/lKOsI4gh9Z8?t=44 @bkosarzycki
  55. #JETPACK @bkosarzycki

  56. #LANG https://www.youtube.com/watch?v=FRCASfAMXoQ - Google is full-in Kotlin for Android -

    docs & trainings are in preparation - 70% of pro-devs use Kotlin on Android Kotlin 1.4 Live Online event – October 12-15, 2020 @bkosarzycki
  57. #LANG @bkosarzycki

  58. #LANG @bkosarzycki

  59. THANK YOU Bartosz Kosarzycki @bkosarzycki bartosz.kosarzycki@vimncontractor.com https://twitter.com/bkosarzycki