versión inicial presentación android studio y gradle

Post on 17-Jun-2015

633 Views

Category:

Software

2 Downloads

Preview:

Click to see full reader

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

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

¿El tamaño IDE Importa?

¿El tamaño IDE Importa?

I Android Studio

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

Mis Razones

¿Mejor que ?

Característ icas de

Android Studio

Soporte para Gradle

Creación de Proyecto

Editor de Proyecto

Actividades y mucho más

Editor de Navegación

Edición de ProGuard

Fixs Automáticos

Edición de recursos

Soporte xliff

Integración DDMS

Integración DDMS

Integración DDMS

Integración DDMS

Generador Assets

Layout – Previsualización

Layout – Selector color

Layout – RTL

Layout –Vista de APIs

Layout – Soporte API L

Estructura de archivos Android

… disponible en la versión 0.8.2 …

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

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

goo.gl/9etE7d

tools para todo

goo.gl/Ac8XJI

Soporte Android Wear

Soporte Android Wear

Lint

Lint – Nivel API

Lint – Errores Comunes

Lint – Errores Comunes

Lint – Cast

Lint – Dependencias

Análisis de código

Firmar APPs

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

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

Demo

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?

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!

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

¿Cómo funciona

Gradle?

Estructura de Proyecto

Un proyecto muchos módulos

settings.gradle

Proyecto build.gradle

Repositorios Gradle repositories {

jcenter()

mavenCentral()

mavenLocal()

ivy {

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

}

maven {

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

}

flatDir {

dirs 'prebuilt-libs'

}

}

gradle-wrapper.properties

Módulo build.gradle

Dependencias 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:+‘

}

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

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

BuildConfig.KAMIL

Build Type

Debug

Release

Release

Alpha

Beta

Debug

Product Flavor

productFlavors {

gratis {

applicationId 'es.droidcon.com.free'

versionCode 2

}

pago {

applicationId 'es.droidcon.com.paid'

versionCode 1

}

}

Variants

Build Type

Product flavor

PagoDebug

Pago

Debug

Variant

La magia de Gradle

La magia de Gradle

signingConfigs

signingConfigs {

release {

keyAlias 'test'

keyPassword System.getenv(“KEY_PASSWORD")

storeFile file('keystore.test.jks')

storePassword System.getenv(“STORE_PASSWORD")

}

}

FlavorGroups

Soporte para multi-apk

Crea tus propias tasks

task testfairyAllRelease << {

android.productFlavors.all { theProductFlavor ->

tasks.getByName("testfairy$

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

}}testfairyAllRelease.dependsOn assembleRelease

Plugins para Gradle

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

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

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

Demo 2

Nuevo Manifest Merger

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

android { useOldManifestMerger false #por defecto}

Nuevo Manifest Merger

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

tools:replace="label" />

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" />

Manifest > Placeholder

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

Depuración en Android (1)

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

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)

Depuración en Android (2)

• Mediante break-points ( puntos de parada)

Depuración en Android (2)

• Evaluación de expresiones en puntos de parada.

Depuración en Android (2)

• Análisis de variables y objetos

Depuración en Android (3)

• Analizando utilizando herramientas de DDMS **

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

La última demo

¡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

top related