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

Flutter *

Фреймворк для кросс-платформенной разработки

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

Как перестать писать код для взаимодействия с бэкендом

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

Привет! Начну с главного - я лентяй. Я очень-очень ленивый разработчик. Мне приходится писать много кода - как для бэка, так и для фронта. И моя лень постоянно терзает меня, говоря: Ты мог бы не писать этот код, а ты пишешь... Так и живем.

Но что делать? Как можно избавиться от необходимости писать хотя бы часть кода?

Есть много подходов к решению этой проблемы. Давайте посмотрим на некоторые из них.

Ну давайте

Flutter плагин для импорта стикеров в телеграм

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

Недавно Telegram анонсировал новый конкурс:

Дано: механизм импорта стикеров для Android и iOS приложений.

Задача: написать Android или iOS приложение, использующее этот механизм.

Сроки очень ограничены, дедлайн 4‑го июля. Объективно, написать приложение за столь короткий я не успеваю. Решил хотя бы помочь Flutter разработчикам в этом конкурсе и написать плагин для работы с нативными SDK. Об этом и будет статья.

Читать далее

gRPC + Dart, Сервис + Клиент, напишем? Часть 3

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

Привет, я Андрей, работаю Flutter разработчиком в компании Финам.

Продолжим развивать сервис Umka.

На примере реализации кода для проведения "экзамена" мы познакомимся с возможностью технологии gRPC передавать данные в виде потока от клиентского приложения на сервис.

Также парой-тройкой десятков строчек кода мы реализуем чат, для проведения "технического интервью".

Для этого используем возможность gRPC осуществлять двунаправленную потоковую передачу данных от сервиса к клиентскому приложению и обратно в рамках одного HTTP/2 соединения.

Читать далее

Внедрение зависимостей (Dependency Injection) с GetIt во Flutter

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

Внедрение зависимостей - DI - Dependency injection - термин часто встречающийся на собеседованиях. Сам по себе концепт опирается на более объемный принцип инверсии зависимостей (буква D в SOLID), но намного проще и ближе к практике. Кратко можно сказать, что при внедрении зависимостей, мы задаем значения переменных объекта в момент выполнения программы, а не в момент компиляции.

В этой статье я постараюсь показать, что использование библиотек для DI - это легко и удобно, даже для небольших проектов и опишу три случая с кодом ДО и ПОСЛЕ. Надеюсь, даже в небольшом проекте сразу станет понятно, что код после применения внедрения зависимостей стал чуть-чуть лучше. 

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

Работать мы будем с достаточно популярной библиотекой GetIt. Проект минималистичен: приложение показывает погоду в настоящий момент  с использованием одного из двух сервисов: Yandex.Weather или VisualCrossing. Если пользователь разрешит, то учитывается его местоположение и погода будет актуальна для его города.

Read more

gRPC + Dart, Сервис + Клиент, напишем? Часть 2

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

gRPC + Dart, Сервис + Клиент, напишем? Часть 2.

Первая часть находится здесь

Продолжим развивать сервис на основе технологии gRPC, основы которого мы заложили в первой части.

Читать далее

gRPC + Dart, Сервис + Клиент, напишем

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

Привет! Меня зовут Андрей. Занимаюсь разработкой Flutter приложений.

Написание материала вызвано желанием показать пример создания сервиса c использованием технологии gRPC в экосистеме Dart и, соответственно, Flutter. Желание периодически возникает, когда приходится испытывать "боль", при переключении на проекты, в которых до сих пор применяется REST + JSON.

Это будет короткая серия из 3-4 статей.

Читать далее

Вызов кода Go из Dart с использованием cgo и Dart FFI на простом примере

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

Ключевой мотивацией для написания данной статьи является факт сильного недостатка информации (особенно в русскоязычном сообществе) по использованию cgo и Dart FFI для использования Go из языка Dart.

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

В случае если можно можно избежать экспорта go кода в Dart, то лучше воспользоваться такой возможностью, однако могут возникать случаи, когда использование уже написанного на go кода - является оптимальным решением (например вы уже знакомы с Go и Dart, и не хотите писать код на C, в таком случае есть смысл задуматься об использованием cgo и Dart FFI).

В данной статье на простом примере будет показано как можно повторно использовать код написанный на Go в языке Dart (например в приложениях на Flutter).

Что должно быть установлено:

Читать далее

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

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

Представляем свежий релиз Flutter 2.2, анонсированный на Google I/O. Да, оригинальная статья вышла ещё в мае, но мы считаем, что лучше поздно, чем никогда. Публикуем перевод статьи с комментариями Евгения Сатурова — ex-Flutter TeamLead Surf, а ныне — DevRel Surf.

Читать далее

Dart: Быстрые неизменяемые коллекции

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

Привет! Представляю вашему вниманию перевод статьи про возможности пакета FIC(Fast Immutable Collections, Быстрые неизменяемые коллекции). FIC - конкурент для таких пакетов как built_collection и kt_dart, но он намного быстрее и проще в использовании.

Оригинал

Массивы, к которым вы, возможно, привыкли в других языках, в Dart называются списками (List), и они изменяемые по умолчанию - вы можете добавлять в них новые элементы, удалять и т.д.

Читать далее

Flutter: флип-анимация

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

Когда я впервые увидел виджет AnimationSwitcher, то подумал, что смогу его перевернуть, открыв его обратную сторону.

Я ошибался: AnimationSwitcher позволяет... переключаться между различными виджетами с заданной вами анимацией (анимация по умолчанию - затухающий переход). Этот компонент слишком универсальный для этой цели.

Я должен был внимательно читать…

Его использование является весьма общим, поэтому я покажу вам, как можно сделать такую анимацию.

Читать далее

Анонс эфира Flutter live-coding сессии

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

Приглашаем на эфир Flutter live-coding сессии. Покажем, что такое говнокод по-флаттеровски, и дадим лайфхаки, как писать на Flutter красиво. 26 мая, среда, 18:30 мск.

Читать далее

Углубленный анализ тестирования виджетов во Flutter. Часть II. Классы Finder и WidgetTester

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

Это продолжение первой части статьи о тестировании виджетов во Flutter.

Продолжим наше изучение процесса тестирования виджетов. 

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

Читать далее

Flutter Flavoring in a breeze

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

Хотелось ли вам иметь несколько версий одного приложения?

Чтобы одной командой вы могли собрать приложение под определенное окружение?

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

Всем привет!

Меня зовут Андрей!

И в этой статье я расскажу, как настроить сборку приложения для разных окружений.

Читать далее

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

Решение задач позиционирования при просмотре карты во Flutter

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

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

Read more

Углубленный анализ тестирования виджетов во Flutter. Часть I: testWidgets() и TestVariant

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

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

Кроме того, какое-то время я не писал статьи, поэтому мне показалось отличной идеей вернуться к перу и рассказать, как мои неудачи в определенном деле в конечном счете привели к тому, что оно стало неотъемлемой частью разработки.

Давайте начнем.

Тестирование виджетов — что же это такое на самом деле?

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

Читать далее

История разработки SDK для приема платежей в мобильном приложении на Flutter

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

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

На связи разработчики из Mad Brains. Мы специализируемся на разработке сервисов для мобильных устройств. Имеем опыт в реализации интеграционных решений, собственные продукты в сфере мобильной электронной коммерции, а также входим в 20-ку лучших мобильных разработчиков России и СНГ. Среди наших клиентов Магнит, DNS, Яндекс, Home Credit Bank, QIWI, Pfizer, OneTwoTrip! и другие крупные бренды.

Сегодня мы хотим рассказать, как разработали SDK с открытым исходным кодом для оплаты в мобильном приложении на Flutter на основе Tinkoff Acquiring SDK для нативных приложений. 

Разрабатывая новое приложение на Flutter, перед нами встала задача —  реализовать возможность оплаты услуг банковской картой через российский банк. Готовых открытых решений на рынке не оказалось, однако к тому времени мы достаточно хорошо освоили SDK, поэтому приняли решение написать собственное. 

За основу мы взяли нативную библиотеку Тинькофф Банка и реализовали решение на языке Dart. Настало время рассмотреть все предметно. 

Читать далее

Моя история реализации офлайн приложения Хабра

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

Создание своего приложения Хабра уже вошло в традицию среди хабрюзеров. Я решил не отставать и сделать своё.

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

Читать далее

Миграция мобильного приложения на Dart 2.12 (Flutter 2)

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

3 марта 2021 года разработчики Google представили Flutter 2. Что появилось в новой версии языка Dart? Как теперь быть с разработкой и поддержкой приложений, созданных с использованием Flutter предыдущих версий? И, самое главное, насколько сложно будет мигрировать на версию 2? В этой статье подробно опишем опыт миграции приложения на новую версию Flutter и проблемы, которые могут возникнуть в процессе миграции. 

Читать далее

Как мы подружили Flutter с CallKit Call Directory

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

Flutter+CallKitCallDirectory=Love


Привет!


В этом лонгриде я расскажу о том, как мы в Voximplant пришли к реализации собственного Flutter плагина для использования CallKit во Flutter приложении, и в итоге оказались первыми, кто сделал поддержку блокировки/определения номеров через Call Directory для Flutter.


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

Как портировать SDK Flutter на ТВ-приставку для разработки и запуска приложений Android TV

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

Недавно мы успешно портировали фреймворк Flutter на ТВ-приставку c открытой программной платформой RDK. В этой статье расскажем о трудностях, с которыми пришлось столкнуться, и предложим решения для успешного запуска и повышения производительности. 

Учитывая, что программный стек RDK или Reference Design Kit сейчас активно используется для разработки OTT-приложений, голосового управления и других продвинутых функций для «видео по запросу» (VoD), мы хотели разобраться, сможет ли Flutter работать на ТВ-приставке. Оказалось, что да, но, как это обычно бывает, есть нюансы.

Далее мы по шагам распишем процесс портирования и запуска Flutter на встраиваемых Linux-платформах и разберемся, как этот SDK с открытым исходным кодом от Google чувствует себя на «железе» с ограниченными ресурсами и ARM-процессорами.

Читать далее