Skip to content

A summary of all the important Android related launches, talks, discussions at the Google I/O 2018

Notifications You must be signed in to change notification settings

burhanrashid52/Android-IO18

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 

Repository files navigation

Android @ Google I/O 2018

At the Google I/O 2018 there were various Android related launches, talks and discussions. Here is one attempt to bring all of the updates under one page for fellow Android Developers to refer and learn.

Android Jetpack 🆕

A set of libraries, tools and architectural guides to help make it quick and easy to build great Android apps.

  • Brings development tools, components, best / recommended practises, recommended app behaviours and common UI elements together under one roof for developer reference and usage.
  • Contains 4 major components each of which (and their sub-components) can be used individually.
  • Cannot be used as a dependency or a library. Is just an umbrella term for all the libraries maintained by Google to make it easier and faster to develop apps.

Components

  • Foundation - Handles Android device fragmentation efficiently and help writing concise, testable code

    • AppCompat 📦 - Handle app behaviour on older versions of Android efficiently
    • AndroidKTX 🆕 - Android specific extensions to write consizer Kotlin code
    • Multidex - Cross the 65K limit smoothly
    • Test - Test your functions and Android UI easily
  • Architecture - Architect your app to follow best and recommended practises from Google

    • Databinding - Cut down on findViewByIds and make data observing / reactive UI elements
    • Lifecycle - Create lifecycle aware components
    • LiveData - A observable stream of data your Activities & Fragments can react to
    • Navigation 🆕 - Define in-app navigation stacks in a single, concise testable file
    • Paging 📦 - Paginate loading data from data sources
    • Room - An SQLlite ORM to handle database management in your apps
    • ViewModel - Handle data effectively around lifecycle changes of Android components
    • WorkManager 🆕 - Run parameterized background tasks efficiently
  • Behavior - Recommended behaviour for common use cases and tools to achieve them

    • Download Manager - Handle large data downloads
    • Media & Playback - Effectively support media playback and Google cast
    • Notifications - Show notifications across all versions of Android
    • Permissions - Check and request permissions effectively
    • Sharing - Allow users to share to your app and directly to other users on your platform
    • Slices 🆕 - Allow Google Search to launch intents into your app with highlights triggering the user action
  • UI - Common UI elements to build effective UIs on different Android versions and platforms

    • Animation & Transitions - Build smooth & transitioning UIs
    • Auto - Build apps for Android Auto with ease
    • Emoji - Add emojis to your app and support older devices effectly
    • Fragment - Break your UI into re-usable components
    • Layout - Build intuitive and performant UIs
    • Palette - Pull useful information from images and play with your UI
    • TV - Build apps for Android TV with ease
    • WearOS by Google - Build apps for WearOS

AppCompat

Webpage | Video

AndroidKTX

Webpage | Video | Source code

  • An Android specific Kotlin extension library part of Android Jetpack
  • Abstracts Android boilerplate code into extension functions making Kotlin code idiomatic, consize and safer
  • Reduces the need for multiple confusing Util classes and adds functionality directly to String, ViewGroup, View, Color, Fragments etc
  • Contains extensions to elements only in the Android framework
  • Has extensions for core framework elements, fragments, palette, collections, lifecycle-reativestreams,sqlite, navigation and work-manager.

Articles

Samples

Architecture Components

Webpage | Video

  • 52% Android devs showed interest in using the components
  • AppCompatActivity & Fragment implement LifecycleOwner
  • LifecycleOwner
    • When using Fragments and LiveData+ViewModel, change the calls to use the Fragment lifecycle
      viewmodel.livedata.observe(viewLifeCycleOwner,Observer{
          //Handle new data
      })
  • Data binding
    • Pass the LifecycleOwner to your binding initializer to allow bindings to respect Activity lifecycle
      val binding: ViewBinding = DatabindingUtil.getBinding(user)
      binding.setLifecycleOwner(viewLifeCycleOwner)
    • Data binding v2 to support incremental compiling and make multi-modular apps build faster
    • Supports data binding in Instant Apps
  • Room
    • Room 1.1 has better support for threading
    • Due to threading and WriteAheadLogging (WAL) queries to different tables would run in parallel rather than serially
    • @RawQuery helps you create queries at run-time allowing you to query columns dynamically.
      @RawQuery
      fun getHouses(query:SimpleSQLiteQuery): List<Houses>
  • What's next?
    • Lifecycle aware tools in Android studio - like NavigationEditor
    • Adding templates into Android studio for ViewModel
    • More architecture components into Jetpack
    • Make other Google APIs "architecture-components-aware"
    • Sample apps and Codelabs would be refactored to use architecture components
    • Areas under lens:
      • Error Handling
      • Saved State
      • Fragments & Lifecycles
      • Making components Kotlin idiomatic

Navigation

Webpage | Video

Paging

Webpage | Video

WorkManager

Webpage | Video

Slices

Webpage | Video

Android Things 🚥

Android Things is Google's platform to support the development of Internet of Things devices. Which is now in 1.0 prodution ready version.This section has all Android Things related video Whats'new ? updates and best practises

Website | Playlist | Androiod Thing Console

  • What's New ? : Learn more about the breadth of hardware reference designs, the operating system, building apps, device management, and support from chip vendors.

  • Device Provisioning and Authentication : This talk will discuss how to support authentication, provisioning from a mobile device, and device attestation.

  • Android Things Console: Android Things provides a powerful developer Console that manages your device deployments. Learn more about how to take your APKs and hardware configurations, and build them into system images, which can then be rolled out to all of your devices via over-the-air updates.

  • System On Modules: How to create your own SOM carrier boards, including creating the design from scratch, working with a fabrication company, assembly and testing, and taking it all the way to production.

  • Build Real Consumer Devices : This talk will walk through the journey of building consumer devices like Smart Displays using Android Things

  • Build effective OEM-level apps : As an Android Things OEM. How should you structure your code? Should you use activities or services? Should the code be running in the foreground or the background? Do you package all the code into one APK, or split components up into modules? Find answers to all of these questions and more with best practices for building OEM-level apps.

Contribution

Looking for a lot of contributions! Kindly refer the Contribution guidelines for smoother contributions.

About

A summary of all the important Android related launches, talks, discussions at the Google I/O 2018

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published