Мобильная разработка для iOS и Android — что лучше и с чего начать?
У «Практикума» стартовали два курса по мобильной разработке: для Android и для iOS. Попробовать бесплатно можно оба, но в практическом смысле вложить силы нужно во что-то одно.
В этом тексте попробуем ответить на вопрос, какая платформа имеет больше перспектив для разработчиков из России в 2022 году (с учётом всего, что происходит). И немного матчасти, чтобы понимать, как всё устроено.
Лицензия разработчика
Если вы хотите просто писать код и запускать тестовые версии в эмуляторе телефона на компьютере, то лицензия вам не нужна. Можно скачать среду разработки и начать писать приложение. Но будут ограничения:
❌ не всё можно проверить в эмуляторе (например, полноценную работу гироскопа или камеры);
❌ для установки приложения другим людям нужно будет приходить к вам со своим телефоном, чтобы вы могли физически скачать им ваше приложение;
❌ в случае с Apple потребуются дополнительные настройки телефона и обновление приложения каждые 7 дней.
Чтобы этих ограничений не было, обе компании предлагают купить лицензию разработчика. Кроме всего прочего, она даёт возможность публиковать своё приложение в AppStore или Google Play и зарабатывать на его продаже.
Лицензия разработчика Apple стоит 99 долларов, продлевать нужно каждый год. Есть версия для крупных разработчиков, она стоит дороже, но позволяет больше зарабатывать с продаж и рекламы.
Лицензия для Android стоит 25 долларов, и её не нужно продлевать каждый год — лицензия привязывается к аккаунту и действует бессрочно.
Обе лицензии доступны разработчикам из России, если вы сможете привязать к аккаунту действующий способ оплаты (например, через мобильного оператора или картой нероссийского банка). Российские карты и некоторые мобильные операторы не работают.
Языки программирования
Чтобы программировать под Apple, нужно знать Swift или Objective-C. Правда, кроме как для мобильной разработки, эти языки мало где сейчас пригодятся, поэтому специалистом широкого профиля стать не получится.
Android-разработка стоит на двух языках: Java и Kotlin. При этом на Java пишется огромное количество софта как для крупных компаний, так и для разных гаджетов. Если не понравится мобильная разработка, можно переключиться на что-то другое с тем же языком.
Железо
Писать код для Apple можно в любом редакторе, но для запуска и отладки нужен какой-то компьютер Apple: мак, макбук или мак мини. Некоторые программисты запускают эмуляторы MacOS, но они работают медленно, нестабильно и не поддерживают все возможности языка.
При программировании под Android можно писать и компилировать код на любом железе с любой операционной системой. А всё потому, что внутри Android тоже стоит своя виртуальная машина Java, которая работает со своим кодом. Поэтому, если у вас есть любой компьютер, — вы уже можете начать писать приложения для Android.
Количество устройств в мире
Этот параметр важен для тех, кто хочет написать популярное приложение, и чем больше будет скачиваний — тем лучше.
Каждый четвёртый смартфон в мире и в России — это айфон. Последняя версия MacOS для компьютера тоже научилась запускать приложения для айфонов. А если учесть, что Apple плавно движется к тому, чтобы любые приложения работали на любом их устройстве, то количество устройств может вырасти ещё больше.
На Android работают 75% телефонов, но сюда же можно добавить разные умные гаджеты: колонки, часы, микроволновки, автомагнитолы и всё такое. Если говорить в абсолютных цифрах, то это примерно 2,5—3 миллиарда устройств. Также в Windows 11 появилась поддержка Android-приложений.
Android однозначно намного более распространён, чем iOS.
Прибыль от приложений
В 2021 году средний пользователь айфона тратил в 2,6 раза больше денег внутри приложений и в 4 раза больше — на покупку самих приложений, чем пользователи Андроида. С этой точки зрения разработка для iOS гораздо выгоднее, чем для Android, причём в некоторых категориях, например фитнес и здоровье, платную подписку на айфоне покупали в 9 раз чаще.
Получается, что пользователей Айфонов намного меньше, но тратят они намного больше.
Сложность разработки
У Apple всё просто: есть несколько разных разрешений экрана и стандартные правила оформления приложений, их нужно соблюдать, чтобы приложение прошло модерацию в App Store. Ещё у пользователей iOS большая доля обновлений операционной системы — у 70% стоит последняя версия ОС, что делает разработку проще. Получается, программисту достаточно сделать поддержку 3–4 размеров экрана, а весь остальной интерфейс будет одинаковым.
Android — это открытая операционная система, и каждый производитель телефонов может выпустить свою версию, которая будет чуть отличаться от классической. Это значит, что то, что работает для одного производителя, может не работать у другого (например, какие-то интерфейсные решения или путь к различным настройкам). Также разработчику нужно учесть огромное количество разных размеров экранов — от 4 дюймов на старых телефонах до 7–8 дюймов на современных флагманах. А ещё у них может быть разное разрешение, пропорции экрана и очень большой разброс по вычислительной мощности.
В целом iOS — это мир стандартизации и порядка, а Android — это хаос и колхоз. Но приложения выходят и там и там, значит, как-то разработчики этот хаос побеждают.
Зарплата
Средняя зарплата iOS-разработчика в России за первое полугодие 2022 года — 208 800 рублей, причём джуниоры получали 108 100 рублей в месяц
В мире Android в среднем на 9 тысяч меньше — 199 700 рублей в месяц. У новичков — 88 300 рублей в месяц, что на 20 тысяч меньше, чем на iOS.
Политические риски
iOS — закрытая платформа компании Apple, и, если припрёт, они могут отключить как российских разработчиков, так и российские приложения. Это не будет смертельно, потому что обходные пути найдутся всегда. Но в целом, вкладывая время и силы в iOS, вы вкладываетесь в экосистему одной публичной американской компании.
Приложения для iOS легально доступны только из AppStore, который хоть и подчиняется местным законам во всех странах, но всё же принадлежит американской компании.
Android хоть и тесно связан с «Гуглом», но имеет гораздо более открытую архитектуру: каждый производитель телефонов может лицензировать эту операционную систему для себя. Также есть открытые варианты Android, которые вообще не используют сервисы «Гугла». Заблокировать Android в России так же сложно, как заблокировать Linux.
Приложения для Android можно устанавливать откуда угодно: как из магазина Google, так и из альт-сторов типа Xiaomi и Samsung. Также приложения устанавливаются напрямую с сайтов. Недавно в России запустился собственный альт-стор RuStore. В итоге заблокировать приложения для пользователей на «Андроиде» намного сложнее, чем на iOS — причём в любой стране, не только в России.
Что выбрать
Если выбирать по деньгам — зарплаты больше у iOS-программистов, даже у джунов. Да и за приложения пользователи платят в среднем в 2 раза больше.
Если выбирать по простоте входа — начать программировать под Android намного проще, чем под iOS, и сгодится любой компьютер.
Если выбирать по языку программирования — то Java более универсальный, чем все остальные языки мобильной разработки, а значит, всегда можно сменить профиль и писать на Java что-то другое.
Если выбирать с учётом санкций и политической обстановки, то Android безопаснее.
Призыв к действию
Выбирайте и пробуйте бесплатно, если заинтересовались:
Каждый раз, когда вы переходите на «Практикум» с сайта «Кода», у «Практикума» появляется дополнительный аргумент продлить нашу работу на следующий год.
Разработка мобильного приложения: от идеи до результата
Процесс создания нативного приложения, описанный компанией BHW Group и адаптированный AppCraft под современный софт и реалии.
Каждый день тысячи мобильных приложений появляются в Google Play и Apple App Store. Соцсети, мессенджеры, игры и многие другие – все они делаются профессионалами по одному алгоритму разработки. И сегодня мы разложим его на понятные шаги, чтобы показать вам внутреннюю кухню мобильной разработки. Она включает в себя шесть этапов: оформление идеи, разработка стратегии, работа над дизайном, непосредственно разработка, выход на рынок и мониторинг ситуации.
Материал будет полезен начинающим студиям разработки, тем, кто задумал свой стартап, а также тем, кто спонтанно решил внедрить в свой бизнес приложение, но ещё смутно представляет, какие издержки оно может принести.
Как бы тривиально это не звучало, но хорошее приложение начинается с хорошей идеи. Если у вас её нет, подумайте над существующими в мире проблемами и возможными способами их решения. Перебирайте варианты, пока не обнаружите подходящий пробел на рынке, а потом ищите лучший путь, которым его можно заполнить. Это половина успеха.
Ключом к ответу может стать понимание того, почему эта проблема вообще существует, а для её решения до сих пор нет ни одного приложения. Погрузитесь в тему, соберите данные и обсудите их с командой. И, если у вас достаточно ресурсов на разработку, беритесь за дело.
Следующий шаг после рождения идеи – составить план работы над проектом. Его проще всего начать с анализа конкурентов. Найдите на рынке похожие мобильные приложения и проанализируйте следующие факторы:
- Количество загрузок – если приложение загружают, значит, это кому-нибудь нужно.
- Оценки и отзывы – помогут предусмотреть слабые места и адаптировать «фишки», которые нравятся пользователям, под свой продукт.
История компании – будьте готовы столкнуться с теми же трудностями, что и ваши ближайшие конкуренты. Заодно попробуйте понять, как они завоевали признание аудитории.
Благодаря анализу конкурентов вы убиваете сразу двух зайцев. Во-первых, учитесь на чужих ошибках, причём бесплатно, без траты лишнего времени и ощущения собственной неполноценности. Во-вторых, вы начинаете понимать, на что вам придётся пойти, чтобы выжить на рынке мобильной разработки. Что именно пользователь хочет увидеть в своём смартфоне? Есть ли для вашего приложения свободная ниша? Ответы на эти вопросы помогут вам найти баланс между вашими возможностями и потребностями рынка. Ну а если ваша идея настолько уникальна, что подобных приложений ещё нет в природе, посмотрите, как разработчики-первопроходцы из других сфер презентовали себя аудитории.
Если вы не занимаетесь разработкой мобильных приложений исключительно ради удовольствия, то наверняка заинтересованы в том, чтобы получить с продукта хорошую прибыль. Покупки в приложении, оплата подписки или премиум-версии, размещение рекламы, продажа данных – все эти способы монетизации можно использовать, даже если вы распространяете приложение не бесплатно. Чтобы выбрать оптимальный вариант, посмотрите, на чём зарабатывают ваши конкуренты, и определитесь, в какой момент начнёте монетизацию. Если спохватитесь слишком поздно, рискуете попасть в трудные времена.
Эта ступень мобильной разработки связана с пониманием главного вызова, стоящего перед любым разработчиком. Вам придётся продвигать своё приложение, чтобы о нём узнали и начали пользоваться. Сотни качественных мобильных приложений пылятся на виртуальных полках потому, что у их разработчиков не было маркетинговой стратегии и бюджета на её реализацию. А без неё могут обойтись только B2B-приложения, сделанные для внутреннего использования сотрудниками компании-заказчика.
Этап стратегического планирования завершается составлением дорожной карты вашего мобильного приложения, которая зафиксирует его идеальный путь от минимального жизнеспособного продукта (MVP) до попадания в топы магазинов. Составьте список контрольных точек и расставьте их в зависимости от собственных приоритетов. Учитывайте функционал приложения, возможные пожелания аудитории и следующие из них обновления. Но над ними вы будете думать, когда получите фидбек от первых пользователей MVP. Пока же можно сосредоточиться на других вещах.
Внутренняя архитектура зависит от функционала мобильного приложения и выбранного способа обработки и хранения данных. Обычно мы составляем два списка – характеристик, которыми должно обладать приложение, и ключевых визуальных элементов. Они становятся фундаментом для всех будущих архитектурных работ.
Инструменты: доска и маркеры. Много маркеров.
Затем мы рисуем на доске или бумаге экраны и располагаем на них необходимые элементы и данные. Несмотря на то, что один и тот же элемент может присутствовать на нескольких экранах, у него должен быть «дом». Именно на этом этапе в проект можно внести любые изменения.
Они определяют способы взаимодействия пользователя с приложением. Учитывайте все варианты его поведения, чтобы понять, сколько касаний ему потребуется для завершения того или иного действия, причём количество этих касаний должно быть пропорционально сложности действия. Если обнаруживается, что интерфейс не понятен пользователю интуитивно, приходится возвращаться к предыдущему шагу и менять вайрфреймы. При этом после любого изменения все пользовательские сценарии проверяются заново на случай, если мы, упростив одно действие, усложнили другое.
Инструменты: маркеры, плюс Invision, Adobe XD и Figma.
Самый простой способ проверить, насколько хорош ваш UX-дизайн – протестировать его на будущих пользователях. Отправьте им ссылку, после перехода по которой они смогут «потыкать» по отрисованным вайрфреймам. О функциональности речь не идёт, только о проверке навигации. Прислушивайтесь к комментариям, возвращайтесь на один-два-три шага назад, исправляйте проблему и тестируйте. Снова и снова.
Инструменты те же, что и для пользовательских сценарий: Invision, Adobe XD и Figma.
Стайлгайды – это стройматериалы для отделки «интерьера» мобильного приложения и повышения его юзабилити. Без продуманного стайлгайда элементы дизайна будут менять цвета и плавать по экрану, сбивая пользователя с толку.
Руководство по стилю мобильного приложения должно быть максимально подробным и опираться на характеристики аудитории. Ей нужно работать в приложении по ночам? Делаем тёмную тему. Это внутреннее приложение для сотрудников крупной компании? Убираем всё лишнее. Как это сделать? Опытный UI-дизайнер предложит сотню вариантов цветовой палитры, шрифтов и виджетов (кнопок, форм, значков и т.д.).
Рендеринг – это процесс отрисовки вайрфреймов в цифре в соответствии со стайлгайдом. Дизайнер должен придерживаться рекомендаций, но не следовать им слепо. Только так визуальная составляющая мобильного приложения будет выглядеть целостно.
Не стоит жалеть времени на то, чтобы отправить отрисованные в диджитале экраны тем же пользователям, которым отправляли вайрфреймы. Это своего рода переломный момент, после которого любые изменения становятся крайне затратными. По сути, вы заливаете фундамент будущего дома, так неужели не надо свериться с планом и десять раз проверить все измерения?
Настало время подключать разработчиков, которые качественно реализуют продуманный до мелочей и многократно протестированный дизайн. Что может пойти не так? Например, вы заказали дизайн у одной компании, а разработку – у другой. Или у них внутренний раскол. Поэтому рекомендуем работать с профессиональной командой, которая занимается мобильной разработкой от идеи до результата.
В некоторой степени успех совместной работы дизайнеров и разработчиков зависит от выбора инструментов. Например, приложение Zeplin показывает последним все свойства загруженного в него дизайна, хотя не обладает всеми возможностями Sketch или Photoshop. В любом случае, убедитесь в том, что команда пользуется точными значениями измерений и не ленится копировать HEX-коды цветов.
В мобильной разработке существует великое множество технологий. Одни почти не требуют затрат, но не отличаются высокой производительностью, другие потребуют больших вложений во имя блестящего результата. Худшее, что вы можете сделать на данном этапе – использовать устаревшие или ненадёжные инструменты, которые приведут к тому, что вам придётся переписывать код, доплачивая остальным членам команды за переработку. Чтобы избежать этого, рекомендуем принять ряд важных решений до начала работы над проектом. Каких именно, расскажем ниже.
Существует три основных подхода frontend-разработке:
- Нативный – при таком подходе приложение пишется под конкретную мобильную платформу. То есть код приложения под Android нельзя будет использовать на iOS без адаптации. Интерфейс нативного приложения выглядит максимально органично, а само оно работает быстро и отлаженно. За такую надёжность приходится платить, поэтому нативная разработка стоит дороже остальных вариантов.
- Кроссплатформенный – код такого приложения универсален, вследствие чего ОС запускает его как нативное. Многие считают этот способ оптимальным по соотношению «цена-качество», но он всё равно требует от разработчика временных затрат на оптимизацию. Если остановитесь на нём, среди фреймворков выбирайте между React Native, Xamarin и Native Script.
- Гибридный – код пишется на HTML, CSS или Javascript в таких средах разработки, как Cordova, Phone Gap и Ionic. Получается дёшево, сердито и не без проблем.
Сервер влияет на производительность мобильного приложения и масштабируемость продукта, то есть способность системы увеличивать ту же производительность за счёт увеличения доступных ресурсов. Технологии здесь те же, что и в разработке веб-приложений. Отправная точка – определиться с:
Языком программирования – написать мобильное приложение можно на Java, SWIFT, а сервер на Javascript, C#, Go-lang, PHP, Python и ещё десятке языков. И у каждого из них есть фреймворки на любой вкус.
Как вы могли понять из начала нашего гайда, разработка мобильного приложения состоит из множества этапов. Разобраться в следующих будет в разы проще, если вы слышали про Scrum — метод управления проектами, который подразумевает разбивку рабочего процесса на небольшие отрезки – спринты. В каждом из них есть стадии планирования, разработки, тестирования и подведения итогов. Скрам – один из подходов методологии Agile, о которой написано множество книг, поэтому глубоко вдаваться в терминологию мы не будем. Тем более, что какими бы методами не пользовалась та или иная компания, этапы работы над мобильным приложением будут примерно одинаковыми.
Чтобы спланировать спринт, составьте список задач с конкретными критериями оценки результата. Это поможет разработчикам оценить временные затраты на выполнение каждой из них и равномерно распределить обязанности внутри команды.
На этапе разработки команда воплощает в жизнь идеи дизайнеров и свои собственные. Результат проверяет QA-команда (отдел контроля качества) или менеджер проекта. Последний также распределяет задачи между разработчиками, добиваясь равномерной загрузки команды на протяжении всего спринта.
Разработчики должны чётко представлять концепцию приложения и его отличительные черты. Ничто так не мотивирует, как амбициозные цели, но в погоне за ними нельзя забывать о реальности. Возможно, вам придётся смириться с тем, что часть функций так и останется нереализованной.
Тестировать приложение не должны его же разработчики.
Тип тестирования выбирают исходя из проверяемой характеристики приложения:
Функционал – должен соответствовать заявленному. Хорошо, если у подрядчика есть QA-команда, а у неё – план тестирования со списком всех функций приложения и его желаемым поведением. Но если таковой нет – необходимо позаботиться об этом и нанять специально обученных специалистов. Юзабилити – интерфейс мобильного приложения должен быть интуитивно понятным и дружелюбным. О проблемах с этими качествами вам лучше всего расскажут те, кто видят продукт впервые.
Но и это ещё не всё:
Регрессионное тестирование – используется для проверки уже протестированного кода на ошибки, исправленные ранее, или возникшие в результате этих исправлений. Здесь на помощь вновь приходит QA-команда с чек-листами изменений, внесённых в код на каждом из спринтов.
В конце каждого спринта обсуждайте его результаты с заинтересованными сторонами. Сделайте выводы из трудностей, с которыми вы столкнулись, и постарайтесь больше их не допускать. Отмечайте успешные решения и используйте их в дальнейшем. Двух одинаковых проектов быть не может, поэтому разработчики постоянно прокачивают свои навыки, в том числе – навыки планирования работы над проектом. Который, кстати, переходит в следующую стадию.
К этому моменту приложение (или хотя бы MVP) должно быть полностью готово к выходу на рынок. Но если вы хотите потратить маркетинговый бюджет с умом, то размещать приложение в публичный доступ Google Play и Apple App Store пока рано. Нужно ещё раз протестировать его — на этот раз на небольших группах целевой аудитории. Сделать это можно двумя способами.
Первое правило фокус-группы — участники должны увидеть приложение впервые. Вам необходимо выяснить, кто они, откуда узнали о вашем продукте и пользуются ли чем-то похожим. Когда перейдёте непосредственно к тестированию, не давайте подсказок, а наблюдайте за тем, какие сложности возникают у людей в процессе использования приложения. Затем попросите каждого участника высказаться и обсудите все спорные моменты.
Вместе с фокус-группой (или вместо неё) можно устроить пробный запуск приложения для ограниченной аудитории опытных пользователей и охотников за новинками. Обязательно скажите им, что цените их интерес, попросите фидбек и пообещайте принять во внимание конструктивную критику. Кстати, бета-тестирование также позволяет проверить, как ваше приложение работает с разными устройствами и операционными системами.
Помните: лучше получить как можно больше подробных отчётов об ошибках и исправить их, чем не получить ни одного и узнать о проблеме от недовольных комментаторов из магазинов.
Перед тем, как представить своё мобильное приложение миру, позаботьтесь о двух вещах: надёжном API-сервере и соблюдении правил Google Play Store и Apple App Store.
Большинству мобильных приложений нужен backend-сервер, который обменивается данными с ними. Если сервер перегружен или не отвечает, приложение не будет работать. Хорошая новость: благодаря облачным технологиям конфигурацию сервера можно менять в зависимости от размера пользовательской базы.
Публикация приложения в Google Play Store и Apple App Store – трудоёмкий процесс. Вам придётся убедиться в том, что приложение отвечает требованиям магазина, заполнить несколько форм для каждого из них, подготовить скриншоты и маркетинговые материалы, составить текст описания… а Apple ещё и тщательно в течение нескольких дней будет проверять само приложение и даже может не только потребовать изменений, но и отказать в публикации из-за “бессмысленности” приложения. Нет, мы не исключаем вероятность того, что магазин примет ваше приложение без лишних вопросов, и через несколько дней оно будет доступно для скачивания. Просто предупреждаем о возможных трудностях, которые возникнут с вероятностью в 99%.
Разработка мобильного приложения не заканчивается с его публикацией в сторах. Даже за умеренно популярными приложениями стоит целая история обновлений. Исправленные ошибки, улучшение производительности, новые возможности – поводов масса. Выбрать нужный именно вам поможет мониторинг следующих аспектов.
Для отслеживания падений приложения есть немало библиотек. Они хранят информацию о том, что делал пользователь во время падения, на каком устройстве оно произошло и многое другое – в общем, всё, что поможет разработчикам решить проблему. Кроме того, функцию отправки сообщения о падении можно встроить в само приложение. Вам останется только рассортировать их.
Современные системы аналитики мобильных приложений собирают информацию об аудитории вашего приложения (распределение пользователей по полу, возрасту, местонахождению, языку и т.д.) и особенностях взаимодействия с ним (времени входа в приложение, времени, проведённом в приложении, количестве просмотренных экранов и пр.). Некоторые даже составляют тепловые карты, которые показывают, на какие кнопки пользователи нажимают чаще остальных. Используйте эти данные как ориентиры на будущее: вкладывайтесь в доработку тех областей, в которых концентрация действий аудитории наиболее высока.
Этот показатель нельзя измерить двумя предыдущими способами, но следить за ним необходимо. Как часто происходило то или иное действие и как долго оно длилось – вот вопросы, которые помогут оптимизировать работу приложения. Если простейшее действие занимает больше времени, чем ожидалось, это тревожный сигнал.
Оценки и отзывы в магазинах крайне важны, особенно для новых приложений. Всегда отвечайте комментаторам: благодарите за хорошие слова и постарайтесь помочь тем, кто столкнулся с трудностями при использовании вашего приложения. Комментаторы обычно не ожидают, что им ответят реальные разработчики. Чуть больше клиентоориентированности – и две звезды превращаются в пять, а ваша репутация взлетает до небес.
Цель мониторинга – понять, что делать дальше. Используйте статистику и отзывы, чтобы выявить слабые места, а потом возвращайтесь на n шагов назад и укрепляйте их. Повышайте конверсию пользователей в покупателей, расширяйте клиентскую базу, зарабатывайте, в конце концов. Ведь мобильная разработка – это очень динамичная среда, и, чтобы быть на плаву, надо постоянно работать над продуктом и над собой.
Процесс разработки мобильного приложения кажется сложным только на первый взгляд. Да, вам придётся принимать множество важных решений и постоянно возвращаться к предыдущим этапам. Не поддавайтесь соблазну пропустить один или несколько – в конце вас ждёт заслуженная награда в виде денег и благодарных пользователей. Говорим об этом как разработчики с почти 7-летним опытом 🙂
Статья-источник на странице блога компании BHW Group.
Статья длинная, но оно того стоило
Спасибо! Изначально хотели разбить на две смысловые части, а именно: подготовка+дизайн и разработка+релиз. Но они оказались оказались весьма не пропорциональными по отношению друг к другу, поэтому решили не мелочится.
Спасибо!
Всегда было интересно посмотреть не весь процесс разработки приложения!
Спасибо за бесценную информацию! Планирую создать приложение в b2b2c секторе, маркетплейс в сфере услуг на региональном рынке с перспективой масштабирования. Не знаю пока где найти разработчиков, связываться с фрилансерами опасно, собирать свою команду в моем регионе проблематично, не знаю как быть. Средства на реализацию думаю привлечь от потенциальных партнёров, показав презентацию, но если они захотят протестить приложение как быть?
Здравствуйте! Считаю, что вам необходимо описать концепцию вашего сервиса. При создании концепции я бы рекомендовал вам уделить основную часть времени маркетингу (совместно с опытным маркетологом) будущего продукта и его монетизации. Прошу обратить вас внимание, что на самом деле затраты на маркетинг, примерно такие же, как и на разработку самого продукта. Далее, вы выбирайте студию разработки мобильных приложений.
На что стоит обратить внимание на этом этапе?
A. Специализация студии (работает ли она со стартап-проектами напрямую?).
B. Штат сотрудников inhouse.
C. Работает ли над MVP версией продукта напрямую?
Затем, собранные данные о стоимости разработки и маркетинговых мероприятиях, тезисно упаковать в некую презентацию, а лучше ещё создать кликабельный UX-прототип совместно с уже выбранной студией разработки (это будет намного дешевле нежеле делать полноценное приложение, даже MVP версию).
Готово, теперь вы можете продемонстрировать свою идею потенциальным партнёрам.
Разработка мобильных приложений от А до Я: полный гайд
Мобильные разработчики — это те люди, которые вдыхают жизнь в бездушные мобильные коробочки, некие шаманы-заклинатели, которые говорят на иностранном языке и могут практически всё, и иногда это действительно так. Но также это те люди, которые двигают прогресс вперед, создавая все более совершенные и сложные программы. Хороший программист — это не только знание языков и технологий, это еще и навыки системного мышления, так как ему приходится из ничего создавать сложные системы, это также умение работать в команде, так как сложно серьезный проект написать в одиночку, это и умение общаться и понимать заказчика, чтобы создать именно тот продукт, который он хочет.
Разработчик мобильных приложений, он же Mobile-разработчик и Mobile-программист — это программист, который разрабатывает программные приложения для всевозможных мобильных устройств, чаще всего — для смартфонов и планшетов. Именно с появлением на мобильных устройствах голосового и жестового интерфейсов профессия мобильного разработчика сейчас по праву считается самой модной и востребованной.
Всех мобильных разработчиков можно разделить на две категории, в зависимости от программного обеспечения для которого они создают программы — iOS разработчики и Android-разработчики. Специалисты из первой категории считаются самыми доходными на рынке труда, более того, после появления языков Swift и Objective-C создание приложений для Apple стало очень лёгким и удобным. Программисты, которые создают приложения для Android, используют в своей деятельности язык Java, который считается самым надежным для разработки мобильных приложений для этой операционной системы.
Какие основные задачи разработчика мобильных приложений:
- создание ТЗ (технического задания) на разработку мобильного приложения;
- обсуждение с заказчиком этапов и хода работы проекта;
- построение архитектуры приложения;
- непосредственно программирование;
- работа с дизайнерами;
- поддержка мобильных приложений;
- работа с тестировщиками над отладкой и тестированием приложений;
- помощь в создании инструкций по работе с готовым приложением;
- оформление документации;
- размещение приложений в AppStore и Google Play Market, Amazon Appstore, Opera Mobile Store и других магазинах мобильных приложений.
В целом, главной задачей разработчика является создание удобного мобильного приложения, которое будет безотказно работать, а также будет интуитивно понятным, полезным и многофункциональным для конечного пользователя, и, конечно же, прибыльным для заказчика.
Карьерный путь мобильного разработчика приблизительно выглядит следующим образом: стажер, младший или Junior разработчик мобильных приложений, далее Middle и Senior mobile девелопер (на этих этапах можно получить должность тимлида, то есть руководителя группы разработчиков определенного уровня), руководитель проекта и руководитель отдела разработки. Конечно же, это то, как выглядят идеальный путь мобильного разработчика, но у каждого он индивидуальный.
Разработка мобильных приложений — что это?
В понятие разработки мобильных приложений для смартфонов, планшетов и прочих мобильных устройств входит написание программного кода с целью создания программ, которые будут работать на определенных мобильных платформах (на сегодняшний день существует 2 основные платформы мобильных операционных систем — Android и iOS, и менее популярные Windows Phone и Symbian). Эти программы и приложения могут предварительно устанавливаться на мобильные телефоны, персональные цифровые помощники, корпоративные цифровые ассистенты, смартфоны и прочие мобильные устройства до того, как устройства попадут в руки пользователю, либо загружаться пользователями в устройство непосредственно в процессе использования.
Пользовательский интерфейс мобильных приложений играет очень важную роль в процессе создания приложения, ведь интерфейс является соединяющим звеном между аппаратным и программным обеспечением мобильного устройства и фокусом пользовательского взаимодействия.
В процессе разработки мобильного приложения разработчики должны всегда учитывать насколько внимание пользователей ограничено размером экрана, как сократить количество нажатий клавиш, и как наиболее компактно вместить в приложение необходимый набор функций. Поэтому для мобильных разработчиков процесс разработки мобильных приложений часто не ограничивается одним только написанием кода по поставленному заданию, разработка мобильных приложений включает в себя более широкий и творческий спектр деятельности.
Какие услуги входят в разработку?
Услуги по разработке мобильных приложений можно также разделить в зависимости от платформы, для которой будет создаваться приложение. В основные услуги входит
- Разработка приложений для iOS.
- Разработка приложений для Andriod.
- Разработка VR, AR, MR приложений.
Многие студии предлагают полное создание и управление проектом под ключ. В таком случае в пакет услуг по разработке мобильного приложения могут входить:
- Анализ поставленной задачи, полное погружение в проект (в том числе анализ конкурентной среды) и поиск возможных существующих IT-решений.
- Подготовка концепта и разработка дизайнерского решения (UX/UI/IA-проектирование), ТЗ (технического задания для разработчиков).
- Разработка мобильного функционала.
- Проведение тестирования, отладка и аудит.
- Реализация приложения (внедрение, техническое обслуживание и поддержка).
- Подключение аналитики, публикация приложения в онлайн-маркетах приложений.
Как к студиям, так и к частным специалистам можно обратиться с просьбой разработать полный пакет, или помочь с отдельными задачами. Например, если у Вас уже есть подготовленное техническое задание и разработан концепт, а вам нужно только написать кодовую часть, — это будет отдельной самостоятельной услугой.
Насколько актуальна разработка мобильных приложений?
Смартфоны и прочее мобильные устройства не только стали частью нашей повседневной жизни, они — полноценное предложение нас. С помощью мобильных телефонов мы не только общаемся друг с другом, но и заказываем товары из магазинов, покупаем билеты, бронируем жилье, вызываем такси, используем телефоны как навигаторы, фото- и видеокамеры, читалки, онлайн банки, и просто как способ развлечься и скоротать время. Согласно статистике опубликованной в Datareportal, 67% взрослых людей во всем мире используют смартфоны ежедневно, а это почти 5,19 млрд человек (при общем количестве населения в 7,75 млрд). Тенденция к переходу с простых мобильных устройств на многофункциональные смартфоны с каждым годом только увеличивается.
Предполагается, что в ближайшем будущем человек будет напрямую связан со своим смартфоном, то есть все функции и вся информация с наших гаджетов будет напрямую поступать в наш мозг. И пока многие изобретатели работают над этим, люди тратят время на такие, казалось бы бесполезные приложения, как отпугиватель комаров низкочастотными волнами, определитель степени зрелости арбуза, имитатор воздушно-пузырчатой упаковочной пленки или приложение, которое визуально превратит экран смартфона в бокал с пивом.
Короче говоря, актуальность разработки мобильных приложений растет не то что с каждым годом, но и с каждым месяцем. Сотни новых мобильных приложений выходят на онлайн площадках каждый день. Казалось бы, сложно придумать что-то новое, но хорошие разработки в коллаборации с хорошим маркетингом могут принести много денег создателю, явное тому подтверждение — недавно нашумевший TikTok, рейтинги которого продолжают молниеносно расти.
Что нужно знать разработчику мобильных приложений?
Разработчик мобильных приложений, как и любой другой программист, должен обладать как техническими навыками, так и личными качествами для успешной работы в команде — soft skills. В данном случае нужны такие софт скилы:
- Структурное и аналитическое мышление;
- Внимательность;
- Усидчивость;
- Навыки коммуникации;
- Креативность и творческий подход;
- Желание и умение самообучаться;
- Ответственность.
С техническими навыками придется попотеть сильнее, но используя современные языки программирования, которые применяются для разработки мобильных приложений под Андроид или iOS, вполне реально создать свое первое творение уже за месяц. Вы сможете разрабатывать какие-нибудь несложные игры и даже получать с них прибыль после монетизации, но обучение профессии мобильного программиста этим далеко не исчерпывается. Если зайти в Google Play или AppStore, то вы увидите, что таких приложений большинство, и в особенности, в играх (если внимательно присмотреться, то таких игр будет 8 из 10). Простое приложение может создать каждый среднестатистический разработчик, но чтобы не оставаться в рядах “среднестатистических” придется потрудиться над тем, чтобы создать что-то действительно интересное и оригинальное, а главное, качественное. Для этого вам понадобятся такие навыки:
- CSS и HTML, среды разработки Cocoa/Xcode, языки программирования Objective-C/С++, Java;
- HTTP, XML, принципов объектно-ориентированного программирования, СУБД;
- Знание Android, iOS SDK, шаблоны проектирования, распространенные библиотеки и архитектуру iOS, Android, скриптовые языки программирования (Ruby, Python), принципы клиент-серверной модели взаимодействия приложений;
- Знание требований к релизам приложений в AppStore и Google Play;
- Востребованы навыки работы с Core Data (фирменной локальной базой данных от Apple, которая построена по типу SQL);
- Умение разбираться в чужом коде;
- Владение техническим английским языком.
С чего начинают обучение? Как научиться?
Итак, вы решили попробовать себя в разработке мобильных приложений, с чего начать? Чтобы стать разработчиком мобильных приложений, нужно для начала иметь качественный фундамент. Опытные программисты советуют начать своё обучение с компьютерных наук (computer science) или с программной инженерии (software engineering), структуры данных классических алгоритмов, устройства хеш-таблиц и так далее. Нужно уяснить базовые понятия которые используются в программировании и не зависят от языка программирования или устройства. Будет нелишним знать основы C++, хотя многие считают его уже устаревшим. Отчасти это так, но это основы основ без которых не возникли бы Java и PHP. Также, полезным будет узнать о защите данных, шифровании, сетевых протоколах и о ядре unix.
Действительно качественный софт — это не только программа, которая работает без ошибок, это понятный пользователю интерфейс, и хорошо продуманная логика работы с учетом всех возможных исходов событий и вариантов их развития.
Востребованный разработчик мобильных приложений — это тот, который обращает внимание на детали и постоянно ищет новые, интересные, нестандартные решения.
Очень немаловажным является также знание английского языка хотя бы на среднем уровне. Почему это необходимо? Потому что мобильные платформы на данный момент очень быстро развиваются, каждый год появляется новая версия той или иной платформы. Кроме того, вся новая документация появляется в интернете на английском языке и её просто физически не успевают переводить на русский или украинский языки. Поэтому знание английского языка позволит вам достаточно быстро изучать документацию, применять различные новые фичи и элементы приложениях, и держаться современного тренда в данной разработке.
Если говорить о разработке мобильных приложений для чайников, то в интернете существует огромное количество различных ресурсов, сайтов, онлайн уроков, видео о том, как научиться с нуля работать с той или иной мобильной платформой, будь это Android или IOS. Можете выбирать абсолютно любую, главное, чтобы вам это было понятно, интересно, и чтобы вам это нравилось. У Google и Apple есть два главных сайта по разработке под их конкретную операционную систему: developers.google.com, developer.apple.com. При этом каждый из этих сайтов имеет локализацию на русский язык, хотя, опять же, не вся документация переведена с английского.
Разработка мобильных приложений для детей
Отдельной, достойной внимания темой является мобильное программирование для детей. Сегодня абсолютно каждый ребенок проводит невероятное количество времени со своим смартфоном или планшетом. При этом практически в 100% случаев дети играют в игры или смотрят ролики на YouTube, но это увлечение можно перенаправить в очень перспективное и практичное русло. Овладев навыками создания игр и приложений в раннем возрасте, ребёнок может вырасти очень разносторонне развитым и востребованным программистом, ведь, увлекшись программированием в детстве, вероятнее всего в дальнейшем он будет хотеть расширять свои навыки и знания, и пополнять запас новых языков программирования.
Сейчас существует много школ и курсов разработки мобильных приложений для детей 10-13 лет, где они начинают с изучения языка Scratch, который в игровой и очень понятной форме показывает основные принципы программирования. Зачастую дети быстро увлекаются подобными конкурсами, так как они не только продолжают играть на смартфонах и планшетах во время занятия, но и сами могут ощутить эту магию создания мобильного приложения. Далее они постепенно переходят к изучению Python и JavaScript, что станет для них мощной базой и хорошим стартом. Есть также и книги по программированию для детей, которые могут привлечь ребенка к изучению данной сферы.
Под что есть разработка мобильных приложений?
В первую очередь — это те платформы, которыми мы каждый день пользуемся с помощью наших смартфонов — Android и iOS, они занимают приблизительно 95% всего рынка мобильных девайсов. Остальной процент уходит под Linux, Windows, Symbian и другие, менее популярные платформы.
К мобильным гаджетам и мобильным девайсам, кроме смартфонов, мы также можем отнести планшеты, электронные часы, фитнес-трекеры, и огромное количество новых гаджетов, которых с каждым годом появляется всё больше и больше — например, очки с дополненной реальностью и умное телевидение. Все эти девайсы зачастую также используют наши основные 2 платформы, а приложения для них можно отнести к мобильной разработке.
Как разрабатывать мобильные приложения? Какие инструменты есть — какие нужны?
Самое первое — для разработки мобильных приложений нужно выучить языки программирования. Для разных платформ подходят разные языки, поэтому изначально нужно определиться с интересующей вас платформой, а далее — с языком.
Разработка мобильных приложений для Android чаще всего выполняется на Java — старом добром объектно-ориентированном, высокоуровневом языке, на котором написано больше 90% всех приложений под андроид. За последние полгода большую популярность набирает новый язык Kotlin. Пока около 5% приложений в Google Play написаны на языке Kotlin, но с каждым годом количество этих приложений растёт.
Если говорить про iOS платформу, то здесь также используются два основных языка — Objective C, он же первый язык, который был разработан компанией Apple для написания приложений под iOS. А второй язык — это более продвинутый и более современный Swift. Если говорить о поддержке старых предложений, которые были написаны ранее, то здесь однозначно вам нужно знать Objective C, новые же приложение всё чаще пишутся именно на Swift.
Стоит упомянуть, что как для одной, так и другой платформы иногда используется язык C++. Он используется в тех случаях, когда нужно достигнуть максимальной производительности от Вашего приложения.
Очень редко, но все же возможно в мобильной разработке встретить использование таких языков как Python, C# и Unity, особенно после выхода новых фреймворков и библиотек для них, ведь по умолчанию в этих языках нет встроенных инструментов для мобильных устройств. Так, например, выход фреймворка Kivy Python быстро продвинул использование языка Python в мобильном программировании.
Какие есть особенности в разработке мобильных приложений?
Главная особенность в разработке мобильных приложений заключается в форм-факторе самих девайсов, под которые мы пишем программы, потому что это — смартфоны, планшеты, которые имеют маленький либо небольшой экран, либо нестандартный (квадратный, прямоугольный) экран. Кроме того, если мы возьмем смарт-часы, то это экранчик 2х2 см, или вообще круглый экран. Поэтому очень важным моментом создания мобильного приложения является так называемый User Experience, то есть взаимодействие с пользователем.
Следующим важным моментом в разработке мобильных приложений является большое разнообразие устройств, под которые мы хотим создать приложение. То есть, когда создается приложение, оно может рассчитываться только на смартфоны, или на смартфоны/планшеты/часы, на различные устройства дополненной реальности, или может рассчитываться на взаимодействие между несколькими экранами одновременно.
Чтобы приложение работало на всём спектре различных мобильных устройств, нам нужно предусмотреть различные способы взаимодействия с этим приложением, а также разные способы отображения информации в данном приложении.
Еще одной важной особенностью является постоянное взаимодействие с интернетом. Исторически сложилось, что мобильные приложения — это достаточно легкие приложения, которые не несут в себе большой вычислительной логики. Изначально мобильные устройства располагали достаточно скромной вычислительной мощностью, но сейчас способны утереть нос любому компьютеру десятилетней давности. Но даже, учитывая современные многоядерные процессоры и огромное количество оперативной памяти, всё равно производительность остаётся главным фактором в создании мобильных приложений. Поэтому большая часть вычислительной логики, которая есть в приложении, является взаимодействием с интернетом и с облачными сервисами.
Этапы разработки мобильных приложений
Допустим, вы уже освоили один из необходимых языков для написания мобильного приложения и решили создать свой первый самостоятельный проект. Как будет выглядеть план разработки мобильного приложения? Подход к определению этапов разработки приложения в первую очередь должен основываться на принципах Human—centered design (HCD), то есть ориентироваться на проблемы человека (пользователя), и делать ставку на интерфейс.
Можно выделить следующие стадии разработки мобильных приложений:
— Поиск основной идеи приложения, его концепции (разработка чего-то уникального или усовершенствование уже существующего). На этом этапе также проводится анализ рынка и уже существующих продуктов, проводятся интервью со стейкхолдерами/инвесторами, и user research.
Прежде чем перейти к следующему этапу, обязательно нужно подробно описать бизнес-требования продукта (бизнес цели, ЦА, конкурентность, требования бренда, показатели успеха)
Немаловажным также является определение персоны главных клиентов (их мотивация, потребности, цели, триггеры
— Определение базового функционала — минимально жизнеспособного продукта (MVP). Зачастую мобильные приложения рождаются постепенно — сначала в мир выходит демо-версия с упрощенным функционалом, а потом постепенно в последующих релизах выходят новые фичи, и такой подход чаще всего финансово оправдан. Разработчик собирает фидбек от пользователей и понимает на что делать упор в дальнейшей разработке, а в наиболее положительном исходе даже может получить минимальную прибыль.
На этом этапе плана разработки мобильного приложения определяется user experience map, то есть набор базовых функций и возможностей, доступных пользователю и их взаимодействие.
— С точки зрения маркетинга здесь важно обозначить базовую модель распространения, ведь от этого также зависят основные страницы самого приложения. Также, более детально определяем последовательность действий в продвижении — источники/каналы распространения и целевые действия пользователя.
— UI/UX design — это работа дизайнера. На этом этапе мы можем начинать работать с конкретным функционалом и с четким пониманием того, какими будут шаги клиента. Здесь создается информационная архитектура, то есть основная структура навигационной системы приложения:
-
- Прописывается сценарий использования;
- Подключаются системные аналитики;
- Создаются прототипы и дизайн взаимодействий, то есть определяется как именно будет работать приложение.
Важно уточнить что на этом этапе речь еще не идет о непосредственно дизайне приложения, работа проводится только с прототипами или с простыми макетами.
— Валидация прототипов в юзабилити-тестах (очень простое базовое тестирование макетов и прототипов) — этот этап также относится к работе дизайнера — видят ли наши клиенты в приложении ту ценность, которую мы изначально определили, способны ли они разобраться как его использовать. Часто так бывает, что функционал страницы приложения очевиден для заказчика, но совершенно не понятен пользователю.
-
- По результатам тестам дизайнер вносит изменения в дизайн.
- Создание дизайнером, проджект-менеджером и/или другими специалистами развернутого технического задания (ТЗ) для мобильного программиста. О том, как должно выглядеть техническое задание, мы расскажем в следующем разделе статьи.
— Непосредственно разработка мобильного приложения, и вспомогательных сервисов (о которых мы также расскажем ниже).
-
- В процессе создания мобильного приложения мы продолжаем его постоянно тестировать и улучшать, но важно придерживаться плана поэтапных релизов, ведь часто в процессе заказчикам приходят новые идеи по функционалу и дизайну, которые могут полностью повлиять как на скорость процесса разработки, так и на план его продвижения.
— Продвижение, без него никак. Здесь подключаем максимальную маркетинговую артиллерию, на какую хватает финансирования — баннеры на сайтах и мобильная, реклама в поисковых системах, SMM, почтовая рассылка, SEO в продвижении сайта приложения, если он есть, отслеживание виральности и максимально быстрое реагирование, публикации в СМИ и на новостных порталах, даже публикация POS-материалов.. все, на что хватает денег, фантазии и инструментов. На этом этапе важно определить где находится ваша лояльная аудитория и какие каналы связи откликаются лучше всего и максимально подготовить маркетинговую часть к запуску сразу после релиза приложения.
— Далее идет повторное тестирование функциональности приложения и поиск багов, переоценка его дизайна и ТЗ, создание тестовой документации (тест-кейсов). Фиксим баги и приводим приложение в предрелизное состояние.
— Наконец, релиз! Когда серия доработок завершена и все отделы довольны результатом работы, приложение можно выпускать в мир, точнее его первую демо-версию — загружать ее в магазины приложений.
Но на этом работа над созданием приложения не заканчивается. Далее следует осуществлять постоянную техническую поддержку его работоспособности, улучшать и расширять функционал.
Как видите, разработка мобильного приложения это достаточно длительный и трудоемкий процесс. Не существует готового сценария и наш план разработки мобильного приложения может изменяться, и корректироваться в зависимости от проекта.
Как должно выглядеть техническое задание?
Само по себе мобильное приложение не является одним программным элементом при создании подобного рода продуктов. Помимо того что техническое задание на разработку мобильного приложения должно включать в себя подробный план разработки как для Android, так и для iOS, существует еще масса вспомогательных программных элементов, которые помогают правильно функционировать мобильному приложению. Их также необходимо учитывать на этапах создания и разработки как технического задания для приложения, так и самого программного продукта:
- В первую очередь у любого серьезного мобильного приложения есть серверная часть. Она необходима для эффективного обмена информации между мобильными приложениями и она тоже входит в список работ, которые необходимо проводить. Серверная часть, а именно серверный код, активно взаимодействует с базой данных и это крайне необходимо для того, чтобы существовал и функционировал весь программный комплекс.
- Кроме этого, в состав разработки мобильного приложения может входить личный кабинет, то есть веб-интерфейс, который помогает управлять базой данных, регистрировать различных пользователей и смотреть статистику использования мобильного приложения.
- Также, вместе с мобильным приложением может активно использоваться веб-сайт и/или панель администратора.
Список этих компонентов может изменяться в зависимости от целей и задач мобильного приложения. Поэтому, когда стоит задача разработать одно мобильное приложение нужно понимать, что помимо него следует разработать массу других компонентов, которые также влияют и на сроки разработки, и на стоимость всего проекта в целом.
Когда определена структура мобильного приложения и всех программных элементов, которые должны в него входить, необходимо позаботиться о том, чтобы правильно спроектировать само мобильное приложение, и для этого очень важно понимать что такое мокап, прототипирование и UX дизайн. Этим и определяется подход к проектированию технического задания для мобильного приложения, ведь в этом случае техническое задание не записывается текстом, а изображается в виде графического материала, который воспринимать и реализовывать гораздо легче. Ниже показан пример технического задания на разработку мобильного приложения:
Как было сказано ранее, при разработке мобильного приложения создается множество программных элементов, ими занимается огромное количество разных специалистов. Для того чтобы эффективно синхронизировать работу этих специалистов, и для того, чтобы на выходе получился качественный продукт, который будет соответствовать первоначальной идее и задумке, очень важно: правильно выполнить проектирование, и записать все элементы интерфейса мобильного приложения, отрисовать прототипы отдельных экранов, поработать логику различных элементов меню и кнопок, описать количество экранов, их функции, и продумать поэкранную диаграмму переходов между ними (мокап/прототип). Такой подход избавляет от необходимости долго разбираться в ТЗ и помогает в течение короткого промежутка времени быстро понять, о чём же будет мобильное приложение, какие его основные функции и что оно должно делать.
Методы разработки мобильных приложений
Существует 2 метода разработки мобильных приложений:
- Нативная разработка;
- Кроссплатформенная, или гибридная разработка (ReactNative, Flutter, Xamarin).
Нативная разработка подразумевает создание программы для мобильного устройства на конкретном языке под конкретную платформу. Нативные приложения достаточно производительны и не имеют ограничений в разработке (Java и Kotlin — для Android, а Swift — для iOS). К плюсам такой разработки можно отнести достаточно быструю реакцию на действия юзера, возможность иметь прямой доступ к аппаратной части и разработать наиболее привычный для пользователя конкретной платформы интерфейс. К недостаткам можно отнести достаточно высокую стоимость разработки и поддержки, и длительное время, требуемое на разработку.
Разрабатывать одно и то же приложение под разные платформы (iOS/Android) долго и дорого, к тому же их тестирование также займет достаточно длительное время (к примеру, компиляция обновлений для Андроид занимает около 30 сек), по этому если нужно создать простое приложение сразу для двух платформ, прибегают к гибридному способу разработки. Кроссплатформенная разработка производится с помощью web-технологий — HTML, CSS и JavaScript — которые позволяют разработать приложение сразу на несколько платформ. Но для того, чтобы приложение работало в соответствии со своей платформой, его нужно “перевести” на понятный платформе язык, или добавить промежуточное звено-переводчик. К достоинствам можно отнести низкую стоимость разработки, ведь для этого иногда достаточно будет задействовать всего одного специалиста. А вот к недостаткам можно отнести возможные трудности в работе всех функций и задержки в реакции на действие пользователя (приложение может быть медлительным), также интерфейс будет достаточно простым и нужно будет его дополнительно дорабатывать.
Разработка мобильных приложений дополненной реальности
Технология дополненной реальности уже плотно вошла в нашу жизнь и сегодня простым AR и VR приложением уже никого не удивить. Несмотря на столь большое распространение, для многих данная тема остается странной и непонятной. Помимо развлечения, технологии дополненной реальности используется в самых разных сферах: в медицине и здравоохранении, для обучения студентов, для моделирования и проектирования в производстве, в коммерческих целях для улучшения продаж и коммуникации с потребителем, и т.д. Разработка бизнес-приложений с AR сегодня является одним из самых востребованных и быстро растущих направлений.
Как работает технология VR:
- Пользователь устанавливает и запускает мобильное приложение.
- Наводит камеру на предмет, на который программно установлен маркер.
- На экране воссоздается 3D модель необходимого изображения.
- Пользователь может взаимодействовать с моделью двигая экраном и касаясь его.
Как видите, главной особенностью создания мобильных приложений с дополненной реальностью является необходимость “научить” программу как можно точнее распознавать маркеры в реальной жизни через камеру мобильного устройства.
Наиболее популярным вариантом для создания приложений с дополненной реальностью является движок от Unity3D — это межплатформенная среда для разработки игр и приложений не только для мобильных устройств, но и для Windows, Linux, консолей PlayStation, Xbox, Nintendo, и для всевозможных VR- и AR-устройств.
Unity, хоть и является частной разработкой компании Unity Technologies, но доступен разработчикам бесплатно, хоть и с некоторыми ограничениями (например, владельцу бесплатной версии проект не должен приносить больше 100 тыс. долларов в год). Хотя у движка есть свои минусы, которые затрудняют создание большой и тяжеловесной игры, все же он отлично подходит начинающим мобильным девелоперам, которым будет достаточно простых инструментов.
Где можно научиться разработке мобильных приложений?
Если вы уже выучили или находитесь в процессе изучения одного из упомянутых выше языков программирования, которые чаще всего применяются при разработке мобильных приложений под iOS и Android, то можете попробовать создать мобильное приложение с помощью доступных в интернете и на YouTube кейсов и видеоуроков. Если же вы только находитесь на этапе погружения в эту тему и планируете стать на путь мобильного разработчика, то самым быстрым и результативным вариантом будет записаться на курсы мобильной разработки в IT школе.
При обучении разработке мобильных приложений на курсе Mobile Development в учебном центре DAN.IT Education вы получите максимальный пакет знаний и навыков, необходимых для создания мобильного приложения с нуля, даже если вы не сталкивались с программированием ранее. На курсе разработки мобильных приложений вы начнете изучение с популярного языка JavaScript, изучите библиотеки react и разработаете свое первое приложение под iOS и Android. Кроме того, вы научитесь строить архитектуру приложений и тестировать их, а также прокачаете софт скилы и научитесь презентовать свой продукт широкой аудитории. На протяжении всего процесса обучения студента сопровождают опытные менторы, которые помогают учитывать все индивидуальные особенности каждого проекта. Внимание к деталям, полезные лайфхаки и экономия времени на обучении и, вследствии, создание своего собственного проекта — неоспоримые аргументы в сторону того, чтобы изучать мобильное программирование на курсах, а не с уроками по разработке мобильных приложений с YouTube.
Сколько стоит разработка мобильного приложения в среднем?
Чтобы узнать правильную цену на разработку мобильного приложения, недостаточно прислать в студию разработки похожий вариант приложения к тому, которое Вы хотите разработать, и написать «Ребята, мне нужно такое же приложение. Сколько это будет стоить?» Мобильное приложение — это технический проект, для которого нужна правильная проектная техническая документация.
Цена разработки мобильного приложения зависит от детально и правильно составленного технического задания, и ее корректность напрямую зависит от того, насколько квалифицированный человек ее подсчитывает.
Также, при подсчете важно учитывать сколько времени займет дизайн, разработка, тестирование и прочие услуги по разработке. Если в студию разработки отправить запрос с просчетом стоимости разработки приложения без должной документации и технического задания, то, вероятнее всего, стоимость будет выставлена наугад, и при этом значительно завышена. Конечно же, высокая стоимость не значит качество.
Стоимость разработки мобильных приложений значительно варьируется также и от региона, в котором работают разработчики. В таких странах как США, Австралия или Великобритания стоимость работы разработчика может в два раза превышать стоимость работы разработчика из Западной Европы (150$ против 70$ в час). Программисту из Восточной Европы за час разработки Вам придется заплатить 35-50$, а разработчику из Индии и вовсе 8-30$. При этом простенькое приложение возможно написать за 1-2 месяца, а более сложное потребует от 4х месяцев работы.
Сегодня украинские программисты на фрилансе способны зарабатывать на уровне со своими западными коллегами, ведь могут позволить себе повышать цену, имея за спиной большой опыт, много сложных и интересных проектов, а также знание английского языка. Самой распространенной платформой для мобильных фриланс разработчиков в Украине является Upwork, и единственный минус этой платформы — слишком большая конкуренция.
Если оценивать стоимость всего процесса разработки мобильного приложения от А до Я в Украине, то она может варьироваться от 50 000 грн до нескольких миллионов гривен, все зависит от масштабов и сложности проекта.
Насколько окупается разработка мобильных приложений для бизнеса?
Далеко не каждый бизнесмен задумывается о разработке мобильного приложения для бизнеса, тем более если речь идет о малом и среднем бизнесе. Владельцам бизнеса мобильное приложение может быть необходимым в таких случаях:
- если это мобильный софт, который помогает руководить внутренними процессами в компании, то есть автоматизировать бизнес (например, для ресторанов, гостиниц, торговых центров) и повышать эффективность сотрудников (доступ к общим файлам и базам данных, коммуникация, управление процессами и задачами и т.д).
- если это программа, которая помогает решать бизнес-задачи (увеличивать продажи, повышать лояльность клиентов и узнаваемость бренда, выполнять прочие маркетинговые цели).
- в случае, если приложение разрабатывается чисто для клиентов, то это может быть клуб лояльности в приложении, или приложение как дополнение к услугам компании (онлайн-каталоги, банкинг, трекеры доставки и прочие).
Разработка мобильного приложения для бизнеса может быстро стать окупаемым и прибыльным проектом, если бизнес построен в первую очередь в таких областях как автомобильный бизнес, индустрия красоты, спорт и фитнес, медицина, туризм, заведения общепита, доставка, онлайн-магазины, досуг и развлечения, услуги.
Даже если вы продаёте сантехнику, грамотно разработанное приложение может сыграть на пользу вашему бизнесу, однако, в любом случае, первым делом нужно тщательно просчитать, принесет ли оно ожидаемую пользу, ведь мало одной только разработки приложения, очень важную роль играет его продвижение.
Давайте рассмотрим каким образом можно развить свой бизнес с помощью мобильного приложения и тем самым поспособствовать его окупаемости:
- Привлечь и сохранить целевую аудиторию, а значит увеличить продажи (программы лояльности, уведомления о скидках, акциях и новинках). Таким образом бизнес может осуществлять тачпоинт с клиентом.
- Отстроиться от конкурентов, ведь конкуренция среди приложений в этой области не так высока. Бизнес может предлагать клиенту дополнительные бонусы только за то, что он использует приложение.
- Построение лояльных отношений с клиентом — это преимущество выплывает как результат работы первых двух из списка. Все любят приятные сюрпризы, для этого клиенты и подписываются на программы лояльности. Пользуйтесь маркетинговыми акциями и прочими инструментами построения доверительных отношений с клиентами посредством приложения.
- Формирование доверия у клиентов посредством коммуникации через приложение. Согласно опросам, люди в 2 раза охотнее пользуются мобильными приложениями от владельцев бизнеса, если в них грамотно настроены push-уведомления. Пользователи более доверительно относятся к ссылкам и переходят по ним, если владельцы бизнеса уведомляют своих клиентов лично. К тому же, здесь есть огромный простор для таргетинга целевой аудитории (например, по геопозиции и предпочтениям).
- Связь с корпоративным сайтом. Сочетание мобильного приложения и сайта принесет компании двойную выгоду, ведь они будут взаимодополнять друг друга: если клиент приходит из поиска гугла, приложение может осуществить более персонализированную работу с ним.
В истории существует много успешных примеров того, как мобильное приложение значительно повлияло на развитие бизнеса, например, как это было с Alibaba Mobile Business Group в Украине и России.
И еще пару советов о том, что нужно учитывать если Вы думаете над тем, чтобы создать мобильное приложение для своего бизнеса:
- Зачастую стоимость создания мобильного приложения для бизнеса намного выше, чем стоимость разработки сайта, при этом сайты, как правило, окупаются лучше.
- Мобильное приложение для бизнеса — это инвестиция на будущее, ведь то, что сегодня может выглядеть совсем неконкурентным, завтра может стать лидером на рынке.
- Часто приложения-визитки так и остаются лежать в дальних папках смартфонов, теряясь за мессенджерами, социальными сетями и около медийными приложениями.
- Еще чаще пользователи просто не хотят загромождать хранилище телефона, или предоставлять личные данные большому количеству приложений, по этому продукт должен быть качественным и действительно полезным пользователю.
Как сэкономить на разработке мобильного приложения?
Мобильная разработка даже самой простой программы очень финансово затратна, но всё же у нас есть несколько советов касаемо того как избежать ненужных трат на разработку на начальном этапе:
- Дайте себе честный ответ на вопрос для чего вашему бизнесу нужно мобильное приложение. Если вы руководствовались принципом «у всех есть и мне нужно», то такое приложение обречено на провал. Оцените ситуацию трезво: достаточно ли велика ваша ниша, решит ли приложение бизнес-задачи, увеличит ли поток клиентов и не заинтересованы ли ваши клиенты и ЦА в мобильных технологиях?
- Тщательно продумайте стратегию MVP (то есть минимально жизнеспособного продукта), избегайте любых функциональных и дизайнерских излишеств, ваше приложение должно строго следовать цели проекта. MVP-версия мобильной программы должна включать в себя только базовые и самые необходимые функции.
- Экономить на проектировании, аналитике и ТЗ не рекомендуется, даже наоборот, если есть возможность выделить дополнительное финансирование на более глубокое исследование и бизнес-аналитику, воспользуйтесь этим, ведь этап проектирования подтверждает или опровергает потребность вашего клиента в мобильном продукте.
- На первом этапе можно создать приложение только для одной платформы — Android или iOS. Часто разработка под Android может стоить в разы больше чем под iOS, но в то же время приложения для владельцев Apple лучше монетизируются, проще адаптируются под меньшее количество типов устройств, более безопасны и будут иметь более высокое качество. Окончательный выбор должен исходить из целей бизнеса и целевой аудитории.
- Дизайн должен быть в первую очередь практичным и полезным. Лучше сэкономить на внешнем виде, но тщательно продумать весь функционал. Также следует помнить что большинство пользователей уже привыкли к определенному внешнему виду и элементов, и их расположению, поэтому берите во внимание те паттерны действий пользователя, которые повторяются всегда и во всех приложениях для той или иной платформы.
- Можно также сэкономить на методе разработки приложения — кроссплатформенная разработка стоит значительно дешевле, нежели нативная, хоть и имеет ряд недостатков, которые были описаны выше.
- Бэкендная, она же серверная часть любой программы обычно самая затратная. На ней можно сэкономить если настроить хранение данных на стороне клиента, то есть непосредственно в его устройстве (в таком случае приложение будет работать в онлайн-режиме). Также можно обойтись без серверной архитектуры и перенести всю поддержку на облачный сервис, или использовать SaaS-сервисы — (они также позволят сэкономить на чатах и push-уведомленияхах, если брать их готовыми, а не писать свою платформу для них). Некоторые прибегают к таким маленьким хитростям как использование Google-форм вместо собственных админ панелей и Telegram-ботов вместо приложений.
- Можно рискнуть и заказать разработку не у агентства, а у частного фрилансера, но в таком случае следует помнить, что всегда есть риски срыва дедлайнов и затягивания с выполнением задач, можно нарваться на недобросовестного фрилансера, который бросит ваш проект на полпути, ведь у него нет достаточной заинтересованности в вашем проекте, кроме как материальная выгода.
- Если же вы рассматриваете вариант сотрудничества только со студией, то и в этом случае можно сэкономить выбрав региональную студию, а не столичную. Также при выборе студии учитывайте, что студии с маленьким количеством сотрудников могут показать намного лучший результат из-за нехватки рук и лучшей коллективной отдачи.
- Ещё один вариант экономии — это создание приложения с помощью различных конструкторов, ведь для такого мобильного приложения не нужно особых знаний в программировании. В редакторе вы сами выберите шаблон интерфейса, подключите необходимые сервисы, аналитику, интегрируете приложение с соцсетями и так далее. Но на данный момент мы не нашли ни одного действительно полноценного конструктора который будет способен создать качественную и достойную мобильную программу самостоятельно. Существуют специалисты, которые могут помочь вам в работе с такими конструкторами, но дальнейшее продвижение также остается на ваших плечах.
Какой нужен бриф?
Бриф на разработку мобильного приложения необходим разработчику приложения для того, чтобы понимать какую идею и цели представляет заказчик. По сути, это не инструкция, и тем более не техническое задание, это предварительная заявка на разработку мобильного приложения. То, насколько грамотно составлен бриф, помогает исполнителю понять, на сколько глубоко заказчик погружен в сферу IT и насколько серьезен его подход к проекту.
В бриф на разработку мобильного приложения нужно включить:
- Личную информацию о заказчике и его контакты, естественно (имя, страна\город, компания, как связаться).
- Далее нужно рассказать о проекте — описать идею и бизнес-задачи, и это самая важная часть брифа. Опишите кратко, но четко суть проекта, что можно будет делать с помощью приложения, кто ваша ЦА, каких результатов хотите добиться.
- После нужно дать разработчику понять что вы хотите реализовать с технической точки зрения, то есть уточнить тип и функциональность приложения (web-приложение и мобильное, для iOS или Android, доработка\поддержка существующего проекта или создание с нуля, онлайн и офлайн приложение и т.д).
- Предоставьте примеры, если такие есть, желательно описать, что именно может быть схожим, а что должно отличаться.
- По возможности добавьте больше деталей (Если есть понимание, из каких экранов должно состоять приложение, опишите состав экранов и их функциональность. Или приложите ссылки на ТЗ, прототип, документацию).
- Состав работ. Здесь опишите какие части проекта уже есть и какая у них степень готовности, нужна ли вам помощь с проектировкой и написанием ТЗ, нужна ли серверная часть, админка, дизайн, последующая техподдержка (и на какой срок), продвижение.
- Сроки и бюджет. Укажите к какой дате нужна оценка, что хотите видеть в ней по структуре (оценка на почту в виде вилки, или смета, или КП с презентацией). Далее — к какой дате ожидается увидеть проект готовым (есть ли строгая дата сдачи проекта? Когда вы хотите получить бета-версию? А когда финально законченный проект?). И, конечно же, предполагаемый бюджет, в который вы хотите уложиться (знание ограничений бюджета поможет сразу предложить вам правильное решение задачи, вписывающееся в ваши рамки). Если вы затрудняетесь назвать бюджет, назовите хотя бы, на какой порядок сумм вы рассчитываете.
- Этот пункт необязателен, но если вы проводите тендер и у вас есть какие-то особые пожелания, также укажите это в брифе.
Перейдя по ссылке вы можете посмотреть шаблон брифа на разработку мобильного приложения от студии разработки Live Typing.
Какая зарплата у разработчика мобильных приложений?
Зарплата разработчика мобильных приложений в среднем составляет 1500-2000$ в Украине, но она может значительно варьироваться в зависимости от уровня знаний и навыков разработчика, и сложности проекта. Очень весомым фактором является и регион, на который работает разработчик, так как, как уже было сказано ранее, стоимость часа работы мобильного разработчика в Америке, Европе и Индии уж очень отличается. Payscale предоставил статистику, в которой определена цифра в 59100$ в год (по миру), а это 5140$ в месяц!
Согласно недавнему исследованию от Glassdоor зарплата мобильного разработчика уровня джуниор в среднем составляет 60547$ в год в США, в Украине же можно найти вакансии на позицию Junior mobile developer с оплатой в 800-1000$ в месяц. Эту группу сложнее всего анализировать, ведь на рынке большое количество начинающих мобильных девелоперов с очень разными навыками разработки. Важно понимать, что далеко не многие компании и студии готовы платить тысячу долларов мобильному разработчику без опыта, или только окончившему курсы, будьте готовы, что стартовать, вероятнее всего, придется с минимума — от 600$ в месяц.
В некоторых недобросовестных студиях разработки прибегают к “перепродаже” рабочей силы, то есть нанимают программистов с хорошими навыками, но платят по уровню джуна, а заказчику озвучивают стоимость работы программиста уровня middle, чаще всего, это сложно проверить.
Мобильные разработчики уровня middle в Украине получают в среднем 1500-2500$, а заработная плата девелоперов уровня senior может резко варьироваться от 3000-4000$ и выше. Позиция тим лида может также повышать цену работы мобильного программиста на несколько сотен долларов.
Как заработать на разработке мобильных приложений?
Существует огромное количество способов монетизации мобильного приложения и сценариев для их воплощения. Чтобы заработать на разработке мобильных приложений, нужно четко определить вашу целевую аудиторию — кто ваш клиент, что ему интересно, что ему может быть полезным и на что он готов тратить деньги. Вне зависимости от того, какой формат приложения вы хотите выпустить, то, что работает у одних, может не сработать у вас, по этому ни в коем случае не нужно ориентироваться на других и копировать схемы конкурентов (не все фичи одинаково полезны). Можно создать конкретный инструмент под задачу бизнеса и на нем зарабатывать, можно разработать программу в качестве бизнеса под ключ и продать его кому-то, можно разработать приложение, которое будет нацелено на увеличение лояльной аудитории и сбор трафика, который в дальнейшем также может быть монетизирован, и так далее. Самое главное при выборе сценария — не забывать, что приложение в первую очередь должно быть полезным пользователю.
Вот несколько способов заработка, которые чаще всего используются в мобильных приложениях:
- Реклама внутри интерфейса приложения: баннеры, всплывашки, пуш-уведомления, или натив в контенте самого приложения (для этого нужно подключиться к партнерским программам Google Adwords, Mobile 10 и другим, которые будет платить вам за просмотры и переходы).
- Рекламные видеоролики (те, которые достаточно просто досмотреть до конца, чтобы они исчезли, и пользователю необязательно на них кликать) — оплата обычно производится за определенное количество полных просмотров (обычно за 1000).
- Push-уведомления, которые всплывают поверх всего экрана и привлекают 100% внимания юзера. Такая реклама имеет большой отклик, но здесь советуем продвигать свои услуги, а не рекламировать кого-то, иначе пользователи быстро устанут от постоянного спама ненужными предложениями.
- Осуществление покупок в самом приложении (чаще всего используется в играх, но, как правило, присутствуют почти во всех приложениях, главное — правильно замотивировать юзера).
- Плата за подписку (покупка дополнительных функций, которые будут действовать в течении определенного времени, например с подпиской YouTube Premium вы избавитесь от назойливой рекламы и сможете смотреть ролики в офлайн режиме). Согласно статистике, у тех приложений, которые монетизируются с помощью подписок, доходность на 50% больше, чем у приложений с внутренними покупками.
- Спонсорство, то есть запуск от имени другой компании, как правило, хорошо известной (одна сторона получает деньги и проект в портфолио, другая — увеличивает лояльную аудиторию и повышает узнаваемость бренда).
- Платное приложение. Тут все просто — пользователь платит сразу за покупку приложения и получает максимум функций.
Это только самые основные и самые распространенные способы заработка на мобильных приложениях, и они ограничиваются только вашей фантазией.
Лучшие книги по разработке мобильных приложений
Для тех, кто предпочитает обучаться по бумажным изданиям, мы подготовили топ 6 книг по разработке мобильных приложений:
Разработка мобильных приложений: с чего начать
В нашей работе мы проходим все стадии жизненного цикла создания мобильного приложения, и я бы хотел поделиться нашим опытом в этой сфере. Под катом — рассказ об основах мобильной разработки: от выбора платформы до создания, размещения в магазине и последующего мониторинга.
Тенденции
Чем пользуются владельцы мобильных телефонов?
- Больше половины (53%) используют скачанные приложения
- Приблизительно столько же (52%) через мобильный телефон заходят на сайты
- Более трети людей (38%) используют социальные сети со своего мобильного телефона
- Чуть меньше людей играют в игры (34%)
- Примерно три четверти пользователей общаются через мобильные телефоны (помимо звонков): это могут быть SMS, приложение социальной сети, мессенджер
Статистика
Что покупают
За 2012 год в РФ продано порядка 12,6 миллионов смартфонов: Россия считается одной из быстроразвивающихся в этом плане стран.
- 62% продаваемых смартфонов – это Android-устройства;
- На втором месте Symbian — 15% рынка;
- Оставшуюся долю делят bada, iOS и Windows Phone (если взять этот график только по Москве, то распределение, наверное, будет смещаться в сторону увеличения доли продукции Apple)
Если взглянуть на такой же график по всему миру, то увидим, что и тут Android в авангарде с ¾ рынка.
За второй квартал 2012 года по всему миру было продано 104 миллиона телефонов Android — как население довольно крупной страны. Но нас как мобильных разработчиков интересует не только наличие смартфона, но и то, как с ним работают. Существенная доля обладателей устройств на Android пользуется ими как обычными телефонами: SMS, звонки — и все. Они не активируют устройство в Google Play, не скачивают приложения.
Чем пользуются
Не все люди обзавелись телефонами в 2012 году, поэтому реальное распределение сил среди мобильных операционных систем демонстрирует наша внутренняя статистика. В эту статистику входят Россия и страны СНГ: Украина, Белоруссия, Казахстан, Узбекистан.
- 73,5% – это Java-телефоны
- Android-устройства находятся на втором месте с 11,6%
- Наследие компании Nokia, Symbian, совсем немного отстает от Android с 11%
- Яблочной продукцией обладают 3,5% пользователей рунета
- Самые внимательные увидят на диаграмме Microsoft с Windows Phone ( менее 1%)
Установка приложений
При выборе платформы, под которую будет разрабатываться приложение, важно знать статистику по уже существующим приложениям. Графики исследовательской компании App Annie от сентября 2012 года показывают, как растут два конкурирующих магазина Apple и Google.
По количеству скачиваний на первом месте Google Play: больше устройств, больше скачиваний, больше трафика и рост при этом +66% по сравнению с январем 2012 года. Рост iOS оказался в два раза меньше, порядка 30%. Но главный график – какую выручку приносят пользователи. И здесь ситуация в корне иная. Проще зарабатывать на iOS, но деньги есть и в Google Play, если уметь их забирать.
Типы мобильных приложений
На практике можно разделить приложения для мобильных устройств на три типа.
Мобильные сайты, веб-приложения
Это самый распространенный тип приложений для мобильных устройств. Современные смартфоны в состоянии отобразить обычный сайт. Им доступно все то, что мы привыкли видеть в десктопных приложениях — поддержка HTML5 делает свое дело. Помните, что веб-приложения отлично подходят для стартапа: именно они позволяют получить большой результат за маленькие деньги и за небольшой срок. Еще один плюс мобильного сайта по сравнению с другими мобильными приложениями – это кроссплатформенность. Однако есть и минус, притом весомый: с ними достаточно сложно заработать.
Гибридные приложения
При таком подходе вы получаете доступ ко всем плюсам API операционной системы: приложение обрастает push-уведомлениями и другими приятными плюшками, кроме того, теперь ваш продукт можно размещать в сторах. При этом основной контент все еще представляет собой платформонезависимую страничку с версткой, размещенную на сервере. Это позволяет вносить косметические изменения в продукт без выпуска новой версии: достаточно залить изменения на сервер. Гибридные приложения – отличное решение для тех, кто начинает бизнес или хочет проверить свою идею, показать ее инвестору, друзьям.
Нативные приложения
Этот вид приложений самый ресурсоемкий, но вместе с этим он позволяет по максимуму использовать возможности, предлагаемые каждой конкретной операционной системой. Как следствие, нативные приложения выигрывают как по функционалу, так и по скорости работы у других типов мобильных приложений. Именно к такому подходу сейчас приходят те компании, которые делали комбинированные приложения. Например, Facebook начинала с комбинированного приложения: нативные контролы (переключатели, вкладки и так далее) и веб-страница в качестве контента. Несмотря на то, что это неплохое решение, проблемы с производительностью приводят к тому, что разработчики отходят от комбинации с вебом.
Статистика
Приведу статистику скачиваний на примере наших мессенджеров.
Во-первых, у нас есть приложение ICQ, которое постоянно развивается: среди последних изменений стоит отметить аудиозвонки. Второй мессенджер Mail.Ru Group – Агент. В Агенте реализован примерно тот же функционал, и, хотя у него была немного другая история развития, мы выпускаем версии практически под все платформы и его можно найти в любом сторе.
Основная разница между двумя этими приложениями – это их аудитория. ICQ – это международный продукт. Программа скачивается не только в России, им активно пользуются жители Европы, Латинской Америки. Агент же изначально делался в России и для русскоязычных пользователей.
Тем интереснее сравнить статистику скачиваний из магазинов.
Большая часть 62% иностранной аудитории идет в Google Play. Примерно 1/5 идет в AppStore, 14% — в Ovi Store. И уже оставшиеся 5% делят магазины для платформ Windows Phone (4%) и Samsung Bada (1%). С Агентом ситуация в корне другая: доли Google Play и Ovi примерно одинаковые. Ну а 10% AppStore наглядно демонстрируют любовь к «яблочной» продукции в нашей стране.
Процесс создания мобильного приложения
Итак, перейдем к самому вкусному: процессу разработки мобильного приложения.
Прежде всего, необходимо определить, что и для кого мы пишем. Ответы на эти вопросы оформляются в User Story. На картинке вы можете посмотреть на реальный тикет в нашем трекере. Он описывает, как существующий пользователь ICQ может войти в приложение, и какие проблемы он может встретить. На этом этапе важно проработать все возможные сценарии, чтобы не было неприятных сюрпризов на более поздних этапах разработки.
Важно понимать, что за каждым пунктом в вашем to-do листе скрывается огромный айсберг функционала. Старайтесь фрагментировать и конкретизировать задачи. Крупные хотелки лучше всего разделить на несколько этапов (релизов в стор). Однако это тема отдельной дискусии, вернемся к этапам создания приложения.
Проектирование и дизайн
После составления User Story начинается проектирование и разработка дизайна.
На этом этапе мы используем прототипы, которые мы вешаем на доску и стрелочками показываем, как будет происходит навигация.
При разработке дизайна обязательно используются гайдлайны.
Гайдлайн в общем понимании – это документ, который выпускает компания, и по которому дизайнеры и разработчики понимают принцип построения взаимодействия приложения с пользователем. Условно говоря, для iOS кнопки надо делать круглыми, а для Windows Phone – квадратными. Однако мы используем и внутренние гайдлайны для разработчиков. Таким образом результат работы дизайнера чаще всего состоит из макетов, гайдлайнов и нарезки графики.
Макеты лучше всего подавать «перелинкованными», например с помощью ProtoTypr, чтобы была понятна логика переходов. Гайдлайны содержат в себе информацию об отступах, размерах, визуальных эффектах, механике анимации и пр. Этот этап можно пропустить, если в вашем проекте один дизайнер и один разработчик, сидящие рядом друг с другом. Третья часть результата — нарезка графики — должна содержать минимум необходимых графических ресурсов (заботимся о весе приложения), иметь версии для разных разрешений экранов. Чаще всего мы рисуем для ретины и xhdpi-экранов. Далее идет подготовка для неретины и mdpi автоматизированными средствами (если допустимо их использование). Чаще всего руками приходится готовить hdpi-ресурсы.
Передача в разработку. Обсуждение и необходимые правки описания
После получения макетов, гайдлайна и нарезки, начинается работа разработчика. Мы передаем в разработку все то, что придумали, и ожидаем ранний результат. Это не значит, что работа над архитектурой и пользовательским интерфейсом закончена. Иногда у разработчиков появляются интересные идеи, которые вносят коррективы в изначальный план. Когда разработка завершена, наступает стадия тестирования.
Тестирование
Существует немалое количество способов протестировать приложение.
В мобильной разработке тестировщик – это человек, вокруг которого одни телефоны. У нас есть огромный шкаф, в котором лежат как старые телефоны, так и самые свежие новинки. Внутри мы стараемся тестировать по тест-кейсам. Если внедряется новая фича, по ее описанию составляется тест-план.
Существуют сервисы, помогающие в тестировании. Мы используем HockeyApp – приложение, позволяющее раздавать наш продукт бета-тестерам. Мы пишем в социальных сетях: «Ребята, у нас новое крутое приложение. Кто хочет попробовать?» Желающие получают билд, пользуются приложением, а сервис собирает статистику, составляет креш-репорт и отправляет все это нам.
Также есть сервисы, позволяющие протестировать приложение на разных операционных системах — например, все Android-прошивки версии 2.1 или 2.3. Вы отдаете приложение, сервис скриншотит весь путь, который вы задали, присылает картинки вам на почту, и вы проверяете, все ли в порядке.
Итак, вы разработали, протестировали приложение, залили его в стор. Для отслеживания статистики скачиваний можно использовать сервис Distimo. Он показывает статистику по пользователям, которые приходят в стор, чтобы скачать приложения, и агрегирует комментарии.
Важно понимать, что люди более склонны оставлять негативные комментарии. Если у человека все хорошо, он чаще всего просто пользуется приложением, не комментируя. При стабильной работе наших приложений мы получаем 40-50 комментариев ежедневно. В день ошибки количество записей может доходить до 400 на одной платформе. Поэтому имейте в виду, что комментарии – это не полная оценка вашей работы, скорее еще один баг-трекер.
Изменить ситуацию может довольно распространенных «хак» — окно Rate Us. С предложением оставить положительный комментарий в сторе, а в случае проблем написать разработчику. Эффект достаточно сильный, главное — правильно продумать алгоритм показывания диалога юзеру.
Помимо комментариев Distimo показывает количество скачиваний, заработанные деньги, а также откуда скачивают ваши приложения.
Еще один интересный мониторинговый сервис – Flurry. Он помогает собирать клиентскую статистику. Flurry предоставляет отчет о том, что делает пользователь в вашем приложении: сколько раз он нажал на кнопку, сколько раз возвращался в приложение и более общие параметры — аудитория, география, пол, возраст и пр.
В некоторых мобильных продуктах мы также используем подсчет клиентской статистики с помощью Google Analytics. Разницы при сравнении с Flurry нет практически никакой. Минусы в скорости работы и обработки логов есть в обоих случаях, однако, если вы привыкли работать с гугловским интерфейсом, можете использовать этот инструмент.
Несмотря на большое количество сторонних сервисов, у нас есть собственная статистика. Какими бы хорошими не были внешние источники, их нужно проверять. Мы способны сами оценивать статистику, но для этого необходимо строить инфраструктуру для генерации отчетов, еженедельной отправки отчетов по email и других вещей, упрощающих жизнь. Поэтому нам проще использовать такие сервисы, как Flurry и Distimo, а к внутренним логам обращаться при возникновении вопросов. Наша практика показывает, что такой подход оправдан: периодически наши данные и данные сервисов несколько разнятся. Если вы склонны проверять статистику, используйте разные источники.
Специфика
Что нужно помнить?
- На каждой новой платформе пользователь ожидает увидеть богатое приложение. Он рассуждает следующим образом: «Я сидел на плохом Java-телефоне, при этом мог пользоваться аськой. Я купил новый телефон, захожу в Marketplace, а там нет ICQ? Вы чем там занимаетесь?» Пользователь не принимает в расчет того, что вам приходится делать приложение с нуля. Новая платформа – это новые девайсы, новая документация, новые ресурсы.
- Чем популярнее платформа, тем больше у вас конкурентов. На данный момент существует два стора, на примере которых это отлично видно: AppStore и Google Play. Если у вас есть идея приложения, которое легко монетизируется или просто получит много скачиваний, вбейте ключевые слова в поиске и скорее всего вы обнаружите, что такое приложение существует. Чем популярнее платформа, тем больше конкурентов. В таких случаях надо тщательно изучать аналоги, смотреть статистику, пытаться понять, по каким параметрам существующие решения можно превзойти.
- Важно понимать, как пользователи выбирают приложения. Изначально человек не собирается покупать конкретное приложение, он просто смотрит список. Например, по запросу «бесплатная музыка». Иконка и первые две строчки описания – это то, что человек видит и оценивает в первую очередь. Если иконка приличная, можно покупать; соответственно, плохая иконка уменьшает количество скачиваний.
- Очень важно попасть в топ магазина приложений. Попасть в топ стора – очень хорошо, закрепиться там – залог успеха. Зачем это нужно? Когда пользователь хочет что-нибудь скачать, он заходит в чарт и видит, какое приложение сейчас на первом месте по числу скачиваний. Очень важно туда попасть, потому что это своего рода замкнутый круг. Приложение попадает в чарт, его видят пользователи, они его скачивают, оно снова попадает на первое место, и дальше итерации продолжаются. Поэтому всеми силами добывайте скачки и рейтинг: просите мам, бабушек, соседей ставить приложению пятерки. Стоит сказать, что на рынке полно решений для гарантированного вывода программы в топ. Однако органических пользователей это приносит мало, что не мешает продолжать эксперименты.
- Помните, что время публикации может доходить до нескольких недель. Допустим, вы разработали и протестировали приложение, обзвонили всех блоггеров или СМИ и сказали: «У меня новое приложение, приходите на пресс-конференцию». Вы его отправляете в AppStore и вынуждены ждать семь рабочих дней в России. В этом случае Google Play – рай для оперативных обновлений, где публикация занимает несколько часов.
- Фрагментация операционной системы. Если вы разрабатываете приложения под Android, учитывайте фрагментацию и существование целого зоопарка устройств. Это сказывается на времени разработки на всех этапах: проектирование, дизайн, разработка и особенно тестирование.
- В сторе невозможно общаться с пользователями. Например, пользователь пишет, что у него в ICQ не ходят сообщения. Он недоволен и выражается очень красочно, но не очень информативно. У нас нет возможности с ним связаться и узнать о проблеме подробнее. Все, что мы можем сделать – залезть в мониторинг и посмотреть, ходят ли у нас сообщения. Может быть, его заблочил антиспам.
- Сейчас некоторые сторы обзаводятся админкой, в которой можно задать вопросы пользователю, выяснить его контактные данные, посмотреть, в каких странах скачивают ваше приложение, но пока ситуация не слишком улучшилась. Стоит отметить, что Google Play продолжает добавлять эту возможность некоторым разработчикам, например нашей компании она доступна.
- Время на тестирование. Существует несколько способов протестировать приложение. Можно иметь тестеров в штате – с тест-кейсами, тест-планами, которые они обязательно проходят. Кроме того, существует сервис для тестирования – вы платите за найденные баги. Вы выкладываете приложение, его тестируют 20 тысяч человек. В этом подходе, конечно, есть плюсы и минусы.
- Кадры в мобильной индустрии решают все. Хороших мобильных разработчиков сложно найти даже крупным компаниям, таким как Mail.Ru Group, Яндекс или Google. Именно поэтому мы ведем работу со стажерами — потому что иногда легче взять толкового студента и обучить его.
Заключение
Я постарался рассказать вам о базовых особенностях и подводных камнях мобильной разработки, которые встречались нам на нашем пути. Надеюсь, пост оказалась вам полезным. Если у вас остались вопросы по теме, или вы знаете что-то, что может быть полезно нам, давайте обсудим это в комментариях.