Friflex Dev – Telegram
Friflex Dev
293 subscribers
756 photos
57 videos
9 files
116 links
Канал разработчиков Friflex. Разрабатываем сайты и приложения для миллионов людей, обучаем ИИ, вдохновляем друг друга.

⚙️Наш канал о разработке на Flutter: @flutterfriendly
🚀О продуктовой разработке: @friflex_product
Download Telegram
Flutter появился в 2015 году как секретный проект Google под названием Sky. С тех пор вышло множество релизов и он стал настоящим взрослым фреймворком.

Команда Friflex продвигает разработку на Flutter, следит за его развитием и каждый год проводит конференцию о кроссплатформенной разработке — CrossConf @crossconf. Собрали самые важные моменты из истории фреймворка на карточках и подробнее рассказали о ней в нашем блоге. Приятного чтения🌟
3
🧑‍🤝‍🧑 Если вы думаете, что копировать — это просто, вы не занимались глубоким копированием. Оно помогает создать точную копию объекта вместе со вложенными документами. Получается объект-близнец, совершенно самостоятельный и независимый.

Глубокое копирование отлично подходит:

◾️Чтобы изменения одного объекта не влияли на другой

◾️Чтобы свободно работать с объектом и не бояться испортить оригинал

◾️Чтобы клонировать многоуровневые объекты

Можно создать объект-близнец вручную или с помощью библиотек. Например, в Dart глубокое копирование помогают выполнить copyPackage, deep_copy или json_serializable.

#наайтишном
👍3🔥1
⚡️Релиз плагина Flutter&Dart для VSCode 3.88.0: что нового

🟣Во Flutter список эмуляторов больше не содержит выходных данных журнала из Android SDK
🟣В редакторе перезапуск сервера анализа Dart больше не приводит к дублированию записей Dart DevTools в области состояния языка
🟣В отладчике исправлена регрессия, которая приводила к повторным глобальным ошибкам («Не удается найти библиотеку»)
🟣В DevTools устранена проблема, из-за которой боковая панель Flutter не загружалась в предварительных версиях

Наш Flutter Tech Lead Юрий Петров подготовил перевод официального релиза. О разработке на Flutter читайте также в тг-канале Юрия Мобильный разработчик.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4
🧮 Каррирование пришло в разработку из комбинаторной логики. Понятие сформулировал американский математик Хаскарл Карри. Он показал, что функцию можно представить в виде одного аргумента, который возвращает функцию, которая принимает другой аргумент.

Как это работает в программировании? Представим, что у нас есть функция multiply, которая умножает два числа. С помощью каррирования мы можем создать из нее новую — она будет умножать свой аргумент на определенное число. Например, double.


Function(int) double = (int x) => multiply(x, 2);


Теперь double — это функция, которая принимает один аргумент и удваивает его. Мы можем использовать ее так:

print(double(5)); // Выведет: 10


Результат: компактный код и универсальные функции, которые можно легко комбинировать.

#наайтишном
👍21
📝 Разработчики знают, как важно сохранять историю изменений в проекте.
На GitHub можно самостоятельно после каждого пул-реквеста заносить файл CHANGELOG.MD в основную ветку. А можно автоматизировать этот процесс.

Автоматизация позволит быстро понимать, какие изменения появились в новых версиях проекта, и не погружаться в исходный код.

Как создавать автоматические коммиты, читайте в статье Flutter Tech Lead в Friflex Юрия Петрова на Хабре.

#howto #инструкция
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
📹 Для тех, кто любит смотреть и слушать

Как создавать автоматические коммиты в GitHub, рассказал в новом видео Юрий Петров, Flutter Tech Lead Friflex и автор канала Мобильный разработчик. Из ролика вы узнаете:

✔️Что такое библиотека git-cliff
✔️Как настроить GitHub Action
✔️Зачем нужны соглашения о коммитах

👀 Смотрите на YouTube-канале Friflex:
Как быстро добавить автоматическое заполнение changelog с помощью GitHub Action

И подписывайтесь, чтобы не пропустить новые видео 💜
#howto #инструкция
Please open Telegram to view this post
VIEW IN TELEGRAM
4
👀 Термин «монада» пришел в программирование из философии. Лейбниц так называл первичные субстанции, которые, как он полагал, лежат в основе нашего мира.

В разработке монады обрабатывают действия и их последствия как единое целое. Это упрощает работу с побочными эффектами и асинхронностью.

Например, Future проводит вычисления, которые завершатся в будущем, и создает цепочку операций, зависящих от этих результатов.


Future<int> multiplyAsync(int a, int b) {
return Future.delayed(Duration(seconds: 1), () => a * b);
}

void main() {
multiplyAsync(5, 10).then((result) {
print("Результат: $result"); // Результат: 50
});
}


Монады помогают делать код понятнее и лаконичнее. Используйте их, чтобы решать задачи с последовательным выполнением действий элегантно 🕺

#наайтишном
5
Релиз Dart 3.4 🎉

🟣В предварительной версии появился макрос JsonCodebale
🟣Обновление для WebAssembly
🟣Исправлены недостатки библиотеки dart:js_interop
🟣Решено более 50% багов анализатора автодополнения кода
🟣Из библиотеки dart:cli удалены неполные и противоречивые инструменты
🟣Улучшено согласование анализа типов условных выражений

Подробнее читайте в переводе официального релиза, который подготовил наш Flutter Tech Lead Юрий Петров.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6
⚡️Flutter 3.22: что нового

День богат на релизы — обновление Flutter!

🔹WebAssembly доступен в стабильной версии. Он улучшает производительность, делает анимацию и переходы более плавными
🔹Vulkan для Android оптимизирует эффекты размытия. Интерфейсы стали еще красивее
🔹Коварианты в 2D-API позволяют API автоматически обрабатывать преобразования типов данных
🔹Новый инструмент проверки глубоких ссылок поддерживает проверку веб-конфигурации для приложений на Android

Подробнее об обновлении фреймворка — в первом переводе официального релиза от нашего Flutter Tech Lead Юрия Петрова.

#flutter
🔥5
🤖 Выражение «искусственный интеллект» на презентации Google I/O произнесли более 100 раз. По этому случаю предлагаем разобраться, как обучаются GPT-модели. Это правда интересно.

До обучения GPT-модель похожа на огромную пустую библиотеку. В ней есть множество полок (слоев) и мест для книг (параметров), а самих книг — нет.

Чтобы заполнить пустые места, модель пользуется механизмами внимания.

Самовнимание помогает ей взвесить каждое слово и решить, насколько оно важно именно в этот момент. Многоголовое внимание или multi-head attention позволяет каждому слою нейросети смотреть на предложение по-своему.

Попробовали систематизировать, что мы знаем об обучении GPT в нашем блоге на Хабре.

#AI
4
🍬 Декоратор добавляет объекту новое поведение, тогда как исходный код остается неизменным.

Например, у нас есть базовый класс Coffee. Сопроводим его декоратором для добавления молока addMilk.

class Coffee {
String denoscription = "Американо";

void addMilk() {
denoscription = "$denoscription с молоком";
}
}

void main(List<String> args) {
Coffee myCoffee = Coffee();
print(myCoffee.denoscription); // Выведет "Американо"

myCoffee.addMilk();
print(myCoffee.denoscription); // Выведет "Американо с молоком"
}


Декоратор addMilk обернул объект Coffee и добавлил к нему новое поведение.

Декораторы можно добавлять по частям и переиспользовать. Они не нарушают инкапсуляцию объектов, потому что не меняют их внутреннюю реализацию. Что скажете, берем на карандаш?

#наайтишном
4