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

IO-Extended-talk.pdf

 IO-Extended-talk.pdf

Un bref résumé sur les composants d'architecture Android.

Farouk

June 16, 2019
Tweet

More Decks by Farouk

Other Decks in Programming

Transcript

  1. • Un ensemble de librairies • Facilite le développement d’applications

    android • code plus robuste, testable et maintenable • Utilisé par 70% de développeurs android (source Google survey)
  2. Composants ❖ Databinding ❖ Room ❖ Paging ❖ Navigation ❖

    WorkManager ❖ ViewModel ❖ LiveData ❖ Lifecycle
  3. Data binding ➔ Vitesse de compilation (20% plus rapide) ➔

    Cache distribué ➔ Incremental annotation processing android.databinding.incremental = true ➔ Refactoring ➔ Messages d’erreurs plus explicites ➔ Live class generation (pas besoin de recompiler le code pour accéder aux classes générées
  4. ?

  5. View Binding <--profile.xml--> <LinearLayout> <TextView android:id="@+id/title"/> <ImageView android:id="@+id/photo"/> </LinearLayout> ➔

    disponible à partir de Android Studio 3.6 ➔ meilleure alternative au data binding ➔ n’affecte pas la vitesse de compilation ➔ compile-time safe
  6. SavedStateHandle class UserViewModel(val handle: SavedStateHandle): ViewModel() { } // objet

    SavedStateHandle val handle: SavedStateHandle // ecriture handle.put("key", newValue) // lecture val myValue: Int = handle.get("key") // LiveData val liveData: MutableLiveData<Int> = handle.getLiveData("key"
  7. ViewModel initialization Avant lateinit var userViewModel: UserViewModel fun onCreate(bundle: Bundle?)

    { userViewModel = ViewModelProviders.of(this).get(UserViewModel::class.java) } val userViewModel: UserViewModel by viewModels() Maintenant
  8. Room ➔ ORM, couche d’abstraction au dessus d’une base SQLite

    ➔ Créer et manipuler ses bases de données sans boilerplate SQLite ➔ Requêtes SQL vérifiées à la compilation ➔ Compatible avec LiveData ➔ Testable Room 2.1 • support pour les coroutines • Full text search • Database Views • support amelioré pour RxJava/RxKotlin
  9. Liens utiles • Android architecture components I/O 19 • Developing

    Android Apps - Udacity • Developing Android Apps with Kotlin -Udacity • Build your first kotlin app - Google codelabs • Android fundamentals 10.1: Room, LiveData, and ViewModel • Google samples - github