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

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

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

Нативная разработка (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% выше и в зачет НДС Заказчик переплаченную сумму НДС взять, к сожалению, не сможет.

Как часто нужно выпускать релизы, и кто это будет делать?

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

Есть ли какая-то отчетность по выполненным работам?

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

Зачем нужна поддержка мобильных приложений?

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

Что делать, если закончится пакет инцидентов, а баг нужно срочно исправить?

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

Что будет, если причиной возникновения бага станет работа команды поддержки?

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

Вы разрабатываете полностью адаптивные сайты заточенные под SEO?

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

Имеют ли ваши сайты интеграции с популярными сервисами?

Разработанные нами сайты и веб-приложения обладают стандартизированным API с учетом возможностей масштабирования и позволяют без всяких затруднений подключаться к другим сервисам или добавлять новую бизнес-логику. Согласно ТЗ заказчика мы обеспечиваем удобную интеграцию с другими продуктами без дополнительной нагрузки на сайт или веб-приложения, такими как 1С, CRM и ERP системы, системы веб и мобильной аналитики, маркетинговыми инструментами, системами учета, социальными сетями и многим другим.

У меня есть мобильное приложение, вы можете его сконвертировать в PWA?

Да, конечно, для создания PWA в случае, если у клиента уже было мобильное приложение, мы используем базу данных, бэкенд и API клиента. Прорабатываем UI/UX интерфейс сохраняя привычный для клиентов пользовательский опыт.

Оказываете ли вы поддержку и осуществляете ли вы доработки уже существующих сайтов?

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

Что если мне не понравится?

На этапе согласования ТЗ выясняем все пожелания и вносим коррективы. На каждом этапе у вас есть заранее оговоренное в договоре количество правок. Вы сами утверждаете каждый этап проделанных работ, это исключает «кота в мешке». Устраняем все выявленные вами недочеты до окончательной сдачи проекта.