Flutter es un SDK de Google para crear aplicaciones móviles para Android e iOS de forma rápida y con un solo código base. Permite diseñar interfaces gráficas mediante widgets reutilizables y personalizables que se actualizan en tiempo real, ofreciendo un excelente desempeño.
Flutter es el SDK de aplicaciones móviles de Google para crear
interfaces nativas de alta calidad en iOS y Android en un tiempo
récord.
Sirve para crear fácilmente app móviles modernas, bonitas y de
alto desempeño Funciona para Android y iOS Es una herramienta open-source, desarrollada por Google
Actualmente se encuentra en Beta 3 Listo para producción.
Explanation of the fundamentals of Redux with additional tips and good practices. Presented in the Munich React Native Meetup, so the sample code is using React Native. Additional code: https://github.com/nacmartin/ReduxIntro
Flutter es el SDK de aplicaciones móviles de Google para crear
interfaces nativas de alta calidad en iOS y Android en un tiempo
récord.
Sirve para crear fácilmente app móviles modernas, bonitas y de
alto desempeño Funciona para Android y iOS Es una herramienta open-source, desarrollada por Google
Actualmente se encuentra en Beta 3 Listo para producción.
Explanation of the fundamentals of Redux with additional tips and good practices. Presented in the Munich React Native Meetup, so the sample code is using React Native. Additional code: https://github.com/nacmartin/ReduxIntro
Introduction to Flutter - truly crossplatform, amazingly fastBartosz Kosarzycki
Intro: Flutter meaning rapid variation of electronic signal recently became Dart's framework name for mobile development. This presentation is a short introduction into a cross-platform solution covering iOS/Android. During this 45 minute period you'll learn what is flutter, where it came from and what it's for.
Slides da minha participação do TDC na trilha de arquitetura .NET.
O conteúdo abordado é Arquitetura Limpa, também conhecida como arquitetura hexagonal e ports and adapters.
Neste exemplo disponibilizo códigos em C# e F#.
Things you should know about jQuery JavaScript library. A JavaScript library designed to hide painful cross-browser compatibility issues while presenting a solid, usable, API.
What is the DOM?
The DOM is a W3C (World Wide Web Consortium) standard.
The DOM defines a standard for accessing documents:
"The W3C Document Object Model (DOM) is a platform and language-neutral interface that allows programs and scripts to dynamically access and update the content, structure, and style of a document."
The W3C DOM standard is separated into 3 different parts:
Core DOM - standard model for all document types
XML DOM - standard model for XML documents
HTML DOM - standard model for HTML documents
The HTML DOM (Document Object Model)
When a web page is loaded, the browser creates a Document Object Model of the page.
The HTML DOM model is constructed as a tree of Objects.
With the HTML DOM, JavaScript can access and change all the elements of an HTML document.
El mundo cambia. Los nuevos medios de interacción basados en texto e imagen, las interfaces orales y de realidad aumentada e inmersiva dibuja una nueva forma en la que los usuarios se acercan a los negocios. Como ingenieros debemos orientar a los clientes en este cambio. Nuestra labor como arquitectos es prepararnos tecnológicamente. En esta charla discutimos cómo podemos enfrentar este cambio y cómo debemos reorientar el diseño de nuestras arquitecturas para hacer frente a este nuevo paradigma de uso. Si quieres aprender a hacer el software del futuro esta es la charla que no te debes perder
Introduction to Flutter - truly crossplatform, amazingly fastBartosz Kosarzycki
Intro: Flutter meaning rapid variation of electronic signal recently became Dart's framework name for mobile development. This presentation is a short introduction into a cross-platform solution covering iOS/Android. During this 45 minute period you'll learn what is flutter, where it came from and what it's for.
Slides da minha participação do TDC na trilha de arquitetura .NET.
O conteúdo abordado é Arquitetura Limpa, também conhecida como arquitetura hexagonal e ports and adapters.
Neste exemplo disponibilizo códigos em C# e F#.
Things you should know about jQuery JavaScript library. A JavaScript library designed to hide painful cross-browser compatibility issues while presenting a solid, usable, API.
What is the DOM?
The DOM is a W3C (World Wide Web Consortium) standard.
The DOM defines a standard for accessing documents:
"The W3C Document Object Model (DOM) is a platform and language-neutral interface that allows programs and scripts to dynamically access and update the content, structure, and style of a document."
The W3C DOM standard is separated into 3 different parts:
Core DOM - standard model for all document types
XML DOM - standard model for XML documents
HTML DOM - standard model for HTML documents
The HTML DOM (Document Object Model)
When a web page is loaded, the browser creates a Document Object Model of the page.
The HTML DOM model is constructed as a tree of Objects.
With the HTML DOM, JavaScript can access and change all the elements of an HTML document.
El mundo cambia. Los nuevos medios de interacción basados en texto e imagen, las interfaces orales y de realidad aumentada e inmersiva dibuja una nueva forma en la que los usuarios se acercan a los negocios. Como ingenieros debemos orientar a los clientes en este cambio. Nuestra labor como arquitectos es prepararnos tecnológicamente. En esta charla discutimos cómo podemos enfrentar este cambio y cómo debemos reorientar el diseño de nuestras arquitecturas para hacer frente a este nuevo paradigma de uso. Si quieres aprender a hacer el software del futuro esta es la charla que no te debes perder
En esta sesión os contaremos la visión de React para el desarrollo de aplicaciones web desde el punto de vista de un desarrollador de ASP.NET que tiene que aprender a trabajar con estas nuevas tecnologías.
Cross development - React para desarrolladores de asp.netAlberto Diaz Martin
En esta sesión os contaremos la visión de React para el desarrollo de aplicaciones web desde el punto de vista de un desarrollador de ASP.NET que tiene que aprender a trabajar con estas nuevas tecnologías.
[TOP 3 TECH UPDATES MEXICO]
Creando Aplicaciones Web en el 2015:
Nuevas tendencias, desafíos, y mejores prácticas
Empujado por la revolución mobile, el emergente mundo de Internet Of Things, la web a evolucionado hacia una gran y ubícua plataforma de desarrollo de aplicaciones. Sin embargo, esta evolución posee dos caras: la de posicionar a la web como una plataforma tecnológica capaz de desbancar tecnologías como Flash y Silverlight, y de competir con iOS, o Android; y la de una plataforma inmadura, difícil de aprender, y de utilizar para crear experiencias de usuario de calidad.
En esta charla se dará una introducción a las nuevas tendencias en el desarrollo web, sus dificultades y desafíos, y las lecciones aprendidas obtenidas trabajando con estas tecnologías de punta.
Speaker: Fernando Curra
Un recorrido por las principales aplicaciones de AMP: AMP Websites, AMP Ads, AMP Mail y AMP Stories, así como algunos tips y herramientas para creadores,
Una introducción a Fluent Design System, el nuevo sistema de diseño de Microsoft y la evolución de "Metro" para crear aplicaciones para el ecosistema de Windows en cualquier dispositivo con Windows Universal Platform.
En esta presentación hablo sobre cómo lograr una buena consistencia en diseño visual para interfaces visuales usando lenguajes de diseño, y reseño los cuatro más utilizados actualmente: Material Design, Apple Human Interface Guidelines, Microsoft Fluent Design System y IBM Living Design System.
Un negocio exitoso es la que conoce bien a sus clientes desde el principio. Utilizando el Value Proposition Canvas junto con el Business Model Canvas es posible hacer una buena definición de segmentos de audiencias para crear productos increíbles.
En Design Thinking el concepto de "diseñador" se toma en su forma más amplia posible: es una persona que convierte ideas abstractas en productos concretos que otras personas pueden ver, usar y criticar para mejorarlos. Es necesario entonces el liderazgo creativo dentro de los equipos de trabajo para que los otros integrantes puedan alcanzar su potencial como diseñadores y aporten creativamente desde su perspectiva.
Atomic Design es una filosofía de creación de productos tecnológicos basada en la creación de elementos complejos utilizando elementos más sencillos. Pattern Lab es una plataforma basada en esta filosofía para crear sitios web con un diseño consistente. En esta presentación, explico un poco como funciona cada uno.
Mi presentación en el taller de prototipado de apps en Software Gurú Conference & Expo 2013 sobre cómo crear prototipos de apps utilizando Indigo Studio de Infragistics
Arquitectura Ecléctica e Historicista en Latinoaméricaimariagsg
La arquitectura ecléctica e historicista en Latinoamérica tuvo un impacto significativo y dejó un legado duradero en la región. Surgida entre finales del siglo XIX y principios del XX, esta corriente arquitectónica se caracteriza por la combinación de diversos estilos históricos europeos, adaptados a los contextos locales.
Porfolio livings creados por Carlotta Designpaulacoux1
La sección de porfolio de livings de Carlotta Design es una muestra de la excelencia y la creatividad en el diseño de interiores. Cada proyecto en el porfolio refleja la visión única y el estilo distintivo de Carlotta Design, mostrando la habilidad del equipo para transformar espacios en ambientes acogedores, elegantes y funcionales. Desde salas de estar modernas y contemporáneas hasta espacios más tradicionales y clásicos, la variedad de estilos y diseños en el porfolio demuestra la versatilidad y la capacidad del equipo para adaptarse a las necesidades y gustos de cada cliente.
Las fotografías de alta calidad en el porfolio capturan la atención al detalle, los materiales de alta calidad y la combinación de texturas y colores que hacen que cada sala de estar sea única y especial. Además, la sección de porfolio de livings de Carlotta Design destaca la integración de muebles y accesorios cuidadosamente seleccionados para crear ambientes armoniosos y sofisticados.
En resumen, la sección de porfolio de livings de Carlotta Design es una ventana a la excelencia en el diseño de interiores, mostrando el talento y la dedicación del equipo para crear espacios extraordinarios que reflejan la personalidad y el estilo de cada cliente.
Porfolio de diseños de Comedores de Carlotta Designpaulacoux1
calidad en el porfolio capturan la atención al detalle, la calidad de los materiales y la armonía de colores y texturas en cada diseño. El cuidadoso equilibrio entre muebles, iluminación y elementos decorativos se destaca en cada espacio, creando ambientes acogedores y sofisticados.
En resumen, la sección de porfolio de comedores de Carlotta Design es un reflejo del compromiso del equipo con la excelencia en el diseño de interiores, mostrando su habilidad para crear ambientes únicos y personalizados que sobresalen por su belleza y funcionalidad
DIA DE LA BANDERA PERUANA EL 7 DE JUNIO DE 182062946377
Diseño del dia de la bandera. El 7 de junio se celebra en todo el Perú el Día de la Bandera, una fecha que conmemora el aniversario de la Batalla de Arica de 1880, un enfrentamiento histórico en el que las tropas peruanas se enfrentaron valientemente a las fuerzas chilenas durante la Guerra del Pacífico.
1. La Magia de Flutter
Mauricio Angulo S.
UX Strategist & Sprintmaster
mauricio@tesseractspace.com
@mauricioangulo | @tesseractspace
Basado en la presentación de
Tim Messerschmidt - Regional Lead, Developer Relations
messerschmidt@google.com | @SeraAndroid
2. Trabajo en Tesseract Space, una empresa mexicana como consultor en
experiencia de usuario y sprintmaster certificado.
Soy miembro del grupo de Google Experts y de la iniciativa de
Microsoft Regional Director como mentor en usabilidad, diseño y desarrollo
de software.
En 2014 fundé UX Nights, una comunidad sobre experiencia de usuario. Soy
escritor, ponente internacional, maestro de UX en la Universitat Pompeu
Fabra en Barcelona, sensei de UX en Dev.f y formador técnico en
LinkedIn Education.
> www.about.me/mauricioangulo
> https://developers.google.com/experts/people/mauricio-angulo
> @mauricioangulo
Mauricio Angulo S.
3. ¿Qué es Flutter?
Un SDK que sirve para crear fácilmente app móviles modernas, bonitas y de alto
desempeño
Funciona para Android y iOS
Es una herramienta open-source, desarrollada por Google*
Tiene más de 100 colaboraciones de la comunidad open source
* Actualmente se encuentra en Beta
4. ¿Para quién es Flutter?
Diseñadores que desean una experiencia de marca convergente tanto en
Android como en iOS
Prototipadores que buscan alta fidelidad y una forma rápida de construir
prototipos interactivos.
Programadores que pueden beneficiarse de las herramientas de desarrollo,
un lenguaje sencillo y una rica librería de widgets. Flutter ayuda a ahorrar
tiempo de desarrollo para crear experiencias memorables.
8. Diagrama de composición
- Observa las filas y columnas
- ¿Hay alguna rejillas?
- ¿Hay elementos que se traslapen?
- ¿Necesitamos pestañas?
- ¿Se necesita más espacio en los bordes, o
mejorar la alineación?
12. $ flutter doctor
Revisa el entorno y muestra un reporte en la ventana de la terminal
$ flutter upgrade
Actualiza tanto el SDK de Flutter así como los otros paquetes
15. $ flutter packages get
Revisa el entorno y muestra un reporte en la ventana de la terminal
$ flutter packages upgrade
Buscará la versión más reciente disponible del paquete
16. $ flutter format
Automáticamente formatea tu código de acuerdo al estilo de Flutter
$ flutter analyze
Analiza tu código y te ayuda a encontrar errores
17. Hot Reload
Inserta código actualizado dentro de la máquina virtual de Dart que se está
ejecutando
Stateful: El estado de la app se mantiene después de la actualización.
Sirve para iterar con rapidez en una pantalla que se encuentra en un nivel de
navegación profundo dentro de tu app
18.
19. Es una herramienta de depuración y perfilamiento paso a paso
Corre automáticamente cuando se inicia una app usando flutter run
Sirve para:
- Ver cuáles líneas de código se han ejecutado
- Revisar asignaciones de memoria
- Depurar fugas de memoria y fragmentación
Dart Observatory
23. Adiós, sistema de posicionamiento global
new Center(
child: new Text('Texto Centrado', style: textStyle),
)
Estilos locales: Cada widget define su propio estilo. No hay necesidad de decirle al
widget padre que sus hijos se supone que deben ir centrados.
25. Personalizando y extendiendo Widgets
El sistema de Widget de Flutter fue diseñado para ser fácilmente personalizable.
Composición: Los widgets se construyen sobre widgets más pequeños que se
pueden reutilizar y combinar para hacer widgets personalizados.
class RaisedButton extends StatelessWidget {
...
}
26. Cada capa
se construye
sobre la
anterior
Skia Dart Texto
Bases
Animación Pintado
Renderizado
Widgets
Material
Gestos
Engine
(C++)
Framework
(Dart)
Cupertino
29. Ejemplo: Obtener el estado de la batería*
* Ejemplo escrito en Kotlin para Android
class MainActivity() : FlutterActivity() {
private val CHANNEL = "samples.flutter.io/battery"
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
GeneratedPluginRegistrant.registerWith(this)
MethodChannel(flutterView, CHANNEL).setMethodCallHandler { call, result ->
// TODO
}
}
}
30. Trabajando con el argumento de la respuesta*
MethodChannel(flutterView, CHANNEL).setMethodCallHandler { call, result ->
if (call.method == "getBatteryLevel") {
val batteryLevel = getBatteryLevel()
if (batteryLevel != -1) {
result.success(batteryLevel)
} else {
result.error("UNAVAILABLE", "El nivel de la batería no está disponible.", null)
}
} else {
result.notImplemented()
}
}
* Ejemplo escrito en Kotlin para Android
31. Invocación desde Flutter de los métodos de
plataforma
String _batteryLevel = 'Nivel de la batería desconocido.';
Future<Null> _getBatteryLevel() async {
String batteryLevel;
try {
final int result = await platform.invokeMethod('getBatteryLevel');
batteryLevel = 'Nivel de la batería al $result % .';
} on PlatformException catch (e) {
batteryLevel = "No fue posible obtener el nivel de la batería: '${e.message}'.";
}
setState(() {
_batteryLevel = batteryLevel;
});
}
38. - Sistema de tipado sencillo
- Tree Shaking
- Bibliotecas base
enriquecidas
- Multi-gen, lockless GC
39. - Una sola base de código
para Android y iOS
- Ciclos de desarrollo rápidos
- Buenas herramientas
40. “Al correr a 60 fps, las interfases de usuario
creadas con Flutter tienen un mejor desempeño
que las que fueron creadas en otros frameworks
de desarrollo multiplataforma.”
code.tutsplus.com/tutorials/developing-an-android-app-with-flutter--cms-28270
41. “Programar con Dart y Flutter me ayudó a
disfrutar de nuevo lo que hacía cuando
comencé a desarrollar para móviles hace
unos años..., sin $%&@”
traversoft.com/blog/2017/08/08/conference-app-flutter
42. "La UI es fluida y elegante (al compilar una versión
de producción), nunca había visto una app para
Android tan fluida"
Pascal Welsch, ponente en Droidcon Berlin
43. Recursos adicionales
Blog: What’s Revolutionary about Flutter por Wm Leler: goo.gl/bZcFR9
Video: Flutter's Rendering Pipeline por Adam Barth: youtu.be/UUfXWzp0-DU
Video: The Mahogany Staircase por Ian Hickson: youtu.be/dkyY9WCGMi0
y por supuesto: github.com/flutter & flutter.io
44. ¡Gracias!
Mauricio Angulo S.
UX Strategist & Sprintmaster
mauricio@tesseractspace.com
@mauricioangulo | @tesseractspace
Basado en la presentación de
Tim Messerschmidt - Regional Lead, Developer Relations
messerschmidt@google.com | @SeraAndroid
Notas del editor
Brand-driven == customized
Internal teams at Google (CRM system) have managed to build functioning prototypes in a week.
Designers with 0 coding experiences became productive with Flutter in weeks - allowing them to build prototypes in hours.
Quieron concentrarme en dos partes de Flutter, que personalmente admiro
Permite construir rápidamente UIs que se ven bien. Después veremos algunos widgets
When talking to a designer and a developer, you will most definitely receive two different answers, leading to different understanding of the same UI and effectively leading to confusion. We can avoid that by bringing in designers and developers early on and cooperate on the same language and same UI toolkit.
Try to place some of the implementation into functions to avoid deeply nested code
There is a whole section in the Flutter docs that deals with this and helps people familiar with HTML and CSS to quickly become productive designers with Flutter
If I wanted to limit the package to a specific range of versions, I could do that with the following syntax. Very similar to what Gradle offers you on Android.
Formatter also exists for IntelliJ using the Dart plugin
Analyzer also runs automatically in IntelliJ with the Flutter plugin
The beauty of hot reload is, that even after fixing an error, state is still maintained - allowing to iterate and develop far quicker.
Also available via IntelliJ’s built-in debugger
The team analyzed popular apps and noticed a lot of custom widgets. So Flutter is designed to allow for that.
Composition goes over inheritance
This could be centering a text (by wrapping it in a center widget) or putting three column items into a row (widget).
StatelessWidget is used for immutable elements that only rely on the object configuration information
StatefulWidget is used for elements that can dynamically change based on state-changes in the system
Everytime that state changes, setChange() is called by the object
RaisedButton combines a Material widget with a GestureDetector widget
Skia is the same graphics engine that Android uses. This one is built directly from source - compiled whenever you build Flutter
The text engine is from Blink, the rendering engine from Chromium.
Layout for text is terribly hard - think about right to left, displaying dates and more.
Every layer of the Framework builds upon the layer below it. For instance, the Material and Cupertino layers compose basic widgets from the widgets layer, which itself orchestrates objects from the rendering layer.
This also allows to customize the framework as you please. This part of the beauty of Dart’s tree shaking mechanism (eliminates dead code).
If you’re coming from Android: this is very similar to serialization of data and then sending it across a channel - similar to an event bus or Intent
Let’s focus on the blue bit for a second to understand how you’d do this on Android
This works completely analog on iOS using Swift
The call may fail – for example if the platform does not support the platform API (such as when running in a simulator), so we wrap the invokeMethod call in a try-catch statement.
Flutter comes with it’s own widgets and renderer
No support library needed. Not depended on OEM updates.
Thanks to composition, we can only redraw what changed
Bit blitting moved items that didn’t change from Cache
The virtual DOM is immutable and needs to be rebuilt every frame - so 60 times per second when targeting 60fps
The app being in control of the renderer gives it more potential for controlling animations
Dart as a language is designed to be reliable.
No surprises, no magic that can create confusion.
Very familiar for people with background in Java, JS, C# and more
Coming with Dart 2: sound type system (static and runtime type checks)
Used to be optional in Dart 1
Dealing with Reactive Views requires dealing with a lot of small objects
Here’s where Dart’s GC is super helpful
Tree shaking != dead code elimination
It only includes what you need instead of eliminating what you don’t need
Originally written in JavaScript and C++. Tested out about 20 languages until the team ended up with Dart. Compiles to native so C++ isn't even needed anymore.