VK Android SDK. Создаём нативные приложения

Арсений Васильев работает Android-разработчиком ВКонтакте. В лекции на VK Hackathon 2019 он рассказал о способах разработки мобильного приложения и вариантах использования VK Android SDK.

Арсений Васильев. Фото: Лена NL / The Brown Room
Арсений Васильев. Фото: Лена NL / The Brown Room

Самый известный продукт Арсения — приложение «Где Шаверма», которое помогает найти самую вкусную шаверму рядом с вами.

Это приложение Арсений сделал на хакатоне один за 48 часов. Позже он собрал команду, и спустя два месяца приложение появилось в Google Play и App Store.

Выбор технологии

Если вы тоже хотите создать своё приложение, как Арсений, то есть несколько способов. Рассмотрим самые популярные.

  • VKUI — это набор React-компонентов, с помощью которых можно создавать интерфейсы, внешне неотличимые от iOS- и Android-приложений «ВКонтакте».
  • React Native — фреймворк для разработки кросс-платформенных приложений.
  • Flutter SDK — для мобильных приложений от компании Google, в новой версии на нём уже можно писать сайты и приложения на ОС Fuchsia.
  • Qt — кросс-платформенный фреймворк для разработки программ на языке С++.
  • Нативная разработка — обычная разработка приложений: Swift для iOS и Java, Kotlin для Android.

Сравним все варианты по отдельности и разберём плюсы и минусы каждого, а также узнаем, почему сюда включили VKUI.

VKUI

VKUI использует React-компоненты. Поэтому при запуске приложения VKUI откроется приложение в браузере, написанное на JavaScript.

Внутри VKUI содержится:

  • React;
  • готовые визуальные компоненты.

Готовые компоненты нужны для того, чтобы вы могли создавать приложения с единым интерфейсом «ВКонтакте».

VK Android SDK. Создаём нативные приложения, image #2

Многие приложения на платформе VK Mini Apps используют VKUI, но не все. Например, нашумевшее приложение для майнинга VK Coin или приложение «Чекбэк».

Плюсы VKUI:

  1. Быстрая разработка.
  2. Доступ к аудитории.
  3. Тесная интеграция с «ВКонтакте».

VKUI — это не конструктор. Вам придётся писать код, но его написание заметно упростит вам жизнь. У вас уже будут готовые компоненты, которые вы будете просто использовать, а не писать с нуля. Например, вам в приложении понадобилась геолокация. Чтобы её получить, вы отправляете запрос нативному клиенту, и он вам её возвращает. Это заметно ускоряет разработку, особенно, если вы новичок. Использование VKUI отлично подходит для хакатонов, так как там мало времени для создания приложения.

Рассмотрим пример с созданием приложения через VKUI. После того, как вы напишете приложение, вы можете по ссылке пригласить своих друзей. Они в свою очередь смогут пригласить своих друзей и так далее. Никому из них не потребуется установка вашего приложения. В отличие от магазинов приложений Google Play и App Store, где сложно попасть в главный каталог, тут всё зависит от вашего приложения. Если оно хорошее и приятное, то попасть в главный каталог и найти аудиторию не составит труда.

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

Недостатки VKUI:

  • На VKUI не получится работать с камерой, пушами, получить доступ к файловой системе и фоновым задачам.
  • Не выложить в Google Play и App Store.

WebView (браузер, встроенный в нативное приложение) не позволит вам сделать ничего из этого, так как у него нет доступа. Уведомления, например, можно реализовать через уведомления «ВКонтакте».

React Native

Это инструмент от Facebook, с помощью которого вы пишете свои приложения на JavaScript, используя готовые нативные компоненты. Преимущество инструмента в том, что код для платформ iOS и Android будет одинаковый, а выглядеть приложение будет по-разному в зависимости от платформы.

Плюсы React Native:

  • один код для iOS и Android;
  • React.

Как бы это ни звучало, но плюс React Native в том, что он использует концепцию React. React изначально создавался для web, а уже React Native — для мобильных приложений. Только с той же идеей и концепцией, которая очень простая для разработчиков.

Минусы React Native:

  • всё равно полезете в натив;
  • поддержка — боль;
  • результат средний.

Если ваше приложение сложное, то вы всё равно полезете в натив платформы, будь то Android или iOS. React Native в начальных версиях был неудобен для разработчиков. Каждое новое обновление ломало проект, а обновления выходили часто. Сейчас, когда фреймворку уже несколько лет и он растёт не в таком быстром темпе, обновления выходят реже и с обратной совместимостью. Использование React Native выгодное, но не во всех сценариях. Приложение в любом случае будет уступать нативному приложению, однако скорость разработки будет в разы выше, особенно если вы знаете JavaScript. Если вам не важно время работы и производительность работы, «работает и ладно», именно для таких задач и подойдёт React Native.

Flutter

Особенность этого языка в том, что его разработкой занимается Google. Основной язык у него Dart, и он не сильно популярный. Flutter появился не так давно, и поэтому комьюнити слабое. Если вы захотите реализовать что-то сложное, то вам, скорее всего, придётся придумывать это самому, и никто не сможет вам помочь.

Комьюнити Flutter.
Комьюнити Flutter.

QT

Плюсы и минусы QT — это C++. Сама по себе разработка кросс-платформенных приложений не так проста, как кажется, а писать на С++ ещё сложнее. Писать интерфейсы средствами QT — не самое лучшее занятие. Быстрее будет, если вы напишете интерфейсы для iOS и Android отдельно. А вот кому подойдёт QT, так это разработчикам десктопного приложение. Оно будет в каком-то роде уникальным и написанном на плюсах, а не обернуто в браузер, и работать быстрее.

Разработчик на QT.
Разработчик на QT.

Нативные приложения

VK Android SDK. Создаём нативные приложения, image #5

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

Оба эти продукта выполнят свою задачу — накормят вас. Но первый вариант, согласитесь, принесёт вам в разы больше удовольствия, чем второй. Так же и с нативными приложениями.

Преимущества нативных приложений

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

VK Android SDK. Создаём нативные приложения, image #6

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

VK Android SDK

Вы решили писать нативное приложение. Как вам может помочь SDK?

SDK — это библиотека, которая помогает вам разрабатывать, используя функции «ВКонтакте».

VK Android SDK. Создаём нативные приложения, image #7

С помощью SDK вы можете, например, сделать авторизацию. Это удобно пользователю, потому что все авторизуются через социальные сети. Во-вторых, это удобно и вам, так как не нужно писать такие сценарии как «забыл пароль» и так далее.

Доступ к API

При подключении к SDK вам даётся доступ к API. Вы сможете использовать методы «ВКонтакте». Например, получить информацию о пользователе, о друзьях, опубликовать историю и так далее.

Шаринг

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

Копируйте пример, и вперёд!

В использовании SDK нет ничего сложного. Многие программисты гуглят какие-то вопросы по программированию и решают проблему тем, что копируют какой-то кусок кода из Stack Overflow. Так же и с SDK. Просто копируйте из примеров, где уже реализованы стандартные кейсы. Например, для получения информации о пользователе и так далее.

Подводим итоги

Подробнее познакомиться с VK Android SDK можно в официальном репозитории на GitHub.

Также Арсений выступал с докладом на тему «VK Android SDK 2.0». Там он более подробно рассказал о архитектурной составляющий SDK и почему была сделана вторая версия SDK. Читайте нашу расшифровку.

Полную запись выступления Арсения можно посмотреть ниже:

VK Android SDK. Создаём нативные приложения, image #8

The Brown Room — независимое интернет-издание про социальные сети и современные технологии.

Автор: Владислав Сатонин
Редактор: Арсений Метелев
Фото на обложке: Герман Прокопьев / VK Hackathon
Фото со сцены: скриншоты из трансляции VK Hackathon

553 views·7 shares