Olá! Meu nome é Andrew. Mais conhecido como #coderotboga (isso é auto-ironia, se tanto). Estou masterizando Flutter no modo live-code, já com 567 transmissões . Sem cortes - "do zero ao herói", começando com um tutorial do Dart e até um projeto de "código aberto" completo em produção. Além disso, logo estou terminando meu próprio curso online de 100 horas - o professor aprende com seus alunos. Graças à prática intensiva e à rica experiência anterior com ReactJS, fiz um conjunto de acordos que gostaria de apresentar para receber feedback: "Sua ligação é muito importante para nós, fique on-line."
Limitações básicas
, , . : 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).

Como exemplo, CRUD Ă© implementado em BLoC & GraphQL. Se vocĂŞ estiver em dĂşvida sobre qual padrĂŁo de arquitetura usar para gerenciamento de estado, estude o cĂłdigo-fonte do projeto. O BLoC foi introduzido pelo Google em 2018, mas Ă© muito difĂcil de fazer de forma simples. FĂ©lix Angelov sabia , me apaixonei pelo cĂ´vado e aprendi a cozinhá-lo.
E, finalmente, a cereja do bolo - navegação sem contexto com argumentos digitados:
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());
Códigos-fonte e obrigado por sua atenção.
