Как стать автором
Обновить
10
0

Моя литера Т стремится к равнозначности линий

Отправить сообщение

Такой экземпляр не стыдно иметь на полочке :) Уже жду! Автору и издательству благодарность за проделанную работу ?

Очень классный материал с информативными скриншотами, проделана большая работа! Даже не подозревал, что всё настолько вариативно

Статья неконструктивна. Вы не можете сравнивать несопоставимые вещи. get - это огромный комбайн всего и вся сомнительного качества, пакет bloc предоставляет только стейт-менеджмент.

Далее, сквозь весь текст путаются понятия. Если коротко, BLoC != пакету bloc, MVC != GetX, BLoC != GetX .

Ещё кое-что. Признайтесь честно, вы смотрели исходный код get ? Подключите последнюю preview версию get: ^5.0.0-release-candidate-5 , которая есть на pub.dev и посмотрите. Посмотрите, что эта библиотека из себя представляет, что импортирует, из чего состоит, в особенности проверьте степень документации и комментирования, и обратите внимание на закомментированные участки кода. Вот, из прекрасного:

Оно вам точно нужно в проде или где-то ещё?
путь get-5.0.0-release-candidate-5/lib/get_navigation/src/routes/get_transition_mixin.dart
путь get-5.0.0-release-candidate-5/lib/get_navigation/src/routes/get_transition_mixin.dart
ниже в этом же файле
ниже в этом же файле

Не стройте иллюзий, этим нельзя пользоваться всерьёз.

Спасибо, изучал с удовольствием! Макросы появились во благо, но не весь спектр задач должен закрываться ими.

P.s. Riverpod на текущий момент (версия ^2.5.1 ) можно смело использовать без генерации. Плюшки вроде неограниченного числа family-параметров решаются с помощью Record или обычных моделек, для расширенной отладки можно добавить name-параметр, а stateful hot-reload доступен, если юзать Notifier-классы или же в обычных провайдерах воспользоваться глобальными приватными функциями. Да, плата есть - создание инстансов бойлерплейтно, особенно когда есть family параметры.

Кажется, вы ошиблись сабом: вместо Github (в статье ничего об этом нет), можно использовать Flutter :)

Если нужен пример с асинхронным конструктором - напишите в телеграме, скину пример.

Ну не надо так :(

Интересно узнать, какие преимущества и недостатки данного способа по сравнению с использованием классического json_serializable. Очень не хватает минимального рабочего примера "в действии". Я понимаю, что статья не об этом, но не могу найти место для применения, когда это полезно.

Также:

  • factory  конструкторы могут быть объявлены как const , в то время как статический метод - нет

  • factory конструкторы могут быть именованными, для каждого свой json, как быть?

  • JsonDeserializeInterface  справится с наследованием в моделях?

Серьёзно, это очень круто! Жаль, не хватает полноценной АПИшки, чтобы не тратить время на реверс-костыли ) Аналитика, к слову, в очень выгодном свете отличает твоё приложение от холодного и скучного "стока". Успехов!

Язык поддерживает ООП с классами и множественным наследованием

Множественного наследования здесь нет, это не c++

  • List: упорядоченная коллекция объектов одного типа.

Не обязательно одного типа

void printUserInfo({String name, int age}) { print('Name: $name, Age: $age');}void main() { // вызов printUserInfo(name: 'ivan', age: 30);}

Этот код даже не заведётся, поскольку параметры в функции должны быть помечены как обязательные. Тоже самое и в printUserInfoOptional

Функции высшего порядка принимают другие функции в качестве аргументов или возвращают их

???, не понимаю, на чём сделан акцент? Что функции это объекты на самом деле?

В Dart нет специального синтаксиса для объявления интерфейсов

Есть уже как год, появился в Dart 3, это модификатор interface

if(number % 2 == 0) {...}

Можно я просто побрюзжу и скажу, что уже пора использовать isEven или isOdd для этой цели

В Dart с включённым null safety переменные по умолчанию не могут быть null:

Передача данных между экранами обычно осуществляется через конструкторы и Navigator API:

SecondScreen({Key key, @required this.data})

Эта мысль преследовала меня сквозь весь текст. Теперь явно понятно, что весь материал представляет из себя простыню личных заметок, когда ещё использовался dart ~2 версии...

Напомню, что в рамках онлайн‑курсов OTUS вы можете изучить самые популярные ЯП, а также зарегистрироваться на ряд бесплатных мероприятий.

Поэтому спасибо, но нет.

Вы правда используете 4 пробела для отступа везде, даже в pubspec.yaml? Или это ошибка копирования (ну что-то подсказывает мне, что нет). Хотел бы я увидеть ту лапшу в виджетах при 4-ёх пробелах, когда бывает и при двух всё плохо вмещается))) А ещё ведь есть старообрядное (спорно, сам использую, но в контексте текущего примера это хороший вопрос) ограничение по длине строки в 80 символов. Ухх

Здорово, спасибо!

P.s. вместо неуклюжего StateNotifier с AsyncValue рассмотрите возможность использования AsyncNotifier (у него состояние уже завёрнуто в AsyncValue). Его также можно использовать без генерации кода. А что касается Provider и TextEditingController, то мне очень жаль, что выпилили вполне удобный ChangeNotifierProvider для этой цели. Но с другой стороны текстовые контроллеры можно класть в ConsumerStatefullWidget, либо использовать хуки (либо ваш способ). Ещё раз спасибо!

Спасибо, что-то новенькое! Изучу на досуге)

А в следующей статье мы рассмотрим ...

С учётом того, как здорово и достаточно легко к усвоению у вас получилось написать этот материал для новичков, спустя столько времени я всё ещё жду следующую часть ;) Просмотры это доказывают!

Так что можете считать это "спасибом" из будущего. Что удивительно, всё +- актуальным остаётся и по сей день.

Скажите пожалуйста, как связано определение инкапсуляции из вики с содержимым статьи? Не находите противоречий? А что если вы не показали инкапсуляцию, а показали лишь реализацию приватных полей в dart-классах через геттеры и сеттеры? Ваш материал не про инкапсуляцию, а про что-то ещё.

Это было весьма содержательно и интересно! Спасибо за материал.

Простите, но это уже третья статья-перевод одного и того же, с почти что уже 2-ух месячной просрочкой актуальности. Да и на две части разделённая не из благих намерений. Вопроса два: чем эти статьи хуже:

Flutter 3.16: что нового / Хабр

Flutter 3.16: обзор обновления фреймворка с комментариями разработчиков Surf / Хабр

и надо ли оно?

Честно говоря, ваш Facade ни на секунду не фасад получился :)

Привет, крутая история! Из стейт-менеджера рекомендую рассмотреть riverpod, поскольку он сильно освобождает от бойлерплейта и одновременно совмещает концепцию внедрения и реактивных BLoC-классов одновременно.

От getx вооще стоит отказываться, поскольку он отвратительно написан и для больших проектов не подходит.

Под рукой нет компухтера, чтобы детальней просмотреть, но чем getstorage отличается от SharedPreferences? Сомнительным бенчмарком?) Да, из доки я видел, что там есть прослушка к примеру. Что там ещё есть, чего не хватает в SP? Чисто из спортивного интереса... Я недавно выпустил cardoteka на основе SP, которая добавляет типизацию, работу с null, прослушку на основе коллбеков и разделение имён хранилищ. Может это покроет какие-то ваши кейсы использования... :)

Пиши ещё, интересный путь ?

Хорошего настроения и интересных проектов! С Новым годом, друзья! ?

А есть ещё такая штука, как rfw. Это имеет какие-то общие грани с вашим проектом?

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность