versión inicial presentación android studio y gradle

80

Upload: kamil-zabdyr

Post on 17-Jun-2015

633 views

Category:

Software


2 download

DESCRIPTION

El objetivo de la charla es intentar convencer y motivar a los más excépticos a utilizar Android Studio junto con Gradle. Explicando, entre otras cosas, como incrementar la productividad con las últimas características y plugins de ambos, proponiendo soluciones a los errores más habituales y mostrando en una demo las muchas ventajas que ofrece.

TRANSCRIPT

Page 1: Versión inicial presentación Android Studio y Gradle
Page 2: Versión inicial presentación Android Studio y Gradle

TOCI. Importancia del IDEII. Android Studio

I. CaracterísticasII. DemoIII. FAQIV. Plugins

III. GradleI. CaracterísticasII. PluginsIII. Demo

IV. Nuevo Manifest MergerV. Depurar con Android Studio

I. Demo

Page 3: Versión inicial presentación Android Studio y Gradle

¿El tamaño IDE Importa?

Page 4: Versión inicial presentación Android Studio y Gradle

¿El tamaño IDE Importa?

Page 5: Versión inicial presentación Android Studio y Gradle

I Android Studio

• BETA y IDE Oficial• Idea Community Edition• Creado para nosotros!• Integración de gradle• Actualizaciones

Mis Razones

Page 6: Versión inicial presentación Android Studio y Gradle

¿Mejor que ?

Page 7: Versión inicial presentación Android Studio y Gradle

Característ icas de

Android Studio

Page 8: Versión inicial presentación Android Studio y Gradle

Soporte para Gradle

Page 9: Versión inicial presentación Android Studio y Gradle

Creación de Proyecto

Page 10: Versión inicial presentación Android Studio y Gradle

Editor de Proyecto

Page 11: Versión inicial presentación Android Studio y Gradle

Actividades y mucho más

Page 12: Versión inicial presentación Android Studio y Gradle

Editor de Navegación

Page 13: Versión inicial presentación Android Studio y Gradle

Edición de ProGuard

Page 14: Versión inicial presentación Android Studio y Gradle

Fixs Automáticos

Page 15: Versión inicial presentación Android Studio y Gradle

Edición de recursos

Page 16: Versión inicial presentación Android Studio y Gradle

Soporte xliff

Page 17: Versión inicial presentación Android Studio y Gradle

Integración DDMS

Page 18: Versión inicial presentación Android Studio y Gradle

Integración DDMS

Page 19: Versión inicial presentación Android Studio y Gradle

Integración DDMS

Page 20: Versión inicial presentación Android Studio y Gradle

Integración DDMS

Page 21: Versión inicial presentación Android Studio y Gradle

Generador Assets

Page 22: Versión inicial presentación Android Studio y Gradle

Layout – Previsualización

Page 23: Versión inicial presentación Android Studio y Gradle

Layout – Selector color

Page 24: Versión inicial presentación Android Studio y Gradle

Layout – RTL

Page 25: Versión inicial presentación Android Studio y Gradle

Layout –Vista de APIs

Page 26: Versión inicial presentación Android Studio y Gradle

Layout – Soporte API L

Page 27: Versión inicial presentación Android Studio y Gradle

Estructura de archivos Android

… disponible en la versión 0.8.2 …

https://www.youtube.com/watch?v=hu4U8XKmJGA

Page 28: Versión inicial presentación Android Studio y Gradle

Atributo tools• ignore• targetApi• locale• context• layout• listitem / listheader / Listfooter• showIn

goo.gl/9etE7d

Page 29: Versión inicial presentación Android Studio y Gradle

tools para todo

goo.gl/Ac8XJI

Page 30: Versión inicial presentación Android Studio y Gradle

Soporte Android Wear

Page 31: Versión inicial presentación Android Studio y Gradle

Soporte Android Wear

Page 32: Versión inicial presentación Android Studio y Gradle

Lint

Page 33: Versión inicial presentación Android Studio y Gradle

Lint – Nivel API

Page 34: Versión inicial presentación Android Studio y Gradle

Lint – Errores Comunes

Page 35: Versión inicial presentación Android Studio y Gradle

Lint – Errores Comunes

Page 36: Versión inicial presentación Android Studio y Gradle

Lint – Cast

Page 37: Versión inicial presentación Android Studio y Gradle

Lint – Dependencias

Page 38: Versión inicial presentación Android Studio y Gradle

Análisis de código

Page 39: Versión inicial presentación Android Studio y Gradle

Firmar APPs

Page 40: Versión inicial presentación Android Studio y Gradle

Atajos

• Ctrl+D Duplicar• Shift+F6 Refactorizar o renombrar• Alt+Enter Fix rápido.• Alt+Insert Generar• Ctrl+N Encontrar clases• Ctrl+Shift+N Encontrar archivos• Shift+Shift Buscar cualquier tipo• F4 Entrar configuración proyecto

Page 41: Versión inicial presentación Android Studio y Gradle

...y aún hay muchísimo más

Page 42: Versión inicial presentación Android Studio y Gradle

Demo

Page 43: Versión inicial presentación Android Studio y Gradle

FAQ¿Alguna versión de Android Studio es estable?

¿Puedo migrar proyectos desde eclipse?

¿Cómo no tener problemas después de actualizar Android Studio?

Page 44: Versión inicial presentación Android Studio y Gradle

Plugins ÚtilesLos que utilizo:

• Markdown http://goo.gl/uV5Rbe

• Genymotion http://goo.gl/Tn8QQZ

• ButterKnife http://goo.gl/JUBtMj

• Parcelable http://goo.gl/s815Qy

Y hay muchísimos más!

Page 45: Versión inicial presentación Android Studio y Gradle

I Gradle too

• Groovy DSL, fácil.• Variantes de aplicación• Gestión dependencias Maven• Manejo de keystores• Modo Offline• Compilaciones Incrementales• Hecho por Gradleware• Reemplaza Ant

Mis Razones

Page 46: Versión inicial presentación Android Studio y Gradle

¿Cómo funciona

Gradle?

Page 47: Versión inicial presentación Android Studio y Gradle

Estructura de Proyecto

Un proyecto muchos módulos

Page 48: Versión inicial presentación Android Studio y Gradle

settings.gradle

Page 49: Versión inicial presentación Android Studio y Gradle

Proyecto build.gradle

Page 50: Versión inicial presentación Android Studio y Gradle

Repositorios Gradle repositories {

jcenter()

mavenCentral()

mavenLocal()

ivy {

url 'http://repo.mycompany.com'

}

maven {

url 'https://www.testfairy.com/maven'

}

flatDir {

dirs 'prebuilt-libs'

}

}

Page 51: Versión inicial presentación Android Studio y Gradle

gradle-wrapper.properties

Page 52: Versión inicial presentación Android Studio y Gradle

Módulo build.gradle

Page 53: Versión inicial presentación Android Studio y Gradle

Dependencias Gradle

Page 54: Versión inicial presentación Android Studio y Gradle

Dependencias Gradle

dependencies {

compile fileTree(dir: 'libs', include: ['*.jar'])

compile 'com.android.support:support-v13:+'

compile 'com.google.android.support:wearable:+'

compile 'com.google.android.gms:play-services-wearable:+‘

}

Page 55: Versión inicial presentación Android Studio y Gradle

Estructura de CarpetassourceSets { main { manifest { srcFile ‘AndroidManifest.xml' } java { srcDir 'src' } res { srcDir 'res' } assets { srcDir 'assets' } resources { srcDir 'src' } } androidTest.setRoot(‘androidTest') }

Page 56: Versión inicial presentación Android Studio y Gradle

Build Type buildTypes { debug { buildConfigField "boolean", "KAMIL", "false" } release { buildConfigField "boolean", "KAMIL", "true" runProguard false proguardFiles getDefaultProguardFile('proguard-android.txt') } }

BuildConfig.KAMIL

Page 57: Versión inicial presentación Android Studio y Gradle

Build Type

Debug

Release

Release

Alpha

Beta

Debug

Page 58: Versión inicial presentación Android Studio y Gradle

Product Flavor

productFlavors {

gratis {

applicationId 'es.droidcon.com.free'

versionCode 2

}

pago {

applicationId 'es.droidcon.com.paid'

versionCode 1

}

}

Page 59: Versión inicial presentación Android Studio y Gradle

Variants

Build Type

Product flavor

PagoDebug

Pago

Debug

Variant

Page 60: Versión inicial presentación Android Studio y Gradle

La magia de Gradle

Page 61: Versión inicial presentación Android Studio y Gradle

La magia de Gradle

Page 62: Versión inicial presentación Android Studio y Gradle

signingConfigs

signingConfigs {

release {

keyAlias 'test'

keyPassword System.getenv(“KEY_PASSWORD")

storeFile file('keystore.test.jks')

storePassword System.getenv(“STORE_PASSWORD")

}

}

Page 63: Versión inicial presentación Android Studio y Gradle

FlavorGroups

Soporte para multi-apk

Page 64: Versión inicial presentación Android Studio y Gradle

Crea tus propias tasks

task testfairyAllRelease << {

android.productFlavors.all { theProductFlavor ->

tasks.getByName("testfairy$

{theProductFlavor.name.capitalize()}Release").execute()

}}testfairyAllRelease.dependsOn assembleRelease

Page 65: Versión inicial presentación Android Studio y Gradle

Plugins para Gradle

• sdk-manager-plugin http://goo.gl/m8WVwO

• Gradle Maven Push http://goo.gl/aWtTbF

• Testfairy gradle plugin. http://goo.gl/QpNJ4D

Page 66: Versión inicial presentación Android Studio y Gradle

Demo 2

Page 67: Versión inicial presentación Android Studio y Gradle

Nuevo Manifest Merger

• Control explicito en la fusión.• Es posible desactivarlo.

android { useOldManifestMerger false #por defecto}

Page 68: Versión inicial presentación Android Studio y Gradle

Nuevo Manifest Merger

<activity android:name=“droidcon.com.MainActivity" android:label=“Droidcon" android:screenOrientation="portrait" tools:merge="override“

tools:replace="label" />

Page 69: Versión inicial presentación Android Studio y Gradle

Manifest > Marker

.. xmlns:tools="http://schemas.android.com/tools"/> <activity android:name=“droidcon.com.MainActivity" android:label=“Droidcon" android:icon=“@drawable/icon“ tools:selector=“com.droidcon.lib"

tools:replace="label, icon" />

Page 70: Versión inicial presentación Android Studio y Gradle

Manifest > Placeholder

<activity android:name=".Main">     <intent-filter>     <action android:name="${applicationId}.foo">         </action></intent-filter></activity>

Page 72: Versión inicial presentación Android Studio y Gradle

Depuración en Android (1)

• Analizar y filtrar el log del sistema. • Introducir filtros en logcat.

Page 73: Versión inicial presentación Android Studio y Gradle

Depuración en Android (1)

• Log.i Info• Log.d Debug• Log.e Error• Log.v Verbose• LOG.w Warm• Log.wtf (what

terrible error)

Page 74: Versión inicial presentación Android Studio y Gradle

Depuración en Android (2)

• Mediante break-points ( puntos de parada)

Page 75: Versión inicial presentación Android Studio y Gradle

Depuración en Android (2)

• Evaluación de expresiones en puntos de parada.

Page 76: Versión inicial presentación Android Studio y Gradle

Depuración en Android (2)

• Análisis de variables y objetos

Page 77: Versión inicial presentación Android Studio y Gradle

Depuración en Android (3)

• Analizando utilizando herramientas de DDMS **

Page 78: Versión inicial presentación Android Studio y Gradle

Depuración en Android (4)

• Analizando métricas vía TestFairy.com para obtener videos, estadísticas, errores, logs, uso de cpu, uso de red…etc

Page 79: Versión inicial presentación Android Studio y Gradle

La última demo

Page 80: Versión inicial presentación Android Studio y Gradle

¡Gracias a todos!Referencias:Guía usuario Gradle http://goo.gl/5b89FtAndroid Develop http://developer.android.com/training/index.html Tools Android http://tools.android.com/ Android Studio http://developer.android.com/sdk/installing/studio.html Comunidad de Android Developers.Y otras fuentes que olvido mencionar.

@KamilZabdyr