Está en la página 1de 10

REPÚBLICA BOLIVARIANA DE VENEZUELA

MINISTERIO DEL PODER POPULAR PARA LA EDUCACION UNIVERSITARIA,


CIENCIA Y TECNOLOGIA
UNIVERSIDAD POLITÉCNICA TERRITORIAL DEL ESTADO ARAGUA
“FEDERICO BRITO FIGUEROA”
EXTENSIÓN MARACAY

COORDINACIÓN CREACIÓN INTELECTUAL Y DESARROLLO SOCIO PRODUCTIVO

EL FLAMEWORK FLUTTER

Profesora: Estudiante:
María Castillo Trayecto II Sección 1
Wilmer Parra CI: 27.866.255
¿Qué es Flutter?

Flutter es un kit de desarrollo de software (SDK) de interfaz de usuario de código


abierto de Google que se presentó por primera vez en 2015 y se lanzó oficialmente en
2017, teniendo la finalidad de crear aplicaciones móviles tanto para Android como para
iOS (Apple). Fue desarrollado como un software para uso interno dentro de la compañía
pero vieron el potencial que tenía y decidieron lanzarlo como proyecto de código libre.
Actualmente es uno de los proyectos de desarrollo de aplicaciones móviles que más está
creciendo. Además, desde la última versión estable, también es posible realizar
aplicaciones Web y de escritorio para Windows y Mac. Aunque en estas dos plataformas
aún está en fase experimental (beta). . En lugar de depender en gran medida de JavaScript
o C #, las aplicaciones de Flutter se crean utilizando el propio lenguaje de programación
de Google llamado Dart, siendo un lenguaje de programación orientado a objetos fácil de
aprender que le da a Flutter una base sólida.

Flutter permite a los equipos de desarrollo crear aplicaciones de iOS y Android


utilizando una única base de código. Este código creado una vez para todos los procesos
hace que el desarrollo de aplicaciones sea más rápido, más eficiente y más rentable. Una
base de código única también reduce el riesgo de errores y los hace extremadamente
fáciles de rastrear
Características Principales de Flutter

En general, un framework de trabajo como Flutter ofrece incontables


características, beneficios y facilidades para desarrollar una aplicación, sin embargo, creo
que podemos destacar algunas características de Flutter que lo hacen tan popular entre los
desarrolladores:

 Desarrollo en tiempo record: gracias a Flutter es posible batir todos los records
de velocidad a la hora de crear aplicaciones móviles. Debido a que con un único
código de programación puedes crear la misma APP de Android/iOS, web y
aplicación de escritorio, Flutter te permite batir todas las marcas y convertirte en
un auténtico campeón de velocidad a la hora de desarrollar.

 Todo mediante código, tanto la lógica como la Interface de usuario: en Flutter


tanto la lógica de programación como la interface gráfica de usuario se crean
mediante código. Quizá esto al principio puede parecerte algo raro, pero realmente
una vez que se la ha cogido el hilo empiezas a ver todas las ventajas y ves como
tu productividad crece hasta límites insospechados.

 Resultados y rendimiento nativo: Las apps de Flutter funcionan a 60fps, lo que


ofrece una percepción de rendimiento altísimo, animaciones fluidas,
actualizaciones rápidas, entre otras más, así como proporciona un rendimiento
totalmente nativo a tus desarrollos. Además, Flutter se adapta a las diferencias de
cada plataforma para que tu APP vengas del mundo que vengas (Android o iOS)
te hagan sentirte como en casa.

 Desarrollo ágil: con features como Hot reload, que te permite hacer cambios y
ver las actualizaciones de manera instantánea.

 UI estética: Flutter ofrece componentes de interfaz gráfica listos para usarse,


mismos que respetan los sistemas de diseño de ambos iOS y Android, destacando
por supuesto Material Design, por lo que las apps se ven bien tan pronto las
construyes.
Además de eso, Google ha invertido muchísimo en la difusión del framework y
en la creación de recursos que te permitan aprender a desarrollar apps para el mismo, por
lo que terminas con un muy buen framework, buenos recursos para aprender, el respaldo
de un gigante como Google.

¿Qué es el lenguaje de programación Dart?

Dart es un lenguaje de programación orientado a objetos y creado por Google. Es


altamente versátil, por lo cual puede ser utilizado en el desarrollo de:

 Aplicaciones Mobile y Desktop;

 Scripts;

 Back-end.

Para esto, Dart utiliza más de una plataforma; así que cada una de estas
plataformas tiene los recursos necesarios para que sea posible programar en diferentes
ambientes. La primera aparición de Dart fue en la conferencia GOTO, que se sucedió en
Dinamarca en octubre de 2011. Sus creadores fueron Lars Bak, quien ya había trabajado
con la creación de Google Chrome, y Kasper Lund, un ingeniero de software.

Inicialmente, el objetivo de este nuevo lenguaje era reemplazar JavaScript y


convertirse en el lenguaje más usado por los navegadores. Sin embargo, Dart todavía está
en proceso de mejoras y adaptaciones. La tendencia es que los dos lenguajes continúen
trabajando en simultáneo por mucho tiempo. Antes de ser aprobado, Dart pasó por la
evaluación de un comité técnico, llamado TC52 Ecma International. Fue este comité el
que certificó que Dart utiliza todas las versiones y es compatible con los navegadores
modernos En 2013, fue lanzada la primera versión estable, nombrada Dart 1.0. En 2018,
el lenguaje sufrió un reboot, lo que hizo que surgiera la versión Dart 2.0, optimizada para
el desarrollo en Client-Side para web y mobile.
La versión optimizada de Dart hizo que su programación fuera más agradable y
productiva, atrayendo todavía más la atención de los profesionales de Tecnología de la
Información. Actualmente, los principales ejemplos de uso de este lenguaje los podemos
encontrar en el propio Google: Google AdSense y Google AdWords.

De tal forma, debido a que Flutter, al igual que otros sistemas que utilizan vistas
reactivas, refresca el árbol de vistas para cada nuevo frame, crea muchos objetos que
pueden vivir sólo durante un frame (una sesentava parte de un segundo).
Afortunadamente, Dart utiliza la “recolección de basura generacional” que es muy
eficiente para este tipo de sistemas, porque los objetos (especialmente los de corta vida)
son relativamente baratos. Además, la asignación de objetos se puede hacer con un solo
puntero, que es rápido y no requiere bloqueos. Esto ayuda a evitar el jank y el sutter de la
interfaz de usuario. Dart también tiene un compilador de “tree shaking (término
comúnmente utilizado en el contexto de JavaScript para la eliminación de código
muerto)”, que sólo incluye el código que necesitas en tu aplicación.

¿Cómo Funciona Flutter?

Al igual que React Native, Flutter también proporciona vistas de estilo reactivo.
Flutter tiene un enfoque diferente para evitar los problemas de rendimiento causados por
la necesidad de un puente JavaScript mediante el uso de un lenguaje de programación
compilado, a saber, Dart. Dart se compila “por adelantado” (AOT) en código nativo para
múltiples plataformas. Esto permite que Flutter se comunique con la plataforma sin pasar
por un puente JavaScript que hace un cambio de contexto. La compilación a código nativo
también mejora los tiempos de inicio de la aplicación. El hecho de que Flutter sea el único
SDK para móviles que proporciona vistas reactivas sin necesidad de un puente JavaScript
debería ser suficiente para que Flutter sea interesante y merezca la pena intentarlo, pero
hay algo mucho más revolucionario en Flutter, y es cómo implementa los widgets.

El flamework utiliza un motor gráfico llamado Skia, que renderiza en 2D los


elementos gráficos. Flutter está escrito en C, C++ y, mayormente, en Dart. De forma
resumida, la capa del motor está escrito en C++ y la de los Widgets en Dart. Widget es la
palabra más repetida cuando se hace referencia a Flutter, se refiere a los elementos
gráficos que componen una vista. Por ejemplo, un botón, un texto o una imagen. Aunque
también hay Widgets más complejos que están formados por otros Widgets.
Los widgets son los elementos que afectan y controlan la vista y la interfaz de una
aplicación. No es exagerado decir que los widgets son una de las partes más importantes
de una aplicación móvil. De hecho, los widgets por sí solos pueden hacer o romper una
aplicación. Una de las principales características que deben tener los widgets son:

 El aspecto de los widgets es primordial. Los widgets deben tener un buen


aspecto, incluso en varios tamaños de pantalla. También necesitan sentirse
naturales.

 Los widgets deben ser rápidos: para crear el árbol de widgets, ampliarlos
(instanciando a sus hijos), colocarlos en la pantalla, renderizarlos o
(especialmente) animarlos.

 Para las aplicaciones modernas, los widgets deben ser extensibles y


personalizables: Los desarrolladores quieren poder añadir nuevos y atractivos
widgets y personalizar todos los widgets para que coincidan con la marca de la
aplicación.

Flutter tiene una nueva arquitectura que incluye widgets con una apariencia
agradable, que son rápidos, personalizables y extensibles. Así es, Flutter no utiliza los
widgets de la plataforma (o DOM WebViews), él proporciona sus propios widgets.

En Flutter se elevan los widgets y el renderizador desde la plataforma a la


aplicación, lo que les permite ser personalizables y extensibles. Todo lo que Flutter
requiere de la plataforma es un canvas en el que renderizar los widgets para que aparezcan
en la pantalla del dispositivo, y acceso a eventos (toques, temporizadores, etc.) y servicios
(localización, cámara, etc.). Todavía existe una interfaz entre el programa Dart (en verde)
y el código nativo de la plataforma (en azul, ya sea para iOS o Android) que codifica y
decodifica los datos, pero esto puede ser, de órdenes de magnitud, de mayor rapidez que
un puente JavaScript.

Mover los widgets y el renderizador a la aplicación afecta al tamaño de la misma.


El tamaño mínimo de una aplicación Flutter en Android es de aproximadamente 4,7 MB,
que es similar a las aplicaciones mínimas creadas con herramientas comparables.
Ventajas y Desventajas de Flutter

Ventajas

 Tiempo de desarrollo más rápido Como muchos otros marcos híbridos, Flutter
también ayuda a acelerar el desarrollo de aplicaciones. Gracias a la base de código
única de Flutter, puede iniciarse una aplicación en múltiples plataformas. Esto
significa que los desarrolladores solo necesitan codificar una vez en lugar de
codificar por separado para cada SO. Por lo tanto, el desarrollo de Flutter ahorra
esfuerzos de desarrollo y es extremadamente rentable.

 Recarga caliente: como comentábamos antes, al hacer algún cambio en el código


se podrán ver los efectos reflejados inmediatamente, sin tener que compilar la
aplicación de nuevo y sin perder el contexto en el que estábamos.

 Renderizado de vistas muy rápido y constante: Flutter se ha planteado


objetivos de renderizado muy altos para ciertos dispositivos, lo que supera con
creces a cualquiera otra solución de desarrollo móvil híbrido.

 Desarrollo multiplataforma: no es necesario construir por separado para las dos


plataformas: Android y IOS. Flutter ya genera un código base que sirve para
ambas plataformas.

 Acceso a las funciones nativas: algunas funciones específicas de la plataforma,


como la cámara y la geolocalización, requieren acceso a funciones nativas. Estas
funciones deben implementarse mediante lenguajes nativos, y Flutter da la
sensación de desarrollarse en la plataforma nativa. Flutter permite reutilizar
código existente de Java, Swift y Objective-C para acceder a las funciones nativas
y SDK en iOS y Android.

 Buena documentación y una comunidad solida Debido a sus ventajas sobre


muchos otros marcos, Flutter ha llamado la atención número desarrolladores de
ux de todo el mundo. Esto ha creado una comunidad activa de desarrolladores que
pueden ofrecer asistencia a cualquiera que intente utilizar Flutter. También ofrece
una extensa documentación en forma de blogs y tutoriales a través de su portal
oficial. Si es un novato que espera crear su primera aplicación, la comunidad de
Flutter siempre estará disponible para ayudar a superar cualquier obstáculo que
pueda enfrentarse.

Desventajas

 Uso necesario de Dart: Para poder usar Flutter es necesario aprender el lenguaje
de programación Dart, ya que es el lenguaje que usa el SDK.

 Framework muy joven: Aún no tiene una gran comunidad detrás, por lo que se
deberán afrontar los problemas que nos encontremos con menos ayuda que en
otros frameworks.

 Está enfocado solo a móvil: Por el momento solo hay una versión oficial de
Flutter y solo está enfocada para móvil. Así si nuestra aplicación va a tener un
sitio web tendremos que desarrollarlo paralelamente a la versión de móvil.

 Librerías limitadas: Las bibliotecas a las que pueden acceder los desarrolladores
de aplicaciones móviles están muy limitadas en Flutter. No siempre proporcionan
todas las funcionalidades que necesita el desarrollador. Dichas funcionalidades
deben ser desarrolladas por los desarrolladores de aplicaciones por sí mismas.

 Archivos de gran tamaño: El tamaño de archivo de la aplicación. Las


aplicaciones creadas con Flutter son pesadas y tardan más en iniciarse o cargarse.
Puede arruinar la experiencia del usuario y es un indicador de bajo rendimiento.

 Modificaciones y actualizaciones del marco: Dado que Flutter es un marco


nuevo, regularmente sufre modificaciones y actualizaciones que podrían afectar
el desarrollo. Mantener el código puede ser un desafío en un entorno que cambia
rápidamente.
¿Es necesario aprender Flutter?

Para los programadores, varia en el enfoque de aprendizaje que se desea obtener


y el área en la cual se desea trabajar y especializar, siendo Flutter un SDK que se usa para
la creación y programación de aplicaciones de teléfonos tanto Android como IOS, que
para el futuro será usado no solo para el desarrollo de APK, sino también se espera su
evolución para el desarrollo web y el desarrollo de aplicaciones de escritorio, por lo que
teniéndose las posibilidades de ser un lenguaje con una eficiencia que abarca varios
campos en el mundo de la programación (hablándose de Dart), será necesario su
aprendizaje, no solo para el desarrollo de estas aplicaciones, sean Webs, APK o de
escritorio, sino también para la actualización y modernización del conocimiento del
programador, que tendrá el enriquecimiento de poder dominar un lenguaje tan potente
como es y lo será más adelante Dart, en conjunto con Flutter.

Siendo Flutter una tecnología joven aún, con su llegada en el 2017 dio una nueva
expectativa en el desarrollo móvil, por lo que da mucho que ofrecer y da sustitución al
uso de JavaScript, así como el uso de Objetive-C, siendo una posible competencia a futuro
al momento de embarcarse en el desarrollo Web. De tal manera, actualmente su
aprendizaje es demandado a nivel mundial, y para los programadores será necesario con
el tiempo su aprendizaje y su entendimiento. Asimismo, si se desea aprender desarrollo
móvil, será necesario su uso en el futuro o su conocimiento como obligación de todo
programador que se desea especializar en ésta área.
Referencias Bibliográficas

Autor: Uriel Hernandez

Fecha de Publicación: 13 de Mayo del 2019

https://codigofacilito.com/articulos/flutter-multiplataforma

Autor: HostGator México

Fecha de Publicación: 29 de abril de 2020

Qué es Dart: el lenguaje de Flutter - Blog HostGator México

Autor: Cesar Vega

Fecha de Publicación: 17 de Marzo del 2019

https://medium.com/comunidad-flutter/lo-revolucionario-de-flutter-425d4e43de8d

Autora: Mónica Pulido

Fecha de Publicación: 11 de Junio del 2019

https://slashmobility.com/blog/2019/06/pros-y-contras-de-flutter/

También podría gustarte