sábado, 20 de julio de 2019

Una estrategia para desarrollar nuestra app


Hace algún tiempo vimos esta estrategia para desarrollar aplicaciones con el que podemos ahorrar tiempo y dinero, la cual tiene mucho sentido seguir cuanto uno esta iniciando con alguna idea.


Como vemos la idea es iniciar desarrollando nuestra aplicación con html o hacer una aplicación web. Con esto podemos de manera fácil distribuir nuestra app en cualquier dispositivo y aprovechando las grandes ventajas que nos da el html.

Con un solo código base podemos hacer que nuestra app que puede ser usada en diferentes sistemas operativos y diferentes tamaños.  Cuando queremos hacer cambios no tenemos que esperar que los usuarios realicen las actualizaciones ya que esto ocurre en nuestro servidor.

Con el uso de html podemos hacer casi cualquier cosa que deseamos, pero si ya se requiere por alguna razón crear las aplicaciones móviles nuestro segundo paso es pensar en aplicaciones hibridas.

Algunos desarrolladores se quejan un poco de posibles problemas de rendimiento que pueden dar las aplicaciones hibridas, pero tenemos muchas ventajas y si contamos con poco tiempo y presupuesto este es el camino correcto. Una de las grandes ventajas es que tenemos un solo código base y contamos con algunas características extras que no podríamos tener con la primera etapa de html. Podemos usar las apis para controlar características de los dispositivos móviles. Otro detalle importante es que los desarrolladores no necesitan conocimientos en los diferentes lenguajes y plataformas para desarrollar las apps.

Ahora en la ultima etapa de nuestro desarrollo ya tenemos que analizar si se requieren cosas muy especificas para cada una de las plataformas que deseamos desarrollar y las implementaciones hibridas no nos permiten usar.

En estos casos ya tendríamos códigos bases diferentes y posiblemente equipos de desarrollo diferentes o se requiere de personal con conocimientos en estos lenguajes de programación con lo que podría aumentar los costos y tiempo en corregir problemas, crear nuevas características, que las apps sean iguales para todas las plataformas, etc.

Lo más fácil es lanzar una app web que nos permita también medir nuestro publico y ver la evolución de nuestra app con esto tomar decisiones si vale la pena continuar invirtiendo dinero en aplicaciones más especializadas para móviles.

Con el paso del tiempo se tiene que ver qué características se ocupan que no se puedan desarrollar con una aplicación web que requiere de nuestro tiempo para desarrollar aplicaciones más específicas para móviles.

¿Quieres aprender java y C#?

Etiquetas: , , , , , , , , ,

jueves, 18 de julio de 2019

Algunos Frameworks para desarrollo móvil


Existen muchas opciones que tenemos disponibles hoy en día para desarrollar aplicaciones móviles. De las cuales todas nos dan formas diferentes de solucionar lo que estamos buscando. La estrategia es muy similar, pero tienen algunas características diferentes.

Cuando tenemos que tomar la decisión de cual framework debemos usar lo primero que debemos buscar es a lo que estamos mas acostumbrados a trabajar. Realmente todo depende de que deseamos hacer y con cual equipo de trabajo lo queremos hacer.

Actualmente contamos con iOS y Android como los principales sistemas operativos en el mercado, pero con una cantidad de formas y frameworks para el desarrollo increíble donde cada uno dice que es el mejor por a o b razones.

En este momento yo no voy a tratar de indicar cual es mejor que otra ya que como mencione anterior mente depende de muchas variables para poder decir cual es mejor o peor. Pero si dar una lista que con las que se podría iniciar una investigación y ver cual se ajusta mejor a cada equipo de trabajo.

Primero tenemos una lista basados en Java

Oracle MAF: Podemos escribir nuestro código en Java usando JDeveloper. Es muy fácil de usar y podemos usarlo para compilar en iOS y Android

Gluon: Se escribe con Java y podemos usarlo con diferentes IDEs como por ejemplo con Netbeans. También compila iOS y Android

Codenameone: Se escribe con Java y tiene una particularidad este se debe subir a los servidores de codenameone para compilar nuestra app. Que se puede compilar para iOS y Android.

Itel Multi-OS: Se escribe el código con Android, se puede usar el Android Studio y este también puede compilar a iOS.

Xamarin: Se escribe el código con C# y se puede compilar para iOS y Android.

Apache Cordova: Se usa Javascript para escribir el código y se puede compilar para iOS y Android

IONIC: Se escribe el código con Javascript y se puede compilar para iOS y Android

Flutter: Este es de Google y el código se escribe con Dark. Crea apps para iOS y Android

Esto es para mencionar algunas, pero existen muchas más opciones para escribir nuestras apps. Lo importante es trabajar con las que nos sintamos más familiarizados y los que tengan los frameworks que se ajusten más a nuestro equipo de desarrollo.

Podríamos usar esta técnica https://compuarticulos.blogspot.com/2019/02/como-seleccionar-el-lenguaje-o-proyecto.html para seleccionar nuestro ambiente de desarrollo móvil.

Etiquetas: , , , , , , , , , , , , , , , ,

martes, 16 de julio de 2019

Crear el patrón de diseño master-slave con Azure y SQLServer


La nube tiene una gran capacidad para aumentar o disminuir los recursos dependiendo de cuanto necesiten nuestras aplicaciones y nos da la libertad de configurar todo a nuestro gusto. Tanto las bases de datos como las aplicaciones, máquinas virtuales, etc.

Hace un tiempo tenía que desarrollar una aplicación que requería de alto rendimiento y una distribución geográfica en América, Asia y Europa. Con Azure esto lo podemos hacer de forma fácil.
Con este patrón de diseño de base de datos podemos tener una base de datos master que podemos usar para escribir y actualizar los datos que requerimos y otros slaves que podemos usar para lectura. 

En el caso de mi aplicación la parte de lectura era lo más demandante por lo tanto se dejaron 4 bases de datos para esta tarea y de esta manera se aumento el tiempo de respuesta de nuestra aplicación.

Primero se requiere tener una cuenta en Azure. Después debemos crear un servidor de SQL en alguna región que las tenemos disponibles en Azure.

Con la base el servidor listo creamos una nuestra base de datos. Lo siguiente es crear los servidores en las otras regiones que se necesiten. Ya con esto listo podemos iniciar la sincronización de nuestras bases de datos con un simple clic.

Para poder ver el menú de sonorización vamos a ir a la base de datos que deseamos usar como principal en Azure.

vamos a dar clic al menú de Geo-Replication.

La selección de las bases de datos para lectura es por medio de un clic

Como vemos en la imagen anterior tenemos una base de datos que es la primaria o master con la cual podemos escribir/actualizar datos. Y luego tenemos las secundarias que las podemos usar para leer y las tenemos en diferentes regiones.

En el menú de “Target Regions” es donde podemos seleccionar a cuáles regiones queremos replicar nuestra base de datos.

A partir de esto punto ya tenemos todo listo para que nuestros datos estén disponibles en diferentes regiones en el mundo.



Etiquetas: , , , , , ,

domingo, 14 de julio de 2019

Como monitorear nuestro sistema web


Monitorear las aplicaciones web es una parte muy importante para el existo de esto. Monitorear las aplicaciones web nos permiten conocer características muy específicas e importantes para mejorar nuestro negocio y la estrategia que debemos seguir para mejorar.

Con las herramientas para monitorear podemos conocer quienes son nuestros clientes y cual es su comportamiento dentro de nuestra aplicación web. Conocer esto nos permite en el tiempo ir mejorando nuestra estrategia y cambiando poco a poco lo que debemos hacer para mejorar.

Aquí es donde entra Google Analytics. No es la única herramienta para monitorear nuestra aplicación web, pero es muy poderosa y además es gratuita. Nos ofrece una serie de herramientas con las que podemos personalizar los datos que deseamos capturar de la navegación de los usuarios.


Vamos a ver como podemos configurar nuestro sistema de monitoreo. Lo primero que debemos hacer es crear una cuenta en Gmail para ingresar al sistema de Google Analytics.

Cuando ingresamos a la plataforma vamos a ver un menú como este que tiene un botón que dice admin.

Damos clic al botón de admin  

Dentro de este menú tenemos la opción “Create Account” damos clic a este botón para poder agregar el dominio de nuestra aplicación web.

Vamos a ver el siguiente menú

Vamos a ver el menú website. Que debemos usar para poder agregar nuestro sistema de monitoreo. Tenemos que completar el formulario con el nombre del account. El nombre del sitio web y el dominio.  Seleccionamos la industria y la región de la zona horaria para registrar las visitas y el comportamiento de esto.

Ahora le damos clic al botón de Get Tracking ID para poder obtener el script que debemos copiar en nuestro sitio web.

Claro tenemos que aceptar los términos y condiciones


Después de aceptar todos los términos y condiciones vamos a ver el siguiente script que es lo que debemos agregar a nuestro sitio web para generar nuestros registros.

Para poder mejorar nuestra estrategia de mercadeo debemos tener algún sistema que nos permita visualizar cuales son nuestros clientes y para poder mejorar nuestras estrategias.

Etiquetas: , ,

viernes, 12 de julio de 2019

Microservices


Esto no es un concepto nuevo, pero continúa siendo muy poderoso para poder desarrollar aplicaciones. La idea radica en separar las funciones por dominio, es decir, crear procesos que estén relacionados como por ejemplo la autenticación de usuarios. Vamos a tener una base de datos para los usuarios con todo lo necesario para autenticarlo al sistema, además de un endpoint (API) que nos permite consultar y hacer las operaciones necesarias para esta tarea.


Como vemos en este ejemplo separamos las tareas y datos en dominios para poder agruparlas por sus características similares o iguales. Si queremos trabajar cien por ciento como microservicios debemos hacer una base de datos separada para cada uno de los servicios también. Ahora yo he visto algunas empresas que desarrollan una única base de datos y crean APIs para cada una de las tareas.

Esta implementación tiene muchas ventajas a la hora de desarrollar nuestras aplicaciones
  • Los tiempos de publicación de las aplicaciones son menores
  • Se pueden aislar los errores más fácilmente y se puede encontrar directamente en el servicio donde está ocurriendo
  • La publicación de un servicio no afecta a los otros servicios
  • Los tamaños de las aplicaciones son mucho más pequeñas.
  • No tenemos que publicar todos los servicios a la vez
  • Se mantiene una total independencia del desarrollo por cada dominio
  • Cada servicio podría ser desarrollado por diferentes equipos y diferentes lenguajes
  • Con los cambios tan acelerados de la tecnología esto nos permite actualizar los servicios poco a poco.
  • Cualquier cambio requerido se hace directamente en el servicio especifico


Algunas desventajas que podemos tener
  • Dependiendo donde y como se instalen los servicios los costos pueden aumentar
  • Con el crecimiento de servicios puede aumentar la dificultad de administración de los mismos.
  • Dependiendo de la cantidad de servicios hacer pruebas podría ser complicado
  • Dependiendo de la cantidad de servicios podríamos tener problemas con rendimiento de la aplicación ya que tendría que llamar muchos servicios para hacer una tarea.
  • La comunicación entre servicios puede ser compleja y la integración de los datos.


Desde mi punto de vista la implementación de microservicios es muy útil y facilita mucho la distribución de las aplicaciones. Se podrían enfrentar retos con la integración de datos y la comunicación entre los servicios. De todas maneras, esto no es algo que todas las empresas deben de seguir todo depende del tipo de aplicación que se este desarrollando y de la infraestructura que se cuente. Por otro lado, se pueden hacer híbridos entre arquitecturas para logar optimizar recursos, tiempo de desarrollo, testing, etc. y hacer lo que realmente es necesario para cada empresa.  

Etiquetas: , ,

miércoles, 10 de julio de 2019

¿debemos usar la nube para publicar nuestras aplicaciones?


Dónde y cómo podemos publicar nuestras aplicaciones web. Ahora todo el mundo esta hablando de la nube y sus excelentes características. Las cuales yo no puedo ignorar, pero en muchos casos queremos publicar una pequeña aplicación web y la pregunta que todos nos podríamos hacer es si realmente debemos usar la nube siempre.

La nube tiene mucho poder, herramientas, flexibilidad y otras características. Yo he trabajado con Azure, AWS y algunas pocas cosas con Google Cloud. Por lo que, sin ninguna duda digo que la nube es un excelente lugar para desarrollar aplicaciones y dejar de instalar todo en la empresa. Sin embargo, considero que para pequeñas y medianas aplicaciones web (claro con un estudio de rendimiento, etc) podemos usar los conocidos web hosting.

Dependiendo de los requerimientos sale mucho más económico que el uso de la nube. Y bueno aclaro para aplicaciones pequeñas. A pesar de que muchos de estos cobran una tarifa fija mensual o anual si vemos los costos de manera individual por el uso de servicios en la nube nos podría salir más económico para nuestras aplicaciones web.

Existen muchos proveedores de este servicio. Particularmente mochahost me parece que tienes planes muy accesibles para empresas que están iniciando. Tienen planes para aplicaciones .net y Java.

Es buscar y ver cual paquete se ajusta más a las necesidades de nuestras aplicaciones web. Algunos de estos paquetes incluyen instalación ilimitada de dominios y subdominios. Cantidad ilimitada de bases de datos tanto en MySql como en SQLServer. Se puede crear cuentas de correo de manera ilimitada y enviar correos de manera gratuita.

Cuenta con software de terceros que se pueden instalar de manera fácil como carritos de compra, sistemas de administración de contenido, etc.

Claro la nube ofrece capas gratuitas, las cuales son por algún tiempo u otras con algunas limitaciones. Como dije anteriormente para una empresa pequeña y mediana puede que esto se ajuste más a su presupuesto. Pero todo depende de hacer un buen análisis costo/beneficio.

Sin duda la nube tiene un potencial increíble y herramientas que ofrecen hacer aplicaciones muy interesantes, pero cuando estamos iniciando puede que no ocupamos todo eso. Con el paso del tiempo podemos ir integrando más de nuestros servicios a la nube.

Etiquetas: , , , , , ,

jueves, 4 de julio de 2019

Trabajo colaborativo con Visual Studio 2019


Ya era necesario una herramienta tan interesante como el live share de Visual Studio 2019. Es simplemente increíble.

Esta herramienta nos permite compartir nuestra solución entre compañeros de manera remota y de una manera sumamente simple. Esta herramienta nos permite compartir nuestra solución, pero no es nada más enviar el código a otros, esto nos permite trabajar en la misma solución al mismo tiempo. 

Podemos ver los cambios mientras están ocurriendo y quien esta haciendo los cambios.

Hace unos días lo intentamos entre 4 compañeros y funciono muy bien sin problemas. Y cuando uno corre la solución también se ejecuta donde los otros que están viendo la solución.

Para poder usar esta herramienta ocupamos Visual Studio 2019 o Visual Studio Code. En mi caso usamos Visual Studio 2019.

En la esquina superior derecha vamos a ver la nueva opción

Debemos de dar clic al botón y con esto vamos a tener una serie de opciones.

Si no les sale de una vez la siguiente pantalla pueden dar clic al botón que dice More Info en el siguiente banner.


Ahora si para poder compartir nuestra solución debemos compartir este link con las personas que van a ver mi solución. La otra opción es directamente sobre el banner dar clic al botón de Copy Again. Pasamos el link y ya casi estamos listos para compartir nuestra solución.

Ahora si la persona que va a trabajar con nosotros debe abrir en el browser el link con lo que va a poder ver una pantalla como esta 

Y en este punto debe seleccionar si quiere abrir la solución con Visual Studio Code o con Visual Studio 2019.

De esta manera se abre la solución a las personas que van a colaborar con mi proyecto.

Finalmente, para terminar la sesión solamente vamos nuevamente al menú de la parte superior de la derecha y damos clic en End Live Share Session



Etiquetas: , , , ,