Entradas

MVVM en Android con architecture components

Imagen
MVVM es un patrón de arquitectura que nos permite enlazar las vistas con nuestros modelos e interactuar más fácilmente con la UI, separando la capa lógica con las vistas. El ViewModel se encargará de gestionar toda la lógica y reglas de negocio y proveerá a la vista los bindings necesarios para interactuar entre ellos. Lo primero que debemos hacer es instalar la librería lifecycle components y habilitar el data binding, todo esto en el archivo build.gradle . Posteriormente debemos crear nuestro modelo y ViewModel, el cual extiende de BaseObserver , clase que nos proporciona lo necesario para notificar que una propiedad cambió con el método notifyPropertyChanged . El data annotation @Bindable nos ayuda a exponer y permite que una propiedad pueda ser enlazada en la UI. NOTA: La clase BR es auto generada después de usar el data annotation en nuestras propiedades y compilar el proyecto. Al generar nuestro Activity Layout, el elemento raíz tiene q...

Inyección de dependencias en Xamarin Forms con Autofac

Imagen
La inyección de dependencias es un patrón de diseño, el cual provee los objetos requeridos por una clase, en vez de que la misma clase los gestione. Esto nos ayudaría a cumplir uno de los principios de SOLID que es Dependency inversion principle . Es una manera de tener el software de manera modular. Un injector nos provee de las los objetos instanciados de los servicios requeridos por un cliente. En Xamarin Forms lo podemos integrar para gestionar las dependencias nativas (Dependency Service), ViewModels y Servicios. Lo primero que debemos hacer es instalar el Nuget de Autofac , librería que nos provee de un contenedor que se encargará de cumplir la tarea del Injector. Posteriormente deberemos crear nuestros servicios y dependencias nativas que se inyectarán en el constructor de nuestro ViewModel. En este caso AppInformation y LoggerService . NOTA: La mejor práctica es inyectar una interface, ya que esto nos permitirá realizar un Mock en las pruebas un...

Instalar Android Nougat con play store en ASUS Thinker Board

Imagen
Requisitos Micro SD (8 GB Mínimo) Win32DiskImager WINDOWS SD Card Formatter WINDOWS (opcional) Android Nougat Image Instalación en Windows Después de instalar Win32 Disk Imager, al ejecutar el programa debemos definir la imagen, seleccionar la micro SD y dar clic en Write . NOTA: Para crear respaldos de nuestros sistemas operativos tendríamos que dar clic en Read en lugar de Write. La aplicación SD CARD FORMATTER es opcional pero es muy buena para formatear nuestras Micro SD, ya que nos permite disponer del espacio completo de la memoria. Instalación en Linux Con el comando sudo fdisk -l podemos ver los dispositivos de almacenamiento y obtener el la ruta de la micro SD en este caso /dev/sda1 Debemos asegurarnos de desmontar la memoria con el comando umount [path_to_usb] o en este caso umount /dev/sda1 Por último escribimos la imagen con el comando sudo dd=[path_to_img] of=[path_to_usb] bs= 4M Más imágenes en Forum Thread:   htt...

Instalar Kotlin en Windows

Imagen
Kotlin es un lenguaje de programación de tipado estático introducido por la empresa JetBrians en el año 2012. El lenguaje corre en la Java Virtual Machine, lo que lo hace oficialmente soportado por Android y multiplataforma pudiendo generar código nativo o Javascript. Esto lo convierte en una buena opción para aprender un nuevo lenguaje de programación. Primero debemos debemos verificar que tengamos instalado java en una versión 1.6 o superior. Posteriormente tendremos que descargar el compilador disponible en GitHub . Después de descargarlo deberemos extraerlo en la ruta que queramos, en este caso c:\kotlinc . Para que kotlinc se encuentre disponible en todo el sistema debemos agregar la variable de entorno de la ruta del compilador. Por último debemos reiniciar el equipo. Podemos verificar la instalación con el comando kotlinc -version.

Diccionario de recursos y multilenguaje en Xamarin Forms

Imagen
Una buena práctica en nuestros proyectos es utilizar diccionarios que nos ayuden a gestionar los recursos de las aplicaciones, esto hace que nuestro código esté mejor estructurado, sea más escalable y facilite el mantenimiento del mismo. Estos nos dan grandes beneficios, por ejemplo proporcionar de manera sencilla el multilenguaje a nuestras aplicaciones o solo cambiar una vez el valor en nuestro diccionario y que todos los elementos que hagan referencia a él se vean reflejados inmediatamente. Para empezar deberíamos agregar un nuevo Resources File Podemos tener varios diccionarios por lenguaje, diferenciando los por el código del lenguaje. En caso de no agregarle un código de lenguaje ese será el diccionario por default . Una vez creados deberemos agregar los elementos con un formato de llave-valor en el que el Name será la llave y Value el valor. La llave deberá estar presente en ambos archivos. Para llamarlo en nuestro código XAML es bastante se...

Cómo crear librería Android y compartirla

Imagen
Cuando trabajamos en una tecnología detectamos patrones, controles, helpers etc. que pueden ser reutilizados por nosotros mismos en otros proyectos y así reducir tiempo de desarrollo en algo que previamente ya trabajamos o simplemente queremos compartirlo con la comunidad. Es por eso la creación de librerías es importante. Lo primero que debemos hacer es crear un nuevo proyecto en Android Studio. Una vez creado dando clic derecho al proyecto agregamos un nuevo módulo y seleccionamos el tipo Android Library El módulo tiene una estructura parecida a un proyecto android, en el que podemos crear recursos, utilizar las API de android etc. Una vez que terminemos de programar nuestra librería es necesario realicemos un Commit and Push en el repositorio GitHub que alojará el proyecto. Después del Push registramos un nuevo release en GitHub Por último ingresamos a https://jitpack.io/ e ingresamos nuestro repositorio de Git y damos clic en...

Reseña Asus Thinker Board

Imagen
Hace un par de meses me encontré en la necesidad de adquirir un equipo de computo, nada del otro mundo, solo que me permitiera realizar tareas simples de ofimática y navegación. Analizando varias opciones llegue a la conclusión de que mi mejor opción era una computadora de una sola tarjeta, por su precio, versatilidad y opciones casi infinitas de experimentación. La primer tarjeta que llego a mi mente fué la Raspberry Pi 3 model B, buscando más opciones encontré la Asus Thinkerboard que ofrecía mejor rendimiento que la Raspberry por un precio poco mayor (75 USD para ser exactos). Para prueba de esto, los resultados de desempeño del CPU. También siendo superior la Thinkerboard en el desempeño del GPU, Rendimiento y flujo de memoria y velocidad de escritura. Cuando realice la compra aún no se anunciaba la Raspberry Pi 4, que en rendimiento podría estar más equilibrado con la ThinkerBoard. Otra cosa por la que me decidí en la compra era por la compatibilidad con los compo...