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

Dart *

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

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

Ускоряем разработку за счет пакета Mason на Flutter

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

Привет, меня зовут Александр, и я Flutter-разработчик в агентстве InstaDev. В процессе работы постепенно пришло осознание того, как много времени приходится тратить на написание шаблонного кода. Вооружившись желанием оптимизировать процесс, обнаружил решение: актуальный и развиваемый пакет Mason. Что он умеет, как с ним подружиться, и каков был путь от hello world до гибкого и настраиваемого генератора – рассказываю в этой статье.

Читать далее

Зачем Clojure Flutter

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

”Если вам нравятся Руби, Свифт, Дарт, Эликсир, Эльм, С++, Питон или даже С, используйте их ради бога. Но выучите Кложур, и выучите его хорошо” — Дядя Боб (твит, а также твиты: 1, 2, 3).

Статей о Clojure написано много, цель этой — дать свое видение некоторых преимуществ языка для кросплатформенной разработки на Flutter. Ориентируюсь в первую очередь на dart-разработчиков, но статья может быть интересна всем, кто работает с Clojure и/или Flutter.

Читать далее

Телеграм-каналы о Flutter и Dart-разработке

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

Hola, Amigos!

Ресерчил интернет в поисках классных телеграм-каналов по Flutter и понял, что подробных и понятных дайджестов мало. Ну, справедливости ради, и самих каналов о Flutter не так уж и много. Поэтому я собрал все самые полезные тг-каналы о Flutter и заодно Dart. Надеюсь, будет полезно!

Читать далее

Как стать Flutter-разработчиком, или Почему кроссплатформа сейчас — это лучший выбор

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

Hola, Amigos!

На связи Александр Чаплыгин, Flutter Dev. В разработке я 3 года, сейчас работаю в компании по заказной мобильной разработке, за последний год делал проекты для частного медицинского центра, системы маркировок и нескольких стартапов. По свежим следам хочу рассказать о том, как попасть в мобильные разработчики, поделюсь личным опытом взлетов и факапов, приложу чек-лист по устранению ошибок новичка. Если вы начинающий специалист — эта статья для вас. Также полезно почитать заказчикам мобильных приложений, чтобы погрузиться во внутреннюю кухню проектов и команды.

Читать далее

Flutter Web и WebAssembly — ключ к тайной комнате

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

Web для Flutter-платформы с одной стороны является очень хорошо изученной платформой (поскольку Dart создавался как альтернатива JavaScript и изначально хорошо компилировался в JS и предусматривал возможности взаимодействия с JS-объектами и функциями, а также с DOM браузера), но в действительности и сейчас это Terra Incognita из-за большого потенциала интеграции с веб-платформой (как на уровне API HTML5, так и с использованием технологий WebAssembly). В этой статье мы обсудим некоторые аспекты взаимодействия Dart-кода с WebAssembly-модулями, поговорим о компиляции Flutter-приложений в WASM и о том, как можно компилировать C-библиотеку для использования во Flutter-приложениях.

Читать далее

Наводим мосты между Flutter и нативными библиотеками

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

Все вы знаете, что Flutter реализует несколько абстракций для передачи данных между Dart-кодом и кодом, связанным с оболочкой Flutter Engine на языке платформы (например, Kotlin для Android). Но в действительности у Dart есть еще один инструмент для взаимодействия с внешним миром и он может использоваться для добавления C/C++ библиотек и вызова функций из Dart-кода. Основную сложность представляет разные соглашения по кодированию типизованных числовых значений, строк и структур, но часть задач по преобразованию и работе с памятью выполняют библиотека dart:ffi и пакет package:ffi/ffi.dart, а некоторые из них могут быть выполнены самостоятельно. В статье мы рассмотрим общие принципы подключения внешних библиотек и кодогенерации для создания связываний dart-функции и классов и структур данных C.

Читать далее

Flutter: Настройка тем приложения

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

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

Читать далее

Расплывающаяся менюшка

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

Понадобилось мне в приложении меню которое появляется по нажатию на floating button. Начал смотреть, что там такого есть в этих ваших интернетах. Мне хотелось как в самсунге меню для стилуса. Поскольку я не придумал, как это гуглить правильно, я не нашел такого меню готового. Поэтому решил сделать его сам.

Читать далее

Всплывающие окна на флаттер карте или flutter_map_marker_popup

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

#Введение#
Понадобилась мне как-то карта во флаттер-приложении. Гугл и яндекс карты использовать не хотелось и оставалось только воспользоваться OSM. Ну и понадобилось добавить всплывающее окно при нажатии на маркер положения на карте, нашел как это делать для гугла и яндекса, а для flutter_mup не сразу нашел. Но оказалось есть плагин flutter_map_marker_popup.

Читать далее

Работа со списками во Flutter-приложениях (часть 2)

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


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


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

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

Flutter 3.3 — Что нового во Flutter

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

Оптимизация производительности, Dart 2.18, Wonderous App, улучшение виджетов Dart и Material, новый рендерер Impeller и многое другое!

Читать далее

Flutter Flame: ускоряем в 32 раза работу со столкновениями

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

Как я уже писал ранее, на FPS в Flame в основном влияют операции, производимые на CPU. Если в вашей игре достаточно много взаимодействующих объектов, то одной из самых дорогих операций будет определение столкновений. Настолько дорогой, что на экране performance-метрики она закроет собой любые другие неоптимизированные участки.

Сами авторы Flame отлично осознают, что их алгоритм – не идеальный, а просто «дающий достаточную производительность». Достаточна она, видимо, для случаев, когда у вас всего объектов 10, не более. Если же у вас что-то более сложное – тогда приятного чтения!

Читать далее

Вопрос использования ассетов в Flutter web проекте

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

В этой статье я хочу рассказать об опыте применения ассетов (assets), а именно картинок для web приложения написанного на фреймворке Flutter.

Читать далее

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

Вопрос создания виджетов

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

Дизайн приложения — это создание виджетов, нестандартных, кастомных. И на этом моменте на первых порах я оказался перед выбором: писать свои виджеты или искать что-то работающее с нужным мне функционалом в пабе.

Читать далее

Как подружить Redux и Elementary

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

Поговорим об управлении глобальным состоянием с помощью Redux. Расскажу, как наиболее продуктивно связать Elementary — архитектурный пакет для Flutter — и Redux.

Читать далее

Паттерны проектирования в Dart. Часть 3

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

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

Читать далее

CherryPick DI — di библиотека для dart/flutter проектов

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

CherryPick DI

DI-контейнер – это библиотека, которая обеспечивает функциональность механизма внедрения зависимостей.

Содержание

1. Предисловие

2. Возможности библиотеки

3. Компоненты библиотеки

- 3.1. Scope

- 3.2. Module

- 3.3. Binding

4. Пример использования

5. Заключение

1. Предисловие

Первые попытки разработать свой DI для пет проектов написанных на Flutter SDK были начаты в начале 2020 года.

Сподвигло меня на этот шаг несколько причин:

1. На тот момент я не нашел DI в pub.dev с возможностью делить контейнер на scope (возможно плохо искал)

2. Упростить работу с зависимостями в проекте

3. Желание написать собственный DI

4. Иметь в арсенале простой DI (надеюсь с простым API)

Читать далее

Паттерны проектирования в Dart. Часть 2

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

В первой части статьи мы рассмотрели основные и порождающие шаблоны и особенности их реализации на Dart. Теперь пришло время поговорить о структурных шаблонах и о их реализации с использованием синтаксических конструкций языка Dart и возможностей стандартной библиотеки. Мы будем стараться исключать возможности, предоставляемые такими сущностями языка как символы и рефлексия (пакет dart:mirrors), поскольку они не поддерживаются во Flutter (но обозначим возможные их применения при использовании Dart для бэкэнда), предпочитая использовать кодогенерацию во всех ситуациях, где это возможно.

Читать далее

Создание инициализатора Flutter-проектов. Чисто и SOLIDно

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

Pet-проект или самописный инструмент помогают решить проблемы, которые возникают в разработке. На примере инициализатора Flutter-проектов рассказываем, как следует подходить к разработке собственной «тулзы» правильно: с SOLID и чистой архитектурой.

Читать далее

Flutter jank shaders — история проблемы и пути решения

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

Меня зовут Андрей, я Flutter-разработчик в команде Центра развития финансовых технологий (ЦРФТ) Россельхозбанка. Сегодня поговорим о «jank shaders» — дёргающейся анимации при первых запусках приложений на Flutter — и о том, как можно постараться её исправить.

Несколько лет назад пользователи отметили, что при первом запуске приложений на Android и IOS наблюдаются некоторые задержки в анимации, но при последующих запусках задержки постепенно исчезают. Подобная проблема распространяется не только на пользовательские анимации, но и на базовые, такие как например переходы между экранами.

На скриншоте ниже приведен пример задержки анимации перехода между экранами при первом запуске.

Читать далее