Разработка Flutter — плагина под Android

Доброго времени суток! Flutter, имеет большое коммьюнити, огромное множество пакетов и плагинов, но всего не предусмотришь и, рано или поздно, разработчик сталкивается с задачей написания своего плагина, и сегодня рассмотрим как это сделать. Для примера возьмем несложный, но включающий многие аспекты разработки, плагин шаринга из приложения.
Читать →

Работа в фоне: iOS, Android, Flutter

Рано или поздно перед каждым мобильным разработчиком встает задача выполнить некоторую работу в фоне. Это может быть периодическая предварительная загрузка свежих материалов с сервера, синхронизация данных,  оптимизация работы локальной базы данных, необходимость завершить работу, начатую пользователем, взаимодействие с внешними аксессуарами, отслеживание геопозиции и многое другое. Как говорится, была бы возможность, а уж как ей воспользоваться, придумать не проблема. Если говорить о работе в фоне на десктоп платформах, то очевидно, что никаких проблем с этим там нет, разве что глаза разбегаются от разных возможностей реализации: начиная с запуска процесса в безоконном режиме, заканчивая реализацией служб или даже, при острой необходимости, драйверов. Одним словом, раздолье. В то же время мобильные платформы не могут похвастаться таким разнообразием. Оно и понятно: мобильность накладывает жесткое ограничение (емкость современных батарей, при учете прожорливости ОС и остального софта, оставляет желать лучшего).

Давайте рассмотрим основные возможности, которые нам предоставляют мобильные платформы в плане работы в фоне.

Читать →

Вход через VK.com во Flutter приложении

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

Вход осуществляется с помощью VK SDK. Для добавления SDK в приложение будем использовать плагин flutter_login_vk с pub.dev. Плагин поддерживает iOS и Android.

Итак, начнем. Установите последнюю версию плагина для логина через VK, как указано на вкладке «Installing». Теперь можно двигаться дальше, для начала нам нужно создать приложение на VK.com.

Читать →

Поездка на Flutter Study Jam #2

17 августа 2019 года состоялся Flutter Study Jam в Воронеже. Это уже второе мероприятие подобного рода, проводимое  сообществом Google Developers Group (GDG). В этом году организаторами являлись компании Wrike и Surf.

Я интересуюсь разработкой приложений под Андроид, но с фреймворком Flutter до этого момента сталкиваться мне не приходилось, поэтому данное событие стало прекрасной возможностью исправить это упущение.

Мероприятие проходило в Воронеже в Книжном Клубе “Петровский”. Уютный зал в роскошном торговом центре и радушные организаторы сразу исправили настроение от холодной и дождливой погоды на улице.

Читать →

Статистика Android устройств, август 2017

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

Android приложение
Жанр: игра, три в ряд.
Установок: > 100K.
DAU: > 25K.
Аудитория: в основном женская.

ОС

Android 5 — 36,5%
Android 4 — 28,9%
Android 6 — 28,2%
Android 7 — 6,4%

Читать →

Поддержка Multidex для Android в Adobe AIR

Пару слов о поддержке Multidex для Android в AIR, которую Adobe ввела в 25-й версии. С помощью мультидекса можно упаковывать приложения, которые превышают лимит в 64K методов. Это может произойти, если вы пишете своё или используете стороннее ANE, содержащее большое количество библиотек и, соответственно, большое количество методов. В таком случае при сборке вы получите ошибку:

Too many method references max is 65536

AIR 25 наконец-то позволяет включить multidex, чтобы преодолеть эту проблему.

При разработке собственного ANE выставьте флаг поддержки multidex в gradle скрипте проекта

Далее, при упаковке ANE исключите библиотеку com.android.support:multidex. Её можно прописать в зависимостях проекта для компиляции Android библиотеки, но обязательно надо игнорировать при упаковке самого расширения, потому что иначе, при попытке сборки приложения, будет выводиться ошибка:

UNEXPECTED TOP-LEVEL EXCEPTION: java.lang.IllegalArgumentException: already added: Landroid/support/multidex/BuildConfig;

Видимо потому, что библиотека добавляется AIR’ом и повторное включение её в ANE создаёт конфликт.

Для приложения не забудьте прописать поддержку multidex в секции Android манифеста файла-дескриптора (android > manifestAdditions > manifest):

Обратите внимание, что если ANE содержит pre-dex библиотеки, то при попытке упаковки приложения будет выдаваться ошибка.

Поездка на GDG DevFest Voronezh 2016

3 декабря удалось побывать на GDG DevFest Voronezh 2016. GDG DevFest это ежегодная конференция, проводимая сообществами Google Developers Group (GDG) при поддержке компании Google в разных городах мира. В Воронеже она проводится пятый раз.

Я интересуюсь проектами компании Google и операционной системой Android в первую очередь, поэтому данное событие я не мог пропустить, тем более оно проходило не так далеко от моего места проживания.

maxresdefault_live

GDG проходил в актовом зале ВГУ. Сразу на входе нас встречали волонтеры, проводившие нас на регистрацию. Регистрация прошла моментально, а до начала открытия оставалось чуть менее часа. Благодаря тестовым заданиям от компании DataArt удалось скоротать время и получить наклейку с андроидом, которая теперь украшает мой ноутбук.

В первом выступлении Денис Неклюдов (Google Developer Expert и ведущий подкастов androiddev) и Звиад Кардава (также Google Developer Expert) рассказывали о Project Tango. Project Tango — это платформа, которая использует компьютерное зрение, чтобы научить мобильные устройства воспринимать окружающее пространство и движение.
Читать →