0% found this document useful (0 votes)
38 views7 pages

Dart Cheat

Dart cheat

Uploaded by

memodelprado
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
0% found this document useful (0 votes)
38 views7 pages

Dart Cheat

Dart cheat

Uploaded by

memodelprado
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
You are on page 1/ 7
Dart Guia de atajos Interpolacién de Strings String Resultado "${3 + 2)' ey $word -ouppercase()* | 'WORD* El valor de “smyobject* myObject .tostring() Variables con posibilidad nula: = MULL; 1/ varie on mati-eefe Darts Amt? aj // 1 vaior inietal de « ee mutt, Operadores de valores nulos int? a; // = null a7 3; print(a); // <-- Imprime 3 a 272 5; print(a); // <-- AGn imprime 3 print(1 ?? 3); // <-- Imprime 1. print (null ?? 12); // <- :mprine 12. Acceso a propiedades opcionales myObject?.someProperty // con ternario (ayobject I= null) ? myObject.someProperty null; myObject?. someProperty?.somelethod() ; Tipos de colecciones Inferitip deforma automatica final avievotserings = (Yone', “to's ‘thowe' ene ae eee Tay renter eee = h By {dev/talles} Pero se puede especficar de manera manual final alistofints = (17 final asetofints = {}; final aliapofintTepouble = (); ‘También apica si aplicamos un sta de una clase base, 10s valores iternos pueden ser de subclases. final abistofBasetype = [SubType(), SubType() 17 Sintaxis de Flecha Es basicamente una funcién que inmediatamente. retorna un valor. /// Funcién normal bool hasEmpty aListofstrings-any((s) { return s.isEmpty; ye /// Puncién de flecha bool hasEmpty = aListofstrings.any((s) => s.isEmpty); Cascades /// Sin cascadas myObject..someMethod( ) ; myObject. someotherMethod(); //1 con cascadas nyobject someMethod () someotherMethod ( ) /// Se puede con propiedades var button = queryselector("#eonfirn'); Dutton? volasses.add(* important"): button? sonlick-Listen((e) => Window alert (*Contizmed!')); button? secrolliIntoView(); queryselector( '#confirn') sssorolltntoview() Cursos y cupones en fetnando-herrera.com Dart Guia de atajos Getters y Setters Los guiones bajos en Dart, son indicadores de métodos y propiedades privadas de clase y médulo. class MyClass { int _aProperty int get aProperty => _aProperty; set aProperty(int value) { Af (value >= 0) { _aProperty = value; } > » ‘También se puede usar los getters para definir una propiedad computada, class Myclass ( final Lisecine> values = (1 void addvalue(int value) ¢ 1) 2 compsted ine get count { return values.length; > > Funciones, métodos y argumentos Obiigatorios int sumUp(int a, int b, int c) ( return a+b + ? “ int total sumup(1, Opcionales: Ant sunprorive, int a, [int? by int? ce, int? dy int? e1 rt int sum = a; Sf (b l= null) sum Af (e t null) sum += 6 Af (d t= mull) sum += dj Af (e t= null) sum += @; > impor ively 2)2 Ant otherTotal = sunbproPive(1, 2, 3, 4, 5)7 Dart getting started docs: {dev/talles} "ardmetros con nombre Los parametros con nombre son siempre opcionales a ‘menos que estén marcados con la palabra reservada required void printwane( String firstilane, String lastilame, (String? middlewane }) ( rine ‘Stsewtvane S(aiddietane 72 °°) lastsane’); > printiane( ‘Dash’, 'Dartisan’ rineNane("John', “smith’, alddievane: ‘who’ )1 // 198 paxsnetros con nonbre pueden ser colocades en cualquier rinelane( John’, alddletanes ‘Who, “Saich’)y ‘Si un valor opcional quiere ser manejado sin ‘aracoces de valves nos, 28 pind establecae in valor por defecto void printtane({ String middleNanel=}) < print (‘$middleName'); y Excepciones ‘throw Exception(‘00oPS!1!."); throw ‘Waaaaaaah!"; ‘Se puede usar try, on y catch para manejarias, ery { breedMoreLlamas(); } on OutofLlamasException { // Una excepeién especifica buyMoreLlanas (); } on Exception catch (e) { // Cualquier excepcién print (‘Unknown exception: Se'): } catch (0) ¢ // Xo espacsficado, manoja cualquiera print('Something really unknewn: ge"); ‘Sino se puede manejar en su totalided, se puede ppropagar la excepci6n al padre ty { Eeeeieretioeet } eaten (0) ¢ Print(’T vas just trying to Bre ) Cursos y cupones en fernando-herrera.com Dart Guia de atajos Después de ejecutar un try, catch, u on, siesta especificado el finaly, se ejecutard try { breedtoreLlamas(); } catch (e) { // +. manejar 1a excepcién ... ) finally { cleanblanastalls(); 7 > Operador this Usar e! perador this en Dart, en muchas lugares es cpcional yen otros oblgatorio, la mejor forma de dominar esto es practicando. En el constructor para asignacién de propiedades lass mycolor ¢ Ane green; Nycolor(this.red, this green, this.blve); > final color = Mycoler(80, 80, 128); Esta técnica también funciona para parémetros con nombre, propiedades se vuelven los nombres de los parametros. class Mycolor mycoler({ required this.red, required this gr required this.blue ) #inal color = Mycolor( 80, biuer 80 Listas de inicializacién Point.fronJson(Map json) fx = Jeont "x It, ¥ = Jsont"y")I { print(‘th Point.fromzson(): ($x, $¥)°)7 > {dev/talles} ‘Adicionalmente que se pueden colocar aserciones y reglas para que en desarrollo se cumplan las normas establecidas. Nontlegativeroint (this.x, this.y) ‘assert(x >= 0), assert(y >= 0) { print(*Punto no negative: (5x, $y)"); ? Constructores con nombre Esto permite a las clases tener miltples constructores. class Point { double x, yz Point (this.x, this.y); Point .origin() °, 0; final myPoint = Point.origin(); Constructores Factory square extends shape () eneeleeeieferteecelsteret | clase shape { shape)? factory shape. froarypetiana(string typewame) { Sf (typotiane == “square") retarn Square(}; Sf (typatiane == ‘oirole") return cizele(}; throw ArgunentEerer ‘Unrecognized seypetiane") + , Redireccionando constructores ‘A veces, el inioo propésito del constructor es redireccionar a otro constructor Ateemanite(s Aavonobitertybela(bering make, SteSng model) Aivenobitestancyayeriet) ; Cursos y cupones en fetnando-herrera.com Dart Guia de atajos Constructores constantes Sila clase produce objetos que nunca cambiarén, puedes crear esos objetos como constantes de tiempo de compiiacién y asegurarte que todas las instancias seran finales (finals) class InmutablePoint ( static const InmitablePoint origin = ammutableroint(0, 0} final int x final int yy const TemutablePoint (this x, this.y)s €structuras de Colecciones Listas Es una coleccién de objetos con un largo e indice final listofNumbers = [1, 2, 3]; final vehicles = [ ican *Boat', “plane', ip var constantList = const (1, 2, 3]; // constantList{1] = 1; 1/ B28 Lines dars error porque es constants Operador spread (...) final list = [1, 2, 31; final list2 = (0, ...list); U1 0,3,2,3 Spread con null-aware operator (...? ), en caso de que la lista pueda ser nula final list2 = (0, ...?list); En Dart es posible colocar ify for dentro dela creacién dela lista var nav = ['Home', ‘Furniture’, "Plants', if (promoActive) ‘Outlet! ]; var listofints = [1, 2, 317 var listofstrings = [ '#0', for (var i in listofints) 1954" i Dart getting started docs: {dev/talles} Sets Un set es una coleccién no ordenada de elementos ricos, var halogens = {'fluorine’, ‘chlorine’, "bromine", ‘iodine’, ‘astatine'}; Set halogens = {'fluorine', ‘chlorine’, ‘bromine’, ‘iodine’, ‘astatine'}; var names = {}; Métodos comunes de los Sets var elements = }; elements. add(' fluorine’); elements.addAll (halogens); elements.length; // 5 (ya existia) final constantset ‘fluorine’, ‘chlorine’, ‘bromine’, ‘iodine’, ‘astatine', ye // constantSet.add('helium'); // Error, porque es constante const { Maps Es un objeto que asocia pares de valores, (key-value pairs), as laves y valores pueden ser de cualquier tipo de dato. var gifts = { // Key: Value ‘first’: ‘partridge’, ‘second’: 'turtledoves ‘£ifth': ‘golden rings’ ye var nobleGases = { 2: ‘helium’, 10: ‘neon’, 18: ‘argon’, ba Cursos y cupones en fetnando-herrera.com Dart Guia de atajos Puedes usar el constructor de mapas y genéricos para establecer su apariencia. var gifts = Map(); gifts['first'] = ‘partridge’; gifte['second’] = ‘turtledoves’ gifte['fifth’] = ‘golden rings’; var nobleGases = Map(); noblevases|2) = “helium; noblecases[10] = ‘neon’ nobleGases[18] = ‘argon’; Determinar el largo del map var gifts = {‘first': ‘partridge’ }; gifts['fourth'] = ‘calling birds’; gifts.length; // 2 final constantMap = const { u ‘argon’, // constantMap[2] // Brror debido a que es constante ‘Helium’; Iterable La diferencia con una lista, es que con el iterable, tu no puedes garantizar que leer elementos con indice sera eficiente Iterable iterable = (1, 2, 317 iterable[1]; // No HACER // veer esto int value = iterable.elementat(1); Los iterables tienen su propio set de métodos que ppermiten barrer y controlarlo. string element = iterable.firstWhere( (element) => element.length > 5 iF {dev/talles} Operadores own | Oprder a stp went oe ot | ee vinawor | ut worsgeo | as wa Programacion Asincrona Principalmente cuando hablamos de programacion asincrona estaremas nos referremos a funcones, ‘métodos u objetos que retornan Futures y Streams. ‘Tareas comunes asincronas + Leer data sobre internet, + Escribir sobre base de datos, + Leer y/o eseribic un archivo. (Cursos y cupones en fetnando-hertera.com Dart Guia de atajos €stados del Future: Estado Descripcién completed Elecutando el Future y Uncompleted esperando un resultado. eae El resultado del Future fue exitoso. Donde @! value, es el valor Completing with especificado por ol Future, si a value no hay nada definido, sera dynamic. Completing EI Futuro allo, yes disparada with an error _[aclausula catch Si el Future es exitoso, se ejecuta el THEN y si fall CATCH es disparaco. myFunc() «then (processvalue) scatchError(handleError); Async - Await La palabra asyne es usada para transforma une funcidn o métogo en un Future, en pocas palabras es una forma corta de convert Ia funcin tracicional en tna funeiénasinerona void main() BBYRE { -+- } RMI ein() aryne ¢ ++ La palabra await, es usada para esperar el resultado de un Future como si fuera una tarea sincrona, print (MEM createordertessage()); La palabra await siempre debe de ser usada dentro de funciones asineronas, sino, no podra ser usada, createordernessage() HUE { var order Fetchuserorder() return 'Your order ist forder'y , Streams * Los Streams proporcionan una secuencia ‘erona de datas. Las secuencias de datos incluyen eventos ‘generados por el usuario y lectura de datos de archivos. + Puede procesar una transmisién usando await 0 listen() desde el Stream API. Dart getting started docs: {dev/talles} Los Streams proporcionan una forma de responder, alos errores. + Hay dos tipos de transmisiones: + Suscripcién énica Broadcast (miiiples listeners) Async’ y Yield Asi como el asyne, transforma una funcién 0 método fen una funci asinerona que regresa un Futur, et ‘async transforma el etorna aun stream, y en lugar de un return, se usa yield para emitir un valor de! Stream, (ovat Streancstring> Lineo(streancstring> source) async { var partial = ''; avait for (final chunk in source) { yield ine; > , Af (partial-dowotempty) yield partial; , Stream transformations ‘Son métodos que ya vienen incluidos en los streams y permiten transformar las emisiones. Las transformaciones mas comunes son: ‘map), where(), expand), y take) ‘Streancine>.periodie( const Duration(seconds: 1), () => x) seake(15)3 (Otros ejemplos: // Filtrar emisiones swhere((int x) => x.isEven) // vuplicar cada emisién vexpand((var x) => (x, x]) // Se detiene a las 5 emisiones stake(5) Mas sobre Futures y Streams: Programacié asinorona, futures. async. await - Dare (Greando Streams - Dart.dev y cupones en fernando-herrera.com Dart Guia de atajos Glosario de términos Null-Safe Es un esténdar hoy en dia que se use la versién de Dart que ayuda a determinar si una variable puede ser nula ono. sound null Safety - Mull Safety Esto es una combinacién ene Flutter y Dat, que dice ave tu aplcacin tiene la verfacion de nulos activada Const - Constantes Es un espacio en memoria que aloja un valor que no camara desde su momento de compilacién (Build time de la aplicacién final) Final - Variables finales ‘Se asigna un valor (en tiempo de ejecucién), y ese valor no cambiard desde esa primera asignacion; Late - Inicializaci6n tardia Es conocido como inicalizacién tardia, en otras palabras, late permite decirle a Dart que esa variable tendrd un valor al momento de usarse, es responsabilidad del desartollador asegurar que eso se cumpla. Void Void es una palabra reservada para indicar que el ‘método 0 funcién no retomaré ningin valor, cualquier intento de retorno marcara error. Iterable Es una coleccién de elementos que se puede leer de ‘manera secuencial Es un objeto que puede contar elementos que se encuentren dentro de él, como listas, sets, areglos, etc, Future Un Future representa principalmente el resultado de tna operacién asincrona. Es una pramesa de que ppronto tendras un valor. La promesa puede falla y hay ue manejar la excepcién. Los futures son un acuerdo de que en el futuro tenarés un valor para ser usado. {dev/talles} Streams Los streams pueden ser retornados y usados como bjetos, funciones 0 métodos, son un flujo de Informacién que puede estar emitiendo valores pperiédicamente, una tnica vez, o nunca. Un Stream podria verse como una manguera cconectada a un tubo de agua, cuando abres el tubo e! agua fluye, cada gota de agua seria una emisin del Stream, la manguera puede nunca cerrarse, cerrarse 0 ‘nunca abrirse. Libreria - Library Le permiten dividir algiin fragmento de eédigo 0 ‘médulo en varios archivos y compartros con otros desartoladores Otro benefcio de las bibliotecas, ademas de la estructuracién de! cédigo, es que permiten la lencapeulacién de bibliotecae (determinar qué ee visible 0 no para otras bibliotecas). Ejemplo: import ‘dartimath’ show Point; Paquetes - Packages Cada proyecto Dart tiene un paquete Dart correspondiente. El principal beneficio de trabajar con paquetes es que el cédigo que contienen se puede reutlizar y ‘compartir. El envio y extracci6n de dependencias al sitio web pub dartiang.org y al repositorio se realiza mediante la herramienta pub. En Dart, hay dos tipos de packages: Application Packages y Library Packages. PUB Pub es el administrador de paquetes para el lengusle de programacién Dart, que contiene bibliotecas y paquetes reutlizables para Flutter y programas

You might also like