Мобильная разработка: iOS vs Android
На лектории «ВКонтакте на практике» выступили руководитель Команды мобильной инфраструктуры Ольга Фролова и Android-разработчик Веда Воронина. Они сравнили процессы разработки на iOS и Android.
Что такое мобильная разработка?
Это молодое направление, которое появилось 11 лет назад с появлением первых iPhone и устройств на Android.
- За 2018 год произведено более 1,5 млрд смартфонов
- Из них более 14,9 — iOS и 85,1 — Android
Среди населения России 77 % населения пользуются какими-либо устройствами. Это примерно 95 млн человек.
Среди них пользуется только мобильными девайсами 32 %. В среднем люди проводят 86 минут в мобильных устройствах. Для сравнения, у десктоп-устройств это 36 минут.
Как должно работать мобильное приложение?
- Быстро и плавно;
- на разных устройствах;
- с ограниченными ресурсами;
- со сложными сценариями;
- в изменяющейся среде.
Как можно создавать мобильные приложения?
- Нативно;
- кроссплатформенно;
- гибридно.
Нативная разработка
- Нативные приложения более стабильные и быстрые, но они требуют больших ресурсов для разработки.
- Приходится разрабатывать приложение под каждую платформу.
- «Естественный» язык программирования.
Крассплатформенная разработка
- Разработка под все платформы.
- Экономия ресурсов разработки.
- Подвержено багам.
- Страдает производительность.
ВКонтакте использует гибридную разработку
Гибридная разработка — это нативные приложения с элементами кроссплатформенного кода.
Примеры гибридной разработки VK:
- VK Connect — фреймворк для внутренних платформ;
- VK UI internal;
- VK Mini Apps;
- Direct Games.
Как разрабатываются приложения под iOS?
Первое, что необходимо для разработки приложений для iOS — MacOS.
Для разработки под iOS можно использовать:
- Xcode от Apple;
- AppCode от JetBrains.
Что касается языков программирования для iOS:
- Objective-C;
- Swift;
- C/C++.
Если вы начинаете свой путь разработчика iOS, то лучше начать изучение с языка Swift. По нему существует больше количество гайдов и туториалов.
Для углубления разработки существует Objective-C.
Статистика разработки приложений для iOS на примере VK
Структура проекта VK под iOS
- Messages | Swift
- Calls | Objective-C
- Video | Swift
- Auth | Swift
- Core | Objective-C
- ValetteKit | Objective-C
- Susanin | Objective-C
- Nestor | Objective-C
- Courier | Objective-C
- Orwell | Objective-C
- ShareKit | Swift
Что делать после создания приложения?
Для тестирования приложения не обязательно иметь девайс на базе iOS. Существует большое количество симуляторов, которые позволят протестировать приложение.
Важный момент в разработке — Human Interface Guidelines. Это гайдлайны по разработке приложений от Apple. Главные цели гайдлайна:
- Design First;
- уважение к пользователю;
- эстетическая целостность.
Следующий этап — публикация приложения в App Store
Вы отправляете приложение в App Store. Команда Apple его смотрит и даёт ответ: отрицательный или положительный. В случае положительного ответа приложение можно отправить в релиз.
Среднее время проверки приложения — 2 дня.
Хорошее преимущество для новых приложений — буст на некоторое время в поисковой выдаче.
Как устроена разработка под Android?
Android является открытой платформой от Google и работает на большинстве мобильных устройств.
Разработка под Android производится практически на любой операционной системе, где есть возможность установить Android Studio.
Основные языки программирования под Android
- Java
- Kotlin
- C/C++
Статистика использования языков программирования в VK
Особенности Android
- Разнообразие девайсов.
- Фрагментация брендов.
- Фрагментация ОС.
Существует Material Design. Он состоит из простых гайдлайнов от Google, которые помогут сделать красивое приложение, даже если вы не являетесь дизайнером.
Как производится публикация приложений?
Опубликовать приложение в Google Play просто. Приложение модерируется примерно несколько часов, также есть возможность выбрать процент раскатки.
Как выглядит мобильная команда VK?
Как выглядит процесс разработки в VK?
- Проектирование.
- Дизайн.
- Разработка.
- Код-ревью.
- Локализация.
- Тестирование.
- Деплой.
Проектирование
- Невозможно учесть всё.
- Плохо недопроектировать.
- Плохо перепроектировать.
Дизайн
- 7 продуктовых дизайнеров.
- Платформенные гайдлайны.
- UI Kit — набор стандартных элементов на все случаи жизни.
Процесс разработки
- Dev-ветка — сборка для сотрудников.
- Feature-ветка.
- Feature Toogle.
Код-ревью
- Проводится для шаринга знаний, хорошая масштабируемая архитектура, снижение скорости разрастания тех. долга.
- Внутри- и кросскомандное ревью.
- GitLab.
Тестирование
- Ручное тестирование QA.
- UI-тесты.
- Бета-тестирование.
После бета-тестирования приложение отправляется в финальный релиз. Команда получает дополнительный отзыв о приложении. В случае возникновения дополнительных ошибок производится их исправление.
Полное видео выступления:
The Brown Room — независимое интернет-издание про социальные сети и современные технологии.
Автор: Артём Алексеевич
Корректор: Арсений Метелёв
Изображения и статистика: ВКонтакте
