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

Dart *

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

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

Оптимизация архитектуры: делим крупные классы с помощью миксинов

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

Всем привет! Это статья для тех, кто интересуется таким фреймворком, как Flutter. А написал ее я, Николай Омётов, руководитель Flutter разработки IT-компании Mad Brains. Сегодня обсудим, как делить большой файл класса с помощью миксинов. 

Для начала давайте разберемся, зачем вообще делить большой файл класса?

Причин несколько: во-первых, чтобы было удобно читать и рефакторить код. Во-вторых, чтобы уменьшить количество конфликтов при merge и разделении истории git в конкретном файле. Согласитесь, отследить историю изменений в разных маленьких файлах удобнее и быстрее, чем в одном большом, с разнообразием изменений. 

Читать далее
Всего голосов 2: ↑2 и ↓0+3
Комментарии1

Новости

Пробуем Flutter в Telegram Mini Apps: Насколько хорошее решение для разработки?

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

Привет, Хабр!

Меня зовут Богдан, и я Flutter-разработчик, работающий в аутсорсе. В этой статье на моем примере я расскажу о создании веб-приложения на Flutter для Telegram Mini Apps. Хотите узнать, насколько применим Flutter в вебе, как разработать и запустить свое приложение в Telegram? Тогда нажимай "Читать далее"!

Читать далее
Всего голосов 7: ↑6 и ↓1+5
Комментарии0

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

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

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

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

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

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии2

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

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

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

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

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

Эта статья:

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

Читать далее
Всего голосов 8: ↑6 и ↓2+8
Комментарии0

Истории

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

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

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

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

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

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

Читать далее
Всего голосов 15: ↑15 и ↓0+20
Комментарии12

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

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

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

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

Читать далее
Всего голосов 6: ↑6 и ↓0+8
Комментарии0

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

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

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

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

Читать далее
Всего голосов 3: ↑1 и ↓2-1
Комментарии0

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

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

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

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

Читать далее
Всего голосов 5: ↑5 и ↓0+7
Комментарии1

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

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

Привет, Habr!

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

Читать далее
Всего голосов 8: ↑8 и ↓0+10
Комментарии0

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

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

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

Читать далее
Всего голосов 10: ↑9 и ↓1+12
Комментарии3

ООП в Dart

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

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

Okaaaay let's go!
Всего голосов 8: ↑5 и ↓3+4
Комментарии4

Анализ InheritedWidget'а в Flutter

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

Service Locator — зло. InheritedWidget — это сервис локатор с ограничениями.
В этой статье разберемся, как решают эти ограничения проблемы сервис локатора, и решают ли...

Читать далее
Всего голосов 4: ↑4 и ↓0+8
Комментарии16

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

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

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

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

Читать далее
Всего голосов 7: ↑7 и ↓0+9
Комментарии0

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

7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань

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

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

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

Читать дальше
Всего голосов 6: ↑5 и ↓1+8
Комментарии0

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

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

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

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

Читать дальше
Всего голосов 14: ↑13 и ↓1+16
Комментарии6

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

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

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

Читать далее
Всего голосов 3: ↑2 и ↓1+3
Комментарии5

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

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

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

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

Читать далее
Всего голосов 3: ↑3 и ↓0+5
Комментарии0

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

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

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

Нырнуть в статью
Всего голосов 20: ↑15 и ↓5+12
Комментарии10

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

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

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

Читать далее
Всего голосов 1: ↑1 и ↓0+1
Комментарии4

Flutter Web. Часть 1

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

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

Читать дальше
Всего голосов 16: ↑14 и ↓2+16
Комментарии3
1
23 ...