domingo, 17 de enero de 2021

¿Qué es Flutter?

 


Flutter es un software de desarrollado para crear interfaces graficas. Este es open-source y esta desarrollado por Google. Permite hacer interfaces para diferentes sistemas operativos. Inicialmente fue desarrollado para móviles lo cual soportaba Android y iOs. Actualmente también se pueden desarrollar interfaces para Windows, Linux, Mac y web.

Flutter utiliza una serie de componentes gráficos que permite crear interfaces de muy alta calidad para los diferentes dispositivos. Permite el desarrollo de interfaces nativas para las diferentes plataformas donde se puede correr.

Este kit de desarrollo de software utiliza Dart como lenguaje de desarrollo. El cual es muy fácil de aprender si vienes de lenguajes como Java, C++ o C#. La curva de aprendizaje realmente no es muy grande, después de instalarle y ver un poco la documentación uno puede rápidamente trabajar con este nuevo lenguaje.

Una gran ventaja que tiene es que su rendimiento es de una aplicación nativa en las diferentes plataformas. Por lo que se pueden hacer aplicaciones de mucha calidad de manera rápida. Además, es independiente de IDE por lo que podemos seleccionar con cual deseamos trabajar en una lista de opciones con las que contamos.

Yo me di a la tarea de crear una app usando Flutter en Android Studio. Esta app este hecho solo para Android y iOs. Lo interesantes es que tiene un solo código base para ambas aplicaciones. Algunas pequeñas configuraciones se pueden hacer en cada app (Android o iOs) pero realmente es lo mínimo. El framework se encarga de construir y compilar cada aplicación desde el código de Dart que uno esta desarrollando.

Además, con el framwork de Flutter ya se cuanta con una gran cantidad de iconos y diferentes componentes gráficos que podemos usar sin tener que instalar ninguna librería. Ya el framework cuanta con todo esto para hacer el desarrollo más simple.

Cuenta con una gran cantidad de widgets que nos permiten hacer cualquier cosa que necesitamos en nuestras aplicaciones ya sea para móviles como para otras plataformas. De momento no he tratado de hacer una aplicación para desktop, pero me imagino que no hay mucha dificultad para pasar la app que tengo a cualquier otra plataforma.

La documentación con la que cuenta Flutter también es muy extensa por lo que no tendríamos dificultad para poder iniciar a trabajar con este kit de desarrollo. La documentación explica el flujo de desarrollo, los diferentes componentes y como poder publicar las aplicaciones que deseamos enviar a Google Play o Apps Store.

Lo único que debemos saber es que para publicar la app para iOs se requiere una Mac con Xcode para poder generar el ejecutable y subirlo al App Store. En el caso de Android ocupamos instalar el Android SDK.

En general me parece que es una excelente herramienta para poder desarrollar aplicaciones móviles. En algún momento cerca estaré tratando de desarrollar aplicaciones web o desktop para ver que tal la experiencia. Me gusta mucho lo fácil que es el desarrollo con Dart y lo fácil que es crear aplicaciones nativas para diferentes plataformas de manera muy fácil.

Etiquetas: , , , , , , , ,

jueves, 14 de enero de 2021

Dos opciones para almacenar datos de manera local en proyectos .netcore

 



Buscando algunas alternativas rápidas para almacenar datos en un proyecto que estaba realizando encontré LiteDB una base de datos que podemos agregar a nuestros proyectos y manejarla de manera local. Claro todos o muchos ya conocemos SQLite que podemos usarla para el almacenamiento de datos con el mismo principio.

Una de las razones por las que quería buscar otra alternativa a SQLite era que la última versión con la que había trabajado no permitía crear bases de datos encriptadas o con contraseña. Sin embargo, encontré que la versión 3 se puede usar contraseñas para manejar la base de datos.

Bueno cual es la diferencia entre estas dos bases de datos. Lo primero que debemos saber es que SQLite funciona no solo para .net podemos usarla en otros lenguajes de programación como Java. Además, es muy popular para el desarrollo de disipativos móviles. Esta base de datos nos permite guardar la información junto a nuestra app sin tener que instalar un gran motor de base de datos. Es muy rápida y podemos almacenar muchos datos.

Los datos son almacenados en como cualquier otra base de datos basada en SQL y las consultas o transacciones en general utiliza el lenguaje de SQL para poder manipular los datos. Por otro lado, se puede usar en varios sistemas operativos.

Ahora por otro lado LiteDB es también una base de datos que se puede manejar empotrada en las aplicaciones como SQLite. Pero esta base de datos es un poco más similar a mongo. Podemos utilizar Json para almacenar la información dentro de nuestra base de datos.

Una desventaja que tiene esta base de datos es que solo funciona para proyectos .net pero puede correr en cualquier sistema operativo que deseamos. Con las pruebas que he realizado en esta base de datos es muy rápido a la hora de guardar y leer los datos. Al podemos utilizar Json hace que muchas veces manipular ciertos tipos de datos sea más sencillo, ya que no tenemos que crear las estructuras y se puede cambiar fácilmente en cualquier momento.

Me gusta mucho la idea que permite utilizar contraseñas y además tiene varias formas para proteger la información. Cuando creamos la información de conexión podemos seleccionar cual algoritmo de seguridad queremos usar para que esta proteja nuestra base de datos.

LiteDB cuenta con un administrador de base de datos con el que podemos explorar los datos de manera fácil y simple. Para poder usarla solo se debe de instalar una librería usando nuget. Como muchas otras bases de datos de este tipo también se crea un único archivo para administrar la información que deseamos guardar.

Finalmente, esta última base de datos también soporte lenguaje de SQL y expresiones de Linq para poder tener acceso a la información o manipularla en general. Yo de momento estoy usando LiteDB que me parece muy interesante y más fácil de usar para este tipo de proyectos, pero creo que se puede lograr el mismo resultado con SQLite (esta es mucho más popular). Al final seleccionar alguna de las dos depende del gusto de cada uno y puede que explorar cuanta documentación tenga ayude a tomar la decisión.  

Donde podemos encontrar estas bases de datos

Litedb

SQLite


Etiquetas: , , ,