На GitHub можно самостоятельно после каждого пул-реквеста заносить файл CHANGELOG.MD в основную ветку. А можно автоматизировать этот процесс.
Автоматизация позволит быстро понимать, какие изменения появились в новых версиях проекта, и не погружаться в исходный код.
Как создавать автоматические коммиты, читайте в статье Flutter Tech Lead в Friflex Юрия Петрова на Хабре.
#howto #инструкция
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Как автоматизировать заполнение changelog через GitHub Action
Привет, Хабр! Меня зовут Юрий Петров, я автор Youtube-канала «Мобильный разработчик» и Flutter Tech Lead в компании Friflex . Мы разрабатываем мобильные приложения для бизнеса и специализируемся на...
🔥3
📹 Для тех, кто любит смотреть и слушать
Как создавать автоматические коммиты в GitHub, рассказал в новом видео Юрий Петров, Flutter Tech Lead Friflex и автор канала Мобильный разработчик. Из ролика вы узнаете:
✔️ Что такое библиотека git-cliff
✔️ Как настроить GitHub Action
✔️ Зачем нужны соглашения о коммитах
👀 Смотрите на YouTube-канале Friflex:
→ Как быстро добавить автоматическое заполнение changelog с помощью GitHub Action
И подписывайтесь, чтобы не пропустить новые видео 💜
#howto #инструкция
Как создавать автоматические коммиты в GitHub, рассказал в новом видео Юрий Петров, Flutter Tech Lead Friflex и автор канала Мобильный разработчик. Из ролика вы узнаете:
👀 Смотрите на YouTube-канале Friflex:
→ Как быстро добавить автоматическое заполнение changelog с помощью GitHub Action
И подписывайтесь, чтобы не пропустить новые видео 💜
#howto #инструкция
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Как быстро добавить автоматическое заполнение Changelog с помощью GitHub Action
В этом видео Юрий Петров, Flutter Tech Lead в Friflex и автор канала «Мобильный разработчик», рассказывает, как файл CHANGELOG.MD может заполняться автоматически.
Соглашение о коммитах: https://www.conventionalcommits.org/en/v1.0.0/
Библиотека: https://…
Соглашение о коммитах: https://www.conventionalcommits.org/en/v1.0.0/
Библиотека: https://…
❤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 Юрий Петров.
Подробнее читайте в переводе официального релиза, который подготовил наш Flutter Tech Lead Юрий Петров.
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Вышел Dart 3.4
Вышла новая версия языка Dart — 3.4 . Появились обновления для WebAssembly и предварительная версия макроса JsonCodebale. Исправлено более 50% ошибок анализатора. Читайте первый перевод...
🔥6
⚡️Flutter 3.22: что нового
День богат на релизы — обновление Flutter!
🔹WebAssembly доступен в стабильной версии. Он улучшает производительность, делает анимацию и переходы более плавными
🔹Vulkan для Android оптимизирует эффекты размытия. Интерфейсы стали еще красивее
🔹Коварианты в 2D-API позволяют API автоматически обрабатывать преобразования типов данных
🔹Новый инструмент проверки глубоких ссылок поддерживает проверку веб-конфигурации для приложений на Android
Подробнее об обновлении фреймворка — в первом переводе официального релиза от нашего Flutter Tech Lead Юрия Петрова.
#flutter
День богат на релизы — обновление Flutter!
🔹WebAssembly доступен в стабильной версии. Он улучшает производительность, делает анимацию и переходы более плавными
🔹Vulkan для Android оптимизирует эффекты размытия. Интерфейсы стали еще красивее
🔹Коварианты в 2D-API позволяют API автоматически обрабатывать преобразования типов данных
🔹Новый инструмент проверки глубоких ссылок поддерживает проверку веб-конфигурации для приложений на Android
Подробнее об обновлении фреймворка — в первом переводе официального релиза от нашего Flutter Tech Lead Юрия Петрова.
#flutter
Хабр
Flutter 3.22: что нового
WebAssembly, улучшения рендеринга графики и дополнительные возможности для интеграции ИИ. Я, Юра Петров, Flutter Tech Lead в Friflex , делюсь первым переводом официального релиза Flutter 3.22 от...
🔥5
🤖 Выражение «искусственный интеллект» на презентации Google I/O произнесли более 100 раз. По этому случаю предлагаем разобраться, как обучаются GPT-модели. Это правда интересно.
До обучения GPT-модель похожа на огромную пустую библиотеку. В ней есть множество полок (слоев) и мест для книг (параметров), а самих книг — нет.
Чтобы заполнить пустые места, модель пользуется механизмами внимания.
Самовнимание помогает ей взвесить каждое слово и решить, насколько оно важно именно в этот момент. Многоголовое внимание или multi-head attention позволяет каждому слою нейросети смотреть на предложение по-своему.
Попробовали систематизировать, что мы знаем об обучении GPT в нашем блоге на Хабре.
#AI
До обучения 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
Мобильное приложение содержит информацию одного пользователя, а защищать надо серверную часть с данными всех клиентов. Операционные системы сами справляются с безопасностью данных, дополнительная защита приложению не требуется. Мобильные сторы проверяют приложения перед публикацией, разработчику не нужно делать лишнюю работу... Эти и другие мифы о безопасности мобильных приложений постоянно встречаются в сети.
Наши Flutter-разработчики, Юра Петров, Аня Ахлестова и Артем Баркалов выступили на онлайн-митапе и рассказали про безопасность в приложениях на Flutter и ответили на вопросы:
✔️ Какие бывают угрозы?
✔️ Влияет ли использование публичных библиотек на безопасность приложения?
✔️ Какую литературу и документацию изучить, чтобы успешно пройти аудит по безопасности?
Митап стал превью к выступлению ребят на @crossconf, где они подробнее расскажут о безопасности в мобильных приложениях. Запись митапа можно посмотреть по ссылке.
Наши Flutter-разработчики, Юра Петров, Аня Ахлестова и Артем Баркалов выступили на онлайн-митапе и рассказали про безопасность в приложениях на Flutter и ответили на вопросы:
Митап стал превью к выступлению ребят на @crossconf, где они подробнее расскажут о безопасности в мобильных приложениях. Запись митапа можно посмотреть по ссылке.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8
🥚 Это может быть шутка, отсылка к поп-культуре или мини-игра. Тайные элементы в программах — способ оставить свой след и немного развлечь пользователей.
Как создать?
1. Выберите способ. Например, можно добавить в программу код, который будет активироваться при выполнении какого-то условия, или спрятать картинку.
2. Сделайте пасхалку незаметной. Чем сложнее найти ключ к пасхалке, тем интереснее.
3. Не переборщите. Убедитесь, что пасхалка безобидна и не мешает основным функциям.
4. Повеселитесь! Не бойтесь экспериментировать и создавать что-то новое.
Расскажите, вы создавали когда-нибудь пасхалки?
#словарь
Как создать?
1. Выберите способ. Например, можно добавить в программу код, который будет активироваться при выполнении какого-то условия, или спрятать картинку.
2. Сделайте пасхалку незаметной. Чем сложнее найти ключ к пасхалке, тем интереснее.
3. Не переборщите. Убедитесь, что пасхалка безобидна и не мешает основным функциям.
4. Повеселитесь! Не бойтесь экспериментировать и создавать что-то новое.
Расскажите, вы создавали когда-нибудь пасхалки?
#словарь
🔥4
В издательстве Питер вышел учебник по Dart — при поддержке Friflex 🕺
Dart — современный и мощный язык программирования. Он лежит в основе фреймворка Flutter, с которым наша команда работает с первого релиза.
Книга «Основы Dart» рассказывает об истории языка, рассматривает его синтаксис, особенности работы с типами данных и функциями. Со второй главы читателей ждет проект, который к шестой главе превращается в настоящее клиент-серверное приложение. Как на практике, после каждой итерации вас будут ждать рекомендации и полезные примеры.
Автор — Станислав Чернышев, кандидат технических наук, доцент кафедры информатики СПБГЭУ и кафедры прикладной информатики СПбГУАП, автор канала MADTeacher, спикер @crossconf и других конференций.
Мы рады, что поддержали этот проект. Уверены, книга поможет многим разработчикам улучшить свои навыки и выйти на новый уровень 🫶
#Dart
Dart — современный и мощный язык программирования. Он лежит в основе фреймворка Flutter, с которым наша команда работает с первого релиза.
Книга «Основы Dart» рассказывает об истории языка, рассматривает его синтаксис, особенности работы с типами данных и функциями. Со второй главы читателей ждет проект, который к шестой главе превращается в настоящее клиент-серверное приложение. Как на практике, после каждой итерации вас будут ждать рекомендации и полезные примеры.
Автор — Станислав Чернышев, кандидат технических наук, доцент кафедры информатики СПБГЭУ и кафедры прикладной информатики СПбГУАП, автор канала MADTeacher, спикер @crossconf и других конференций.
Мы рады, что поддержали этот проект. Уверены, книга поможет многим разработчикам улучшить свои навыки и выйти на новый уровень 🫶
#Dart
🔥8
🌿 Бранч — это не только поздний завтрак с омлетами и круассанами в полдень. В разработке так называется ветка или копия проекта, в которую можно вносить любые изменения. Они не повлияют на основной проект.
Представьте, что ваш проект — большое ветвистое дерево. У него есть основная ветка — master. Ее используют для выпуска версий проекта, которые будут доступны всем.
Если не создавать других веток, то все изменения сразу будут идти прямиком в master. А значит, их сразу увидят пользователи.
Например, вы только что запустили мобильное приложение, и клиент просит срочно интегрировать его с календарем. Можно править «по живому», но это риск. Другой вариант — создать бранч и спокойно работать над интеграцией.
Каждая ветка живет своей жизнью, развивается и растет, пока вы не решите, что пора присоединить его к основному дереву. Процесс объединения называется «мерж», но это уже другая история 😄
#наайтишном
Представьте, что ваш проект — большое ветвистое дерево. У него есть основная ветка — master. Ее используют для выпуска версий проекта, которые будут доступны всем.
Если не создавать других веток, то все изменения сразу будут идти прямиком в master. А значит, их сразу увидят пользователи.
Например, вы только что запустили мобильное приложение, и клиент просит срочно интегрировать его с календарем. Можно править «по живому», но это риск. Другой вариант — создать бранч и спокойно работать над интеграцией.
Каждая ветка живет своей жизнью, развивается и растет, пока вы не решите, что пора присоединить его к основному дереву. Процесс объединения называется «мерж», но это уже другая история 😄
#наайтишном
❤7
Коммит — не просто кнопка, это еще и социальное действие. Хорошие практики коммитов в разработке ценятся не меньше, чем знание этикета в светском обществе. Вот некоторые из них:
◽️Не делайте слишком мелкие коммиты, если в этом нет необходимости
◽️Сопровождайте коммиты кратким и понятным описанием изменений
◽️Один коммит — один логичный шаг. Не смешивайте исправление ошибки с добавлением новой функции
◽️Если вы допустили ошибку, не бойтесь использовать git revert
◽️Указывайте номера ошибок или задач, над которыми вы работаете
Грамотные коммиты помогают всей команде отслеживать изменения, организовывать совместную работу без хаоса и откатывать проект к предыдущей версии в случае ошибки. Хорошей недели, и пусть ваши коммиты говорят сами за себя 🌟
#наайтишном
◽️Не делайте слишком мелкие коммиты, если в этом нет необходимости
◽️Сопровождайте коммиты кратким и понятным описанием изменений
◽️Один коммит — один логичный шаг. Не смешивайте исправление ошибки с добавлением новой функции
◽️Если вы допустили ошибку, не бойтесь использовать git revert
◽️Указывайте номера ошибок или задач, над которыми вы работаете
Грамотные коммиты помогают всей команде отслеживать изменения, организовывать совместную работу без хаоса и откатывать проект к предыдущей версии в случае ошибки. Хорошей недели, и пусть ваши коммиты говорят сами за себя 🌟
#наайтишном
❤7
Помните, мы писали про учебник по Dart, который вышел при поддержке Friflex? Вместе с автором книги Станиславом Чернышевым @MADComrade делимся главой о встроенных коллекциях. Осторожно, дальше могут быть спойлеры 👀
В Dart есть своя библиотека коллекций с базовыми структурами данных — dart:collection. Например, Map помогает хранить и управлять парами «ключ — значение». Это идеальная структура для организации разнородных данных, таких как настройки пользователя или конфигурации приложения.
О принципах работы, сильных и слабых сторонах Map и других встроенных коллекций — в блоге Friflex на Хабре.
#Flutter
В Dart есть своя библиотека коллекций с базовыми структурами данных — dart:collection. Например, Map помогает хранить и управлять парами «ключ — значение». Это идеальная структура для организации разнородных данных, таких как настройки пользователя или конфигурации приложения.
О принципах работы, сильных и слабых сторонах Map и других встроенных коллекций — в блоге Friflex на Хабре.
#Flutter
Хабр
Встроенные коллекции Dart: как реализовать в коде основные структуры данных. Глава из книги
Привет, Хабр! Меня зовут Станислав Чернышев , я автор книги «Основы Dart», телеграм-канала MADTeacher и доцент кафедры прикладной информатики в Санкт-Петербургском государственном университете...
❤6