Оставить заявку на разработку или консультацию
Телефон
Email (необязательно)
Описание проекта (необязательно)
Прикрепите файлы с описанием проекта (необязательно)
Если у вас есть, то можно прикрепить техническое задание, описание проекта или бриф
Нажимая на кнопку "Отправить" вы соглашаетесь с политикой конфиденциальности

Виды разработки мобильных приложений для iOS и Android

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

А также о том, почему мы начинали с разработки нативных мобильных приложений и пришли к разработке кроссплатформенных приложений на Flutter.

Нативная (native) разработка мобильных приложений iOS / Android

Классический вариант разработки.
Вопрос:
Какие языки и технологии используются?
Ответ:
iOS:
  • на Swift
  • на Objective-C - устаревший вариант
Android:
  • на Kotlin
  • на Java - почти устаревший вариант
Вопрос:
Какие преимущества?
Ответ:
  • Возможно реализовать любые функции приложения
  • Имеется доступ к любым возможностям, которые в принципе предоставляет iOS / Android
  • Можно сделать качественный и максимально удобный для конечных пользователей интерфейс приложения
Вопрос:
Какие недостатки?
Ответ:
  • Высокие трудозатраты:
    • нужно писать одно и то же приложение на двух разных языках программирования
    • поэтому приложение пишут удвоенное количество разработчиков
    • поэтому трудозатраты на разработку и поддержку удваиваются
    • а также сроки разработки, отладки и тестирования могут быть больше в 1,5 - 2 раза.
  • Тяжело поддерживать интерфейс приложения одинаковым на разных версиях iOS / Android
    • Так как протоколы взаимодействия приложения с iOS / Android часто меняются и/или улучшаются с выходом каждой новой версии
    • А также после выхода новых версии iOS / Android может некорректно отображаться интерфейс и может потребоваться обновление приложения
  • Реализация и поддержка нестандартных элементов интерфейса, навигации, анимаций затруднена
    • Так как операционные системы предоставляют мало готовых и удобных инструментов для их реализации
Вопрос:
Рекомендуется для использования?
Ответ:
Как правило, используется для поддержки и развития старых приложений или при запуске разработки нового приложения с неограниченным бюджетом и сроками разработки.

Гибридная разработка мобильных приложений iOS / Android

Неактуальный вариант разработки, применяемый до появления первых серьезных кроссплатформенных решений.
Вопрос:
Какие языки и технологии используются?
Ответ:
PhoneGap (iOS / Android):
  • JavaScript
  • HTML
  • CSS
Cordova (iOS / Android):
  • JavaScript
  • HTML
  • CSS
Ionic (iOS / Android):
  • JavaScript (Angular, React, Vue.js)
  • HTML
  • CSS, Saas
Вопрос:
Какие особенности?
Ответ:
Итоговое приложение представляет из себя:
  • окно веб - браузера, запущенного внутри приложения
  • внутри веб-браузера запущен набор веб-страниц, имитирующий внешний мобильного приложения
  • веб-страницы взаимодействует с нативными возможностями через браузер
Вопрос:
Какие преимущества?
Ответ:
  • Одно написанное приложение можно запустить на двух платформах: как на iOS, так и Android
  • Небольшая экономия трудозатрат и сроков разработки, по сравнению с нативной разработкой
Вопрос:
Какие недостатки?
Ответ:
  • Низкое качество приложения для конечных пользователей
    • Неудобный и неприятный интерфейс
    • Так как пользователи видят невооруженным взглядом, что вместо нативного приложения запущен набор веб-страниц
    • Видны различные визуальные дефекты от веб-страниц
    • А поведение приложения похоже именно на веб-страницы, а не настоящее мобильное приложение
  • Из-за этого низкая производительность приложения в целом
  • Тяжело отлаживать и поддерживать приложение
    • Так как кроме отладки и поддержки приложения на разных версиях iOS / Android, приходится отлаживать html + css + js код веб-страниц на разных версиях браузеров, встроенных в iOS / Android
  • Реализация и поддержка нестандартных элементов интерфейса, навигации, анимаций затруднена
  • Может потребоваться некоторое время, когда после выхода новых версий iOS / Android добавят поддержку новых возможностей после обновления
  • И в итоге разработка мобильных приложений на данных платформах трансформируется в веб-разработку
Вопрос:
Рекомендуется для использования?
Ответ:
Не рекомендуется
  • так как необходимость делать веб-содержимое внутри приложения нивелирует потенциальный выигрыш по трудозатратам и срокам разработки
  • а также неприемлемое итоговое качество приложения делает использование данной технологии бессмысленным

Кроссплатформенная разработка мобильных приложений iOS / Android

Современный бережливый вариант разработки.
Вопрос:
Какие языки и технологии используются?
Ответ:
Xamarin (iOS / Android) от Microsoft:
  • C#
  • Мало распространенная и не очень удобная технология
React Native (iOS / Android) от Facebook:
  • JavaScript
  • Широко используемая и удобная технология
Вопрос:
Какие особенности?
Ответ:
Итоговое приложение:
  • Обычно представляет из себя неотличимое от нативного мобильного приложения по качеству интерфейса мобильное приложение
Вопрос:
Какие преимущества?
Ответ:
  • Одно написанное приложение можно запустить на двух платформах: как на iOS, так и Android
  • Значительная экономия трудозатрат и сроков разработки, по сравнению с нативной разработкой (от 1,5 до 2 раз)
  • Высокое качество приложения для конечных пользователей
    • Удобный и приятный интерфейс
    • Нестандартные элементы интерфейса, анимации и навигация могут быть реализованы
Вопрос:
Какие недостатки?
Ответ:
  • Могут быть проблемы с производительностью приложения
    • Что может вызвать либо неудобство для конечных пользователей
    • Либо повышенные трудозатраты во время разработки для отладки проблем
  • Не всегда удобно отлаживать и устранять ошибки и проблемы
    • Что также может повысить трудозатраты во время разработки
  • Может потребоваться некоторое время, когда после выхода новых версий iOS / Android добавят поддержку новых возможностей после обновления
Вопрос:
Рекомендуется для использования?
Ответ:
Рекомендуется React Native

Кроссплатформенная разработка мобильных приложений на Flutter iOS / Android

Наиболее современная, бережливая и быстро растущая технология от Google для разработки кроссплатформенных приложений.
Вопрос:
Какие языки и технологии используются?
Ответ:
Flutter (iOS / Android) от Google:
  • Наиболее быстро растущая, распространенная и удобная технология
Вопрос:
Какие особенности?
Ответ:
Итоговое приложение:
  • Неотличимое от нативного приложения по качеству интерфейса и производительности
Вопрос:
Какие преимущества?
Ответ:
  • Одно написанное приложение можно запустить на двух платформах: как на iOS, так и Android
  • Значительная экономия трудозатрат и сроков разработки, по сравнению с нативной разработкой (от 1,5 до 2 раз)
  • Высокое качество приложения для конечных пользователей
    • Удобный и приятный интерфейс
    • Нестандартные элементы интерфейса, анимации и навигация могут быть реализованы
  • Высокая производительность приложения в целом
  • Удобно отлаживать и поддерживать
    Вопрос:
    Какие недостатки?
    Ответ:
    • Может потребоваться некоторое время, когда после выхода новых версий iOS / Android добавят поддержку новых возможностей после обновления
    Вопрос:
    Рекомендуется для использования?
    Ответ:
    Рекомендуется. Практикуется в нашей компании уже более 2 лет после многих лет разработки нативных приложений