salut! Mon nom est Andrew. Mieux connu sous le nom de #coderotboga (c'est de l'auto-ironie, si c'est le cas). Je maîtrise Flutter en mode live-code, déjà 567 diffusions . Uncut - "de zéro à héros", en commençant par un didacticiel Dart et jusqu'à un projet "open-source" à part entière en production. De plus, je termine bientôt mon propre cours en ligne de 100 heures - le professeur apprend de ses élèves. Grâce à une pratique intensive et à une riche expérience avec ReactJS, j'ai formé un ensemble d'accords que je voudrais présenter afin de recevoir des commentaires: "Votre appel est très important pour nous, restez en ligne."
Limitations de base
, , . : dartz – Haskell, kt_dart – Kotlin. Dart. – . KISS.
-. , : ndroid – MVP, ReactJS – Redux/MobX.
«». . , . , . – «unix-way». - , , .
, : . 1) . , : , , .. 2) ( , ). 3) lint – , pedantic. -.
--, . , , . - . , , . ( – , ). – . JavaScript, lerna Dart – melos. , – - , .
. , . VSCode, "workbench.editor.labelFormat": "short". . : todos_screen.dart – screens/todos.dart, todos_cubits.dart – cubits/todos.dart. . , , . ( ), . TodosBody .
, «protected», .. ()? – , . , . – . .
widgets , ( ) , : screens/todos.dart – TodosScreen, cubits/todos.dart – TodosCubit.
, . , lib:
common – ,
cubits – - BLoC
import.dart –
main.dart –
models –
repositories – ( )
screens –
widgets –
Firebase Authentication, . - -, BDD (Behavior Driven Development).
A titre d'exemple, CRUD est implémenté dans BLoC & GraphQL. Si vous avez des doutes sur le modèle architectural à utiliser pour la gestion de l'état, étudiez le code source du projet. BLoC a été introduit par Google en 2018, mais il est très difficile de le faire simplement. Felix Angelov a pu , je suis tombé amoureux de la coudée et j'ai appris à la cuisiner.
Et enfin, cerise sur le gâteau - une navigation sans contexte avec des arguments typés:
class ZoomScreen extends StatelessWidget {
Route<T> getRoute<T>({bool isInitialRoute}) {
return buildRoute<T>(
'/zoom?unit_id=${unit.id}', //
builder: (_) => this,
fullscreenDialog: true,
isInitialRoute: isInitialRoute,
);
}
ZoomScreen(this.unit);
final UnitModel unit;
...
navigator.push<void>(ZoomScreen(unit).getRoute());
Codes sources , et merci pour votre attention.