мобильная разработка с чего начать изучение

Разработка мобильных приложений: с чего начать

мобильная разработка с чего начать изучение

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

Тенденции

Чем пользуются владельцы мобильных телефонов?

Статистика

мобильная разработка с чего начать изучение

За 2012 год в РФ продано порядка 12,6 миллионов смартфонов: Россия считается одной из быстроразвивающихся в этом плане стран.

мобильная разработка с чего начать изучение

мобильная разработка с чего начать изучение

Если взглянуть на такой же график по всему миру, то увидим, что и тут Android в авангарде с ¾ рынка.

За второй квартал 2012 года по всему миру было продано 104 миллиона телефонов Android — как население довольно крупной страны. Но нас как мобильных разработчиков интересует не только наличие смартфона, но и то, как с ним работают. Существенная доля обладателей устройств на Android пользуется ими как обычными телефонами: SMS, звонки — и все. Они не активируют устройство в Google Play, не скачивают приложения.

Не все люди обзавелись телефонами в 2012 году, поэтому реальное распределение сил среди мобильных операционных систем демонстрирует наша внутренняя статистика. В эту статистику входят Россия и страны СНГ: Украина, Белоруссия, Казахстан, Узбекистан.

мобильная разработка с чего начать изучение

мобильная разработка с чего начать изучение

Установка приложений

При выборе платформы, под которую будет разрабатываться приложение, важно знать статистику по уже существующим приложениям. Графики исследовательской компании 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, а к внутренним логам обращаться при возникновении вопросов. Наша практика показывает, что такой подход оправдан: периодически наши данные и данные сервисов несколько разнятся. Если вы склонны проверять статистику, используйте разные источники.

Специфика
Заключение

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

Источник

С чего начать молодым разработчикам мобильных игр из России в текущих реалиях

Лирическое отступление

Всем доброго времени суток!

Сразу небольшой дисклеймер: «В этом посте вы не увидите программного кода, рассказов о простоте разработки и призывов всем заняться игродельством под заманчивой перспективой разбогатеть на своём хобби».

Хочу рассказать о том, как начала создаваться наша молодая indie студия и какие выводы мы для себя почерпнули.

Коротко о нас и как так вышло

Около полугода назад я принимал участие в жизни веб-студии. На протяжении этого времени у меня и единомышленников сложилось мнение: хватит заниматься заказной разработкой, нужно делать свой продукт. Вопрос оставался за малым — какой же продукт мы хотим делать?

Вариантов была масса, все они были тщательно проработаны и собраны небольшие бизнес планы.
Решили остановиться на области game dev. Хочу, чтобы вы понимали правильно, что в этой области действительно есть как свои огромные перспективы и шансы, так и огромные риски потерять много времени, денег, сил и при этом не получить ничего взамен. Об историях успехов и падений написано много, так что мы опустим эти моменты.

Начало работы

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

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

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

Анализ рынка и выбор платформы

На данный момент ежегодный рост рынка мобильных игр и приложений близится к 30%, при этом игры для ПК и консолей такими показателями похвастаться не могут.

Безусловным фаворитом для нас стали мобильные платформы Android и iOS. Разработка решили вести на обе платформы и руководствовались такой логикой, что выпускать продукт для рынка России и бывших стран СНГ (где преобладает Android) не на столько интересно, как для стран Европы, Азии (Китай и Япония) ну и конечно же США. Аудитория, которая пользуется выбранными платформами в этих странах разделилась практически поровну.

Выбор механики

Скажем так: топы по скачиваниям и сборам — MMO и фермы, но для молодой студии это слишком долго и дорого. На втором месте — казуалки формата 2048 и три в ряд, но ниша очень переполнена такими приложениями и занять в ней достойное место будет сложно. Дальше мы увидели, что ранеры subway surfers, temple run и им подобные имеют огромное количество скачиваний, находятся в топах по популярности но не имеют отметок по топовости сборов.

Вывод напрашивается сам за себя — не придумали как это правильно монетизировать. Мы решили попробовать. О том как разрабатывалась внутриигровая экономика я расскажу в следующем посте.

Выбор движка

Тут всё было максимально и просто. Выбрали unity3d из за относительной простоты разработки и портирования на разные устройства.

Написание концепций

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

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

Подготовка материалов

Далее были собраны кейсы успешных игр, которые отличились визуальной составляющей и атмосферой. По референсам была поставлена задача иллюстраторам и программистам.
Были сделаны первые скетчи и собран небольшой уровень без графических элементов (набор кружочков и квадратиков). Дальше работу программистов, гейм дизайнера и иллюстраторов нужно было поставить на поток и стандартизировать. Мы использовали Google docs в качестве площадки для диз.доков, Trello для таск трекинга и Telegram для корпоративного общения. Для небольшой команды использовать Jira или Bitrix24 по нашему скромному мнению не имеет смысла.

Начало разработки

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

На данный момент мы запустили наш проморолик, где рассказывается небольшая часть сценария и показан кусочек сырого геймплея, всего около 30% намеченного объема. Посмотреть его можно по ссылке.

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

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

Источник

📱 Как стать Android-разработчиком: с нуля до публикации приложения на Google Play

мобильная разработка с чего начать изучение

Егор Арефьев Aref`ev

мобильная разработка с чего начать изучение

Android-разработчик – профессия будущего. Основные тенденции в развитии мобильных технологий в ближайшие годы будут связаны со следующими направлениями:

Но какие навыки нужны, чтобы стать успешным Android-разработчиком? С чего начать?

1. Выберите язык программирования

Два основных языка программирования для разработки приложений на Android – Java и Kotlin. По факту, если вы будете заниматься разработкой серьезно, то вам не обойтись без обоих языков. Однако на конференции Google I/O 2019 было объявлено, что Kotlin является предпочтительным и официальным языком для Android. Использование Kotlin сокращает число ошибок в коде, язык легко интегрируется в существующие приложения. Чтобы освоить этот язык, вы можете воспользоваться нашей подборкой ресурсов для изучения Kotlin.

2. Выберите интерактивную среду для Android-разработки

Выбор среды разработки – дело вкуса. Однако на первом этапе целесообразнее использовать Android Studio. Последняя версия IDE 4.0 от мая 2020 года, доступна для загрузки на официальном сайте Android. О последнем релизе мы писали в нашей публикации.

3. Изучите манифест и компоненты Android-приложения

Файл манифеста содержит уникальный идентификатор приложения и описывает компоненты приложения. Пройдитесь по этому списку компонентов, вам станет понятно, что потребуется изучить:

4. Изучите основные элементы пользовательского интерфейса Android-приложения

Основные элементы пользовательского интерфейса приложения представляют собой:

Макеты экранов приложения (UI Layouts) имеют разную структуру:

5. Изучите хранилища данных Android

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

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

6. Изучите, как работает сборка Android-приложений и плагин Gradle

мобильная разработка с чего начать изучение

Система сборки Android собирает ресурсы приложения и исходный код, упаковывает их в APK-файлы. Их можно тестировать и распространять. Android Studio использует Gradle – продвинутый инструмент автоматизации и управления процессом сборки. Это позволяет определить разные настройки конфигурации для разных проектов.

7. Научитесь создавать многопоточные Android-приложения

Каждый Android-разработчик сталкивается с необходимостью использования потоков. Когда приложение запускается, оно создает основной поток выполнения. Чтобы приложение сохраняло отзывчивость, необходимо избегать использования основного потока для выполнения операций, которые приводят к его блокировке: сетевые операции, обращение к базе данных, загрузка компонентов. Такие процессы выполняются в отдельных потоках. Android предоставляет множество способов создания и управления потоками. При использовании языка Kotlin для этих задач можно использовать Coroutines.

8. Изучите методы отладки Android-приложения

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

мобильная разработка с чего начать изучениеОкно для отладки приложения в Android Studio

Отладка приложения осуществляется стандартными средствами, предоставляемыми средой разработки Android Studio.

9. Научитесь работать со сторонними библиотеками

Далеко не любую задачу можно решить с помощью стандартных средств Android. Для многих задач уже разработаны собственные решения, которыми грех не воспользоваться. Для обработки и загрузки изображений это Glide и Picasso, для внедрения зависимостей (Dependency Injection) – Dagger, Koin, Kodein и Hilt, для сетевых взаимодействий – Retrofit, для многопоточного программирования – RxJava. Не поленитесь также изучить библиотеки Google: Firebase, Google Play Services, Google Maps. Знакомство с устройством сторонних библиотек также научит вас писать более качественный код в собственных проектах.

10. Изучите Android Jetpack – набор библиотек и инструментов, ускоряющих работу Android-разработчика

Android Jetpack – это набор библиотек и инструментов, созданный командой Google для упрощения разработки под Android. Библиотеки, входящие в Jetpack, разделены на четыре вида:

11. Изучите архитектурные шаблоны проектирования

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

Распространены три шаблона проектирования:

12. Изучите методы тестирования Android-приложений

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

Тестирование дает следующие преимущества:

13. Изучите вопросы обеспечения безопасности Android-приложения

14. Изучите работу с сенсорами

Программирование – это круто, но ещё более классно использовать физические компоненты телефона: GPS, камеру, NFC, акселерометр. Работы с этими датчиками по увлекательности близка к высокоуровневому программированию микроконтроллеров – приятно видеть, как написанный тобой абстрактный алгоритм взаимодействует с внешним миром.

15. Опубликуйте приложение на Google Play. Поздравляем, вы Android-разработчик!

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

мобильная разработка с чего начать изучение

С описанным багажом знаний вы смело можете двигаться вперёд! Вопросы, рассмотренные в данной статье, помогут в создании портфолио и трудоустройстве.

В программе образовательного курса GeekBrains рассмотрены практически все вопросы данной статьи: языки программирования Java и Kotlin, основные компоненты и элементы пользовательского интерфейса Android-приложения, жизненный цикл компонентов Activity и Fragment, работа с базами данных, архитектурные шаблоны проектирования, работа со сторонними библиотеками и тестирование приложений. Также рассматриваются сопутствующие вопросы: работа с системой контроля версий Git, подготовка к собеседованию Android-разработчика, поиск работы и трудоустройство.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *