Вопросы и ответы

Нативная и кроссплатформенная разработка: как сделать правильный выбор?

У каждого подхода есть свои плюсы и минусы. Разберём их более подробно.

Нативная разработка (iOS, Android)

Плюсы

  1. При нативной разработке есть возможность использовать больше готовых сторонних решений при написании кода, например, готовые библиотеки от Яндекс.Карт, системы сбора аналитики, Firebase и т.д;
  2. Нативные приложениия имеют полный доступ ко всем датчикам и частям операционной системы. Полностью используют все особенности операционной системы. Доступно взаимодействие со специфическими функциями устройства. Например: работа с высоконагруженными процессами, обработка видео, гироскоп, компас, модуль распознавания отпечатка пальца, функции шифрования данных в банковских технологиях;
  3. Нативные приложения разрабатываются на родных языках программирования для операционной системы (Swift для iOS, Kotlin для Android). Такие приложения легче поддерживать, потому что они созданы по правилам Apple и Google;
  4. Поддержка со стороны Google и Apple. После обновления прошивки телефона приложение не сломается. Если же при выходе новой версии ОС и нужна какая-то доработка приложения под новые требования, то такая доработка значительно проще, дешевле и быстрее происходит.
  5. Любые обновления Google или Apple можно предоставить сразу, буквально на следующий день после выхода очередной версии ОС. На Flutter и других кроссплатформенных фреймворках может потребоваться больше времени для того, чтобы начать работу с новыми функциями. Например, темная тема бета-версии iOS 13 на Flutter вышла немного позже основного релиза.
  6. Приложение работает быстрее, потому что операционная система и приложение «общаются» на одном языке. Иногда на 20%, иногда в 2 и более раз (ссылка).
  7. Нативный код использует меньше оперативной памяти, слабее нагружает процессор при работе с достаточно тяжелой анимацией, так как отсутствуют различные преобразования для показа изображения, которые имеются у Flutter.
  8. При работе нативных приложений расходуется меньше заряда аккумулятора;
  9. Проще найти команду для сопровождения проекта;
  10. Для QA (обеспечения качества) есть утвержденные гайдлайны по обеим платформам, что значительно упрощает тестирование интерфейса.

Минусы

  1. Стоимость. Код пишется и тестируется отдельно для каждой платформы iOS и Android. Хотя это не всегда так. Часто бывает, что итоговая стоимость разработки нативного и кросс-платформенного приложения практически одинаковая;
  2. Срок. Чаще всего (но опять же, не всегда), разработка нативного приложения займет больше времени, чем разработка кросс-платформенного решения.

Кросс-платформенная разработка (React Native, Flutter)

Плюсы

  1. Разработка быстрее, потому что большую часть кода не нужно писать отдельно для каждой платформы;
  2. Стоимость, как правило, ниже, потому что большую часть кода не нужно писать отдельно для каждой платформы.

Минусы

  1. Меньше возможностей кастомизации. В кросс-платформе свои не нативные элементы, из которых строится экран. Какая кастомизация в них заложена, ту и используют. В противном случае возникает необходимость писать свои элементы. С кросс-платформой приложение может потерять свою уникальности и индивидуальность.
  2. Один дизайн для обеих платформ;
  3. Необходимость использования сторонних решений при написании кода (причем высок риск, что эти решения либо содержат ошибки, исправления которых нужно ждать, либо вообще не поддерживаются), либо необходимость писать свои решения.
  4. Например, на том же Flutter есть модуль для Яндекс.Карт. Разработан он не Яндексом. Если в этом модуле необходимо будет что-то доработать, то это придется делать своими силами, что может быть достаточно трудозатратно.
  5. Если что-то есть только на одной платформе, то для работы этой функциональности нужно реализовать отдельный нативный модуль или ждать, пока это сделают сторонние разработчики и выложат в open source. Например такое было с 3d touch в iPhone;
  6. При обновлении ОС нововведения появляются позже и к ним нельзя заранее подготовиться;
  7. Приложение работает медленнее. React Native иногда в 6-15 раз медленнее, Flutter на 20% или в 2-3 раза медленнее (ссылка);
  8. Могут возникнуть сложности при работе с вещами типа С++ библиотек, видео, обработкой большого объема данных в режиме реального времени и т.д.;
  9. Технологию могут забросить и перестать развивать;
  10. Меньше кандидатов на рынке;
  11. В случае нахождения некоторых багов, есть риск, что возможно придется отказаться от готового решения и писать самим с нуля, что будет дороже и дольше.
На какие этапы делится процесс разработки мобильного приложения?
  • Процесс разработки мобильного приложения длится на следующие этапы:

    Исследование и стратегия. У каждого приложения своя аудитория, поэтому первоначально мы выясняем основные группы целевых пользователей, их демографические данные, предпочтения, какими устройствами они чаще пользуются. А главное  их ключевую проблему, которую и будем решать.
  • Выбор стратегии монетизации (если она требуется). Возможные варианты: покупки в приложении, реклама в приложении, платные приложения (премиум-аккаунты).
  •  
  • Дизайн. Наше кредо: дизайн должен работать! А работать он будет только в том случае, если основан на аналитических данных, собранных на предыдущем этапе. Хотя шрифты и цветовые сочетания мы тоже любим подбирать, ведь продукт должен нравиться еще и визуально.
  • Разработка. Включается еще на этапе дизайна. Так мы лучше реализуем пользовательские сценарии, идеи и инициативы, которые были предложены на старте проекта.

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

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


Этапы не изолированы, команды разных департаментов постоянно взаимодействуют друг с другом.

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

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

Осуществляете ли вы релиз продукта в магазины приложений?

Да, конечно. Наша компания осуществляет релизы разработанных продуктов в AppStore, GooglePlay, AppGallery. А также в российские магазины приложений, такие как RuMarket, NashStore, RuStore.

Зачем нужно тестирование приложений?

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

Какие технологии вы используете?

Мобильные приложения под платформу iOS мы разрабатываем на языке Swift, под платформу Android - на языке Kotlin. Более подробно с применяемыми в нашей компании технологии вы можете ознакомится на странице https://l-tech.ru/companies

Беретесь ли вы за доработку чужого проекта?

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

Какие услуги входят в гарантийное обслуживание?

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

Работаете ли вы с физическими лицами?

Нет, с физическими лицами мы не работаем.

Указываете ли вы НДС в договоре?

Наша компания использует упрощенную систему налогообложения (УСН) и не является плательщиком НДС. По налоговому законодательству мы можем выставлять счета за оказываемые нами услуги с НДС, но стоимость будет на 20% выше и в зачет НДС Заказчик переплаченную сумму НДС взять, к сожалению, не сможет.