Mostrando las entradas con la etiqueta Facebook. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Facebook. Mostrar todas las entradas

domingo, febrero 12, 2017

Stetho: Debugging en Android igual que en Web

Recientemente tuve la oportunidad de participar en una charla brindada por el equipo de trabajo de Android en Facebook acerca de cómo trabajan, procesos y tecnologías que usan en la construcción de una de las aplicaciones más usadas y descargadas a nivel mundial.

Pero este artículo no es sobre esto, sino sobre un tema que fue arrojado al público presente como un "tip" de trabajo y me sorprendió ver que realmente muy pocos conocían. Y es el uso de Stetho.

Stetho surge justamente como una de los tantos proyectos del equipo de desarrollo de Facebook con la intención de mejorar su forma de trabajo, concretamente, de debugging de aplicaciones Android. Así es como también hay otros proyectos que han surgido por parte de ellos como React, redex, Fresco, makeitopen, etc (https://code.facebook.com/projects/).

Cuando te encuentras trabajando en un proyecto Android ¿quién no se ha encontrado con el problema de realizar un buen proceso de debug de servicios rest y poder analizar los elementos que la app transfiere por HTTP ¿quién no se ha encontrado con el problema de poder acceder a los datos de SQLite?...y no tener que hacer cosas como acceder a los archivos, descargarse la base al escritorio y abrirla con un motor de SQLite local para poder ver lo que la app pudo guardar o no.

Para hacer una analogía práctica Stetho nos da el mismo el mismo beneficio que el "inspect" que usamos en Chrome cuando desarrollamos web..., de hecho, la solución se basa en el mismo concepto. Aquí en el screenshot se puede visualizar un ejemplo de esto que hablo. Todos los elementos de la app, bajo la misma consola de desarrollo que tiene Google Chrome.

Stheto Inspect
Stetho Inspect


¿cómo se usa esto?

Primero debemos agregar Stetho al Gradle:
compile 'com.facebook.stetho:stetho:1.4.2'
Sugiero también agregar:
compile 'com.facebook.stetho:stetho-js-rhino:1.4.2'
Nota: Esta es una de las opciones que Stetho tiene y es la más general. Luego tiene otras inclusiones particulares relacionadas al debuggin de HTTP. Para más detalles de esto ver los ejemplos y código en el sitio.

Luego, inicializamos el comoponente con esta línea:


public class MyApplication extends Application {
  public void onCreate() {
    super.onCreate();
    Stetho.initializeWithDefaults(this);
  }
}

Y listo!

Para probar su funcionamiento, debemos correr nuestro proyecto sea en un equipo o en un emulador y abrir Chrome. Una vez ahí, debemos colocar:

chrome://inspect/#devices

Ahí aparecerá nuestra aplicación y un link que dice "inspect", al hacer clic se abrirá otra pantalla con el conocido inspect de Chrome pero con todo el contenido de nuestra aplicación.

Chrome Inspect
Chrome Inspect


Entre las acciones más importantes y que en lo particular a mí me han sido de gran utilizar, puedo inspeccionar los recursos pudiendo acceder a los archivos de SharedPreferences y sobre todo a la base de datos de SQLite:

Stheto Inspect SharedPreferences SQLite
Stetho Inspect SharedPreferences, SQLite


No solo puedo ver la o las bases de datos que mi aplicación esté usando sino también las tablas y acceder a la edición del contenido mediante la escritura de consultas SQL. El otro punto que me ha sido de gran utilidad es el poder inspeccionar la interface de usuario igual que cuando hacemos debug de una página web. Stetho me muestra el árbol de componentes pudiendo acceder al detalle de cada uno:
Stheto Inspect UI
Stetho Inspect UI

Hay mucho más para investigar, pero Facebook lo tienen muy bien explicado en sus respectivas URL de referencia, espero lo usen y les sea tan útil como a mi.


http://facebook.github.io/stetho/

https://github.com/facebook/stetho

jueves, abril 11, 2013

ADN Emprendedor: No solo cuenta tener una idea también cuenta tener buenos contactos


¿Cuantos podrían llegar y cuantos son los que realmente llegan? es la pregunta que me vino a la mente hace un tiempo pensando en los deportistas profesionales. ¿es solo cuestión de perseverancia? ¿contactos? ¿recursos?...o quizás ese factor “suerte” que todos necesitamos.

Lo mismo pasa en el mundo de los emprendedores. Y no solo cuenta tener una idea sino también tener el coraje de seguirla y la ayuda de las personas adecuadas para poder plasmarla en el mundo real.

¿Quién fue realmente el que vio el potencial de Facebook? porque inclusive Mark sabía que había algo bueno pero no tenía muy en claro que hacer con él. Ahí es donde entra en escena el ex Napster Sean Parker. Un personaje polémico, con la basta experiencia de haber desarrollado un producto, enfrentado inversores, empresas grandes, juicios e inclusive haber perdido. Pero con la comprensión de como un empresario ve un producto y también como ven al emprendedor. 

Sean no solo vio el potencial de Facebook sino también tenía un conocimiento que le ayudaría a realizar un aporte "clave" al proyecto, y así fue. Facebook gana el primer capital inversor de la mano de contactos de Sean.

El “emprender” es un proceso de descubrimiento. En la época de la fiebre del oro los descubridores perseveraban hora tras hora colando el agua para tratar de descubrir el oro. Perseverar, analizando nuestras ideas, sacándolas del papel y poniéndolas en la vidriera.

"The best way to have a good idea is to have lots of ideas." (La mejor forma de tener una buena idea es tener muchas ideas), Linus Pauling

Lanzamiento: ¿qué es lo importante del lanzamiento de mi idea? ¿realizar un desarrollo extenso y complejo o buscar salir rápidamente para dejar probar al mundo la idea?. Hay que darlo a conocer! Se necesita feedback rápido!

“La primera versión de Grooveshark era un Frankenstein… Pero siempre va a ser mejor tener que reconquistar a un público más tarde, que quedarse años pensando en un concepto perfecto que tal vez nunca va a estar listo”, Andrés Barreto.

Amigos, Contactos y Socios: ¿Cuanto estoy haciendo hoy por mi perfil? (ver: Personal Branding hoy más que nunca!) o quizás si este ejercicio no me es fácil ¿cuánto estoy haciendo por mis relaciones? esas que luego ayudarán a enriquecer el emprendimiento agregando visión, consejos y más contactos. Emprender es también saber compartir. Tuve oportunidad de escuchar de primera mano el consejo de "Alec Oxenford", Co-Founder y  Co-CEO de OLX acerca de emprender, compartir y tener un socio: "Es preferible tener parte de la ballena que el 100% de la mojarrita", nos compartió con mucha gracia.

“He sido bendecido de encontrar gente más inteligente que yo, y ellos me ayudan a ejecutar la visión que tengo”, Russell Simmons. Fundador de Def Jam Records.

Yo creo que estas componentes son las que en conjunto hacen crecer una idea, un emprendimiento y son clave en su posible éxito.

Por último les dejo un ejemplo muy práctico sobre este tema que pude vivir en primera fila de la mano de un proyecto llamado Liibook sobre el cuál espero realizar un post específico más adelante. Federico Roma (fundador), Diseñador Gráfico talentoso y visionario tuvo una idea…, la de una plataforma de publicación de libros disponible en la web y abierta para todo el mundo. Así pues, armado solo de la idea busco 2 relaciones claves que lo apoyaron desde el pilar de los negocios, la introducción al mercado y desde el punto de vista tecnológico para poder realizar al menos la primer implementación.

Lo mas importante del emprendimiento fue el apostar a una idea y las relaciones que hicieron que esa idea pudiera llegar a algo. Un año después de haber ganado Wayra, la rueda en Sillicon Valley y su presentación en el TechCrunch 2012, Liibook pone un pié en San Francisco donde espera asentarse y recibir inversiones que le permitan seguir creciendo. Todo esto se logró gracias a la visión de Federico y el depositar la confianza en relaciones que supieron apoyarlo y ayudarlo.