Hola, Amigos! Делимся Flutter-пакетами, которые улучшат ваши приложения:
📌carousel_slider: Если вам нужно добавить красивый карусельный слайдер с изображениями или контентом, этот пакет для вас. Он предоставляет легкий и гибкий способ создания интерактивных каруселей.
📌flutter_slidable: Перетаскиваемое меню — это то, что делает ваше приложение удобным для пользователей. Этот пакет поможет вам легко добавить скользящие действия к элементам списка, таким как удаление, архивирование и многое другое.
📌auto_size_text: Управление текстовым контентом может быть сложной задачей, особенно когда вы не знаете, сколько места он займет. Этот пакет автоматически подстраивает размер текста под доступное пространство, облегчая вам жизнь при работе с разнообразными макетами.
Надеемся, эти пакеты сделают вашу разработку более продуктивной!
Делитесь популярными пакетами в комментариях или пишите, про какой нам рассказать подробнее?
📌carousel_slider: Если вам нужно добавить красивый карусельный слайдер с изображениями или контентом, этот пакет для вас. Он предоставляет легкий и гибкий способ создания интерактивных каруселей.
📌flutter_slidable: Перетаскиваемое меню — это то, что делает ваше приложение удобным для пользователей. Этот пакет поможет вам легко добавить скользящие действия к элементам списка, таким как удаление, архивирование и многое другое.
📌auto_size_text: Управление текстовым контентом может быть сложной задачей, особенно когда вы не знаете, сколько места он займет. Этот пакет автоматически подстраивает размер текста под доступное пространство, облегчая вам жизнь при работе с разнообразными макетами.
Надеемся, эти пакеты сделают вашу разработку более продуктивной!
Делитесь популярными пакетами в комментариях или пишите, про какой нам рассказать подробнее?
🔥27❤2👍1
Основы CI/CD
Hola, Amigos! Рассказываем про важный инструмент в создании приложений, который позволяет улучшить процесс разработки, ускорить доставку обновлений и снизить риски — непрерывная интеграция (CI) и доставка (CD).
Что это такое?
Непрерывная интеграция (CI) — это практика, при которой код разработчиков регулярно (обычно несколько раз в день) интегрируется в общую ветвь. Каждый раз, когда новый код добавляется, автоматически запускаются тесты, чтобы убедиться, что новый код не сломал существующую функциональность.
Непрерывная доставка (CD) — это практика, при которой каждое успешное завершение цикла CI автоматически запускает процесс доставки приложения в целевую среду (например, на сервере или в магазинах приложений).
Основные преимущества CI/CD:
💫 Автоматизация: CI/CD интегрирует автоматическую сборку, тестирование и развертывание, что позволяет разработчикам концентрироваться на коде, а не на рутинных операциях.
💫 Улучшенное качество: Регулярная интеграция и тестирование помогают выявлять и устранять ошибки на ранних этапах разработки.
💫 Ускорение доставки: Благодаря непрерывной поставке, новые функции и исправления могут достигать конечных пользователей намного быстрее.
💫 Надежность: CI/CD позволяет уделять больше внимания контролю качества и безопасности кода.
💫 Улучшенная совместная работа: Разработчики могут легко сотрудничать, так как изменения в коде интегрируются и тестируются непрерывно.
С основами разобрались! Оставьте реакцию под постом, если эта методология вам уже была знакома👍🏻
В следующих постах поговорим о этапах, инструментах и конфигурации CI/CD для мобильных приложений.
Hola, Amigos! Рассказываем про важный инструмент в создании приложений, который позволяет улучшить процесс разработки, ускорить доставку обновлений и снизить риски — непрерывная интеграция (CI) и доставка (CD).
Что это такое?
Непрерывная интеграция (CI) — это практика, при которой код разработчиков регулярно (обычно несколько раз в день) интегрируется в общую ветвь. Каждый раз, когда новый код добавляется, автоматически запускаются тесты, чтобы убедиться, что новый код не сломал существующую функциональность.
Непрерывная доставка (CD) — это практика, при которой каждое успешное завершение цикла CI автоматически запускает процесс доставки приложения в целевую среду (например, на сервере или в магазинах приложений).
Основные преимущества CI/CD:
💫 Автоматизация: CI/CD интегрирует автоматическую сборку, тестирование и развертывание, что позволяет разработчикам концентрироваться на коде, а не на рутинных операциях.
💫 Улучшенное качество: Регулярная интеграция и тестирование помогают выявлять и устранять ошибки на ранних этапах разработки.
💫 Ускорение доставки: Благодаря непрерывной поставке, новые функции и исправления могут достигать конечных пользователей намного быстрее.
💫 Надежность: CI/CD позволяет уделять больше внимания контролю качества и безопасности кода.
💫 Улучшенная совместная работа: Разработчики могут легко сотрудничать, так как изменения в коде интегрируются и тестируются непрерывно.
С основами разобрались! Оставьте реакцию под постом, если эта методология вам уже была знакома👍🏻
В следующих постах поговорим о этапах, инструментах и конфигурации CI/CD для мобильных приложений.
👍26🔥9❤4
Этапы CI/CD
Hola, Amigos! Продолжаем глубже погружаться в мир CI/CD. Понимание этапов CI/CD
поможет вам настроить эффективный процесс автоматизации разработки и доставки вашего мобильного приложения.
1️⃣ Интеграция (Integration)
Интегрируем код в общий репозиторий. Это может включать в себя новые функции, исправления ошибок или другие изменения. Интеграция должна происходить регулярно и автоматически, чтобы обеспечить непрерывность процесса.
2️⃣ Сборка (Build)
Это процесс компиляции и создания исполняемых файлов вашего приложения из исходного кода. В CI/CD среде сборка автоматизирована, что обеспечивает консистентность и надежность сборки на всех этапах разработки.
3️⃣ Тестирование (Testing)
Происходят все виды тестирования: юнит-тестирование, интеграционное тестирование, функциональное тестирование и другие. Тесты должны автоматически запускаться после каждой сборки для выявления возможных проблем.
4️⃣ Доставка (Delivery)
После успешной сборки и тестирования приложение готово к доставке. На этом этапе оно может быть автоматически упаковано и развернуто на тестовых или боевых серверах. Доставка включает в себя также автоматическое создание документации и уведомлений.
5️⃣ Развертывание (Deployment)
Этап развертывания заключается в доставке приложения пользователям. Он может быть автоматизирован с использованием инструментов, таких как CI/CD пайплайны или контейнеризация. Это гарантирует, что ваше приложение всегда обновлено и доступно пользователям.
6️⃣ Мониторинг (Monitoring)
После развертывания важно отслеживать работу приложения. Мониторинг включает в себя сбор метрик, регистрацию ошибок и мониторинг производительности. Эти данные помогают оперативно реагировать на проблемы и улучшать качество приложения.
Настройка автоматического выполнения каждого этапа с учетом вашей инфраструктуры и требований приложения поможет вам ускорить и улучшить процесс разработки. Ставьте реакцию, если было полезно!
Hola, Amigos! Продолжаем глубже погружаться в мир CI/CD. Понимание этапов CI/CD
поможет вам настроить эффективный процесс автоматизации разработки и доставки вашего мобильного приложения.
1️⃣ Интеграция (Integration)
Интегрируем код в общий репозиторий. Это может включать в себя новые функции, исправления ошибок или другие изменения. Интеграция должна происходить регулярно и автоматически, чтобы обеспечить непрерывность процесса.
2️⃣ Сборка (Build)
Это процесс компиляции и создания исполняемых файлов вашего приложения из исходного кода. В CI/CD среде сборка автоматизирована, что обеспечивает консистентность и надежность сборки на всех этапах разработки.
3️⃣ Тестирование (Testing)
Происходят все виды тестирования: юнит-тестирование, интеграционное тестирование, функциональное тестирование и другие. Тесты должны автоматически запускаться после каждой сборки для выявления возможных проблем.
4️⃣ Доставка (Delivery)
После успешной сборки и тестирования приложение готово к доставке. На этом этапе оно может быть автоматически упаковано и развернуто на тестовых или боевых серверах. Доставка включает в себя также автоматическое создание документации и уведомлений.
5️⃣ Развертывание (Deployment)
Этап развертывания заключается в доставке приложения пользователям. Он может быть автоматизирован с использованием инструментов, таких как CI/CD пайплайны или контейнеризация. Это гарантирует, что ваше приложение всегда обновлено и доступно пользователям.
6️⃣ Мониторинг (Monitoring)
После развертывания важно отслеживать работу приложения. Мониторинг включает в себя сбор метрик, регистрацию ошибок и мониторинг производительности. Эти данные помогают оперативно реагировать на проблемы и улучшать качество приложения.
Настройка автоматического выполнения каждого этапа с учетом вашей инфраструктуры и требований приложения поможет вам ускорить и улучшить процесс разработки. Ставьте реакцию, если было полезно!
👍15🔥4❤1
Встречаемся на UIC DEV 2023
Hola, Amigos! Мы участвуем в технологической конференции UIC DEV в Ижевске. Это та самая умная вечеринка про IT и для IT, на которой одновременно стартуют 12 тематических потоков: бэкенд, фронтенд, мобильная разработка, тестирование, дизайн, менеджмент и другие🪩
UIC — семейство старейших IT-мероприятий Удмуртии. 1000+ участников из 10+ регионов Поволжья и Урала. 70+ спикеров из ведущих компаний РФ и не только.
От Amiga выступит наш СЕО Дмитрий Тарасов с докладом «Почему Flutter лучшее предложение для бизнеса». Покажем мнооого наших кейсов и расскажем, почему так горячо любим Flutter. Сравним его с нативом и ответим на все ваши вопросы, развеем сомнения на счет кроссплатформенности.
UIC DEV пройдет уже 30 сентября, поэтому скорее покупайте билет по ссылке. По промокодуTARASOV дарим скидку 20% на билет🎟
До встречи в Ижевске!
Hola, Amigos! Мы участвуем в технологической конференции UIC DEV в Ижевске. Это та самая умная вечеринка про IT и для IT, на которой одновременно стартуют 12 тематических потоков: бэкенд, фронтенд, мобильная разработка, тестирование, дизайн, менеджмент и другие🪩
UIC — семейство старейших IT-мероприятий Удмуртии. 1000+ участников из 10+ регионов Поволжья и Урала. 70+ спикеров из ведущих компаний РФ и не только.
От Amiga выступит наш СЕО Дмитрий Тарасов с докладом «Почему Flutter лучшее предложение для бизнеса». Покажем мнооого наших кейсов и расскажем, почему так горячо любим Flutter. Сравним его с нативом и ответим на все ваши вопросы, развеем сомнения на счет кроссплатформенности.
UIC DEV пройдет уже 30 сентября, поэтому скорее покупайте билет по ссылке. По промокоду
До встречи в Ижевске!
❤13👏4👍3
Инструменты и конфигурации CI/CD
Hola, Amigos! Сегодня поговорим о важных инструментах и конфигурации CI/CD для мобильных приложений. Правильный выбор инструментов и их настройка могут существенно упростить вашу работу и улучшить процесс разработки.
Инструменты для CI/CD:
Jenkins: популярный open-source сервер автоматизации поддерживает множество плагинов, что делает его гибким инструментом для настройки CI/CD пайплайнов.
Travis CI: облачный сервис, который предоставляет простое управление пайплайнами CI/CD для проектов на GitHub и других платформах.
CircleCI: еще один облачный сервис, который предлагает масштабируемые и настраиваемые CI/CD пайплайны.
GitLab CI/CD: если ваш проект хранится на GitLab, вы можете использовать встроенные инструменты для настройки CI/CD.
Fastlane: инструмент для автоматизации сборки и развертывания мобильных приложений. Он может управлять всеми шагами, от сборки до отправки в магазины приложений.
Конфигурация CI/CD:
Выбор Целевых Сред (Environments): Определите, где будете разворачивать приложение: тестовые среды, стейджинг, боевая среда и т.д.
Сборка и Тестирование: Настройте скрипты сборки и автоматические тесты. Удостоверьтесь, что тесты покрывают все аспекты вашего приложения.
Доставка: Определите, как вы будете доставлять приложение в целевые среды.
Развертывание: Настройте автоматическое развертывание на выбранные среды. Используйте контейнеризацию, если это уместно.
Мониторинг и Оповещения: Не забудьте настроить мониторинг производительности и оповещения для своих CI/CD пайплайнов, чтобы оперативно реагировать на проблемы.
Хранение Конфигурации: Лучше всего хранить конфигурацию CI/CD в коде (например,
Выбор инструментов и правильная конфигурация CI/CD играют важную роль в ускорении разработки и обеспечении надежности ваших мобильных приложений. Не стесняйтесь экспериментировать и настраивать пайплайны под свои нужды.
Если у вас есть вопросы или хотите узнать больше о каком-либо конкретном инструменте, дайте знать в комментариях!
Hola, Amigos! Сегодня поговорим о важных инструментах и конфигурации CI/CD для мобильных приложений. Правильный выбор инструментов и их настройка могут существенно упростить вашу работу и улучшить процесс разработки.
Инструменты для CI/CD:
Jenkins: популярный open-source сервер автоматизации поддерживает множество плагинов, что делает его гибким инструментом для настройки CI/CD пайплайнов.
Travis CI: облачный сервис, который предоставляет простое управление пайплайнами CI/CD для проектов на GitHub и других платформах.
CircleCI: еще один облачный сервис, который предлагает масштабируемые и настраиваемые CI/CD пайплайны.
GitLab CI/CD: если ваш проект хранится на GitLab, вы можете использовать встроенные инструменты для настройки CI/CD.
Fastlane: инструмент для автоматизации сборки и развертывания мобильных приложений. Он может управлять всеми шагами, от сборки до отправки в магазины приложений.
Конфигурация CI/CD:
Выбор Целевых Сред (Environments): Определите, где будете разворачивать приложение: тестовые среды, стейджинг, боевая среда и т.д.
Сборка и Тестирование: Настройте скрипты сборки и автоматические тесты. Удостоверьтесь, что тесты покрывают все аспекты вашего приложения.
Доставка: Определите, как вы будете доставлять приложение в целевые среды.
Развертывание: Настройте автоматическое развертывание на выбранные среды. Используйте контейнеризацию, если это уместно.
Мониторинг и Оповещения: Не забудьте настроить мониторинг производительности и оповещения для своих CI/CD пайплайнов, чтобы оперативно реагировать на проблемы.
Хранение Конфигурации: Лучше всего хранить конфигурацию CI/CD в коде (например,
.gitlab-ci.yml
или .travis.yml
), чтобы она была частью вашего репозитория и отслеживалась вместе с кодом.Выбор инструментов и правильная конфигурация CI/CD играют важную роль в ускорении разработки и обеспечении надежности ваших мобильных приложений. Не стесняйтесь экспериментировать и настраивать пайплайны под свои нужды.
Если у вас есть вопросы или хотите узнать больше о каком-либо конкретном инструменте, дайте знать в комментариях!
🔥11👍5❤2
Наша Flutter команда на DevFest🤪
Hola, Amigos! 6-8 октября в Омске пройдет конференция DevFest для программистов, дизайнеров и тестировщиков. В этом году будет бурное обсуждение сразу 10 треков: iOS, Android, Аврора, Automation, Flutter, .NET, Python, UX/UI, Golang, Web. Среди спикеров: VK, Литрес, Тинькофф, Самолет, Яндекс и другие.
Amiga будут представлять:
1. Тимур Моисеев, руководитель мобильной разработки с докладом «Flutter и ML».
2. Саша Чаплыгин, Flutter-разработчик с докладом «Flutter и камера».
Выступаем 6 октября в 12 и в 15 часов. Приходите! Будет только практическая информация для коллег по цеху, разложим всё по полочкам на примере кейсов. И с удовольствием ответим на ваши вопросы про кроссплатформенность💜
Место встречи: ОмГТУ, пр. Мира 11а, 6 корпус. Увидимся!
Hola, Amigos! 6-8 октября в Омске пройдет конференция DevFest для программистов, дизайнеров и тестировщиков. В этом году будет бурное обсуждение сразу 10 треков: iOS, Android, Аврора, Automation, Flutter, .NET, Python, UX/UI, Golang, Web. Среди спикеров: VK, Литрес, Тинькофф, Самолет, Яндекс и другие.
Amiga будут представлять:
1. Тимур Моисеев, руководитель мобильной разработки с докладом «Flutter и ML».
2. Саша Чаплыгин, Flutter-разработчик с докладом «Flutter и камера».
Выступаем 6 октября в 12 и в 15 часов. Приходите! Будет только практическая информация для коллег по цеху, разложим всё по полочкам на примере кейсов. И с удовольствием ответим на ваши вопросы про кроссплатформенность💜
Место встречи: ОмГТУ, пр. Мира 11а, 6 корпус. Увидимся!
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍5❤1
Модификаторы классов для сопровождающих API
Hola Amigos! На связи Тимур Моисеев, руководитель мобильной разработки Amiga. Сегодня делюсь с вами переводом статьи, из которой вы узнаете, как использовать новые модификаторы и как они влияют на пользователей ваших библиотек.
Содержание:
– Модификатор mixin классов
– Другие модификаторы согласия
– Модификатор interface_
– Модификатор base_
– Модификатор final_
– Модификатор sealed_
Переходите по ссылке, чтобы прочитать статью. И ставьте реакцию💜на пост, если было полезно!
Hola Amigos! На связи Тимур Моисеев, руководитель мобильной разработки Amiga. Сегодня делюсь с вами переводом статьи, из которой вы узнаете, как использовать новые модификаторы и как они влияют на пользователей ваших библиотек.
Содержание:
– Модификатор mixin классов
– Другие модификаторы согласия
– Модификатор interface_
– Модификатор base_
– Модификатор final_
– Модификатор sealed_
Переходите по ссылке, чтобы прочитать статью. И ставьте реакцию💜на пост, если было полезно!
🔥11❤6👍3
Keys во Flutter
Hola Amigos! На связи Тимур Моисеев, руководитель мобильной разработки Amiga. Еще раз решил кратко пройтись по теме ключей у виджетов. Хочется осветить пару моментов, которые будут полезны как начинающим разработчикам, так и тем, кто уже немного погрузился во Flutter.
В статье рассказал, для чего нужен ключ виджета и чем отличаются локальные ключи от глобальных.
Переходите читать на Habr! И накидайте реакций под постом, если формат коротких заметок — 👍
Hola Amigos! На связи Тимур Моисеев, руководитель мобильной разработки Amiga. Еще раз решил кратко пройтись по теме ключей у виджетов. Хочется осветить пару моментов, которые будут полезны как начинающим разработчикам, так и тем, кто уже немного погрузился во Flutter.
В статье рассказал, для чего нужен ключ виджета и чем отличаются локальные ключи от глобальных.
Переходите читать на Habr! И накидайте реакций под постом, если формат коротких заметок — 👍
🔥17👍9❤2
This media is not supported in your browser
VIEW IN TELEGRAM
Обзор пакета flutter_slidable
Hola, Amigos! Мы решили вернуть рубрику #пп — полезный пакет. Будем рассказывать про пакеты во Flutter, которые помогут вам разрабатывать удобные и классные приложения. Все подобные посты будем собирать под хэштегом #пп, чтобы в случае чего, вы смогли быстро найти нужный.
Сегодня про flutter_slidable. Этот пакет позволяет создавать скользящие списки с направленными действиями скольжения, которые можно отклонить в процессе выполнения.
Flutter Slidable добавляет два новых виджета:
1. HorizontalSlidableButton — для горизонтальных скользящих действий.
2. VerticalSlidableButton — для вертикальных скользящих действий.
Пакет обладает широким функционалом, включая:
📱Взаимодействие с анимацией через AnimationController.
📱isRestart — после взаимодействия можно вернуть виджет в исходное состояние.
📱completeSlideAt — позволяет задавать прогресс прокрутки, после которого остальной процесс будет доведен до начала или конца (при включенном autoSlide=true).
📱autoSlide — включить или выключить автоскролл, при котором после завершения прокрутки, прогресс автоматически доводится либо до начала, либо до конца.
Такой функционал делает flutter_slidable мощным инструментом для создания интерактивных и удобных списков в ваших мобильных приложениях. Он пригодится, если вы хотите добавить жесты, позволяющие выполнять действия на элементах списка, например, удаление, архивирование и др.
Примеры использования можно изучить в официальном репозитории на GitHub.
Желаем вам удачи в разработке! И ставьте реакции на пост, если рады возвращению рубрики🎉
Hola, Amigos! Мы решили вернуть рубрику #пп — полезный пакет. Будем рассказывать про пакеты во Flutter, которые помогут вам разрабатывать удобные и классные приложения. Все подобные посты будем собирать под хэштегом #пп, чтобы в случае чего, вы смогли быстро найти нужный.
Сегодня про flutter_slidable. Этот пакет позволяет создавать скользящие списки с направленными действиями скольжения, которые можно отклонить в процессе выполнения.
Flutter Slidable добавляет два новых виджета:
1. HorizontalSlidableButton — для горизонтальных скользящих действий.
2. VerticalSlidableButton — для вертикальных скользящих действий.
Пакет обладает широким функционалом, включая:
📱Взаимодействие с анимацией через AnimationController.
📱isRestart — после взаимодействия можно вернуть виджет в исходное состояние.
📱completeSlideAt — позволяет задавать прогресс прокрутки, после которого остальной процесс будет доведен до начала или конца (при включенном autoSlide=true).
📱autoSlide — включить или выключить автоскролл, при котором после завершения прокрутки, прогресс автоматически доводится либо до начала, либо до конца.
Такой функционал делает flutter_slidable мощным инструментом для создания интерактивных и удобных списков в ваших мобильных приложениях. Он пригодится, если вы хотите добавить жесты, позволяющие выполнять действия на элементах списка, например, удаление, архивирование и др.
Примеры использования можно изучить в официальном репозитории на GitHub.
Желаем вам удачи в разработке! И ставьте реакции на пост, если рады возвращению рубрики🎉
🔥23👍6💯6🏆3❤2
Hola, Amigos! Русскоязычные каналы разработчиков на Flutter — большая редкость в телеграм. Поэтому срочно делимся с вами находкой!
Канал ведет Саша Ворожищев, руководитель Flutter/iOS-разработки AGIMA. Это не новостной канал, автор делится: статьями о мобильной разработке, исследованиями, классными подходами, трендами в IT. Плюс щепотка юмора и музыки👆
Загляните на канал Саши и подпишитесь!
Канал ведет Саша Ворожищев, руководитель Flutter/iOS-разработки AGIMA. Это не новостной канал, автор делится: статьями о мобильной разработке, исследованиями, классными подходами, трендами в IT. Плюс щепотка юмора и музыки
Загляните на канал Саши и подпишитесь!
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
Саша расскажет // о мобильной разработке и ИТ
Руководитель отдела мобильной разработки в компании AGIMA
Пообщаться / спросить / предложить новость сюды: @WizAlx
Пообщаться / спросить / предложить новость сюды: @WizAlx
❤10👎7🔥4😁3💩2🤡1😍1
Гайдлайн Flutter.Много
Hola, Amigos! На связи команда Flutter разработчиков компании Amiga.
Сначала немного истории) Мы начали вести этот канал 21 июля 2022 года. Нами двигало желание создать комьюнити разработчиков на Flutter, делиться ценной информацией и проектами.
За год наш канал хорошо подрос, и мы стремительно догоняем топовые каналы о Flutter в России, чему очень рады! Но у этого факта есть и обратная сторона. Мы всё чаще начали сталкиваться в комментариях в нашем чате с несогласованной рекламой.
Чат закрывать мы не планируем, так как хотим сохранить связь с вами💜Поэтому решили установить правила, чтобы всем было хорошо и уютно во Flutter.Много.
Гайдлайн:
– не спамить,
– не ругаться матом,
– не обсуждать политику,
– не давать несогласованную рекламу.
Со своей стороны тоже обещаем больше экспертной, интересной и полезной информации! Будем с вами честны, реклама здесь периодически будет появляться, но супер-редко и незаметно🤫 Ведь мы хотим развивать и увеличивать наш канал.
По любым вопросам пишите нашему pr-менеджеру, Арине @arinazzzz💌
Всем мир и Flutter!
Hola, Amigos! На связи команда Flutter разработчиков компании Amiga.
Сначала немного истории) Мы начали вести этот канал 21 июля 2022 года. Нами двигало желание создать комьюнити разработчиков на Flutter, делиться ценной информацией и проектами.
За год наш канал хорошо подрос, и мы стремительно догоняем топовые каналы о Flutter в России, чему очень рады! Но у этого факта есть и обратная сторона. Мы всё чаще начали сталкиваться в комментариях в нашем чате с несогласованной рекламой.
Чат закрывать мы не планируем, так как хотим сохранить связь с вами💜Поэтому решили установить правила, чтобы всем было хорошо и уютно во Flutter.Много.
Гайдлайн:
– не спамить,
– не ругаться матом,
– не обсуждать политику,
– не давать несогласованную рекламу.
Со своей стороны тоже обещаем больше экспертной, интересной и полезной информации! Будем с вами честны, реклама здесь периодически будет появляться, но супер-редко и незаметно🤫 Ведь мы хотим развивать и увеличивать наш канал.
По любым вопросам пишите нашему pr-менеджеру, Арине @arinazzzz💌
Всем мир и Flutter!
👍14❤11🔥5💩4🕊1
Completer в Flutter для работы с асинхронностью
Hola, Amigos! Completer — это вспомогательный класс, который позволяет нам создавать Future объекты. Как вы знаете, Future — это тип данных, который представляет собой результат асинхронной операции. Все асинхронные функции в Flutter возвращают Future и позволяют вам работать с результатами операции, когда они становятся доступными.
Completer приходит на помощь, когда вы хотите создать собственную синхронную функцию, которая также возвращает Future. Это может быть полезно, когда вам необходимо выполнить какие-то операции внутри функции и предоставить результат для будущего использования.
Примеры создания Completer объектов:
Completer используется для представления значения будущему объекту и для запуска всех ожидающих обратных вызовов. Вы можете завершить Completer, как показано ниже:
Или, если вы хотите получить результат из функции обратного вызова, вы можете использовать его future свойство:
Также, Completer предоставляет метод isCompleted, который позволяет вам узнать, завершился ли Completer:
⚠️ Важно помнить, что Completer — это односторонний процесс, и его нельзя перезапустить после завершения.
Рассмотрим работу и использование Completer на двух примерах.
1️⃣ Пример
Нам нужно получить значения переменной из функции обратного вызова.
См. скриншот 1: мы имитируем асинхронную операцию и желанием получить значение переменной time, но как нам это сделать вне функции?
См. скриншот 2: на помощь приходит Completer, благодаря которому мы можем получить значение переменной вне зоны видимости функции обратного вызова после завершения асинхронной операции:
2️⃣ Пример
Если вам доводилось разрабатывать клиент-серверные приложения, то вы, скорее всего, сталкивались с проблемой отправки нескольких запросов. Например, при авторизации в системе пользователю требуется заполнить поля логина и пароля, затем отправить запрос на сервер тапом на кнопку «Войти». Но что, если пользователь нажмёт на неё более 1 раза? В данном случае на сервер пойдут конкурентные запросы, что не является хорошей практикой.
См. скриншот 3: эту проблему можно решить как на стороне Flutter, используя Debouncer, но это также решает Completer с помощью вышеупомянутого. Мы дополним пример выше и имитируем несколько нажатий пользователем с помощью цикла for. Добавив условие управления Future, в котором мы проверяем закончил ли Completer свою работу, мы выходим из цикла и получаем нужное нам значение единожды.
Таким образом, Completer можно использовать как своеобразную защиту от дублирующих запросов на сервер или создания пользователем дублирующих асинхронных операций.
Успешной вам разработки! Отправляйте реакцию, если было полезно😉
Hola, Amigos! Completer — это вспомогательный класс, который позволяет нам создавать Future объекты. Как вы знаете, Future — это тип данных, который представляет собой результат асинхронной операции. Все асинхронные функции в Flutter возвращают Future и позволяют вам работать с результатами операции, когда они становятся доступными.
Completer приходит на помощь, когда вы хотите создать собственную синхронную функцию, которая также возвращает Future. Это может быть полезно, когда вам необходимо выполнить какие-то операции внутри функции и предоставить результат для будущего использования.
Примеры создания Completer объектов:
final stringCompleter = Completer<String>();
final voidCompleter = Completer<void>();
final dynamicCompleter = Completer();
final nullableStringCompleter = Completer<String?>();
Completer используется для представления значения будущему объекту и для запуска всех ожидающих обратных вызовов. Вы можете завершить Completer, как показано ниже:
stringCompleter.complete('foo');
Или, если вы хотите получить результат из функции обратного вызова, вы можете использовать его future свойство:
final valueFuture = stringCompleter.future;
final value = await valueFuture;
Также, Completer предоставляет метод isCompleted, который позволяет вам узнать, завершился ли Completer:
final isCompleted = stringCompleter.isCompleted;
Рассмотрим работу и использование Completer на двух примерах.
Нам нужно получить значения переменной из функции обратного вызова.
См. скриншот 1: мы имитируем асинхронную операцию и желанием получить значение переменной time, но как нам это сделать вне функции?
См. скриншот 2: на помощь приходит Completer, благодаря которому мы можем получить значение переменной вне зоны видимости функции обратного вызова после завершения асинхронной операции:
final valueFuture = stringCompleter.future;
final value = await valueFuture;
Если вам доводилось разрабатывать клиент-серверные приложения, то вы, скорее всего, сталкивались с проблемой отправки нескольких запросов. Например, при авторизации в системе пользователю требуется заполнить поля логина и пароля, затем отправить запрос на сервер тапом на кнопку «Войти». Но что, если пользователь нажмёт на неё более 1 раза? В данном случае на сервер пойдут конкурентные запросы, что не является хорошей практикой.
См. скриншот 3: эту проблему можно решить как на стороне Flutter, используя Debouncer, но это также решает Completer с помощью вышеупомянутого. Мы дополним пример выше и имитируем несколько нажатий пользователем с помощью цикла for. Добавив условие управления Future, в котором мы проверяем закончил ли Completer свою работу, мы выходим из цикла и получаем нужное нам значение единожды.
Таким образом, Completer можно использовать как своеобразную защиту от дублирующих запросов на сервер или создания пользователем дублирующих асинхронных операций.
Успешной вам разработки! Отправляйте реакцию, если было полезно😉
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20👍10❤6
Камера и Flutter
Hola, Amigos! На связи Александр Чаплыгин, Flutter-dev в Amiga. Недавно я выступал на конференции для разработчиков DevFest в Омске с докладом «Камера и Flutter». Решил поделиться с вами впечатлениями о своем первом выступлении и для тех, кого не было на конференции, рассказать про проект, в котором использовалась библиотека Google ML Kit Barcode Scanning.
Переходите по ссылке, там все подробности⬆️ Обязательно дайте знать в комментариях, понравилась ли вам статья!
Hola, Amigos! На связи Александр Чаплыгин, Flutter-dev в Amiga. Недавно я выступал на конференции для разработчиков DevFest в Омске с докладом «Камера и Flutter». Решил поделиться с вами впечатлениями о своем первом выступлении и для тех, кого не было на конференции, рассказать про проект, в котором использовалась библиотека Google ML Kit Barcode Scanning.
Переходите по ссылке, там все подробности
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥5❤1🥱1