Нативное или кроссплатформенное

Категории: Практики

Кирилл Рогожин:

Один из важных аспектов задания выбрать тип приложения, которые вы будете разрабатывать: нативное или кроссплатформенное. Как вы поняли из теории, в разработке мобильных приложений есть множество вариантов и нет однозначно правильного подхода. Подход выбирается исходя из задачи. Давайте рассмотрим основные тезисы и аспекты

🎓Какое приложение выбрать: нативное или кроссплатформенное

У тех и у других есть свои преимущества и недостатки. На практике заказчики при выборе обычно обращают внимание на след. критерии:

  • сроки разработки;
  • стоимость поддержки и развития;
  • текущая стадия проекта/продукта. Если проект на ранней стадии развития или нужно приложение для проверки гипотезы, обычно выбирают более простое решение в разработке;
  • назначение приложения: для внутреннего пользования или для внешнего. Для внутреннего обычно делают что-то попроще;
  • производительность и ux.

Если верхнеуровнево резюмировать:

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

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

🎓Разработка кроссплатформенных приложений и сколько нужно разработчиков

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

Такой подход имеет место быть, но есть подводные камни:

  • кастомизация интерфейса;
  • использование нативных функций.

Кастомизация интерфейса

Кроссплатформенные фреймворки зачастую используют готовый интерфейс. Т.е. на выходе вы получите единый интерфейс для двух платформ, который отличается от стандартных гайдов iOS, Android. Пользователям этот интерфейс будет не совсем привычен.

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

Использование нативных функций системы/телефона

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

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

Сколько фронтендеров использовать

Можно использовать как одного, так и двух:

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

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

Для принятия решения о кол-ве сверьтесь с вашим видением приложения, фич-листом и требованиям

🎓Стоимость разработчиков и ограничения по смете

Жестких ограничений по бюджету нет. Но помните, что приложение не должно стоить десятки миллионов.

Стоимость специалистов можно взять из предыдущего задания

🎓План и смета

Закладывать ли больше времени на Android

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

Закладывать ли больше времени на дизайн

Если дизайн вашего приложения подразумевает кастомизацию, накиньте немного времени на кастомизацию

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