Как стать автором
Обновить
3.38

Flutter *

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

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

Сериализация в JSON и иммутабельный объект. О пакете built_value для Flutter

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


Иногда JSON от API необходимо конвертировать в объект и желательно в иммутабельное значение. На Dart это возможно, но для этого необходимо много кодить для каждого из объектов. К счастью, существует пакет, который поможет Вам все это выполнить, и в этой статье я Вам расскажу об этом способе.

Наша цель:

1. Сериализация

final user = User.fromJson({"name": "Maks"});
final json = user.toJson();

2. Использование как значения

final user1 = User.fromJson({"name": "Maks"});
final user2 = User((b) => b..name='Maks');
if (user1 == user2) print('Один и тот же пользователь');

3. Иммутабельность

user.name = 'Alex'; // Неверно
final newUser = user.rebuild((b) => b..name='Alex'); // Верно

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

Flutter для React/React Native разработчика

Время на прочтение5 мин
Количество просмотров5.7K
Статья просвещена тем, кто пишет на стеке React/React Native и хочет освоить новую для себя технологию – Flutter. И нет, мы не будем тут писать приложение на этом фреймворке! Если вы ждете какой-нибудь очередной Todo List – этот материал не для вас.

image

Скорее это очередная история о том, как я перешел на новый фремйворк)

Материал не предполагает собой истину в последней инстанции. Тут описаны лишь те решения, которые я выбрал для себя, и которые мне, имея огромный бэкграунд в React & React Native разработке, было легче всего применить на реальном проекте.
Читать дальше →

Почему я ушёл с React Native и перешёл во Flutter: Часть 2

Время на прочтение23 мин
Количество просмотров8.7K
Всем привет. Меня зовут Дмитрий Андриянов. Два года я писал на React Native, сейчас работаю в Surf во Flutter отделе и уже более полутора лет пишу на Flutter.

В первой части статьи я рассказал про основные различия между React Native и Flutter.
В этой части расскажу про различия между React Native и Flutter при создании UI для Android и iOS.


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

Курс Flutter от Surf: успеть за технологиями будущего

Время на прочтение5 мин
Количество просмотров11K
Нет времени ждать, пока все поймут, что за Flutter будущее, и начнут где-то учиться. Надеяться, что кто-то сделает крутые курсы, и после них мы сможем находить разработчиков — не наш путь. Поэтому мы в Surf решили взять процесс в свои руки и сделать курс по Flutter.


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

Flutter: результаты опроса разработчиков за Q3 2020

Время на прочтение10 мин
Количество просмотров6.9K
Привет! На связи Евгений Сатуров из Surf.

Команда Google опубликовала результаты опроса Flutter-разработчиков за третий квартал 2020 года. Публикую перевод материала с моими комментариями.


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

Обновление роадмапа AngularDart

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


Недавно команда языка Dart опубликовала важный анонс про обновление роадмапа AngularDart. Мы решили перевести эту новость на русский язык и добавить свой комментарий о том, что это сообщение будет значить для Dart-сообщества.
Читать дальше →

о Redux архитектуре во Flutter приложениях

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

Не так давно вышла статья о чистой архитектуре во Flutter. Хочу осветить тему немного под другим углом и развить тему управления глобальным состоянием с помощью Redux.

Читать далее

Анонс вебинара «Flutter vs технология, на которой пишете вы: за чем будущее?»

Время на прочтение3 мин
Количество просмотров2.7K
Привет!

20 октября в 18:00 мск проводим вебинар «Flutter vs технология, на которой пишете вы: за чем будущее?»

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

Регистрация


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

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

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

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

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

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

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

Читать далее

Релиз Dart 2.10: на шаг ближе к null-safety

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

image<img src="https://habrastorage.org/webt/bx/6z/zo/bx6zzobmc1fbzqkkzocurdk7gsg.jpeg" />


Команда языка Dart постепенно приближается к одному из самых мажорных релизов — null-safety. Эта фича есть у многих лидеров рынка, включая Kotlin и TypeScript. По понятным причинам этот релиз нельзя сделать в виде рубильника: одним днём и простым апдейтом. Набравшее скорость сообщество, выпустившее огромное количество пакетов, уже не сможет перейти на мажорную версию по щелчку пальцев. Поэтому процесс этот поступательный и не такой быстрый, как хотелось бы. Тем не менее сомневаться в том, что уже довольно скоро язык станет значительно лучше и удобнее, не приходится!


Мы в Wrike не смогли обойти стороной обновление релиз Dart 2.10 и переводим статью из официального блога Dartlang.

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

Анонс Flutter 1.22

Время на прочтение18 мин
Количество просмотров8.2K
Всем привет! Я — Евгений Сатуров, Flutter TeamLead в Surf. Представляю перевод официальной статьи про свежий апдейт Flutter 1.22 — как обычно, дополненный моими комментариями.

Этот релиз — один из самых примечательных для меня за всё последнее время. Мы движемся вперёд не только за счёт появления новых виджетов, которыми уже никого не удивишь, но и благодаря серьёзным инфраструктурным изменениям, а также оперативной поддержке новых операционных систем. То ли ещё будет!

Погнали ближе знакомиться с новой версией Flutter 1.22.


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

InheritedWidget во Flutter

Время на прочтение5 мин
Количество просмотров24K
Перевод статьи подготовлен для студентов курса «Flutter Mobile Developer».





Корни деревьев виджетов во Flutter могут уходить очень глубоко…



Очень глубоко.

Компонентная природа виджетов Flutter позволяет создавать очень элегантный, модульный и гибкий дизайн приложений. Однако это также может вылиться в появление большого количества шаблонного кода для передачи контекста. Посмотрите, что происходит, когда мы хотим передать accountId и scopeId со страницы в виджет двумя уровнями ниже:
Читать дальше →

«Flutter клёвенький — у меня только такое объяснение». Обзор лучших выпусков Flutter Dev Podcast

Время на прочтение7 мин
Количество просмотров4.5K
Привет! На связи Flutter Dev Podcast и его создатель и ведущий — Евгений Сатуров. 

Вместе с коллегами из Flutter-комьюнити мы делаем подкаст про Flutter. Первый эпизод вышел 29 января 2019 года. С тех пор каждый месяц мы приглашаем коллег из мира Flutter и других сфер IT: обсуждаем новости, события, технические нюансы, даём советы из боевого опыта — в общем, смотрим на Flutter с разных ракурсов.

Как и зачем мы делаем подкаст, я подробно рассказал на vc.ru. В этой статье я сделал обзор самых интересных и популярных эпизодов Flutter Dev Podcast.


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

Ближайшие события

Используем бесплатные возможности Github Actions для CI/CD на Flutter-проекте

Время на прочтение16 мин
Количество просмотров14K
GitHub Actions — инструмент для автоматизации рутинных действий с репозиторием и подспорье при создании CI/CD для вашего проекта.

Пользователи GitHub’а ежемесячно получают по 2000 минут, чтобы выполнять GitHub Actions на инфраструктуре сервиса. Применим это бесплатное время с пользой.

Как разработчик Flutter-приложений, даю инструкцию: как c помощью GitHub Actions на каждый pull request запускать тесты и анализатор кода, билдить артефакт и деплоить его для тестирования в Firebase.


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

Flutter.dev: Continuous delivery с Flutter

Время на прочтение5 мин
Количество просмотров6.4K
Перевод статьи подготовлен в преддверии старта курса «Flutter Mobile Developer».





Следуйте лучшим практикам непрерывного развертывания (continuous delivery — CD) вместе с Flutter, чтобы ваше приложение было непременно доставлено вашим бета-тестерам и проверялось на регулярной основе без необходимости прибегать к ручным манипуляциям.
Читать дальше →

Flutter.dev: Простое управление состоянием приложения

Время на прочтение8 мин
Количество просмотров15K
Всем привет. В сентябре OTUS запускает новый курс «Flutter Mobile Developer». В преддверии старта курса мы традиционно подготовили для вас полезный перевод.




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

Мы будем использовать пакет provider. Если вы новичок во Flutter и у вас нет веских причин для выбора другого подхода (Redux, Rx, хуков и т. д.), это, вероятно, самый лучший подход для старта. Пакет provider прост в освоении и не требует большого количества кода. Он также оперирует концепциями, которые применимы во всех других подходах.
Читать дальше →

Тестирование Flutter-приложений: инструменты, преимущества, проблемы

Время на прочтение10 мин
Количество просмотров9.2K
Привет! Меня зовут Мария Лещинская, я QA-специалист в Surf. Наша компания разрабатывает нативные приложения с 2011 года, а с 2018-го мы занимаемся ещё и разработкой под Flutter.

В этом материале сравним возможности тестирования нативных и кроссплатформенных приложений. Я поделюсь впечатлениями от работы с Flutter и расскажу, какие инструменты мы в Surf используем при тестировании, чем Flutter удобен и с какими проблемами мы столкнулись.


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

Встреча с Majid Hajian, экспертом по Flutter и PWA

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


Привет!

Уже в этот четверг в рамках нашего шоу PyjamaTalks встретимся с Majid Hajian, евангелистом Flutter и PWA, автором книги «Progressive web app with Angular» и курса «Progressive Web Apps» на Udemy.

Flutter. Как прокачать ваш BLoC

Время на прочтение2 мин
Количество просмотров6.9K
Реализующих BLoC паттерн библиотек много. Но та, о которой я расскажу, необычная, и называется isolate_bloc.

Как можно понять из названия — это какой-то необычный блок, а особенность его в том, что он работает в отдельном Isolate (далее изолят) и не тормозит ваш UI.

В чем проблема обычного bloc-а?


Помимо бойлерплейта есть и еще одна проблема — он работает в главном потоке, поэтому тяжелые задачи, типо парсинга json могут привести к фризам в UI.

С первой проблемой могут помочь библиотеки по типу simple_bloc или cubit. Со второй — изолят, или обертка над ним — Compute. В принципе это действительно хорошая связка, которую используют многие, но даже она решает не все проблемы. Например, в изоляте нельзя работать с MethodChannel, и в принципе его использование сопряжено с неудобствами и бойлерплейтом.
Читать дальше →

Сервис на языке Dart: каркас серверного приложения

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


Подготовка


В прошлый раз мы закончили на том, что разместили статическую веб страницу-заглушку, разработанную с использованием Flutter для web. Страница отображает прогресс разработки нашего сервиса, однако данные о датах начала разработки и релиза пришлось захардкодить в приложении. Таким образом мы лишились возможности изменить сведения на странице. Пришло время разработать приложение — сервер данных. Схема всех приложений сервиса — в статье «Сервис на языке Dart: введение, инфраструктура бэкэнд».

В этой статье мы напишем приложение с использованием фреймворка Aqueduct, оценим его производительность и потребление ресурсов в разных режимах, напишем инструментарий для компиляции в нативное приложение для Windows и Linux, разберемся с миграциями схемы базы данных для доменных классов приложения и даже опубликуем наш инструментальный docker образ в публичный регистр DockerHub.


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