Как найти и нанять разработчика мобильных приложений
Уже много лет Evrone помогает компаниям из разных отраслей создавать мобильные приложения. У нас есть опыт запуска как MVP, так и полноценных сложных приложений. В этой статье мы расскажем, где и как нанять разработчиков для такой задачи и в каких случаях лучше отдать проект на аутсорс.
Прежде чем начать поиски разработчика мобильных приложений, необходимо сформулировать техническое задание. В зависимости от потребностей компании и её возможностей уже выбирается подход к разработке и технологический стек. И только потом начинаются поиски.
Нативные приложения
Нативные приложения разрабатываются отдельно для каждой платформы. Обычно приложение под iOS пишется на Swift или Objective-C, для Android платформы — на Java или Kotlin.
“Родные” для ОС языки позволяют создать приложения, которые максимально оптимизированы под работу платформы и поэтому отличаются высокой производительностью. Это могут быть ресурсоёмкие приложения со сложной анимацией, интерактивными элементами интерфейса и большим объёмом данных.
Нативное приложение получает полный доступ к устройству — к камере, микрофону, GPS, гироскопу, Bluetooth, благодаря чему можно реализовывать сложные функции. А ещё такие приложения могут полностью или частично работать в оффлайн-режиме.
Например, игра Pokémon GO была написана с использованием нативных языков. Для реализации игры приложение запрашивало доступ к камере, акселерометру, гироскопу. Только нативные языки могли обеспечить быструю производительность и приятный для игрока пользовательский опыт.
Главный недостаток нативных приложений — это длительный и дорогостоящий процесс разработки, это всегда двойные затраты, два специалиста и отдельная кодовая база для каждой платформы.
Кроссплатформенные приложения
Кроссплатформенная разработка позволяет запустить приложение сразу на двух платформах — iOS и Android. В процессе создаётся единая кодовая база, которая потом компилируется под разные мобильные операционные системы. В некоторых случаях часть проекта необходимо написать на нативных языка. Точное соотношение единого и нативного кода зависит от задачи, но в среднем — это 80 к 20.
В работе над кроссплатформенными приложениями чаще используются фреймворки Xamarin, React Native, технология Flutter.
Главное преимущество кроссплатформенного подхода — единый стек и повторное использование кода, что экономически выгодно для компании. Такой подход сокращает время на разработку, а изменения можно вносить сразу на обеих платформах. Клиент в свою очередь получает одинаковый пользовательский опыт и интерфейс вне зависимости от используемого устройства.
Пример кроссплатформенных приложений — Skype и корпоративный мессенджер Slack, мобильное приложение Facebook и Facebook Ads. Приложение Instagram было написано на React Native, что позволяет создателям более оперативно проводить обновления и добавлять новый функционал.
Крупнейшие e-коммерс платформы Alibaba и eBay выпустили кросс-платформенные приложения, написанные на Flutter. eBay выбрала технологию для разработки eBay Motors. Над приложением работала небольшая команда, благодаря Flutter компания добилась высокой скорости разработки, сократила затраты, при этом пользовательский опыт eBay Motors напоминает нативное приложение. С использованием Flutter написано приложение газеты The New York Times и Google Assistant.
Однако универсальность кроссплатформенных приложений имеет негативную сторону — приложения менее гибкие, для реализации сложного взаимодействия с функционалом устройства разработчику придётся потратить больше времени и совмещать два подхода, кроссплатформенный и нативный.
Гибридные приложения
Гибридные приложения — это подвид кросс-платформенных технологий, в которых роль рендера и среды выполнения бизнес-кода играет WebView. Разработка гибрида может занимать даже меньше времени, чем работа над кроссплатформенным приложением. Например, в случае, если используются элементы пользовательского интерфейса, которые уже были написаны для веб-версии. Однако гибридные приложения — требуют поддержки более строгой общей кодовой базы.
Гибридные приложения разрабатываются с помощью мобильной среды разработки Cordova или же более высокоуровневый Ionic Framework. Кодовая база гибридного приложения собирается в нативные приложения для необходимых платформ, в которых один и тот же бизнес-код имеет доступ к API функционала устройства, через кросс-платформенные плагины. Они позволяют использовать нативные возможности, такие как доступ к камере и фото, доступ к файлам, пуш-нотификации, шаринг, оплата, GPS и многое другое.
Главное отличие гибридного приложения от кроссплатформенного — менее нативный рендеринг через WebView — браузер без панелей. Получая простоту разработки и отладки, приходится пожертвовать небольшой частью отзывчивости и производительности. По этому часто это хороший выбор для корпоративных приложений.
Предпочтение гибридам отдали такие компании, как новостной портал MarketWatch, торговая марка Diesel, Pacifica, приложение для контроля над уровнем стресса и тревожности.
Прогрессивные приложения
Прогрессивные веб-приложения, или Progressive Web Applications, запускаются в браузере и не имеют оболочки мобильного приложения, то есть такое приложение нельзя скачать из AppStore или Google Play на телефон. Это гибрид сайта и приложения, его интерфейс и возможности могут дублировать нативное приложение. Но прогрессивное веб-приложение не имеет полного доступа к API устройства и потребляет больше ресурсов.
Прогрессивные приложения запускаются в браузере и не зависят от операционной системы или размеров экрана, их не надо скачивать из Google Play или Apple Store. Ранее открытые и кэшированные страницы будут работать и в оффлайн режиме. А ещё, так как приложение представляет собой веб-страницу, компания может использовать инструменты SEO для продвижения.
Инструмент для хранения визуальных закладок Pinterest — пример прогрессивного веб-приложения. Компания столкнулась с тем, что новые посетители страницы плохо конвертировались в зарегистрированных пользователей, не скачивали нативное приложение. Чтобы улучшить пользовательский опыт и за счёт этого повысить конверсию и выйти на больший охват аудитории, компания разработала прогрессивное приложение.
Мобильные приложения, разработанные нашей командой
Medcorder — приложение, написанное командой Evrone. Первые две версии были написаны на Flutter. У заказчика была задача быстро запустить минимально жизнеспособный продукт сразу на двух платформах и иметь удобный способ оперативно вносить изменения в приложение. Мы остановились на классических технологиях Google для хостинга, бэкенда и распознавания голоса. Для разработки выбрали фреймворк Flutter на языке Dart — он отвечал запросам стартапа и позволял создавать собственный пользовательский интерфейс, при котором приложение выглядит нативным, а реализация не занимает много времени.
Кроссплатформенное приложение для общения с врачами Med.me было разработано с использованием Apache Cordova. Компании было нужно приложение, которое совмещало бы интерфейс для администратора клиники, интерфейс для врача и учётную запись пациента. С помощью Apache Cordova и множества плагинов разработчики собрали три функционала в одном приложении, доступном на разных мобильных ОС. Med.me поддерживает отправку push-уведомлений, обладает высоким уровнем защиты и хранения данных.
Компании Pinpil нужно было приложение для лёгкого поиска лекарств и аптек. Исходя из возможных сценариев, для разработки продукта наша команда выбрала технологии React Native и Redux. После написания единой базы кода приложение оптимизировали для iOS и Android.
Humaniq — финансовое мобильное приложение для пользователей с низким уровнем грамотности. Этот фактор потребовал интеграции сложных решений вроде биоидентификации для подтверждения платежей, реализации голосового чата. Вторая сложность заключалась в том, что целевая аудитория пользуется слабыми мобильными телефонами. С учетом этих требований мы создали блокчейн-приложение для Android.
Вы в поиске мобильного разработчика в штат или на аутсорс? Расскажите нам о ваших требованиях и проекте и мы обязателно найдем вам нужного специалиста
Где найти разработчика мобильных приложений?
Разработка мобильного приложения — это работа целой команды специалистов: менеджера продукта, тестировщика, UX/UI-дизайнера. Если мы говорим о нативных и гибридных приложениях, есть разработчик серверной части приложения и разработчик со знанием нативных языков. Это роли, которые всегда присутствуют в команде, а количество человек, которое будет эти роли закрывать, зависит от ресурсов компании.
- Сайты с вакансиями и резюме вроде hh.ru и «Мой Круг»
Рекрутинговые сайты — это способ найти сразу всех участников команды: разработчиков на разных технологиях, фрилансеров или программистов для долгосрочного сотрудничества. Помимо публикации вакансии, компания получает доступ к резюме релевантных кандидатов, может узнать о состоянии рынка разработчиков мобильных приложений в России. Например, сколько зарабатывает мобильный разработчик на Android, какие пожелания по зарплате у PWA- разработчиков.
- Тематические сообщества
За исключением, наверное, PWA-разработки, коммьюнити мобильных разработчиков — это уже сформировавшееся живое сообщество. При разработке кроссплатформенных приложений помогут чаты в телеграм, посвященные React Native, Dart & Flutter, Xamarin Developers и Xamarin Jobs.
- Конференции и митапы
Конференции и митапы — способ познакомиться со всеми аспектами профессии мобильного разработчика, услышать о лучших практиках, применяемых в других компаниях. Однако для небольших проектов с технически несложной задачей такой подход к поиску мобильного разработчика не самый оптимальный.
- Обратиться в рекрутинговое агентство
Если в компании не хватает ресурсов для самостоятельного поиска разработчиков, можно обратиться в рекрутинговое агентство. Такой вариант подходит в случае, если вы ищете сотрудников для долгосрочного сотрудничества, иначе затраты на услуги агентства могут себя не оправдать. И нужно понимать, что за вашей компанией при этом сохраняется функция проведения технических интервью и оценки кандидатов.
- Отдать проект на аутсорс
Аутсорсинг проекта — это возможность закрыть задачу целиком, получить готовый продукт и избежать метода проб и ошибок. При работе с аутсорсинг-агентством вы получаете сработавшуюся команду, которая закроет все компетенции, необходимые при разработке мобильного приложения. Управление проектом также остается за компанией-разработчиком мобильного приложения. Опытный тимлид сможет выбрать решения, которые будут отвечать вашим задачам и заданным ключевым показателям. В Evrone вы можете как нанять одного или двух мобильных разработчиков так и взять целую команду на аутсорс.
- Взять сотрудников на аутстафф
Аутстаффинг подойдёт компаниям со своим отделом разработки, которым нужно на время увеличить мощность своей команды. За компанией-нанимателем сохраняется управление проектом. Распространённая практика — аутстаффинг тимлида или CTO, который поможет в оптимизации процессов и масштабировании.
Как начать работать с нами?
Что должен знать мобильный разработчик и как об этом спросить на собеседовании?
Процесс проведения собеседования полностью зависит от выбранного подхода к разработке приложения и технологического стека.
- Нативные приложения
iOS-разработчик: разработчик приложений для iPhone и других устройств Apple должен хорошо знать основы языка Swift и Objective-C.
Примеры вопросов на знание Swift:
- Можно ли добавить stored property к типу, используя extension? Если да, то каким образом. Если нет, то почему?
- Что такое протокол в Swift?
- Как можно исправить циклические ссылки в Swift?
- Что такое динамическая диспетчеризация?
Вопросы Objective-C разработчику:
- В каких ситуациях используются селекторы, а в каких — делегаты и блоки?
- Какие виды аннотаций доступны в Objective-C?
- Какие ограничения существуют у платформы tvOS?
Android-разработчик: Android приложения можно писать на Java или Kotlin, в большинстве случаев разработчик знает один из языков лучше, чем другой. И если в компании приняли решение, что основной технологией на проекте будет Java, специалист должен хорошо знать синтаксис и дополнительные инструменты, особенности применения Java в мобильной разработке.
Примеры вопросов для собеседования разработчика мобильного приложения на Android:
- Что такое DDMS? И какими возможностями обладает этот сервер?
- Что вы предпочитаете использовать Serializable или Parcelable? И почему?
- Как можно выявить проблемы в скорости пользовательского интерфейса? Какие решения вы бы предложили для их устранения?
- Что такое Generic?
- Какие программы вы используете для настройки прокси на Android?
Кроссплатформенные приложения
Приложение можно разрабатывать и на фреймворке React Native, и с использованием технологии Flutter. Вот о чем стоит спросить кандидата на позицию Flutter-разработчика:
- В чём состоит отличие stateless и stateful виджетов?
- Как бы вы реализовали валидацию форм во Flutter?
- Какие приложение не стоит создавать на Flutter? Почему?
Гибридные приложения
Есть несколько технологий для разработки гибридных приложений. Примеры вопросов, которые стоит задать разработчику, использующему стек Apache Cordova:
- Как добавить поддержку net.socket внутри Cordova iOS/Android?
- Как отключить проверку заголовков CORS в приложении Apache Cordova?
- Как бы вы настроили прием платежей в приложении?
- Как бы вы подготовили локализацию приложения на Cordova?
Как оценить опыт работы
Оценивать нужно не только глубину знаний, но и опыт их применения на практике. К примеру, senior-разработчик способен не просто выполнять техническое задание, но и предлагать свои решения для реализации бизнес-задачи, а это уже совсем другой уровень.
Примеры вопросов:
- Какова была ваша роль в последнем проекте?
- Что вызывало самые большие трудности? Вы бы сейчас по-другому подошли к решению этой проблемы? Если да, то почему?
- Участвовали ли вы в принятии продуктовых и технических решений? Если да, приведите примеры.
- Есть ли у вас опыт управления командой и менторинга молодых специалистов?
- У вас есть примеры кода на Github?
Инхаус-команда, аутсорс или аутстафф?
Уже много лет Evrone помогает компаниям из разных отраслей создавать мобильные приложения. У нас есть опыт запуска как MVP, так и полноценных сложных приложений. В этой статье мы расскажем, где и как нанять разработчиков для такой задачи и в каких случаях лучше отдать проект на аутсорс.
Прежде чем начать поиски разработчика мобильных приложений, необходимо сформулировать техническое задание. В зависимости от потребностей компании и её возможностей уже выбирается подход к разработке и технологический стек. И только потом начинаются поиски.
Расскажите о своей бизнес-задаче, и мы разработаем приложение для её решения
Мы делаем мобильные приложения всех типов: нативные, кроссплатформенные, гибридные и прогрессивные. Расскажите нам, какие задачи стоят перед приложением и к каким метрикам вы стремитесь, — мы реализуем проект с нуля или подключимся на любом этапе.