Slide 1

Slide 1 text

@AndroidDevsBSAS @seba_cipolat Android Instant Apps Sebastian Cipolat

Slide 2

Slide 2 text

http://bit.ly/preguntapps

Slide 3

Slide 3 text

● ¿Que es una Instant App? ● ¿Como se acceden? ● Ventajas ● Activar Instant Apps ● Requerimientos del device ● Limitaciones ● Aplicaciones como funciones ● Construir una instant app ● Publicacion ● Play Install APi ● Google Play Instant ● App Ejemplo DeliveryYA Agenda

Slide 4

Slide 4 text

¿Que es una instant app? Se trata de una tecnología que permite ejecutar aplicaciones nativas Android sin necesidad de instalarlas. Anunciadas en el Google I/O del 2016 https://www.youtube.com/watch?v=iH7dNyJ8pFM En el ultimo I/O Google las empezo a llamar Google Play Instant

Slide 5

Slide 5 text

2017

Slide 6

Slide 6 text

Accesible desde una URL En base a los parámetros contenidos basará su comportamiento. Desde la ficha de la app en el playstore mediante “TRY NOW” Resultados de búsqueda ¿Como se acceden?

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

Ventajas ● Provee experiencia nativa sin instalar ● Aumenta visibilidad de la app ● Performance ● Nuevos casos de usos ● Mayor cantidad de instalaciones

Slide 9

Slide 9 text

Requerimientos del device Version minima Android 6.0 Por defecto viene desactivado. A Partir de Android Oreo vienen activadas por default (puede variar segun fabricante). En devices compatibles se instala automáticamente Google Play services for Instant Apps Por lo gral no disponible en Custom Roms.

Slide 10

Slide 10 text

Ultimo I/O

Slide 11

Slide 11 text

Activar Instant apps

Slide 12

Slide 12 text

Limitaciones ● Requiere activación del user en algunos casos ● Background Services. ● Push notifications (BETA) ● Acceso external storage ● Cambiar config ej. wallpaper ● Acceso a content providers externos. ● Broadcast Receiver limitados ● Descubrir app instaladas. ● Activity no asociado a layout.

Slide 13

Slide 13 text

Limitaciones Permisos permitidos: *Utiliza modelo de permisos de Android 6.0 ● BILLING ● ACCESS_COARSE_LOCATION ● ACCESS_FINE_LOCATION ● ACCESS_NETWORK_STATE ● CAMERA ● INSTANT_APP_FOREGROUND_SERVICE Only in Android 8.0. ● INTERNET ● READ_PHONE_NUMBERS. Only in Android 8.0 ● RECORD_AUDIO ● VIBRATE

Slide 14

Slide 14 text

Aplicaciones como funciones Toda aplicación tiene al menos 1 función o tarea. App Mapa ● Buscar una ubicación. ● Buscar restaurantes cercanos. ● Detalles de un lugar específico ● Compartir ubicación de un lugar en redes sociales.

Slide 15

Slide 15 text

Aplicaciones como funciones App Mapa Buscar una ubicación. Buscar restaurantes cercanos. Detalles de un lugar específico Compartir ubicación de un lugar en redes sociales. Separar cada funcionalidad en un módulo. Instant App Detalles de un lugar específico http://example.com/place/guerrin

Slide 16

Slide 16 text

El usuario sólo recibirá el código necesario para cada funcionalidad.

Slide 17

Slide 17 text

Construir una Instant App Requerimientos: ● Android SDK Build-Tools 26.x or higher ● Android SDK Platform Tools 25.x or higher ● Android SDK Tools (latest) ● Instant Apps Development SDK (latest) ● Support Repository (latest) ● All dependencies of Support Repository (latest version for each)

Slide 18

Slide 18 text

Incluir soporte instant App

Slide 19

Slide 19 text

Estructura de proyecto en una instant app Compuesta por diversos módulos: App Module: App tradicional incluye a todos los módulos. Instant App Module: Incluye solos los feature modules y el módulo base. Feature Module: Código específico para esa funcionalidad. Base Feature Module: Codigo requerido por todos.

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

Crear Modulo File->New->New Module->Feature Module

Slide 22

Slide 22 text

Base Feature Module ● Recursos compartidos y archivos de código de los que dependen otras funciones. ● Parecido a una librería. ● Todos los módulos depende de él. Build.gradle apply plugin: 'com.android.feature' android { baseFeature true … } dependencies { …… feature project(':feature1') feature project(':feature2') application project(':app') }

Slide 23

Slide 23 text

Feature Module build.gradle apply plugin: 'com.android.feature' android { ... } dependencies { …… implementation project(':base') …… } Usado por todos los modulos Depende del modulo base.

Slide 24

Slide 24 text

App Module build.gradle apply plugin: 'com.android.application android { ... } dependencies { …… api project(‘:base-module’) implementation project(':feature1) implementation project(':feature2) } ● Módulo que representa a toda la app instalable. ● Incluye a todos los módulos.

Slide 25

Slide 25 text

Instant App Module Crear Modulo: File->New->New Module->Instant App build.gradle apply plugin: 'com.android.instantapp android { ... } dependencies { …… api project(‘:base-module’) implementation project(':feature1) } ● Módulo que representa a la instant app. ● Incluye a los features modules

Slide 26

Slide 26 text

App Links Vincula una URL a un contenido específico dentro de la aplicación. Agregar Intent Filter Tools > App Links Assistant. Mapeo de URL

Slide 27

Slide 27 text

App Links https://www.recipe-app.com/recipe->MainActivity Intent appLinkIntent = getIntent(); String appLinkAction = appLinkIntent.getAction(); Uri uri = appLinkIntent.getData(); String id =uri.getQueryParameter(“id”); https://www.recipe-app.com/recipe&id=45454 Acceder a parametros:

Slide 28

Slide 28 text

App Links Asociar app con sitio web Dominio HTTPS obligatorio Utilizar release keystore Subir assetlinks.json al sitio web en esta ubicación: https:///.well-known/assetlinks.json.

Slide 29

Slide 29 text

Probar Instant App

Slide 30

Slide 30 text

Play Install API Android Instant Apps API reference Brinda la posibilidad de mostar el dialogo de instalacion del playstore de la app completa. Necesario: implementation 'com.google.android.instantapps:instantapps:1.1.0' Intent postInstall = new Intent(); InstantApps.showInstallPrompt(@NonNull Activity activity, @NonNull Intent postInstallIntent, int requestCode, @Nullable String referrer); Permite detectar si estoy en una instant app o no if (!InstantApps.isInstantApp(this)) { //mostrar install prompt button }

Slide 31

Slide 31 text

Publicacion Compuesto por APK modulo funcionalidad APK modulo base Paquete a subir a playstore No pueden superar los 4MB Firmar cada modulo. App instalable OBLIGATORIA

Slide 32

Slide 32 text

Publicar en Playstore

Slide 33

Slide 33 text

Extension de Android instant apps para incluir a los juegos. Limite de APK 10MB (Beta) Compatibilidad: Unity , Cocos Video Lanzamiento: https://www.youtube.com/watch?time_continue=1759&v=5wtlj_q3DjE BETA

Slide 34

Slide 34 text

DeliveryYa Instant App de ejemplo https://pedidosonline-357d1.firebaseapp.com/deliveryya/order?id=112233445566 URL para acceder: Descargar https://github.com/sebacipolat/DeliveryYa Repositorio

Slide 35

Slide 35 text

DeliveryYa Instant App de ejemplo bit.ly/2IE9VWp Case sensitive

Slide 36

Slide 36 text

No content

Slide 37

Slide 37 text

No content

Slide 38

Slide 38 text

No content

Slide 39

Slide 39 text

No content

Slide 40

Slide 40 text

No content

Slide 41

Slide 41 text

No content

Slide 42

Slide 42 text

No content

Slide 43

Slide 43 text

URL default accessible cuando: ● No se puede cargar instant app ● “Try Now”

Slide 44

Slide 44 text

DeliveryYa

Slide 45

Slide 45 text

Recursos Building an Android Instant App (Google I/O '17) https://www.youtube.com/watch?v=9Jg1D07NgeI Introduction to Android Instant Apps (Google I/O '17) https://www.youtube.com/watch?v=oispNrpGnIY&t=157s Google Play Instant: how app developers are finding success (Google I/O '18) https://www.youtube.com/watch?v=tXqat1JOmS8 UX best practices https://developer.android.com/topic/google-play-instant/best-practices/apps Refactoring an existing Android app to support Instant App. https://blog.mindorks.com/refactoring-an-existing-android-app-to-support-instant-app-aa11fe54fd73 Some useful insights on Instant apps https://medium.com/nos-digital/some-useful-insights-on-instant-apps-67cc7d177695 Android Instant Apps,All you need to know about.. https://hackernoon.com/android-instant-apps-all-you-need-to-know-about-d392a6e10584

Slide 46

Slide 46 text

Recursos How to Create Instant app from Existing App http://androidkt.com/instant-app/ Android Instant Apps, step-by-step: how Vimeo went about it https://medium.com/vimeo-engineering-blog/vimeo-android-instant-apps-2f8b1e94760c CodeLabs: Build your First Android Instant App https://codelabs.developers.google.com/codelabs/android-instant-apps/#0 Build a Multi-Feature Instant App https://codelabs.developers.google.com/codelabs/android-multi-feature-instant-app/#0 FAQ https://developer.android.com/topic/google-play-instant/faqs

Slide 47

Slide 47 text

Instant app ejemplos DeliveryYa https://github.com/sebacipolat/DeliveryYa InstantAppStarter https://github.com/iamBedant/InstantAppStarter Instant-app-demo Kotlin https://github.com/fredericcollinss/instant-app-demo-kotlin Java https://github.com/fredericcollinss/android-instant-app-demo Android-instant-apps-demo https://github.com/willowtreeapps/android-instant-apps-demo

Slide 48

Slide 48 text

¿Consultas?

Slide 49

Slide 49 text

Sebastian Cipolat @seba_cipolat [email protected] sebastiancipolat.com