Forwarded from MADTeacher | Станислав Чернышев
Итак... #FlutterInProduction можно разбить на 3 части:
👉 Разговор про эры развития Flutter:
👨🚀эра экспериментов (2014 - 2018)
🌲эра роста ( 2018 - 2022)
👷♂️Эра кровавого энтерпрайза (начиная с середины 2022 года)
Разработчики наконец-то определились со зрелостью фреймворка и на протяжении этой части (да и всего мероприятия) нам показывали, что Flutter применяется в разных областях и довольно крупными компаниями ^_^
👉 Экосистема
Тут было про поддержку различных IDE, что на pub доступны более 50к пакетов. Заострили внимание на том, что вокруг Flutter выстраивается экосистема (FlutterFlow, Shorebird, Serverpod, Codemagic), в то время как он сам по гланды интегрирован в экосистему Google☝️
Отдельно следует отметить упоминание о Flutter Consultants, что говорит о реальной зрелости фреймворка😎
👉 Если обобщить все услышанное с секцией Roadmap, получится следующая выжимка над чем будет работать команда Flutter в 2025 году:
👀 Точность воспроизведения платформ. Такое обновление виджетов, чтобы у людей не складывалось ощущение, что это Flutter
🫡🔥 ✅ Impeller (Flutter GPU) не только на мобилках, но и на десктопе (web пока под большим вопросом)
🔥 🎉 🥳 Средства предварительного просмотра виджетов с поддержкой редактирования
🔥 🎉 🥳 Прямое взаимодействие с native platform
🔥 🔥 🔥 Ускорение написания и упрощение чтение кода (p.s. это подгорает мой пердак от увиденных декораторов 😂, первичный конструктор - норм тема😎)
Не все показанное может быть реализовано на 100% От некоторых фич могут отказаться или перенести на потом.
А что вы думаете о прошедшем мероприятии?
#flutter@madteacher_channel #dart_lang@madteacher_channel
👉 Разговор про эры развития Flutter:
👨🚀эра экспериментов (2014 - 2018)
🌲эра роста ( 2018 - 2022)
👷♂️Эра кровавого энтерпрайза (начиная с середины 2022 года)
Разработчики наконец-то определились со зрелостью фреймворка и на протяжении этой части (да и всего мероприятия) нам показывали, что Flutter применяется в разных областях и довольно крупными компаниями ^_^
👉 Экосистема
Тут было про поддержку различных IDE, что на pub доступны более 50к пакетов. Заострили внимание на том, что вокруг Flutter выстраивается экосистема (FlutterFlow, Shorebird, Serverpod, Codemagic), в то время как он сам по гланды интегрирован в экосистему Google☝️
Отдельно следует отметить упоминание о Flutter Consultants, что говорит о реальной зрелости фреймворка😎
👉 Если обобщить все услышанное с секцией Roadmap, получится следующая выжимка над чем будет работать команда Flutter в 2025 году:
👀 Точность воспроизведения платформ. Такое обновление виджетов, чтобы у людей не складывалось ощущение, что это Flutter
🫡
Не все показанное может быть реализовано на 100% От некоторых фич могут отказаться или перенести на потом.
А что вы думаете о прошедшем мероприятии?
#flutter@madteacher_channel #dart_lang@madteacher_channel
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍2
Forwarded from MADTeacher | Станислав Чернышев
‼️В спецификацию Dart готовится обновление‼️
Замечен черновик новой фичи - Generic Constructors😩
Не прошло и пары месяцев с упоминания о предыдущем заходе на поле конструкторов с фичей Enhanced Constructors, как команда Dart, в тайне от сообщества, начала работу над черновиком еще одного конструктора... на этот раз - универсального...🛑
По задумке разработчиков, Generic-конструкторы должны позволить объявлять конструкторы с собственными параметрами типов, которые не отражаются напрямую в типе возвращаемого объекта. Это значит, что можно задавать дополнительные зависимости между аргументами конструктора. Сейчас приходится приходится прибегать к менее безопасным способам.
Планируется 2 типа Generic-конструкторов 🫠
1️⃣ Простой
На данный момент, если требуется задать связь между параметрами конструктора (например, значение и функция для его вычисления), приходится использовать универсальные типы вроде Object? и Function, что снижает статическую проверку типов:
с появлением этого конструктора можно будет явно указать зависимость между параметрами, исключая необходимость runtime-проверок
2️⃣ Условный
С помощью этого типа Generic-конструктора можно будет объявлять конструкторы, которые корректно работают только при определенных типовых аргументах.
Сейчас приходится писать такой код
использование универсального конструктора сделает его более лаконичным:
p.s. Вот теперь я уже точно уверен, что в команде Dart нашелся какой-то маньяк конструкторов... иначе как объяснить такой набор: по-умолчанию, фабричный, именованный, константный, а теперь вот еще первичный, объявляющий, расширенный и универсальный?👀
👍 - больше конструкторов Богу конструкторов
👌 - сомнительно, но Окей
👎 - не вижу от него пользы
#dart_lang@madteacher_channel
Замечен черновик новой фичи - Generic Constructors
Не прошло и пары месяцев с упоминания о предыдущем заходе на поле конструкторов с фичей Enhanced Constructors, как команда Dart, в тайне от сообщества, начала работу над черновиком еще одного конструктора... на этот раз - универсального...
По задумке разработчиков, Generic-конструкторы должны позволить объявлять конструкторы с собственными параметрами типов, которые не отражаются напрямую в типе возвращаемого объекта. Это значит, что можно задавать дополнительные зависимости между аргументами конструктора. Сейчас приходится приходится прибегать к менее безопасным способам.
Планируется 2 типа Generic-конструкторов 🫠
На данный момент, если требуется задать связь между параметрами конструктора (например, значение и функция для его вычисления), приходится использовать универсальные типы вроде Object? и Function, что снижает статическую проверку типов:
class C {
final int i;
C(this.i);
C.computed(Object? x, Function func): this(func(x)); // Unsafe!
} с появлением этого конструктора можно будет явно указать зависимость между параметрами, исключая необходимость runtime-проверок
class C {
final int i;
C(this.i);
C.computed<X>(X x, int Function(X) func) : this(func(x));
}
void main() {
C(42); // Обычный конструктор.
C.computed('Hello', (s) => s.length); // Автоматическое выведение типа.
C.computed<String>('Hello', (s) => s.length); // Явное указание типа.
}С помощью этого типа Generic-конструктора можно будет объявлять конструкторы, которые корректно работают только при определенных типовых аргументах.
Сейчас приходится писать такой код
class D<X> {
final X x;
final int Function(X, X) _compare;
D(this.x, this._compare);
D.ofComparable(X x): // Unsafe!
this(x, (dynamic x1, dynamic x2) => x1.compareTo(x2)) {
// Check at run-time that `X extends Comparable<X>`.
if (<X>[] is! List<Comparable<X>>) {
throw ArgumentError("The type argument failed"
" to satisfy `X extends Comparable<X>`.");
}
}
}использование универсального конструктора сделает его более лаконичным:
class D<X> {
final X x;
final int Function(X, X) _compare;
D(this.x, this._compare);
D<X>.ofComparable<X extends Comparable<X>>(X x)
: this(x, (x1, x2) => x1.compareTo(x2));
}
void main() {
D.ofComparable(1); // OK, num удовлетворяет Comparable.
D.ofComparable<num>(1); // Тоже OK.
D.ofComparable(C(42), (c1, c2) => c1.i.compareTo(c2.i)); // OK.
D.ofComparable(C(42)); // Ошибка компиляции – тип не соответствует.
}p.s. Вот теперь я уже точно уверен, что в команде Dart нашелся какой-то маньяк конструкторов... иначе как объяснить такой набор: по-умолчанию, фабричный, именованный, константный, а теперь вот еще первичный, объявляющий, расширенный и универсальный?👀
👍 - больше конструкторов Богу конструкторов
👌 - сомнительно, но Окей
👎 - не вижу от него пользы
#dart_lang@madteacher_channel
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10👎7