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

Dart *

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

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

OpenStreetMap в Flutter-проекте: что такое flutter_map, как его внедрить и чем дополнить

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

Всем привет! Меня зовут Анна Ахлёстова, я Flutter-разработчик в Friflex. Ранее мы обсудили, как использовать инструменты yandex_mapkit в Flutter-проекте. В этой статье рассмотрим еще один плагин для работы с картографическими сервисами – flutter_map, изучим его возможности, преимущества перед аналогами и реализуем простой проект в качестве примера.

Если вы начнете искать удобный, адаптированный под Flutter картографический сервис, основными результатами поиска будут GoogleMaps API и Yandex Mapkit SDK.

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

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

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

Для Flutter-проектов есть еще одно решение – применять OpenStreetMap. 

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

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

Новости

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

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

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

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

Анонс Dart 3.2

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

Улучшены языковые возможности и опыт разработчиков, а также обновлена информация о веб-приложениях и Wasm

Авторы: Kevin Moore & Michael Thomsen

Сегодня мы анонсируем Dart 3.2, в котором появилась новая языковая функция для non-null продвижения приватных конечных полей, улучшен опыт разработчиков за счет новых возможностей взаимодействия, поддержка расширений в DevTools, а также обновлен дорожный план веб-разработки, включающий поддержку Wasm (aka WebAssembly).

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

Новый линт в Dart 3.2

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

Разбираем новый линт annotate_redeclares и новую конструкцию 'extension type', которая пока доступна в Dart 3.2 под экспериментальным флагом.

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

Истории

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

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

Тема Material 3 по умолчанию, предварительный просмотр Impeller для Android, расширения DevTools и многое другое. Наш Flutter Team Lead Юрий Петров делится первым переводом официального релиза от Google. Давайте посмотрим, что добавили и улучшили во фреймворке за три месяца с момента релиза Flutter 3.13

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

«Основы Dart» 2-е издание

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

Почти 2 месяца полусонных ночей и борьбы с тем, что у дочки разом решили полезть все зубы... литры выпитого кофе, слез студентов попавших на пересдачу... и самый мой главный экшн этой осени - 2-е издание книги "Основы Dart"!

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

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

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

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

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

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

Как подключиться к Flutter приложению в режиме нативного debug на ОС Аврора

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

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

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

«Разгоняем» HashSet, HashMap и циклы на примере Dart

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

Если вы занимались профилированием своего приложения, то, глядя на CPU Flame Chart, вероятно, испытывали смесь досады и азарта, глядя на особо «жирный» метод. Досады – что ваша программа всё ещё не идеальна по скорости. Азарт – от того, что вы можете докопаться до причины проблемы и отжать для процессора ещё немного свободного времени на более полезные вычисления. По крайней мере, я регулярно становлюсь жертвой обоих этих чувств, чему данная статья и обязана своим появлением.

Мой кейс – это попытка выжать из игрового движка Flame больше скорости и возможностей, чем он может «из коробки». Гейм-разработка имеет свои особенности по сравнению с «парсингом большого json» или устранением подлагивания при разовом проигрывании анимации, как минимум потому что здесь потенциально объёмные вычисления производятся абсолютно на каждом кадре. Так что, наверное, мой опыт не сильно будет перекликаться с теми проблемами, которые встречает большинство Flutter-разработчиков.

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

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

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

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

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

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

Padding vs SizedBox. Что выбрать для вёрстки отступов Column и Row

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

Здравы будьте! С вами на связи руководитель Flutter-направления Mad Brains Николай Омётов. В этой статье я проведу разбор особенностей вёрстки отступов с помощью Padding и SizedBox и расскажу, что выбрала наша команда для создания единого стиля кода.

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

Как использовать нативный платежный сервис SberPay в кроссплатформенном приложении на Flutter

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

Всем привет! Это Мурат Насиров и Артем Баркалов, мы Flutter-разработчики в Friflex. Разрабатываем высоконагруженные мобильные приложения для бизнеса и специализируемся на Flutter. В этой статье мы собрали большую часть кейсов, с которыми вы можете столкнуться при интеграции кнопки оплаты SberPay в приложении на Flutter. Это поможет вам понять механику работы СберПэй и шаги, которые необходимо сделать для передачи событий из натива во Flutter.

Использование SberPay SDK в продакшене требует наличия установленного приложения «Сбербанк Онлайн» (СБОЛ), иначе в процессе оплаты произойдет ошибка. Тестирование можно проводить на симуляторе iOS и на реальном устройстве. На эмуляторе Android тестирование не выйдет — при попытке оплаты возникает ошибка. Разработчики SDK используют аппаратные возможности смартфонов: геолокацию, bluetooth, Wi-Fi для снижения вероятности совершения мошеннических операций (условный антифрод).

Первым делом разработчик узнает от Сбербанка (по договору о подключении SberPay SDK в приложение), логин/пароль (credentials) и ссылку, которые указываются в файле build.gradle проекта (приложения) в части Android для получения библиотеки. Либо отдельно запрашивается aar-бандл. Для подключения SDK на iOS выдадут отдельную ссылку на репозиторий, хотя он публичный

Вместе с данными для получения SDK выдают тестовые данные для регистрации заказа в шлюзе Сбера, а также специальные apiKey и merchantLogin, которые используются для инициализации SberPay SDK в вашем приложении. Тестовые данные не подходят для проверки списания реальных денежных средств с реальной карты, они исключительно для тестирования.

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

Flutter. Локальная база данных

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

Ранее мы писали статью про реализацию паттерна MVVM на Флаттере. В комментариях к ней просили разобрать связку нашего приложения с базой данных. 

Стоит заметить, что локальная БД в данном случае будет использоваться для кеширования данных, получаемых с бэкенда, однако взаимодействие с бэком не будет рассматриваться здесь, так как это тема, достойная отдельной статьи.

Меня зовут Ричард, и я младший разработчик в компании Digital Design.

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

Читать далее
Рейтинг 0
Комментарии 7

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

Битва пет-проектов
Дата 25 сентября – 30 ноября
Место Онлайн
Business Code Conference
Дата 30 ноября
Время 17:30 – 00:00
Место Москва
Импульс Т1
Дата 1 декабря
Время 12:30
Место Москва Онлайн
YaTalks 2023 — главная конференция Яндекса для IT сообщества
Дата 5 – 6 декабря
Время 9:00 – 23:59
Место Москва Белград Онлайн

Flutter Yandex Mapkit: как внедрить основные инструменты Яндекс Карт в проект на Flutter. Часть 2

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

Привет! Меня зовут Анна Ахлёстова, я Flutter-разработчик в Friflex. В первой части статьи мы подробно разобрали, как использовать некоторые инструменты Yandex Mapkit в проекте на Flutter. Мы научились отображать объекты точками на карте, обрабатывать нажатия на них, а также настраивать кластеризацию маркеров при масштабировании карты.

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

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

Flutter Yandex Mapkit: как внедрить основные инструменты Яндекс Карт в проект на Flutter. Часть 1

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

Привет! Меня зовут Анна Ахлёстова, я Flutter-разработчик в Friflex. Мы разрабатываем мобильные приложения для бизнеса и специализируемся на Flutter. В статье я расскажу о том, как мы решаем основные задачи бизнеса с использованием возможностей Яндекс Карт на Flutter.

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

Как мы удвоили разрешение фотографий с помощью камеры Flutter на iOS

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

Привет, меня зовут Сергей, и я мобильный разработчик в компании Brickit. Некоторое время назад мы наконец мигрировали приложения для iOS и Android на общий код на Flutter. Мы были в восторге от результата, но сам переход был далеко не гладким. Одной из важных частей этой авантюры была настройка и использование плагина камеры, что оказалось нетривиальным как на iOS, так и на Android. В этой статье я расскажу о проблеме с недостаточно высоким разрешением фотографий на iOS, немного объясню, как работает оригинальный плагин, и предоставлю наше решение с примерами кода о том, как сделать это лучше. Ссылка на полный код в конце статьи.

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

Как быстро интегрировать Систему быстрых платежей (СБП) в приложение на Flutter

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

Всем привет! Меня зовут Мурат Насиров, я Flutter-разработчик в Friflex. Мы разрабатываем мобильные приложения и специализируемся на решениях для ритейла. На одном из наших проектов мне пришлось столкнуться с внедрением кнопки оплаты через Систему Быстрых Платежей (СБП). В этой статье я хочу поделиться своим опытом и наработками в быстрой интеграции нативных компонентов SDK СБП в кроссплатформенное приложение на Flutter.

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

Event Bus: пишем шину событий во Flutter-приложении

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

Привет, Хабр! Меня зовут Юрий Петров, я Flutter Team Lead в Friflex. Как и многие коллеги, я пришел во Flutter из мира Android. Конечно, есть практики, которые мы использовали при разработке нативных приложений для Android и которые мы тянем за собой в кроссплатформенную разработку. В статье хочу вам рассказать про чудесный инструмент Event Bus. При переводе на русский этот термин дословно означает «шина событий».

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

Реактивные формы во Flutter: как делать формы с меньшими трудозатратами

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

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

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

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

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

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

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

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

Вклад авторов