Posts Tagged ‘mobile’


Este post lo hago de urgencia pues acabo de experimentar todo lo que no se debe hacer en el tema de sincronización. Para esto les doy un resumen de mi entorno de desarrollo:

  • Servidor: Instancia en Cloudant.com
  • Cliente: PouchDB como base de datos con sincronización al iniciar el app
  • Framework: Ionic

En resumen, se inicia una sincronización entre mi base de datos local en PouchDB y la base remota en Cloudant. Y puede ser todo lindo en Producción, pero como estamos en Desarrollo, el proceso normal es parar e iniciar el app a cada rato. Ahora veamos las consecuencias en desarrollo:

  • Costo: Cloudant te cobra por transacciones y te dice que por transacciones “pesadas” te va a cobrar mas, y pone varias transacciones HTTP y las define como pesadas. Lo que no dice es que hay otras transacciones que se utilizan para la sincronización que también se califican como pesadas, principalmente OPTIONS que se manda a cada rato. Por lo tanto, cada sincronización es bastante intensiva en costo.
  • Tráfico: Para un modelo de desarrollo, no es bueno iniciar conexiones de datos muy seguido. Entonces, el modelo debe saber cuando es bueno iniciar la sincronización sin importar que sea en Desarrollo o Producción.
  • Batería: Como consecuencia de la reducción de tráfico, estaremos también bajando el consumo de energía en el móvil.

No malentiendan, CouchDB/PouchDB es muy bueno, y si existe la necesidad, podemos activar la sincronización “live”, pero como no todos tenemos servidores y ancho de banda de sobra, tenemos que pensar en servicios en demanda en la red, como Cloudant en mi caso. Tengan en cuenta que otros servicios como IrisCouch, también cobran por transacciones.

La salida que encontré depende de como se necesita que fluyan los datos:

  • El recolector de datos: si nuestra app necesita solamente capturar datos y no necesito bajar información desde el servidor. En este caso, lo mejor es implementar un contador que incrementaremos cada vez que se actualice o se inserte un dato nuevo. Lo bueno es que para un entorno NoSQL, insertar o actualizar es el mismo método, así que en ese método podremos insertar el incremento del contador. Luego, al momento antes de sincronizar, verificaremos si es que el contador es mayor a 0, de lo contrario no iniciaremos la sincronización. Sincronizar solamente cuando hayan datos locales.
  • El visualizador de datos: Aquí es totalmente al revés, el app jala información del servidor. En este caso, la primera alternativa es la de fijar un tiempo de sincronización relativamente alto, agregar un visor de la última fecha de sincronización y la opción para forzar la sincronización manualmente.
  • Finalmente, como siempre, en la vida real tendremos una combinación de necesidades, así que la recomendación final es la de utilizar un proceso de sincronizacion para descargar datos y otro para subir datos.

Hay una función que no he mencionado aún: Sincronización filtrada. Esto es super útil y lo voy a desarrollar en otro Post, Básicamente es la de descargar solamente la información que me interesa. Esto es tan importante que todos deben usarlo si es que tenemos que descargar datos.

En conclusión, es muy fácil sincronizar sin límites, pero en la vida real, no hay que pedir más de lo que debemos consumir.

Advertisements

Windows 8.1 ya esta disponible y aunque aun no ha terminado la actualizacion en mi PC, igual creo que el avance es gigante en funcionalidad y estabilidad y que realmente para los dispositivos venidos desde Microsoft se vienen cosas buenas.

Veamos ahora cual es el problema:

En mi Desktop: He probado Ubuntu, MacOSX y hasta Debian en modo terminal y la conclusion es que no hay otra cosa para tener productividad. Es cierto que hay labores muy especializadas donde el software es propietario, pero para uso general Windows 8.1 ahi esta es lo mejor que hay.

En la Tablet: Android y iOS hacen muchas cosas muy bien y parece que la experiencia es suficiente. Con Windows 8.1 aun faltaran algunas cosas de ese mundo, pero se podra hacer lo que nadie puede: seguir ejecutando aplicaciones que tenia en el Desktop. En lo que se refiere a movilidad, las tablets con Windows suelen venir con todas las opciones de comunicacion con un caso particular, no se ha visto alguna tablet con posibilidad de hacer llamadas de voz por la red celular.

En el telefono: Aqui es donde esta el punto de quiebre. No puedo ejecutar aplicaciones desktop y las aplicaciones de la tablet deben tener una version para el telefono que puede ser algo muy facil pero que sufrira por la restriccion de espacio.  En otra plataformas esto ha ido en el sentido contrario: mientras que para Windows se deberia disenar desde el tablet hacia el movil, en Android y iOS hasta ahora ha sido desde el movil hacia el tablet.

Esto no es muy claro hasta ahora, pero si los ponemos en contexto se podran ver mejor.

Para el usuario comun y corriente: Tengo mi Desktop con Windows y no tengo mayor necesidad de tener una experiencia movil, asi que no veo la necesidad de tener Windows en mi telefono

Para un usuario conciente de la tecnologia: Desktop con Windows y en el movil uso algun tipo de servicio de sincronizacion como Dropbox, Box.net o Sky drive para tener las fotos en mi PC.

Para un usuario corporativo: Desktop con Wndows y posiblemente sea una tablet ya que para la direccion de la empresa les daria la opcion de controlar todos los casos de uso. La tablet escogida podria ser del tipo hibrido para minimizar los costos de posesion. Un telefono seria innecesario ante la experiencia movil que brindan las tablets.

Para un super usuario movil: En el desktop tienen Windows pero muchas de sus aplicaciones son del tipo Desktop pero tambien desarrolla para la experiencia Metro. Por lo tanto en el ambiente movil necesita hacer lo mismo por lo que la experiencia Tablet se presenta ideal mientras sea la opcion profesional. En el movil, como ya tiene la experiencia movil en el tablet, puede optar por cualquier alternativa.

En conclusion, si tengo la experiencia movil con el Tablet, porque necesito otra experiencia movil en el telefono?

La respuesta es sencilla: la experiencia Metro que comparten todas las plataformas aun no tiene una aplicacion que una a todas y que presente verdaderas ventajas a todos los grupos de usuarios. Esto se nota facilmente al revisar la aplicacion mas popular del mundo Windows: Office en su ultima version, es una aplicacion Desktop. Ademas, la aplicacion natural, la de sincronizar contenidos, es una de las mas desarrolladas del mercado con actores como Dropbox que son tan fuertes que nos hace perder de vista Skydrive. A pesar de todo esto, este tipo de aplicaciones aun tiene potencial en el mercado que mas computadoras compra: El Corporativo y mas aun con el bajon dado por Blackberry.


No soy un prolífico programador, pero creo que estoy atento a los detalles que hacen un buen diseño de aplicaciones, especialmente en el mundo móvil y es por eso que no puedo programar, pues suelo ver demasiados detalles durante el proceso.

Empecemos separando las aplicaciones móviles: las que son para todo el mundo y las que son para una empresa.

Las que son para todo el mundo son las que encontramos en los “Appstores” y cualquiera puede tenerlas descargándolas o pagando por ellas. Las empresariales son las que se suelen llamar de “Línea de negocios” y se orientan a resolver un problema específico de negocios. Tenemos así Evernote para el primer grupo y alguna aplicación para toma de pedidos hecha exclusivamente para la Empresa XYZ.

El grupo masivo es el foco esta vez. Las aplicaciones de línea de negocios requiere de un tratamiento completamente distinto.

En el grupo masivo, identificamos que las apps suelen ser pequeñas debido a que su éxito está en la difusión de las mismas o en el pago de un precio muy pequeño. Suele pasar que el objetivo es generar ingresos así que mientras menor sea el precio, la difusión será mayor. Es por esto que no podemos dedicar mucho esfuerzo de programación a una aplicación. Un mejor negocio es la de separar grupos de funciones en aplicaciones diferentes.

Veamos ahora todos esos factores que nos enganchan sin ningún orden en particular:

  • Utilidad: tenemos que explotar una sola idea y hacerla  totalmente compatible con el mundo móvil. Podemos ofrecer un bloc de notas, o alarmas o conversión de monedas. Mientras mas simple, mejor siempre y cuando se mantenga la facilidad de uso a través de unas pantallas agradables.
  • Precio: ya lo dije al principio, es posible hacer una aplicación gigante que pueda hacer muchas cosas pero no podría costar mas de USD 5, lo que haría difícil su difusión aún cuando hablemos de un producto de alta calidad. Una función y simplificarla lo más posible sin perder utilidad.
  • Difusión: La mejor publicidad es un usuario contento, así que hay que hacerle la vida fácil. Dos tareas críticas aquí son: Publicar que estoy usando la aplicación y Compartirla con mis amigos. Para esto, haremos uso de las redes sociales. Facebook ofrece un SDK muy fácil de usar para hacer ambas tareas. Con estas dos tareas, nuestros usuarios podrán compartir y hacer nuestra aplicación mas popular.
  • Monitoreo: Debemos saber, cómo, cuándo, donde y desde qué teléfonos están usando nuestra aplicación. Nada mejor para esto que usar el SDK de Google Analytics. Mediante esta aplicación podremos ver absolutamente todo lo que se refiere al uso de la aplicación, inclusive definir eventos dentro de la aplicación como clicks en botones o en opciones de menú.
  • Finalmente otra vez, el precio. Debería haber dicho mejor el modelo de negocio. Hay varias opciones para monetizar nuestra aplicación. Tengan en cuenta que el modelo final que escojan puede ser una combinación de los que paso a detallar.
  •          Precio: mi recomendación aquí es fijar un precio muy bajo que podría ir subiendo según el éxito que vayamos logrando.
  •          Suscripciones: Este modelo aplica si es que ofrecemos una serie de servicios online que pueden usarse a través de la aplicación, de tal forma que la verdadera utilidad son los servicios. En este caso, venderemos la suscripción por fuera de la aplicación.
  •          Publicidad: aquí la idea es ofrecer la aplicación gratis pero incluyendo secciones con banners de publicidad. Los banners son dinero por impresión o por click.

Lo primero que voy a hacer es implementar estas funciones en la aplicación que estoy rediseñando ahora, ya que la utilidad principal ya la tengo resuelta.

Espero que a ustedes también les sirva estas ideas.


Actualizado con mis últimas adquisiciones.

Durante todos estos años he estado buscando la mejor forma de estar productivo al lugar donde voy, y gracias a los cambios en mi trabajo, he podido probar muchos productos y condiciones de trabajo.

A partir de hoy voy a ir publicando las herramientas que utilizo para mantenerme online. Voy a enfocarme en los accesorios mas que en los aparatos principales. En otras palabras, no voy a recomendar telefonos o laptops. Mas bien aqui encontrarán accesorios para llevar sus telefonos y laptops cualquiera que sean.

ADVERTENCIA GENERAL: TODOS LOS APARATOS QUE SE CONECTEN A LA CORRIENTE DEBEN SER MULTIVOLTAJE O EN SU DEFECTO TENER UN CARGADOR MULTIVOLTAJE. SI EL EQUIPO NO ES MULTIVOLTAJE, DEJENLO EN SU CASA PORQUE NO SIRVE PARA VIAJAR.

Lo primero que tienen que evaluar es la mochila. De la mochila depende cuantas cosas pueden llevar cuando salen a la calle o de viaje. Tampoco sirve rellenar todas las cosas en una mochila, porque tienen que asegurarse que todo viaja sin maltratarse. Un error frecuente es olvidar que la mochila tiene su cargador que no suele ser muy pequeño. La que tengo ahora me permite llevar todo sin problemas, aunque con laptops algo grandes como la Dell XPS M1530 se hace algo complicado. Aquí veran las dos opciones que estoy evaluando para su reemplazo.

El mouse es vital, porque a pesar del teclado, es el método mas rápido de interactuar con alguna aplicación. Ahora deben considerar que si estamos en la calle, podemos toparnos con superficies no amistosas, como el mármol, cristal o alfombras (si me ha pasado que he tenido que ir al piso varios veces) y hace falta un mouse que aguante todo eso. Mi elección del futuro ya se hizo realidad y les puedo decir que este Mouse Logitech Anywhere es como dice su nombre, para todo terreno.

Si viajas a Estados Unidos, Argentina, Alemania, Inglaterra, notarás que en cada país el conector de corriente es distinto. Además, si este adaptador puede traer un par de puertos USB mucho mejor porque así se ahorran espacio para cargar un par de teléfonos o media players.

Trabajar en tu casa o en el camino no es sencillo, porque hay que demostrar a nuestros jefes que somos igual o mas eficientes de esa forma. El evento más critico para demostrar esto son las famosas conferencias por el Skype o sistema de VoIP. Para esto necesitamos un headset compacto con audífonos de preferencia “in-ear” y  por sobre todo de un micrófono con capacidad de reducción de ruido. Con eso podemos estar en una conferencia en el Starbucks sin problema.

El problema mas grave de estar en movimiento es que las baterías se gastan. Principalmente de teléfonos, y si además tenemos otros aparatos que manejamos, como media players, o smartphones, entonces necesitamos una batería de backup con la característica de ser universal para usarla para dar energía al equipo que lo necesite. Por lo general, viene un cargador con un set de conectores que se usarán según el aparato que querramos cargar.

Power inverter es también para el tema de conseguir energía. En este caso, si estamos de viaje, podemos con este aparato, coger energía desde el encendedor de cigarros del auto, o desde el conector que tienen algunas líneas aéreas.

El automóvil es ideal para salir a pasear y hacer las gestiones de forma más segura, con todo el tráfico a veces prefiero ir tranquilo en un taxi. Para atender las llamadas, lo mejor es un speaker bluetooth y nadie notará que estamos lejos de nuestro lugar de trabajo.

En el avión, el mayor problema para descansar, es el ruido ambiental que puede ser fastidioso especialmente en ruidos largos. Si viajan en primera clase de AA, habrán gozado de la tecnología Noise cancellation de Bose (Por lo general, esa aerolínea entrega el modelo QC3). La ventaja de estos aparatos es que no son solamente para escuchar, también sirven para dormir, pues al simplemente activarlos, reducirán el ruido del ambiente para descansar mejor.

No soy muy fanático de usar algún bluetooth en la calle, pero si hace falta, éste debe tener necesariamente la tecnología de noise cancellation, de lo contrario ni se molesten en probarlo.

Estando en la casa también hace falta algo de movilidad, especialmente para el teclado y el mouse, que son las piezas que mas duran de nuestra computadora. Lo mejor es que sean USB y si ambos comparten el mismo conector mejor. Si compran los sugeridos, tendrán teclado y mouse para unos 4 o 5 años.

Gadget Actual Futuro
MochilaPorque lo mas importante es como llevar todo nuestro arsenal Oakley Kitchen Sink
Mouse portatilCuando estamos en la calle, un buen mouse es básico Logitech Wireless Anywhere mouse MX No hay mejor mouse aún, a pesar de ya han pasado algunos años
Adaptador de conector de corriente.Si viajan a USA, europa o Argentina, van a necesitar uno de estos Lifetrons Universal Adapter with dual USB No hay mejor adaptador en el mercado aún
Mobile Headsetideal para conferencias en Starbucks. Audífonos y micrófono Logitech H165 mobile headset No compren Beats para nada
Cargador UniversalPara evitar cargadores para cada cosa, mejor uno universal Sony USB Portable Power Supply No hay otro mas completo aún
Power inverterPara sacar energía del carro o del avión D&W Universal Power Inverter Kensington K38037US
Bluetooth Speaker para el autoPara convertir el auto en una sala de conferencias Motorola T505
Audífonos para el aviónY para cualquier otro ambiente ruidoso BOSE QC15 Aún no he probado ninguno mejor que el Bose
Bluetooth para diarioSi no es en el carro entonces necesitamos esto  Jawbone Icon Hero
Teclado para la casaIncluso dentro de la casa necesitamos movilidad Logitech Wave corded (ya descontinuado) Logitech K350 Wireless
Mouse para la casaIncluso dentro de la casa necesitamos movilidad Logitech Wireless Performance MX

Hay otras cosas importantes de llevar pero pueden ser conseguidos mas fácilmente.

  • Cable USB, miniUSB y adaptador microUSB. Si pueden ser dos, mejor. El que tengo yo vino con un teléfono Motorola y ya tiene 3 años.
  • Un cargador multivoltaje con conector USB sin cable. Estos cargadores tienen el puerto USB solamente, de tal forma que podemos usar cualquier cable USB para conectar nuestros aparatos
  • Audífonos con conector microUSB. Por si es que tenemos que usar un teléfono sin conector de headset de 3.5 mm
  • Cables de datos, por si es que tenemos algún aparato que tenga un cable especial.
  • Un lector de tarjetas microSD USB. En lugar de comprar memorias USB, compren un lector de tarjetas, así podrán ir cambiando de tamaño según la necesidad.




%d bloggers like this: