Как стать автором
Обновить
19.33
Рейтинг

Flutter *

Фреймворк для кросс-платформенной разработки

Сначала показывать
Порог рейтинга

Flutter: Ускоряем работу с помощью VS Code Tasks

Dart *Flutter *

Всем привет, читатели Habr! В этой статье я расскажу как ускорить работу и облегчить нам жизнь с помощью VS Code Tasks. Погнали!

Мы пишем не только код

Это правда, разработчики пишут  не только код. Иногда нам приходиться писать команды, чтобы выполнить определенные действия. Например, я уверен, что большинство из вас писали команду для сборки apk файла или для получения зависимостей (flutter pub get). Либо если у вас есть генерация кода, то вы выполняли команду для запуска генерации.

Надеюсь вы более продвинутый пользователь и знаете, что с помощью стрелок в консоли можно переключаться между командами. Это хорошо, однако хочется чего-то большего, а именно такого…

Читать далее
Всего голосов 15: ↑5 и ↓10 -5
Просмотры 2.2K
Комментарии 14

Новости

Автоматизированное тестирование на Flutter: нативные тесты или кроссплатформенные решения

Блог компании Surf Разработка мобильных приложений *Тестирование мобильных приложений *Flutter *

Стабильный пакет для работы с E2E и Widget-тестами был включен во Flutter-фреймворк не так давно — в начале декабря 2020 года. Разбираемся в нюансах автотестирования мобильных приложений в рамках Flutter-фреймворка: плюсы, минусы, костыли.

Читать далее
Всего голосов 5: ↑4 и ↓1 +3
Просмотры 1.1K
Комментарии 0

Flutter: Мощь DI и Injectable

Dart *Flutter *

Всем привет, читатели Habr! В этой статье я расскажу про DI (Dependency Injection) и также покажу, как я использую его на практике. Погнали!

Сначала простыми словами про DI

Недавно я скачал приложение, которое показывает сколько времени я провожу в своем смартфоне и мою зависимость от него. Что ж, в некоторые дни я проводил больше 5 часов и мне показало сильную зависимость. У меня Xiaomi Redmi Note 8.

На первый взгляд может показаться, что я завишу конкретно от моего Xiaomi. Однако это не так. Был бы у меня любой другой смартфон, результаты бы не изменились. В итоге получается, что я имею зависимость от абстракции - смартфон, а мой текущий - его конкретная реализация. Настало время переходить к практике!

Теперь к практике

Представим себе такую ситуацию, что каждую первую неделю вы должны показывать заказчику UI с моканными данными, а уже в конце спринта полностью готовую логику. Я надеюсь вы знакомы с паттерном Repository, который отвечает за получение данных, если нет - рекомендую ознакомиться. Самый простой способ решение проблемы - написать в репозитории методы, которые отдают моканные данные, а потом добавить методы для получения реальных данных (или заменить). Однако, поступая таким образом, мы нарушаем один из принципов SOLID, а именно Single Responsibility. Как быть в таком случае? Создать абстрактный класс нашего репозитория и после этого сделать 2 реализации, одна из которых отвечает за моканные данные, а другая - за реальные. И в Bloc или в любой другой класс, который отвечает за State Managment, вы инжектите абстракцию, тем самым давая возможность заменить репозиторий с моками на репозиторий для реальных данных.

Читать далее
Всего голосов 5: ↑2 и ↓3 -1
Просмотры 1.6K
Комментарии 9

Flutter: простыми словами про ассинхронность и параллельность

Dart *Flutter *
Из песочницы

Всем привет, читатели Хабра! В этой статье я хочу простыми словами рассказать про асинхронность и параллельность в Dart/Flutter. Многие новички сталкиваются с непонимаем того, что это и когда что использовать. Я сам столкнулся с этой проблемой в начале своего карьерного пути и хочу простыми словами рассказать, что это такое и когда нужно.

В начале я хочу представиться) Меня зовут Владимир Калашников, я заканчиваю последний курс кафедры искусственного интеллекта и уже больше года профессионально занимаюсь разработкой приложений на Flutter. Несмотря на свой небольшой опыт, я уже успел поработать на проекте от компании, у которой оборот денежных средства более 60 мрлд$ за 2017 год. Я думаю, мне есть, что рассказать :)

Допустим, приложение делает запрос в сеть, чтобы отобразить список продуктов. В этот момент пользователь возможно хочет переключаться между вкладками приложения. Если сделаете весь ваш код синхронным, то у него не будет такой возможности. И я гарантирую, через 5 минут в крайнем случае, приложение будет удалено. Это еще не наихудший случай, может потом прилетить негативный отзыв.

Читать далее
Всего голосов 8: ↑6 и ↓2 +4
Просмотры 3.7K
Комментарии 6

Как написать «Пятнашки» на Flutter

Блог компании SkillFactory Разработка веб-сайтов *Разработка игр *Логические игры Flutter *
Перевод
Tutorial

Возможно, вы уже читали о конкурсе Flutter Puzzle Hack и думаете о том, как проявить максимум творческих способностей. И мы вам в этом поможем, рассказав о том, как структурирована кодовая база нашего примера головоломки. Подробностями делимся к старту авторского курса по веб-разработке на Python.

Читать далее
Всего голосов 9: ↑7 и ↓2 +5
Просмотры 2.8K
Комментарии 5

Эпоха красивого кода прошла. Пришло время быдлокода

PHP *Программирование *Разработка под Android *ReactJS *Flutter *
Из песочницы

Эпоха красивого кода прошла. Пришло время быдлокода    

Давеча решил я отключить ненужные плагины в настройках Android Studio. Снял галочки напротив плагинов которые для меня не нужны, IDE не предупредила ни о каких возможных проблемах.

Перезапустил IDE, и вуаля:

"Missing essential plugins... Please reinstall from scratch."

Читать далее
Всего голосов 186: ↑130 и ↓56 +74
Просмотры 108K
Комментарии 430

Dart, Flutter и кроссплатформа: небольшой разбор на практике

Разработка мобильных приложений *Интерфейсы *Dart *Разработка под Windows *Flutter *

Кто-нибудь пробовал использовать Dart / Flutter как на клиенте на нескольких платформах, так и в качестве сервера? Кто-то, конечно. пробовал, хотя далеко не каждый за этим приходил к Flutter. Я на своём pet-проекте провёл такой эксперимент, и хотел бы поделиться результатами и выводами.

Читать далее
Всего голосов 19: ↑19 и ↓0 +19
Просмотры 9.6K
Комментарии 21

Элементарное тестирование, или тестирование Elementary

Блог компании Surf Программирование *Dart *Тестирование мобильных приложений *Flutter *
Tutorial

Elementary — архитектурный пакет для разработки приложений на Flutter: помогает чётко разделить слои согласно ответственностям и сделать код прозрачнее.

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

Читать далее
Всего голосов 8: ↑5 и ↓3 +2
Просмотры 2.2K
Комментарии 3

KMP vs Flutter vs React Native

ReactJS *Kotlin *Flutter *

Сейчас существует широкий спектр кроссплатформенных технологий, среди которых Flutter, React Native и, конечно же, Kotlin Multiplatform Mobile (KMP). Какую технологию стоит выбрать и почему именно ее? Давайте попробуем разобраться!

Читать далее
Всего голосов 12: ↑5 и ↓7 -2
Просмотры 7.6K
Комментарии 25

Пакеты Flutter, которые я использую в каждом проекте

Блог компании OTUS Программирование *Flutter *
Перевод

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

Читать далее
Всего голосов 13: ↑11 и ↓2 +9
Просмотры 7.3K
Комментарии 3

Как обрабатывать состояния загрузки и ошибки с помощью StateNotifier и AsyncValue во Flutter

Блог компании OTUS Программирование *Dart *Flutter *
Перевод

Состояния загрузки и ошибки очень часто встречаются в приложениях, работающих асинхронно.

Если мы не отобразим пользовательский интерфейс (UI) загрузки или ошибки, когда это необходимо, пользователи могут посчитать, что приложение не работает, и не определят, была ли операция, которую они пытаются выполнить, успешной.

Читать далее
Всего голосов 7: ↑6 и ↓1 +5
Просмотры 1.7K
Комментарии 0

Исследуем визуальное восприятие в головоломке

Разработка игр *Логические игры Flutter *
Из песочницы

Насколько человеческое восприятие, как умение формировать или представлять целостную картину, полагаясь лишь на силуэт или фрагмент объекта, эффективно? Почему эффективность важна, как оценить эффективность и что является параметрами эффективности в контексте восприятия?

Поскольку предмет исследования человеческое мышление - мышление образами, наиболее простым и продуктивным подходом будет формирование изолированной среды в виде логических задач на основе визуального восприятия. 

Читать далее
Всего голосов 8: ↑8 и ↓0 +8
Просмотры 2.1K
Комментарии 7

Telegram-бот на Dart + Docker + VDS

Dart *Flutter *
Перевод
Tutorial

Telegram-бот на Dart + Docker + VDS

Эта статья представляет собой реальный кейс, когда мне пришлось загружать фотографии на VDS (которые пользователь отправил боту), отправлять их в базу данных, а затем удалять их с VDS.

Читать далее
Всего голосов 8: ↑7 и ↓1 +6
Просмотры 5.7K
Комментарии 7

Кроссплатформенный путь мобильного тестировщика или как стать Flutter QA

Блог компании ATI.SU Тестирование IT-систем *Тестирование мобильных приложений *Flutter *
✏️ Технотекст 2021

Привет, Хабр! В этой статье расскажу, в чём особенности тестирования приложения на Flutter под iOS и Android и чем оно отличается от тестирования нативного приложения.

Читать далее
Всего голосов 10: ↑10 и ↓0 +10
Просмотры 8.2K
Комментарии 6

AGLoRa. Или прототип простого самодельного спутникового LoRa-трекера

Разработка под Arduino *DIY или Сделай сам Flutter *
Из песочницы

Вокруг всё чаще и чаще слышно упоминание загадочных слов LoRa. Начиная от, разумеется, Хабра, и заканчивая прайсами поставщиков различного IoT-оборудования.

Было очень любопытно самому убедиться, а правдивы ли обещания дальности работы? Попробовать это очень просто, готовые модули LoRa можно без проблем кликнуть со всем известного китайского маркетплейса. Но проверять дальность, просто мигая лампочкой на расстоянии, как-то не наглядно, так что напрашивается подключение GPS-приемника и самостоятельного подсчета расстояния. Ну и вы уже поняли, что в этом месте запахло прототипом спутникового трекера, передающим данные не по GSM-каналу, как обычно, а по радиоканалу LoRa...

Читать далее
Всего голосов 22: ↑22 и ↓0 +22
Просмотры 7.3K
Комментарии 16

DartUP 2021: как это было

Блог компании Wrike Dart *Конференции Flutter *

В этом году DartUP уже во второй раз прошел в онлайне, и это было круто! Мы снова слушали два потока докладов на русском и английском, неформально общались и участвовали в дискуссиях в SpatialChat, сражались и решали алгоритмические задачи в Code Kombat и обгоняли соперников в Wrike for Speed. В этой статье подводим итоги конференции и делимся видеозаписями всех докладов.

Читать далее
Всего голосов 12: ↑11 и ↓1 +10
Просмотры 1.6K
Комментарии 3

Разработка приложения на Flutter с нуля до релиза: Part 2

Open source *Разработка мобильных приложений *Dart *Flutter *
Tutorial

Привет! Это вторая статья из цикла о разработке приложения на Flutter. В этом "номере" я опишу создание сетевого слоя, работу с локализацией, удобный способ работы с ассетами, локальный поиск и создание UI для одного из двух экранов приложения. Также я выведу интересные метрики, например - сколько данных сможет распарсить ваше приложение за одну милисекунду и начиная с какого размера JSON’а, прилетевшего с бэка UI начнет тормозить. Как говорится - с места...

В карьер!
Всего голосов 9: ↑9 и ↓0 +9
Просмотры 6.4K
Комментарии 7

Секреты запуска Flutter в production. Создаем IT-верфи

Блог компании ATI.SU Программирование *Разработка мобильных приложений *Dart *Flutter *
Tutorial


Про нас


Привет! Мы Даниил Левицкий и Дмитрий Дронов, мобильные разработчики компании ATI.SU — крупнейшей в России и СНГ Бирже грузоперевозок. Хотим поделиться с вами своим видением разработки приложений на Flutter.


У нас несколько команд мобильной разработки, и раньше мы писали только нативные приложения. Но мир не стоит на месте, и мы решили попробовать кроссплатформенную разработку. В качестве технологии мы выбрали Flutter. У нас, как у разработчиков, был небольшой опыт в этой технологии. Но при разработке крупного решения для бизнеса с прицелом на длительную поддержку стали появляться сложности, требующие выработки решений и стандартизации. Решения мы скомпоновали в шаблон-пример, который будет использоваться в дальнейшем для всех новых Flutter-проектов в рамках нашей компании.


Ссылка на шаблон и детали реализации под катом.

Читать дальше →
Всего голосов 16: ↑16 и ↓0 +16
Просмотры 7.5K
Комментарии 21

Как устроен Elementary

Блог компании Surf Программирование *Разработка мобильных приложений *Dart *Flutter *

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

Мы в Surf постоянно сталкиваемся с необходимостью решать эти проблемы при разработке мобильных приложений, в том числе и на Flutter. Опыт, который мы получили за долгое время, отразился на наших подходах и лёг в основу библиотеки Elementary, автором которой я являюсь.

В статье расскажу, как устроен Elementary, какие принципы в нём заложены и чем вообще он может быть полезен.

Читать далее
Всего голосов 8: ↑7 и ↓1 +6
Просмотры 5.1K
Комментарии 6

Как я научился не волноваться и полюбил управление состояниями Flutter. MVI и Clean Code в комплекте

Разработка под Android *Flutter *
Tutorial

Цель статьи — показать, как сделать ваш проект на Flutter более понятным для усовершенствования и удобным в сопровождении. Текст может быть полезным как для тех, кто только начинает изучать Flutter, так и более продвинутых пользователей, так как здесь мы рассмотрим актуальные подходы к разработке.

Если вы читали мою прошлую статью, или позапрошлую, то, наверное, уже знаете что я nerd vulgaris увлекаюсь программированием всякого. В комментариях к одной из прошлых статей было высказана идея провести параллель между приложением на Flutter и нативным приложения для Android на Kotlin c использованием view model, live data, view binding и найти аналоги привычным по Kotlin языковым средствам.

Читать далее
Всего голосов 6: ↑6 и ↓0 +6
Просмотры 5.5K
Комментарии 5