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

Dart *

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

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

Пути внедрения поддержки скриптов в Dart/Flutter

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

А что, если я скажу вам, что есть ряд способов изменения бизнес-логики мобильных приложений без проверки сторами?

«Бред!»- ответят скептики. «Выкладывай!» - ответят энтузиасты.

В рамках данной статьи я предлагаю вам рассмотреть возможные пути для интеграции функционала выполнения скриптов в ваши Dart/Flutter приложения.

Читать далее

Практическая реализация паттерна Server-Driven UI на Flutter c использованием фреймворка Duit

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

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

В рамках этой статьи мы попытаемся решить эти проблемы, взяв за основу один из популярных паттернов и создав демонстрационное Flutter приложение на базе Server-Driven UI фреймворка Duit.

Читать далее

Why Flutter? Почему Flutter?

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

Почему Flutter должен быть выбран в качестве фреймворка для вашего следующего проекта?

Разбираем популярные высказывания о несостоятельности Flutter как технологии и доказываем обратное.

Выбрать Flutter

Как я стал Google Developer Expert по Flutter

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

У Google есть программа для экспертов в их технологиях. Чтобы попасть в неё, нужно выступать, писать, обучать, менторить или делать open-source в технологиях Google. Программа называется “Google Developer Experts”, и это самое привилегированное сообщество разработчиков, о котором я знаю.

Читать далее

Flutter 3.16: обзор обновления фреймворка с комментариями разработчиков Surf

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

Привет, на связи команда Flutter-разработчиков Surf. Мы регулярно делимся с сообществом последними новостями о Dart и Flutter, и этот случай — не исключение. Предлагаем перевод официального материала о большом обновлении Flutter 3.16. Дополнили его своими комментариями.

Читать далее

Subject объекты в RxDart и чем они полезны Flutter-разработчику

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

Dart в совокупности с пакетом Async обладает неплохим функционалом в части работы со стримами. Однако ограничения всё ещё есть. Чтобы сделать стримы более удобными, используется пакет RxDart.

Меня зовут Виталий, я Flutter Team Lead в Surf. Это первая статья в цикле публикаций на тему RxDart.

Читать далее

Управляем навигацией во Flutter с помощью библиотеки auto_route. Часть 1

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

Привет, Хабр! Меня зовут Юрий Петров, я Flutter Team Lead в Friflex и автор ютуб-канала «Юрий Петров | Всё об IT». Мы разрабатываем мобильные приложения для бизнеса и специализируемся на Flutter. В этой статье хочу рассказать про библиотеку auto_route, с помощью которой можно управлять навигацией во Flutter.

Читать далее

Модификаторы классов в Dart 3.0

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

Hola Amigos! На связи Тимур Моисеев, руководитель мобильной разработки Amiga. Я кандидат технических наук, в IT уже более 20 лет, а последние 4 года создаю мобильные приложения на Flutter.

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

Читать далее

Flutter-разработчикам: показываем, как шарить код через DartPad

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

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

Меня зовут Ахмедов Самир, я Flutter разработчик в Surf, и я расскажу о том, что же ещё умеет DartPad.

Читать далее

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

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

Команда Flutter-разработчиков Mad Brains продолжает рассказывать про паттерны проектирования на Dart. Использование паттернов проектирования помогает разработчикам создавать более масштабируемое и сопровождаемое ПО, а также улучшать читаемость и содержательность кода. Первую часть статьи можно прочитать тут.

Читать далее

Все о фабричном конструкторе в Dart

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

Изучив классы фреймворка, пакеты сторонних разработчиков или документацию Dart / Flutter, вы, натыкались на ключевое слово factory и задавались вопросом, что это значит.

В этой статье мы собираемся прояснить:

Значение ключевого слова

Когда вам следует его использовать

Разница между factory и порождающим конструктором

Различия между factory и static

Читать далее

SharedPreferences отличное хранилище для вашего flutter-приложения. Но есть нюансы…

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

Вы задаёте себе вопрос, какое хранилище данных выбрать для flutter-приложения? Отлично, тогда продемонстрирую, каким образом можно воспользоваться key-value решением, используя два метода set() и get() для всех типов данных*, и не разбрасываться ключами по всему коду.

Данный способ уже используется в приложении Weather Today.

Что там под звёздочкой

Новая фича в Dart — Records (записи)

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

Читать далее

Ещё о Flutter 3

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

Продолжаем обсуждать, что нового появилось в версии Flutter 3. Начало здесь.

Читать далее

Сборка мусора во Flutter

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

В РСХБ мобильную разработку мы ведём преимущественно на Flutter. В новой статье поговорим об алгоритме, который используется в любом приложении – о сборщике мусора (англ. Garbage collection). Его основной задачей, как в любом высокоуровневом языке программирования, является наблюдение за ссылками и очистка областей памяти с целью предотвращения переполнения памяти. Под катом рассказываем о том, как во Flutter работает процесс сборки “мусора” - неактивных и неиспользуемых ссылок, а также локальных и глобальных экземпляров языка Dart.

В языке Dart применяется сборщик мусора по поколениям объектов. Сборщик мусора для сборки экземпляров с коротким жизненным циклом и сборщик мусора для долгоживущих экземпляров, переживших более одного цикла сборки мусора.

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

Читать далее

Тестирование Flutter-приложений: гайд по разработке тестов на Flutter

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

Привет! Меня зовут Юрий Петров, я Flutter Team Lead в Friflex. Мы разрабатываем мобильные приложения для бизнеса и специализируемся на Flutter. В статье я расскажу про тестирование Flutter-проектов. Это гайд для новичков. Для понимания рекомендую полностью повторить процесс написания кода, который здесь демонстрируется. Готов ответить на любые вопросы по теме.

Читать далее

Актуализация данных в списках Flutter-приложения

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

Иногда в приложении необходимо отобразить список c данными. Если это простой статический список, он редко вызывает сложности. Однако создание списков, содержимое которых должно меняться, часто приводит к ошибкам, сложным для выявления и отладки.

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

Читать далее

Сервис на языке Dart: доменное имя, SSL

Время на прочтение6 мин
Количество просмотров4.3K
Оглавление
  1. 1. Введение
  2. 2. Backend
  3. 2.1. Инфраструктура.
  4. 2.2. Доменное имя. SSL (мы находимся здесь)
  5. 2.3. Серверное приложение на Дарт.
  6. ...
  7. 3. Web
  8. 3.1. Заглушка “Under construction”
  9. ...
  10. 4. Mobile
  11. ...


disclaimer (по комментариям к предыдущей статье)
  • Эта статья не является в полной мере самостоятельной и является продолжением серии Сервис на языке Дарт. Начало здесь.
  • Предмет данной статьи только то, что вынесено в заголовок: доменное имя и шифрование соединения.
  • Облаков, оркестрации, масштабирования, K8s, AWS, GKE здесь нет. Автору известно, что данный подход не является современным и модным. Более того, автор признаёт, что общается в окружении «ретроградов», многие из которых вообще считают неприемлемым передачу критических данных и сервисов за пределы контролируемого периметра.
  • Автор не может отказаться от использования Дарт на сервере в пользу других языков и технологий, поскольку сама концепция данной серии статей заключается в реализации работоспособного сервиса на языке Дарт для всех уровней приложения: сервера, веб и мобильных клиентов.
  • Список подлежащих рассмотрению в ходе реализации приложений вопросов выбран автором по собственному усмотрению. Список может быть расширен читателем соответствующим комментарием к этой или последующим статьям. Предлагайте, попробуем сделать.
  • Список вопросов
    • Декомпозиция приложения на компоненты и слои
    • Dependency injection (кодогенерация boilerplate)
    • Генерация нативного серверного приложения
    • ORM. Генерация схемы и миграций для БД.
    • oAuth2 + JWT авторизация. Изолированный сервер авторизации.
    • Deeplinks (Universal links/ App links). Бесшовная интеграция web/app
    • Маршрутизация в приложениях
    • Взаимодействие реального времени (websockets)
    • Адаптивная верстка flutter



Доменное имя


В прошлый раз мы закончили на том, что в докер контейнере запустили веб-сервер NGINX, раздающий статический файл index.html. В этот раз мы расширим функциональность веб-сервера, добавив шифрование данных и принудительную переадресацию с http на https.


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