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

Dart *

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

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

Руководство по deep links в Flutter-приложениях

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

Hola, Amigos! На связи Павел Гершевич, Mobile Team Lead агентства продуктовой разработки Amiga и соавтор телеграм-канала Flutter. Много. Мы нашли интересные статьи о deep links (часть 1, часть 2) и хотим поделиться с вами переводами.

Читать далее

Принципы SOLID. Dart/Flutter

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

Принципы SOLID простым языком для начинающих разработчиков.

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

Читать далее

Что думают про Flutter техлиды: инсайты из опроса

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

Варшавская компания LeanCode опросила 300 CTO, CIO, Tech Lead и других специалистов, которые занимают управляющие позиции. Они ответили на 52 вопроса о Flutter, своем карьерном пути, опыте с технологиями и отношению к другим кроссплатформенным фреймворкам. 

Сделали небольшую подборку самых интересных моментов на усмотрение команды Friflex.

Читать далее

Архитектура Flutter проекта простым языком. Clean Arch (MVVM, DI, Bloc, Inversion of Control)

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

Привет! В этой статье я рассказываю о чистой архитектуре и о паттернах для нее простыми словами. Где, когда и как применять тот или иной паттерн?

MVVM
Inversion of Control
Dependency Injection
Service Locator

Так же вы узнаете как можно применять ViewModel вместе со своими стейт менеджерами (Bloc), избавив свой виджет от ненужного.

Читать далее

Полный гайд по тестированию на Flutter. Часть 5: Mocktail

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

Hola, Amigos! На связи Павел Гершевич, Mobile Team Lead агентства продуктовой разработки Amiga. В предыдущих статьях, мы разобрали, как использовать библиотеку Mocktail для техник mocking и stubbing в Unit-тестах. Сегодня погрузимся глубже в ее изучение. Оригинал перевода по ссылке. Все выпуски на моей странице. Поехали!

Читать далее

Widget тесты с помощью ApprovalTests | Flutter / Dart

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

Всем привет, я уже писал статью о ApprovalTests для юнит-тестов.
В этой статье мы затронем Widget тесты и то, как этот пакет может быть полезен для нас.

Читать далее

Telegram bot и Mini app на Dart. Боль?

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

Ни слова про Flutter, и да, боль.

А теперь перейдем к делу. Я Максим, и сейчас расскажу тебе, какого писать бэкенд и веб на Dart, когда ты мобильный разработчик. 

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

Разбираем генеративный SDK от Google — google_generative_ai. Часть 1

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

Привет, Хабр! Меня зовут Юрий Петров, я автор ютуб-канала «Мобильный разработчик» и Flutter Tech Lead в компании Friflex. Мы разрабатываем мобильные приложения для бизнеса и специализируемся на Flutter. 

В версии Flutter 3.19 появился SDK для работы с генеративным ИИ. В этой статье разбираемся с возможностями google_generative_ai на примере простого Flutter-проекта.

Читать далее

Как определить, что мобильное приложение написано на Flutter

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

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

Читать далее

Работа с Data Assets | Flutter

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

Привет, если вы на пути изучения Flutter/Dart или вам просто интересно почитать про путь изучения, подписывайтесь на мой канал в telegram, буду рад вас видеть! А сегодня поговорим про работу с Data Assets во Flutter!

Вы узнаете, как:

• Реорганизовать данные для приложения
• Использовать информацию из локального файла JSON
• Работать с данными, расположенными в папке assets
• Обрабатывать remote данных с помощью Future
• Автоматизировать JSON в классе Dart

Читать далее

Приложение викторины: внедрение Cardoteka и основные паттерны проектирования с Riverpod

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

Как здорово, что все мы здесь сегодня собрались.

Если очень хочется создать викторину, то почему бы и да! Но на пути будет много увлекательных происшествий. Эта статья на гране сумбурного изыскания лучших паттернов проектирования. Вот что рассмотрено:

о слоях и взаимосвязях в архитектуре

формула: 2x реактивность = Riverpod + Cardoteka

особенности проектирования бизнес-логики

лучшие паттерны для работы с Cardoteka

определение репозиториев и про Trivia Api

настройка github actions для деплоя web и релиза подписанных apk ?

И всё это под лязг пластмассовых катан. Прошу, вы устанете, но будет весело!

Повеселиться и устать

Методы-расширения в Dart

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

Методы-расширения (далее просто расширения) позволяют добавлять функции к API существующих библиотек. Возможно, вы даже использовали их, не подозревая об этом. Например, когда автодополнение кода в IDE предлагает вам наряду с обычными методами еще и "расширяющие", именно так они и работают.

Обзор

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

Читать далее

Основы управления состояниями во Flutter

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

Привет, если вы на пути изучения Flutter/Dart или вам просто интересно почитать про путь изучения, подписывайтесь на мой канал в telegram, буду рад вас видеть! А сегодня поговорим про управление состояниями во Flutter!

Читать далее

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

Что нового в Dart 3.3

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

Dart 3.3 вышел! В нем появилась функция Extension Types, новые модели взаимодействия с JavaScript и библиотеками для браузера. А еще Google выпустила бета-версию Google AI Dart SDK. Юра Петров, Flutter Team Lead в Friflex, делится первым переводом официального релиза Dart от Google.

Читать далее

Value: библиотека реактивного программирования для Dart

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

Статья посвящена моей реализации идей реактивного программирования в Dart и Flutter. Рассказываю про разработанную мною библиотеку Value, которая в ряде случаев хорошо подходит для замены Stream, ValueNotifier и rxdart.

Читать далее

Правильное понимание Single Responsibility Principle (SRP) в Dart/Flutter

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

SRP оказался самым сложным принципом из всех SOLID принципов в понимании и как в следствии неправильное применение в кодировании. Множество разработчиков уровня junior / middle, которых я собеседовал на позицию Flutter разработчика давали ответ, что SRP - это принцип единой отвественности. Это конечно правильный ответ согласно книги Роберта Мартина "Чистая архитектура". Но мне хотелось услышать как понимает этот принцип наш кандидат в разработчики. Ведь от этого зависит расширяемость и простота читаемости нашего проекта, ведь мы расширяем команду и хотелось бы чтоб мы писали код в единой концепции. В большинстве случаев разработчики понимают этот принцип, как класс, который он создал должен содержать только один метод. И всё что мы написали в этом методе, несёт единственную ответственность, ведь он решает одну задачу. И на этом кандидат заканчивает свою мысль. Ну что же, неплохо, но и не совсем правильно. Да, такой принцип тоже есть, но он применяется на низшем уровне системы. Действительно для удобства чтения не надо всё сваливать в один метод. Практичнее будет если мы каждому методу разрешим делать что то одно и название этого метода будет понятно другому разработчику, что делает этот метод. SRP же применяется на среднем уровне программы. В общем, я делаю вывод что кандидат не читал книгу "Чистая архитектура", либо это делал очень невнимательно...

SRP это про другое! Сам Роберт Мартин столкнулся с такой же проблемой, неправильное понимание того, что он имел ввиду под SRP и попробовал её решить, написав другое определение и разъяснение к нему. Давайте почитаем!

Читать далее

Just DUIT — первый взгляд на server-driven UI фреймворк для Flutter

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

Зачастую мобильные разработчики сталкиваются с проблемой невозможности быстрого delivery какой-то функции до пользователя. Для обхода этого ограничения мобильных платформ существуют самые разные инструменты и подходы: DivKit, СodePush и другие. И сегодня я хочу осветить новый Server-driven UI фреймворк для Flutter, который в некоторой степени может разрешить эту боль.

Just DUIT!

Анонс Dart 3.2

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

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

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

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

Что новенького!

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

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

Всем привет! Это Мурат Насиров и Артем Баркалов, мы 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 в вашем приложении. Тестовые данные не подходят для проверки списания реальных денежных средств с реальной карты, они исключительно для тестирования.

Читать далее

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

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

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

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

Читать далее