Все потоки
Поиск
Написать публикацию
Обновить
4.71

Dart *

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

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

gRPC + Dart, Сервис + Клиент, напишем? Часть 4: подключаем мобильное Flutter приложение

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

В этой части мы сделаем рефакторинг проекта и подключим клиентское мобильное Flutter приложение к сервису Umka.

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

Читать далее

Реализуем чистую архитектуру на Flutter с cubit

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

Соблюдать принципы чистой архитектуры – значит обеспечить удобство тестирования, поддержки и модернизации приложения. Понимание архитектуры и state management – это база, необходимая начинающему специалисту для успешной командной работы. В этой статье мы расскажем, как с помощью Cubit реализовать чистую архитектуру на примере стартового приложения Flutter – счетчика нажатий на кнопку. 

Читать далее

Dart Code Metrics 4.0: команды, поддержка монорепозиториев и новые правила

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

В предыдущей статье мы анонсировали Dart Code Metrics — инструмент статического анализа кода. Сегодня я расскажу про новые возможности, которые появились в Dart Code Metrics с выходом очередного мажорного обновления. Поговорим про появление команд, поддержку монорепозиториев, улучшения в интеграции с CI/CD, и, конечно же, про новые правила для анализатора. Теперь у инструмента появился сайт с документацией, его можно найти здесь.

Читать далее

Flutter: открытие виджетов ключами

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

Всем привет! Мы продолжаем делиться полезными советами для мобильных разработчиков. С разрешения автора переводим свежий гайд по ключам Flutter, который может быть интересен как начинающим, так и опытным специалистам.

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

А вы задумывались, когда нужно использовать ключ и что происходит “под капотом”? В этом руководстве мы найдем ответ, создав простое приложение для управления списком задач и отображения заголовков новостей. Вы узнаете:

- Какие бывают ключи и как они работают.

- Когда использовать ключ.

- Как работать с разными типами ключей

Читать далее

GetX for Flutter. Dependency Injection для частных случаев

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

GetX удобен. Действительно удобен, лаконичен, функционален, выразителен. Но порою его функционала не хватает.  В частности, речь об инжектировании контроллеров -Get.put/lazyPut/create/find - вот это все. Данная схема отлично работает в контексте навигации между страницами. Но не работает, например, в страницах PageView, или же при конструировании Get.bottomSheet. Ниже предлагается решение для этих случаев.

Читать далее

Инструкция: как написать собственный GitHub Action на Dart

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

Привет! Меня зовут Дмитрий Круцких, я Flutter-тимлид в компании Surf. Сегодня расскажу, как написать простейший GitHub Action, используя язык программирования Dart. 

Читать далее

Как перестать писать код для взаимодействия с бэкендом

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

Привет! Начну с главного - я лентяй. Я очень-очень ленивый разработчик. Мне приходится писать много кода - как для бэка, так и для фронта. И моя лень постоянно терзает меня, говоря: Ты мог бы не писать этот код, а ты пишешь... Так и живем.

Но что делать? Как можно избавиться от необходимости писать хотя бы часть кода?

Есть много подходов к решению этой проблемы. Давайте посмотрим на некоторые из них.

Ну давайте

gRPC + Dart, Сервис + Клиент, напишем? Часть 3

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

Привет, я Андрей, работаю Flutter разработчиком в компании Финам.

Продолжим развивать сервис Umka.

На примере реализации кода для проведения "экзамена" мы познакомимся с возможностью технологии gRPC передавать данные в виде потока от клиентского приложения на сервис.

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

Для этого используем возможность gRPC осуществлять двунаправленную потоковую передачу данных от сервиса к клиентскому приложению и обратно в рамках одного HTTP/2 соединения.

Читать далее

Книга по Dart 2.12

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

Всем добрый день!

Вот и добрались руки до первого поста на Хабре спустя довольно продолжительное количество времени. Согласно высказыванию - мужчина должен построить дом, вырастить сына и посадить дерево, а что же должен преподаватель? Да черт его знает! Но более чем уверен, что там будет пунктик про написание книги. А если эта книга еще и в свободном доступе...

Читать далее

gRPC + Dart, Сервис + Клиент, напишем? Часть 2

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

gRPC + Dart, Сервис + Клиент, напишем? Часть 2.

Первая часть находится здесь

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

Читать далее

gRPC + Dart, Сервис + Клиент, напишем

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

Привет! Меня зовут Андрей. Занимаюсь разработкой Flutter приложений.

Написание материала вызвано желанием показать пример создания сервиса c использованием технологии gRPC в экосистеме Dart и, соответственно, Flutter. Желание периодически возникает, когда приходится испытывать "боль", при переключении на проекты, в которых до сих пор применяется REST + JSON.

Это будет короткая серия из 3-4 статей.

Читать далее

И грянул гром: эскалации, проблемы с производительностью и как мы это решали

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

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

Читать далее

Вызов кода Go из Dart с использованием cgo и Dart FFI на простом примере

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

Ключевой мотивацией для написания данной статьи является факт сильного недостатка информации (особенно в русскоязычном сообществе) по использованию cgo и Dart FFI для использования Go из языка Dart.

Язык Dart, не смотря на свою возрастающую популярность, на данный момент до сих пор не имеет такого же большого сообщества, как у языка Go. Более того, Dart заточен под выполнение других задач, по этому он не реализует всего того функционала, который уже написан на языке Go.

В случае если можно можно избежать экспорта go кода в Dart, то лучше воспользоваться такой возможностью, однако могут возникать случаи, когда использование уже написанного на go кода - является оптимальным решением (например вы уже знакомы с Go и Dart, и не хотите писать код на C, в таком случае есть смысл задуматься об использованием cgo и Dart FFI).

В данной статье на простом примере будет показано как можно повторно использовать код написанный на Go в языке Dart (например в приложениях на Flutter).

Что должно быть установлено:

Читать далее

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

Flutter 2.2: что нового

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

Представляем свежий релиз Flutter 2.2, анонсированный на Google I/O. Да, оригинальная статья вышла ещё в мае, но мы считаем, что лучше поздно, чем никогда. Публикуем перевод статьи с комментариями Евгения Сатурова — ex-Flutter TeamLead Surf, а ныне — DevRel Surf.

Читать далее

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

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

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

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

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

Читать далее

Моя история реализации офлайн приложения Хабра

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

Создание своего приложения Хабра уже вошло в традицию среди хабрюзеров. Я решил не отставать и сделать своё.

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

Читать далее

Миграция мобильного приложения на Dart 2.12 (Flutter 2)

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

3 марта 2021 года разработчики Google представили Flutter 2. Что появилось в новой версии языка Dart? Как теперь быть с разработкой и поддержкой приложений, созданных с использованием Flutter предыдущих версий? И, самое главное, насколько сложно будет мигрировать на версию 2? В этой статье подробно опишем опыт миграции приложения на новую версию Flutter и проблемы, которые могут возникнуть в процессе миграции. 

Читать далее

Wrike уходит от использования языка Dart. Часть 1

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

Данной статьёй мы хотим пролить свет на технический стек Wrike: каким он был раньше и каким мы видим его в будущем. Мы расскажем о том, почему пять лет назад мы выбрали язык Dart основным для frontend-разработки нашего продукта и почему сейчас мы решили посмотреть в сторону других языков и фреймворков.

Читать далее

Как портировать SDK Flutter на ТВ-приставку для разработки и запуска приложений Android TV

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

Недавно мы успешно портировали фреймворк Flutter на ТВ-приставку c открытой программной платформой RDK. В этой статье расскажем о трудностях, с которыми пришлось столкнуться, и предложим решения для успешного запуска и повышения производительности. 

Учитывая, что программный стек RDK или Reference Design Kit сейчас активно используется для разработки OTT-приложений, голосового управления и других продвинутых функций для «видео по запросу» (VoD), мы хотели разобраться, сможет ли Flutter работать на ТВ-приставке. Оказалось, что да, но, как это обычно бывает, есть нюансы.

Далее мы по шагам распишем процесс портирования и запуска Flutter на встраиваемых Linux-платформах и разберемся, как этот SDK с открытым исходным кодом от Google чувствует себя на «железе» с ограниченными ресурсами и ARM-процессорами.

Читать далее

Повышаем качество кода с Dart Code Metrics

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

Dart Code Metrics — это инструмент статического анализа кода, который позволяет собирать метрики по коду и предоставляет дополнительные правила для анализатора. Основная задача — помогать разработчикам следить за качеством кода и улучшать его. В этой статье мы хотим поделиться возможностями инструмента с сообществом. Он помог нам в Wrike решить часть проблем на фронтенде, и, надеемся, поможет и вам.

Читать далее