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

Dart *

Язык программирования, созданный Google

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

Мама, я хакер: пробуем вскрыть приложение на Flutter

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

RFC 1983

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

Читать далее

Как мы сделали миграцию пользовательских данных с нативного приложения на Flutter

Время на прочтение6 мин
Количество просмотров4.6K
Всем привет! Меня зовут Дмитрий Андриянов, я Flutter-разработчик в Surf.

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


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

DartUP 2020: итоги и видеозаписи докладов

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


Вот и отгремел DartUP 2020! Два дня мы слушали доклады про Dart и Flutter, играли в Code Kombat и Bugz Arena и общались с участниками и спикерами в SpatialChat. Получилось ничуть не менее атмосферно, чем в офлайне. В этой статье мы подведем итоги конференции и поделимся с вами видеозаписями докладов на русском и английском.

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

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

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

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

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

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


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

Истории

Когда твой код стал общим: история от дебюта до эндшпиля

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


«Отстаньте от меня, пожалуйста, я — творец! Дайте мне творить!», — программист Геннадий уже третий раз за вечер проговаривает эту мантру у себя в голове. Тем не менее пока что он не написал ни одной строчки кода, потому что в библиотеку, которую пытается развивать, прилетел еще один пулл-реквест. А, согласно политике компании, ревью кода должно проходить с минимальными задержками. Теперь Геннадий думает, как поступить: не глядя принять изменения, так же не глядя их отклонить или все-таки потратить драгоценное время, чтобы разобраться в их сути. Ведь кто, кроме него? Он этот код написал, он за ним и будет следить. А все изменения возможны только через его персональное согласие, ведь это Библиотека Судного Дня. 
Читать дальше →

Онлайн-конференция DartUP 2020: так же лампово, как в офлайне. Отчёт о событии глазами Surf

Время на прочтение5 мин
Количество просмотров1.1K
В этом году конференция DartUP впервые прошла онлайн. Она собрала более 450 разработчиков из разных компаний: Google, Yandex, Wrike, EPAM, Meduza и других. Ребята из Surf тоже выступили со своими докладами. Рассказываем, какие темы поднимали наши разработчики и чем запомнился DartUP в этом году.


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

Ловец идей, почти хакатон, или как быстро прокачать команду в Dart/Flutter

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

Итак, дано: команда разработки чуть больше 50 человек. В основном занимаемся web-разработкой со всякими интеграциями, личными кабинетами и e-commerce. Однако в последнее время около 20% — это мобильная разработка. Есть еще отдельная компактная команда, пишущая на Dart/Flutter.

Задача: подготовить как можно больше программистов из основной команды к задачам мобильной разработки.

Основной мобильный стек, который мы использовали раньше — React.Native и Flutter. Нам важна портабельность, это покупают. Обе платформы показали себя достойно для разработки бизнес-приложений. Есть известные ограничения и нарекания разработчиков, но это тема отдельной статьи («Есть всего два типа языков программирования: те, на которые люди всё время ругаются, и те, которые никто не использует» Bjarne Stroustrup).
Читать дальше →

Объявление о бета-тестировании null-safety Dart. Начало процесса миграции пакетов в надежное и безопасное состояние

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


Безусловно, null-safety — важный шаг в развитии языка. Команда Dart анонсировала бета-релиз версии с null-safety! Мы перевели на русский новость об этом релизе, в котором вы узнаете, как мигрировать на новые версии, какие преимущества получите, и в чем польза null-safety для всех нас.

DartUP 2020: архитектура Dart VM, non-nullability в действии и Flutter для бизнеса

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


Уже 4 и 5 декабря пройдет DartUP — конференция по Dart и Flutter на русском и английском языках. Обычно в это время мы смотрим площадку, печатаем стикеры и запасаем в офисе коробки со свежеприготовленным Dart-пивом. Но в этом году все будет по-другому. Под катом рассказываем про темы докладов, спикеров и онлайн-активности, которые нас ждут на DartUP 2020.
Читать дальше →

Surf на DartUP 2020: проводим код-ревью и собираем идеи для Open Source

Время на прочтение2 мин
Количество просмотров874
4 — 5 декабря пройдёт единственная в России конференция о Flutter и Dart на русском языке — DartUp 2020. Это главное Flutter-событие года. Вас ждут доклады известных российских и мировых спикеров, которые расскажут об экосистеме Dart и дадут практические советы и лайфхаки, а также партнёрские мероприятия.

Мы в Surf тоже участвуем в DartUp в качестве партнёров и подготовили несколько движух. Участвуйте в них, чтобы прокачать себя и сделать мир Flutter-разработки лучше — вот так, без регистрации (почти) и смс.

Что будет? Рассказываем.


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

Flutter. Слушатель клавиатуры без платформенного кода

Время на прочтение8 мин
Количество просмотров7K
Всем привет! Меня зовут Дмитрий Андриянов, я Flutter-разработчик в Surf.

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


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

Фоторамка на Flutter своими руками

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

Привет! Меня зовут Игорь, я работаю Frontend-директором в компании Wrike. В этой статье хочу поделиться историей создания моего пет-проекта и рассказать, как я сделал электронную фоторамку и написал для нее софт на Flutter, столкнувшись по пути со всеми возможными сложностями.

Читать далее

Подборка полезной информации для начинающих во Flutter

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


Всем привет!

Я создатель канала Flutter For Dev и в данном посте я хотел бы помочь тем людям, которые часто задают вопросы подобного типа: «Привет, я новичок в Flutter, что посоветуете почитать?», «А какие курсы по Flutter лучше пройти и какие из них бесплатные?». На все эти вопросы я постараюсь ответить максимально подробным списком информации.
Читать дальше →

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

25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань
20 – 22 июня
Летняя айти-тусовка Summer Merge
Ульяновская область

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

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


Иногда 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'); // Верно

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

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

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


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

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

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

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

Читать далее

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

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

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


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

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

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

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


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