After several years of making android applications, I've collected a bunch of tips and techniques to improve the development process. These are going from discovering non-standard tools, knowing better your IDE, using fundamental and some uncommon libraries and other stuff.
This presentation is aimed for those in the beginner and intermediate levels but I'm sure advanced developers will learn a couple a things as well
Slides del taller "The Linux Shell. Shell Scripting desde 0" presentado durante las actividades de la BugCon Security Conferences efectuado en la Escuela Superior de Computo -ESCOM- en el D.F., México, del 13 al 15 de febrero del 2013.
Nowadays, we as android developers suffer serious problems regarding android fragmentation if we wanna use Material Design.
In this talk we will learn how to make backward compatibility easier when applying material design on older devices.
Welcome to the old school world of Material Design.
Slides del taller "The Linux Shell. Shell Scripting desde 0" presentado durante las actividades de la BugCon Security Conferences efectuado en la Escuela Superior de Computo -ESCOM- en el D.F., México, del 13 al 15 de febrero del 2013.
Nowadays, we as android developers suffer serious problems regarding android fragmentation if we wanna use Material Design.
In this talk we will learn how to make backward compatibility easier when applying material design on older devices.
Welcome to the old school world of Material Design.
Groovy&Grails: Cambia la forma de desarrollar tus aplicaciones webParadigma Digital
Fátima Casaú, especializada en Groovy & Grails y en Metodologías Ágiles, nos explicó en esta charla cómo Groovy & Grails están revolucionando el desarrollo de aplicaciones web.
Flutter es el SDK de aplicaciones móviles de Google para crear
interfaces nativas de alta calidad en iOS y Android en un tiempo
récord.
Sirve para crear fácilmente app móviles modernas, bonitas y de
alto desempeño Funciona para Android y iOS Es una herramienta open-source, desarrollada por Google
Actualmente se encuentra en Beta 3 Listo para producción.
La Caja de Herramientas del Desarrollador Moderno PHPConferenceARPablo Godel
En los últimos años ha habido un tremendo progreso e innovación en herramientas y aplicaciones disponibles para que el desarrollador web mejore la calidad, eficiencia y velocidad de sus aplicaciones. Es difícil estar al tanto de todas estas actualizaciones.
En esta charla introduciremos y exploraremos las herramientas que marcan una real diferencia en las siguientes áreas:
Desarrollo, testeo y debugging con Vagrant, Ansible, y Docker
Monitoreo y logging con Logstash, Kibana, Redis, y Elasticsearch
Deployment con Capistrano, Capifony y similares
Todas estas herramientas, además de consejos y trucos aprendidos a lo largo de años de experiencia harán de esta charla muy interesante para desarrolladores de diversos niveles.
Seguramente ya te has dado cuenta que aunque tu código ha alcanzado un nivel PRO, tus usuarios siguen dependiendo de ti para las tareas más triviales porque no deja de ser código. Sin embargo, si dispusieran de un lenguaje propio la cosa cambiaría: no más puntos y comas, no más palabras en otro idioma, sin necesidad de compilados ... Eso es tu DSL !!! En esta charla veremos lo fácil que es diseñar un lenguaje propio usando como ejemplo *Groogle* un DSL hecho en Groovy para acceder a varios servicios de Google (Drive, Sheet, Calendar, Map, etc ), usando las librerías clientes de Java.
Go es un lenguaje de programación de código abierto lanzado por Google en 2009, creado con la motivación de manejar el nivel de programación que tiene Google en cuanto a número de líneas de código y la cantidad de ingenieros que trabajan en el código. Además, para facilitar la interconexión de programas dentro de sistemas distribuidos de miles de máquinas.
En este meetup revisamos este lenguaje, sus principales características, qué empresas lo usan, cómo dar los primeros pasos y una aplicación de ejemplo.
Groovy&Grails: Cambia la forma de desarrollar tus aplicaciones webParadigma Digital
Fátima Casaú, especializada en Groovy & Grails y en Metodologías Ágiles, nos explicó en esta charla cómo Groovy & Grails están revolucionando el desarrollo de aplicaciones web.
Flutter es el SDK de aplicaciones móviles de Google para crear
interfaces nativas de alta calidad en iOS y Android en un tiempo
récord.
Sirve para crear fácilmente app móviles modernas, bonitas y de
alto desempeño Funciona para Android y iOS Es una herramienta open-source, desarrollada por Google
Actualmente se encuentra en Beta 3 Listo para producción.
La Caja de Herramientas del Desarrollador Moderno PHPConferenceARPablo Godel
En los últimos años ha habido un tremendo progreso e innovación en herramientas y aplicaciones disponibles para que el desarrollador web mejore la calidad, eficiencia y velocidad de sus aplicaciones. Es difícil estar al tanto de todas estas actualizaciones.
En esta charla introduciremos y exploraremos las herramientas que marcan una real diferencia en las siguientes áreas:
Desarrollo, testeo y debugging con Vagrant, Ansible, y Docker
Monitoreo y logging con Logstash, Kibana, Redis, y Elasticsearch
Deployment con Capistrano, Capifony y similares
Todas estas herramientas, además de consejos y trucos aprendidos a lo largo de años de experiencia harán de esta charla muy interesante para desarrolladores de diversos niveles.
Seguramente ya te has dado cuenta que aunque tu código ha alcanzado un nivel PRO, tus usuarios siguen dependiendo de ti para las tareas más triviales porque no deja de ser código. Sin embargo, si dispusieran de un lenguaje propio la cosa cambiaría: no más puntos y comas, no más palabras en otro idioma, sin necesidad de compilados ... Eso es tu DSL !!! En esta charla veremos lo fácil que es diseñar un lenguaje propio usando como ejemplo *Groogle* un DSL hecho en Groovy para acceder a varios servicios de Google (Drive, Sheet, Calendar, Map, etc ), usando las librerías clientes de Java.
Go es un lenguaje de programación de código abierto lanzado por Google en 2009, creado con la motivación de manejar el nivel de programación que tiene Google en cuanto a número de líneas de código y la cantidad de ingenieros que trabajan en el código. Además, para facilitar la interconexión de programas dentro de sistemas distribuidos de miles de máquinas.
En este meetup revisamos este lenguaje, sus principales características, qué empresas lo usan, cómo dar los primeros pasos y una aplicación de ejemplo.
En este documento analizamos ciertos conceptos relacionados con la ficha 1 y 2. Y concluimos, dando el porque es importante desarrollar nuestras habilidades de pensamiento.
Sara Sofia Bedoya Montezuma.
9-1.
3Redu: Responsabilidad, Resiliencia y Respetocdraco
¡Hola! Somos 3Redu, conformados por Juan Camilo y Cristian. Entendemos las dificultades que enfrentan muchos estudiantes al tratar de comprender conceptos matemáticos. Nuestro objetivo es brindar una solución inclusiva y accesible para todos.
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informáticavazquezgarciajesusma
En este proyecto de investigación nos adentraremos en el fascinante mundo de la intersección entre el arte y los medios de comunicación en el campo de la informática.
La rápida evolución de la tecnología ha llevado a una fusión cada vez más estrecha entre el arte y los medios digitales, generando nuevas formas de expresión y comunicación.
Continuando con el desarrollo de nuestro proyecto haremos uso del método inductivo porque organizamos nuestra investigación a la particular a lo general. El diseño metodológico del trabajo es no experimental y transversal ya que no existe manipulación deliberada de las variables ni de la situación, si no que se observa los fundamental y como se dan en su contestó natural para después analizarlos.
El diseño es transversal porque los datos se recolectan en un solo momento y su propósito es describir variables y analizar su interrelación, solo se desea saber la incidencia y el valor de uno o más variables, el diseño será descriptivo porque se requiere establecer relación entre dos o más de estás.
Mediante una encuesta recopilamos la información de este proyecto los alumnos tengan conocimiento de la evolución del arte y los medios de comunicación en la información y su importancia para la institución.
Actualmente, y debido al desarrollo tecnológico de campos como la informática y la electrónica, la mayoría de las bases de datos están en formato digital, siendo este un componente electrónico, por tanto se ha desarrollado y se ofrece un amplio rango de soluciones al problema del almacenamiento de datos.
Es un diagrama para La asistencia técnica o apoyo técnico es brindada por las compañías para que sus clientes puedan hacer uso de sus productos o servicios de la manera en que fueron puestos a la venta.
7. Proxy
• Charles
Proxy
• ¿Cómo?
• Configurar
Android
(si
lo
permite)
• Usar
aplicación
(si
Kenes
móvil
rooteado)
• Por
código:
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpHost proxy = new HttpHost("1.2.3.4", 8080);
httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
8. Colored
logcat
Permite
personaliza
la
salida
editando
el
fichero
~/.logcat-‐color
h$ps://github.com/marshall/logcat-‐color.git
9. Re-‐aprender
Eclipse
• Técnica
milenaria
de
vista
dual
para
edición
de
interfaces
• Otros
• Refactors
• expresiones
regulares
• Shortcuts:
desplazar
líneas
13. Roboguice
h$p://code.google.com/p/roboguice/
Reduce
el
código
+
Inyección
de
dependencias
@ContentView(R.layout.main)
class RoboWay extends RoboActivity {
@InjectView(R.id.name) TextView name;
@InjectView(R.id.thumbnail) ImageView thumbnail;
@InjectResource(R.drawable.icon) Drawable icon;
@InjectResource(R.string.app_name) String myName;
@Inject LocationManager loc;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
name.setText( "Hello, " + myName );
}
}
Google
14. Reporte
de
Crashes
Envío
automá^co
de
crashes
h$p://code.google.com/p/acra/
@ReportsCrashes(formKey = ”apiKey")
public class MyApplication extends Application {
Mejor
visualización
h$p://www.bugsense.com/
Kevin
23. Comunicación
entre
Activities
public static Intent getCallingIntent
(Context ctx, String url, String title) {
Intent i = new Intent(ctx, BrowserActivity.class);
i.putExtra(EXTRAS_OPEN_URL, url);
i.putExtra(EXTRAS_WEB_TITLE, title);
return i;
}
• Si
los
parámetros
son
clases
personalizadas:
• Si
son
pequeños,
Serializable
• Si
no,
implementar
Parcelable
(si
es
una
imagen
pasar
filepath)
24. Custom
Logger
public class DebugLog
{
public final static boolean DEBUG = true;
public static void log(String message)
{
if (DEBUG)
{
StackTraceElement stack = Thread.currentThread().getStackTrace()[3];
String fullCN = stack.getClassName();
String className = fullCN.substring(fullClassName.lastIndexOf(".") + 1);
String methodName = stack.getMethodName();
int lineNumber = stack.getLineNumber();
Log.d(className + "." + methodName + "():" + lineNumber, message);
}
}
}
Implementar guidelines, lo que no ha hechogoogle..Android library for implementing the action bar design pattern using the native ActionBar on 3.0+ and a custom implementation on pre-3.0 through a single API and theme.Se basan en Android compatibility libraryJacktieneotraslibreríascomo:ViewPagerIndicator, NineOldAndroidsNotificationCompat2 An extension of the NotificationCompat helper in the support library which actually supports all of the features of the Android 4.1 (Jelly Bean) release. ActivityCompat2 Extension of ActivityCompat helper which supports the new startActivity and ActivityOptions features of Android 4.1.
No laconsidero entre lasfundamentales, pero no dudarénunca de usarlaBasado en Google guiceInyección de dependencias = ready for testing! (roboelectric o robotium)
Cualquiera de laslibreríasquehemosdicho anteshttps://github.com/androidhttps://github.com/github/android, y llegas a esto https://github.com/kevinsawicki/wishlistSquareVer los starred
DescompilarPuedesverlaslibreríasqueusanFacebook, path, foursquare, google plus, ted photoparty
DescompilarPuedesverlaslibreríasqueusanFacebook, path, foursquare, google plus, ted photoparty