Как стать автором
Обновить
3
0
Денис Гладкий @Denisgladkiy

Пользователь

Отправить сообщение

Как мы создали приложение для ТСД на Flutter с интеграцией 1С и внедрили его на 200 фабриках в Китае

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров9.2K

Всем привет! Меня зовут Денис Гладкий, я руководитель отдела мобильной разработки компании ZENDEN Group. В этой статье я хочу поделиться нашим опытом создания приложения для терминала сбора данных (ТСД) на Flutter с интеграцией 1С, которое мы внедрили на фабриках в Китае.

Читать далее

Тестирование мобильных приложений на Flutter с использованием Python + Appium

Время на прочтение5 мин
Количество просмотров4.8K

Тестирование нативных мобильных приложений для Android и iOS обычно обеспечивается библиотеками UiAutomator2 и XCUITest, но сейчас, в связи с появлением мобильных приложений, разработанных с использованием Flutter Framework, использовать их для тестирования становится затруднительно, поскольку семантическая информация, публикуемая Flutter, в большинстве случаев недостаточна для однозначной идентификации виджетов и взаимодействия с ними. В этой статье мы рассмотрим возможности драйвера appium-flutter-driver для тестирования flutter-приложений, разберемся с использованием виджетов описания семантики и разработаем несложные тесты на Python с использованием Appium.

Читать далее

Кодогенерация в Dart. Часть 2. Аннотации, source_gen и build_runner

Время на прочтение7 мин
Количество просмотров9.4K

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


Читать дальше →

Flutter: рисуем текст вдоль окружности

Время на прочтение5 мин
Количество просмотров7.9K

Понадобилось мне тут на днях в одном мини-проекте (проект, можно сказать, экспериментальный, сделан на Flutter Web) реализовать такого вида штуку:


Читать дальше →

Flutter BloC паттерн + Provider + тесты + запоминаем состояние

Время на прочтение5 мин
Количество просмотров35K

Эта статья выросла из публикации “BLoC паттерн на простом примере” где мы разобрались, что это за паттерн и как его применить в классическом простом примере счетчика.


По комментам и для своего лучшего понимания я решил попробовать написать приложение в котором будут получены ответы на вопросы:


  1. Как передавать состояние класса в котором находится BloC по всему приложению
  2. Как написать тесты для этого паттерна
  3. (дополнительный вопрос) Как сохранить состояние данных между запусками приложения оставаясь в рамках BLoC паттерна

Ниже анимашка получившегося примера, а под катом разбор полетов :)


И ещё в конце статьи интересная задачка — как модифицировать приложение для применения Debounce оператора из ReactiveX паттерна (если точнее, то reactiveX — расширение Observer pattern)


Читать дальше →

Тап в статус бар. Делаем простое сложно c помощью Flutter

Время на прочтение9 мин
Количество просмотров6.6K

В iOS есть такая фича - scrolls to top.

Посмотрим, может ли Flutter предоставить нам такую функциональность из коробки?

Читать далее

Flutter ListView и ScrollPhysics: Детальный взгляд

Время на прочтение4 мин
Количество просмотров16K

Некоторое время назад я написал статью об основах использования ListView и GridView во Flutter. Эта статья предназначена для более детального изучения класса ListView, ScrollPhysics, а также  параметров конфигурирования и оптимизаций для общего виджета.

ListView во Flutter представляет собой линейный список прокручиваемых элементов. Мы можем использовать его для создания прокручиваемого списка или списка повторяющихся элементов.

Подробное изучение виджета ListView

Flutter под капотом: Owners

Время на прочтение7 мин
Количество просмотров8.7K
Всем привет! Меня зовут Михаил Зотьев, я Flutter-разработчик и тимлид в Surf.

Продолжаю серию материалов о внутреннем устройстве работы Flutter:

  1. Flutter под капотом
  2. Flutter под капотом: Binding
  3. Flutter под капотом: Owners > Вы находитесь здесь

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

Если вам больше нравится видеоформат, то совсем скоро вы сможете посмотреть на эту тему мой доклад, с которым я выступил на DartUp 2020. Он объединяет и обобщает материал всех трёх статей вместе. Ссылка на доклад.


Читать дальше →

Правила компоновки во Flutter, которые должен знать каждый

Время на прочтение14 мин
Количество просмотров81K


Когда новичок во Flutter спрашивает, почему какой-то виджет с width: 100 не ширины 100 пикселей, обычно ему отвечают, что надо обернуть этот виджет в Center, верно?


Не надо так делать


Если так отвечать, то к вам будут возвращаться снова и снова, спрашивая, почему какой-то FittedBox не работает, почему этот Column переполнен или как работает IntrinsicWidth.


Сначала объясните, что Flutter компоновка очень отличается от HTML компоновки (особенно, если говорите с веб-разработчиком), а затем скажите, что необходимо запомнить следующее правило:


Ограничения для виджетов объявляются в родителях. Размеры (желаемые) задаются в самом виджете. Позиция виджета на экране устанавливается родителем

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

Flutter + чистая архитектура: разбираем на примере

Время на прочтение17 мин
Количество просмотров78K

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

Чистая архитектура - это концепция построения архитектуры систем, предложенная Робертом Мартином - в миру "дядюшка Боб". Концепция предполагает построение приложения в виде набора независимых слоёв, что облегчает тестирование, уменьшает связность и делает приложение более простым для понимания.

Flutter - стремительно набирающий популярность фреймворк для разработки кроссплатформенных приложений. В списке поддерживаемых платформ - iOS, Android, web, в бете находится поддержка десктопа.

Под катом - рассказ о том, как построить flutter-приложение с использованием идей чистой архитектуры.

Читать далее

Flutter: PlatformView + QR code reader

Время на прочтение8 мин
Количество просмотров4.7K

Из бесплатных доступных библиотек для работы с qr кодами в Android самой лучшей (на мой личный взгляд) является zxing-android-embedded. Часто, UI который предоставляет эта библиотека не достаточно или нужен какой-то иной. В этой статье пойдет речь о том, как «кастомизировать» UI библиотеки zxing-android-embedded для распознавания QR кодов при использовать её Flutter проекте.

Представленная статья и код вместе с ней, всего лишь минимальный достаточный пример для демонстрации возможностей «кастомизации» zxing-android для работы с ней во flutter. Статья затрагивает только Android реализацию не касаясь IOS.

Мы будем использовать три основных компонента для взаимодействия с этой библиотекой из flutter окружения. Для этого нам потребуется:

Читать далее

Тестирование Flutter-приложений: гайд по разработке тестов на Flutter

Время на прочтение12 мин
Количество просмотров16K

Привет! Меня зовут Юрий Петров, я Flutter Team Lead в Friflex. Мы разрабатываем мобильные приложения для бизнеса и специализируемся на Flutter. В статье я расскажу про тестирование Flutter-проектов. Это гайд для новичков. Для понимания рекомендую полностью повторить процесс написания кода, который здесь демонстрируется. Готов ответить на любые вопросы по теме.

Читать далее

Актуализация данных в списках Flutter-приложения

Время на прочтение36 мин
Количество просмотров9.1K

Иногда в приложении необходимо отобразить список c данными. Если это простой статический список, он редко вызывает сложности. Однако создание списков, содержимое которых должно меняться, часто приводит к ошибкам, сложным для выявления и отладки.

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

Читать далее

Углубленный анализ тестирования виджетов во Flutter. Часть II. Классы Finder и WidgetTester

Время на прочтение10 мин
Количество просмотров3.3K

Это продолжение первой части статьи о тестировании виджетов во Flutter.

Продолжим наше изучение процесса тестирования виджетов. 

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

Читать далее

Как работает Flutter

Время на прочтение18 мин
Количество просмотров64K


Как Flutter работает на самом деле?


Что такое Widgets, Elements, BuildContext, RenderOject, Bindings?..


Сложность: Новичок


Вступление


В прошлом году (прим: в 2018), когда я начал свое путешествие в сказочный мир Flutter, в Интернете было очень мало информации по сравнению с тем, что есть сегодня. Сейчас, несмотря на то, что уже написано много материалов, лишь небольшая их часть рассказывает о том, как на самом деле работает Flutter.


Что же такое Widgets (виджеты), Elements (элементы), BuildContext? Почему Flutter быстрый? Почему иногда он работает не так, как ожидается? Что такое деревья и зачем они нужны?


В 95% случаев при написании приложения вы будете иметь дело только с виджетами, чтобы что-то отображать на экране или взаимодействовать с ним. Но неужели вы никогда не задумывались, как вся эта магия работает внутри? Как система узнает, когда обновить экран и какие части должны быть обновлены?


Содержание:


Читать дальше →

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность