Google I/O 2019 Recap

Ken Baldauf

Senior Software Engineer @ Originate

Shifting Focus...

Key Topics

  • Kotlin
  • Android Q
  • Jetpack
  • Flutter

Kotlin

  • Android support announced 2 years ago
  • > 53% of professional Android devs use Kotlin
  • 20% higher language satisfaction ratings than Java
  • Android becoming increasingly Kotlin-first
  • "If you're starting a new project, you should write it in Kotlin"

Key Topics

  • Kotlin
  • Android Q
  • Jetpack
  • Flutter

Android Quiche

  • New Dark Theme support via
    • Theme.AppCompat.DayNight
    • Theme.MaterialComponents.DayNight
  • Gesture navigation
  • New AudioPlaybackCapture API
    • Copy audio being played by other apps
  • Tweaks to onResume & onPause behavior
  • Foldable phone support

Android Quince

  • Adds the new multi-resume behavior
  • All visible activities will remain in the  resumed state when the app is in multi-window mode
    • previously only the one with focus was resumed
  • New onTopResumedActivityChanged lifecycle callback
    • Useful for when used shared resources such as the camera or microphone

Android Quinoa

  • Foldable phone support requires:
    • saving UI state
    • graceful handling of config changes
  • How to configure/test your app:
    • enable/disable resizing
    • specify min/max aspect ratio
    • Android Studio 3.5's foldable emulators

Android Queso

resizeableActivity=false

+

maxAspectRatio

Key Topics

  • Kotlin
  • Android Q
  • Jetpack
  • Flutter

Jetpack CameraX

  • Simplification of Camera API
  • Lifecycle aware
  • Handles device specific nuances
  • Optional extensions add support for native camera app features such as HDR & night mode
  • Backwards compatible to Android 5.0 (API 21)
  • Currently in Alpha

Jetpack Compose

  • Reactive UI toolkit
  • Powered under the hood by a Kotlin compiler plugin
  • Out of box material design & animation support
  •  Compatible with existing views and UI 
  • Pre-alpha stage
    • API not finalized, don't use in production yet

Jetpack Compose

import androidx.compose.*
import androidx.ui.core.*

class HelloActivity : Activity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent { Hello("Ken") }
    }

    @Composable
    fun Hello(name: String) {
       Text("Hello $name!")
    }
}

Key Topics

  • Kotlin
  • Android Q
  • Jetpack
  • Flutter

Flutter

  • Flutter 1.5 & Dart 2.3 released
  • Released new plugin that exposes in-app purchase APIs
  • Flutter reached beyond mobile
    • Web
    • Desktop
    • Embedded devices

Key Topics

  • Kotlin
  • Android Q
  • Jetpack
  • Flutter

Google I/O 2019 Recap

By Kenneth Baldauf

Google I/O 2019 Recap

A recap of the latest Android developments from Google I/O 2019

  • 357