Как стать автором
Поиск
Написать публикацию
Обновить
11.83

Dart *

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

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

Шеринг файлов локализации между несколькими пакетами в Flutter

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

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

Есть вариант заново настроить flutter_localizations в новом пакете и заполнять там новые переводы и переносить старые. Но это сложно и кажется неправильным.

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

Читать далее

Two-Tier Data Model архитектура: концепт и мысли

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров1.9K

Краткая цель статьи — сделать потоки данных проще, более тестируемыми и управляемыми с DTO и Runtime Model структурой.

Эта статья — набор мыслей и экспрессии опыта моего текущего видения этой проблемы, как комбинации опыта от работы над проектами и может быть, переизобретение колеса:) Но, в то же время, я хотел бы поделиться этими мыслями — и, надеюсь, вдохновить и посмотреть на структуры данных.

Концепт использует немного функционала Entities, описанных Robert C. Martin (Uncle Bob) в Clean Architecture, также Model‑Driven engineering вместе с концептом immutability.

Эта статья:

— разделена на секцию теории и применения, чтобы статью можно было понять разработчикам не знающим язык используемый в примерах (Dart).
в основном фокусируется на client‑side (frontend, app, server‑side рендеринг) разработчиках, но думаю что может быть интересна и другим разработчикам..
— для примеров используется абстрактное финансовое приложение и язык Dart.

Читать далее

Встречаем yx_scope: DI-фреймворк для работы со скоупами в открытом доступе

Уровень сложностиСредний
Время на прочтение21 мин
Количество просмотров5.4K

Для больших проектов не всегда хватает одного модуля: иногда надо пошарить какие‑нибудь классы или UI‑элементы. Так со временем проект дробится на много мелких модулей, которые так или иначе связаны разного рода зависимостями. И если за этим не следить, то рано или поздно структура проекта может стать запутанной.

Наша команда разрабатывает приложение Яндекс Про, которым пользуются водители и курьеры. Из‑за многомодульности разные команды использовали разные подходы к связыванию зависимостей — в основном это getIt, injectable и riverpod. Но у всех решений были свои недостатки. К тому же то, что в одном проекте используется несколько подходов, сильно усложняло взаимодействие команд.

Сложности подтолкнули нас к поиску собственного решения, которое удовлетворяло бы всем нашим требованиям. И теперь мы готовы поделиться им с комьюнити: наше решение — это группа библиотек yx_scope.

Расскажу, зачем нужны скоупы и как они работают, в чём преимущества нашего фреймворка и как его использовать.

Читать далее

Самые важные пакеты в экосистеме Dart и Flutter на Pub 2024

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

Компания Very Good Ventures провела исследование и опубликовала рейтинг самых важных пакетов в экосистеме Dart и Flutter. 

Рассказываем, какие пакеты вошли в топ — от независимых разработчиков, компаний и сообщества. 

Читать далее

Не пытайтесь динамически загружать код в ваше Flutter-приложение

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров3.4K

Привет, Хабр! Меня зовут Станислав Чернышев, я автор книги «Основы Dart», телеграм-канала MADTeacher и доцент кафедры прикладной информатики в Санкт-Петербургском государственном университете аэрокосмического приборостроения.

Исследуя тему плагинной архитектуры для Dart/Flutter-приложений. А точнее, проводя ритуал призыва группы изоляционных Dart-демонов при переносе опыта с предыдущих проектов в образовательный материал, наткнулся на интересную статью с обзором существующих решений и почему команда сервиса AppFlowy пока отказалась двигаться в этом направлении.

Читать далее

Что такое Home-виджеты и как их подружить с вашим приложением на Flutter

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров2.3K

Привет! Меня зовут Айдар Мавлетбаев, я Flutter-разработчик в AGIMA. С Flutter я работаю уже несколько лет. Несмотря на все преимущества, он не всегда оптимально решает задачи, которые требуют глубокой нативной интеграции. Существуют инструменты, разработанные специально под нативные платформы, но недоступные напрямую из Dart. И как правило, в таких случаях на помощь приходит PlatformChannel

Но существуют и нативные инструменты, которые интегрируются с Flutter. Например, создавать виджеты на Android можно с помощью Glance или XML, а на iOS — с WidgetKit. Эти технологии позволяют внедрять так называемые Home Widgets — элементы, с которыми можно взаимодействовать напрямую с домашнего экрана. В этой статье разберу основные инструменты, расскажу, как их внедрять и использовать во Flutter-приложениях.

Читать далее

Как Dart VM выполняет твой код?

Уровень сложностиСредний
Время на прочтение17 мин
Количество просмотров3.4K

Привет, Habr!

Очень давно хотел перевести статью Вячеслава Егорова и наконец добрался до этого. Меня зовут Алексей Зубанков, я Flutter-разработчик в ГК Gems. Оригинал статьи можно прочитать здесь, а я представляю вам первую часть описывающую принципы работы Dart VM с различных источников.

Читать далее

Как мы успешно внедрили Единую Биометрическую Систему во Flutter-приложение

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров3.7K

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

Читать далее

ООП в Dart

Уровень сложностиСредний
Время на прочтение19 мин
Количество просмотров5.1K

Йоу, юзер! Даннаястатья относится к циклу статей «База джуна на Flutter». Если ты не видел начальную ноду — ознакомиться можешь тут, а если уже видел — погнали дальше!

Okaaaay let's go!

Compute — волшебная пилюля?

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров4.4K

При разработке flutter‑приложения может возникнуть задача, в рамках которой придется выполнять какую‑то «тяжелую» операцию над большим объемом данных. Если потратить на нее больше 16 миллисекунд (или 8, если говорим о 120 fps), то пользователи могут заметить небольшое подлагивание при скролле или анимациях. Во фреймворке подготовлена удобная функция compute, которая выполнит нужную операцию в отдельном изоляте в фоновом режиме.

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

Читать далее

Ещё одна статья про макросы. Часть 2

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

Продолжаем предыдущую статью — вместе с Серёжей, Flutter Developer Surf, мы пройдём путём разработчика, который только начал изучать макросы, и разберём оставшиеся интересные (и негативные, да!) примеры.

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

Ещё одна статья про макросы. Часть 1

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

Про макросы в Dart написали уже кучу статей, в этой и следующей — минимум теории и максимум практики и рассуждений.

Вместе с Серёжей, Flutter Developer Surf, мы пройдём путём разработчика, который только начал изучать макросы, и придумаем, как упростить жизнь с помощью макросов, как формировать и проверять гипотезы, как радоваться результатам или разбираться, что пошло не так.

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

Упрощение управления формами во Flutter с помощью пакета FForm

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров1.7K

FForm — это пакет Flutter высокого уровня, предназначенный для упрощения создания и управления формами с упрощенной проверкой полей. Он предлагает два основных компонента: FFormField и FFormBuilder, которые вместе обеспечивают простоту и гибкость обработки форм в приложениях Flutter.

Читать далее

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

Flutter Hot Reload: Что под капотом?

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров2.5K

Привет, Хабр! Меня зовут Станислав Чернышев, я автор книги «Основы Dart», телеграм-канала MADTeacher и доцент кафедры прикладной информатики в Санкт-Петербургском государственном университете аэрокосмического приборостроения.

В этот раз сделал перевод статьи с Medium, в которой пошагово рассматривается процесс горячей перезагрузки в Flutter - "Flutter Reload: What’s Under the Hood". Его лучше всего отнести к разряду вольных, т.е. он не дословный и отбрасывает некоторый авторский текст, сокращая и преобразуя его в тех местах, где это не критично для смысла.

Читать далее

База джуна на Flutter

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

Йоу, юзер! Данная статья будет являться вводной в серию статей о том, какой базой должен обладать разработчик для первой коммерции на Flutter. Интересно? Тогда ныряй в статью!

Нырнуть в статью

Как понятия Patterns и Records в языке Dart упрощают жизнь разработчикам

Уровень сложностиСложный
Время на прочтение11 мин
Количество просмотров1.4K

В языке Dart 3 версии появились новые понятия Patterns и Records, которые позволяют упростить написание типовых конструкций кода, чем улучшить его читаемость и сделать красивее. В рамках этой статьи мы познакомимся с этими нововведениями и рассмотрим типовое применение этих понятий на реальных примерах.

Читать далее

Flutter Web. Часть 1

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

Как работает Flutter Web, и есть ли особенности взаимодействия с платформой? Разбираемся с этим в серии статей. Эта — первая.

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

Flutter vs Kotlin Multiplatform: что выбрать

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

Мобильный разработчик Droids On Roids сравнил два кроссплатформенных фреймворка, Kotlin Multiplatform и Flutter, и рассказал, для каких проектов каждый из них подходит. 

Я, Flutter Tech в Friflex Lead Юра Петров, перевел эту статью и предлагаю сообществу обсудить особенности фреймворков.

Читать далее

Гайд: создаем функционального Telegram-бота на Dart

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров4.3K

Привет! Я Саша Омельяненко, тимлид в отделе Flutter в AGIMA. На одном из наших проектов нужно было сделать бота для Telegram. Я нашел инструкции, как создать только базового бота. Но как оформить его, добавить кнопки и повесить на них Listener, я не нашел.

Пришлось разбираться с документацией Telegram, а это занятие не из приятных. Чтобы избавить вас от этого удовольствия, я решил написать гайд по разработке функционального Telegram-бота на Dart. Мы пройдем весь процесс от регистрации бота до его развертывания на удаленном сервере. Эта инструкция будет полезна Flutter-разработчикам уровня Junior и Middle.

Читать далее

Тестирование BLoC

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

Hola, Amigos! На связи Павел Гершевич, Mobile Team Lead агентства продуктовой разработки Amiga и соавтор Flutter. Много. Недавно мы перевели для вас серию статей про модульное тестирование, но одна важная тема осталась за бортом. Сегодня познакомимся с тестированием BLoC при помощи модульных тестов.

Читать далее