#postiotour#dfua
#postiotour
Cherkasy-Kropyvnytskyi-Poltava-Kremenchuk-Kharkiv
Post I/O Tour UA 2017
Vlad Ivanov, Anna Kurylo, Valentyn Shybanov, Kateryna Zavorotchenko, Yelyzaveta Losieva
GDG Kyiv-Center, WTM Kyiv
#postiotour#dfua
#postiotour
Google I/O 2017
ззовні
і зсередини
Volodymyr Ivanov
GDG Kyiv-Center, GDG Community Mentor
#postiotour#dfua
#postiotour
Що оточує Google I/O?
#postiotour
Що оточує Google I/O?
Stanford
#postiotour#dfua
#postiotour
Що оточує Google I/O?
Stanford
GDG Global Summit
#postiotour#dfua
#postiotour#dfua
#postiotour#dfua
#postiotour#dfua
#postiotour
Google I/O 2016
#postiotour
Google I/O 2016
Що було не так?
#postiotour
Спека
#postiotour
Спека
Спрага
#postiotour
Спека
Спрага
Плейсмент
#postiotour#dfua
#postiotour#dfua
#postiotour
Keynote
Session
CodeLab
Office Hour
Speechless Live
#postiotour#dfua
#postiotour#dfua
Чого/кого не було на
I/O’17?
#postiotour
Sergey Brin, Larry Page
Matias Duarte
Astro Teller
Sebastian Thrun
Regina Dugan
#postiotour#dfua
Чому?
#postiotour#dfua
Бо частина завжди менше цілого!
#postiotour#dfua
Хто запам’ятався?
#postiotour#dfua
Tal Oppenheimer
#postiotour#dfua
#postiotour#dfua
#postiotour#dfua
Community Lounge
#postiotour#dfua
#postiotour#dfua
#postiotour#dfua
#postiotour#dfua
#postiotour#dfua
#postiotour#dfua
#postiotour#dfua
#postiotour#dfua
Питання?
Volodymyr Ivanov
GDG Kyiv-Center, GDG Community Mentor
#postiotour#dfua
Дякую!
Volodymyr Ivanov
GDG Kyiv-Center, GDG Community Mentor
#postiotour
Google I/O for Android
developers
Highlights from I/O’17
Kateryne Zavorotchenko
Android Developer
#postiotour
Google I/O News
for Android Developers
#postiotour
What's New in Android O
Notifications
Autofill Framework
ShortCut Manager
Alert window overlay
Autofill Framework
Kotlin
Instant Apps
Architecture Components
Spring Animation
Picture in Picture
AnimationSet reverse()
ANDROID_ID unique
Background app behavior Adaptive icons
#postiotour
Architecture Components
Percictence and Offline
Room stores data in the SQL.
Solving the Lifecycle Problem
ViewModel contains LiveData.
Stored per Activity.
LiveData<T> - observable
Data Holder.
Lifecycle aware component
#postiotour
Android Instant Apps
Is the same app but used by demand. Same UI and
Navigation.
Works without installation
Modularization. Every instant app must have one (and
only one) base feature APK and can have a few feature
modules.
Design for multiple entry points. Use DeepLinking.
Sign in with SmartLock works with Instant Apps.
#postiotour
Notifications
ShortCut Manager
Notification Channels
notificationManager
.createNotificationChannel(channel);
Channels - mandatory once you target API 26.
A named category of notifications from one
app that share the same behavior (sound,
light, vibration) for one app.
#postiotour
Notifications
Adaptive Icons
<adaptive-icon>
<background
android:drawable="@color/ic_background"/>
<foreground
android:drawable="@mipmap/ic_foreground"/>
</adaptive-icon>
#postiotour
Kotlin
https://kotlinlang.org/
https://developer.android.com/kotlin/
Google partners with
JetBrains to move Kotlin
into a nonprofit foundation.
It is already open-sourced
under Apache2.
#postiotour
Kotlin
data class User(var name: String)
public class VideoGame {
private String name;
public VideoGame(String name) { this.name = name; }
public String getName() { return name; }
public void setName(String name) { this.name = name;}..
@Override
public boolean equals(Object o) {..}
@Override
public int hashCode() {..}
@Override
public String toString() {..}
}
#postiotour
Android Animations Spring to Life
Fling friction
Spring Animation
dependencies {
...
compile "com.android.support:support-dynamic-animation:26.0.0-beta2"
}
FlingAnimation fling = new FlingAnimation(view, DynamicAnimation.SCROLL_X);
final SpringAnimation springAnim = new SpringAnimation(view,
DynamicAnimation.TRANSLATION_Y, 0);
#postiotour
Android OS Framework
Throttle queries over time. No limits on AlarmManager, SyncAdapter, JobScheduler for periodic work (yet).
Background services stopped shortly after leaving foreground.
JobIntentService. Uses jobs in O+ and services in pre-O. Handles wakelocks for you.
Bg location updates will be provided a few times per hour, wi-fi results in 30min, geofencing 2-3min.
#postiotour
Android OS Framework
Alert window type
APPLICATION_OVERLAY
Autofill Framework
AutofillManager afm =
this.getSystemService(AutofillManager.class);
#postiotour
Android Support Library
VectorCompatDrawable svg android:fillType
fixed
<aapt:attr
name="android:drawable">
<vector ...>
Path Interpolator
<objectAnimator ..
android:interpolator="@interpolator/path_fastSlo
w"
../>
We can inline drawable
#postiotour
Android Support Library
Removed support for SDK < 14 (1400 methods)
Fonts in XML. Fonts are a new resource type
FontsContractCompat with FontProvider.
Provide entire Google Fonts catalog.
android:fontFamily="@font/myfont"
TextView autosize. app:autoSizeTextType="uniform"
#postiotour
Android Design Tools
ConstraintSet.
TransitionManager
.beginDelayedTransision(constraintLayout);
#postiotour
Android Development Tools
Android Studio 3.0. Breaking Gradle API change. Kotlin. Code -> Convert Java file to Kotlin file.
xml new resource type tools:text="@tools:sample/lorem"
XML Fonts. In layout in the fontFamily option - browse available online fonts.
Profiler. CPU, Memory and Network state.
Instant Apps. Context menu -> Extract -> Modularize (in Canary 1)
Adaptive Icons. In the image asset wizard - option for adaptive icons.
Build Cache. Get output from the cache rather than re-run the task.
Java 8. Use {sourceCompativility JavaVersion.VERSION_1_8..}
Match attribute on build type on lib and app: "debug" lib with debug app.
#postiotour
Fragment Tricks
Fragments vs Views
Views display info and publish user interaction events (draw, clicks, scroll). Don't add external
dependencies to a View - service bind, network call.
Fragments integrate with lifecycle and may be aware of other app components. Bind to a service,
communicate with data model.
FragmentManager.beginTransaction()
.replace(R.id.container, fragment1)
.addToBackStack("state1")
.setReorderingAllowed(true)
.commit();
Optimisation
#postiotour
Fragment Tricks
Transitions
FragmentManager.beginTransation()
.setTransition(TRANSIT_FRAGMENT_FADE)
.replace..
Shared Elements
fragment
.setSharedElementEn
terTransition(.); // for
shared views
fragment
.setEnterTransition(.)
; // for not shared
views
.addSharedElement(vi
ew, "target") // name of
the element ..
#postiotour
Contextual App Experiences
Nearby Messages exposes simple publish and subscribe methods.
Nearby Notifications Triggers an app intent from
beacon to launch an app
Awareness API:
Fence API (Callbacks), Snapshot API (Polling)
Require Google Play services 7.8.0 or higher.
Eddystone supported beacon hardware required. Rely on the phone
detecting a Bt Low Energy beacon nearby.
Fused Location Provider, Activity recognition, Geofencing,
Place detection, State of the device (Time, Headphones)
#postiotour
Android Fireside Chat
Q: How do you ensure that OEM actions does not break OS
A: Project Treble created a foundation layer for Android, vendor interface. Reduce the cost of updating
Android OS. New devices will have it.
Q: What's the difference between Systrace and Profiler
A: Systrace gets all of its data from the Linux kernel. Profiler sample the run-time of your app and its
functions.
Q: Are you still working on a data binding
A: Yes it one of our responsibilities
Q: How Kotlin related to Swift
A: We are independent. Kotlin was announced in 2011.
Q: Will Google Play Services will be open-source as Firebase SDK
A: Play Services extends some google apps, which are not open-sourced.
Q: Are you going to implement platform framework components using Kotlin
A: Java code for the near future because of millions of code lines. Main goal -make the Java and Kotlin API
interoperatable
Q: Is Volley still recommended
A: We recommend use Retrofit and OkHttp and Glide
#postiotour
Google I/O Products
for Android Developers
#postiotour
Assistant (Google Actions)
#postiotour
Cloud AI & TensorFlow
Image Analysis
Video Analysis
Speech Recognition
Dynamic Translation
Text Analysis
#postiotour
VR & AR
#postiotour
Sites
https://developers.google.com/actions/
https://cloud.google.com/products/machine-learning/
https://codelabs.developers.google.com/codelabs/tensorflow-style-transfer-android
https://codelabs.developers.google.com/codelabs/vr_view_app_101/
https://developers.google.com/tango/apis/java/
#postiotour
Google I/O Tips
for Android Developers
#postiotour
Schedule
#postiotour
App Reviews and Office Hours
#postiotour
Codelabs
#postiotour
Googleplex
#postiotour
Thank You
questions?
#postiotour
Highlights from I/O’17
Web & Google Assistant
Anna Kurylo
Web Developer @ DAXX
#postiotour
My way to pick an agenda
Expected: lots of talks for Angular
#postiotour
My way to pick an agenda
Expected: lots of talks for Angular
Reality: 2 talks on Angular ¯_(ツ)_/¯
#postiotour#dfua
#postiotour
Web. Mobile Web
#postiotour#dfua
#postiotour#dfua
ROADSHOW
ROADSHOW
Lie-Fi
ROADSHOW
of users abandon sites that take
longer than 3 seconds to load40%
ROADSHOW
Reliable Fast Engaging
User experiences need to be...
#postiotour
ROADSHOW
ROADSHOW
are a new level of caring about
the quality of your user experience
Progressive Web Apps
ROADSHOW
ROADSHOW
ROADSHOW
ROADSHOW
ROADSHOW
ROADSHOW
ROADSHOW
`
PWAs with
Web Push
Notifications
#postiotour#dfua
#postiotour#dfua
smashingmagazine.com/2016/12/progressive-web-amps
#postiotour
Chrome DevTools
Lots of improvements for debugging async code
#postiotour#dfua
#postiotour#dfua
#postiotour#dfua
Real-time coverage
#postiotour#dfua
Lighthouse, ˈlītˌhous (n): a tower or other structure tool containing a
beacon light to warn or guide ships at sea developers.
#postiotour#dfua
#postiotour#dfua
Polymer Summit 2017
August 22-23
Copenhagen, Denmark
Two days of talks, codelabs, and
breakout sessions from the Polymer
team, Googlers, and major
companies using Polymer and Web
Components.
https://events.withgoogle.com/poly
mer-summit-2017/
#postiotour
Google Assistant
#postiotour
#postiotour
Google Assistant Grows
New platforms: now on iPhone (but only in the US),
later — on Android Auto, on IoT etc.
#postiotour
Google Assistant Grows
New platforms: now on iPhone (but only in the US),
later — on Android Auto, on IoT etc.
New ways to build with Google Assistant:
Actions on Google
#postiotour
#postiotour
Google Assistant Grows
New platforms: now on iPhone (but only in the US),
later — on Android Auto, on IoT etc.
New ways to build with Google Assistant:
Actions on Google
Transactions API
#postiotour
#postiotour
Google Assistant Grows
New platforms: now on iPhone (but only in the US),
later — on Android Auto, on IoT etc.
New ways to build with Google Assistant:
Actions on Google
Transactions API
Google Assistant on Hardware
#postiotour
#postiotour#dfua
Actions on Google Developer
Challenge
Win 1 of more than 20 prizes,
including ticket to Google I/O 2018,
for creating an app with Actions on
Google.
#postiotour
Links
Web:
https://www.ampproject.org/
https://developers.google.com/web/tools/lighthouse/
https://events.withgoogle.com/polymer-summit-2017/
Google Assistant:
https://g.co/dev/ActionsDesign
https://developers.google.com/actions/challenge/
https://codelabs.developers.google.com/
#postiotour
Thank you!
Questions?Questions?
@bluebirrrrd
#postiotour
Thank you!
Questions?
#postiotour
Thank you!
Questions?
#postiotour
Thank you!
Questions?

Встреча Google Post IO ( Владимир Иванов, Катерина Заворотченко и Сергей Комлач)