Как стать разработчиком мобильных приложений: теория и практика
От автора: всем привет! Сегодня мы поговорим о том, как стать разработчиком мобильных приложений для Apple и Android. Количество приложений на таких сервисах, как Apple Store и Google Play растет с каждым днем. Эти приложения могут выполнять самые разные функции. Одни из них позволяют обрабатывать фотографии благодаря модным ретро-фильтрам и всевозможным эффектам. Другие помогают изучать иностранные языки, третьи — скачивать и читать электронные книги. Можно даже установить металлоискатель или строительный уровень. В общем, приложений, готовых облегчить нашу жизнь, сейчас в изобилии.
Некоторые из них можно скачать бесплатно, некоторые — нет, в любом случае, бесплатные приложения будут содержать рекламу и платный контент. Но нам в данный момент интересен несколько иной аспект. Дело в том, что на разработке мобильных приложений можно зарабатывать, и довольно неплохо.
С чего начать обучение разработке приложений для мобильных устройств?
Стать разработчиком мобильных приложений значительно легче, если вы уже имеете представление о программировании. Тогда вы можете смело пропустить этот раздел. Но, как известно, повторение — школа художника, а в нашем случае — программиста. К тому же, не исключено, что вам придется выполнить часть работы, связанную с графическим оформлением.
Если же вы не имеете представления о программировании, ничего страшного, ведь этому всегда можно научиться. Тем более, в интернете содержится много информации, посвященной изучению программирования.
В частности, это видеокурсы, которые помогли большому количеству пользователей стать программистами. Скажем так, в наши дни освоить профессию программиста стало проще, чем лет 8-10 назад. И всевозможные курсы разработчиков мобильных приложений успешно способствуют этой тенденции.
JavaScript. Быстрый старт
Изучите основы JavaScript на практическом примере по созданию веб-приложения
Узнать подробнееТем, кто хочет углубиться в сферу веб-программирования в целом и желает во всем «докопаться до сути»; тем, кому интересно программирование не только как ремесло, но и как искусство, можно посоветовать изучить HTML, CSS, JavaScript, а может быть даже jQuery, в том случае если вы хотите по-настоящему испытать себя и свой пытливый ум =)
Так ли нужен диплом?
Существует стереотип, что лучшие программисты — те, что окончили школы программирования, имеют сертификаты и дипломы, якобы подтверждающие их умения и навыки. Но это порой далеко от истины.
Как среди программистов-профессионалов, так и в среде самоучек есть люди, действительно оказавшиеся на своем месте, которые имеют склонность к программированию. Но встречаются и те, что просто считают себя мастерами своего дела, хотя, в действительности, им больше бы подошел веб-дизайн или что-то еще, больше связанное с творчеством.
И, как не странно, среди дипломированных специалистов такая картина наблюдается чаше, чем в среде тех, кто изучал программирование самостоятельно. Это объясняется тем, что тот, кто действительно желает освоить эту профессию, на самом деле учится и постоянно применяет знания на практике, а не просто посещает занятия и ждет в очереди за дипломом.
Что нужно знать разработчику мобильных приложений?
Используя современные языки программирования, которые применяются для разработки мобильных приложений под Android или iOS, вполне реально создать свое первое творение уже за месяц.
Только представьте: всего за месяц из вас получится разработчик мобильных приложений. Обучение профессии программиста, конечно, этим далеко не исчерпывается. Да, вы сможете разрабатывать какие-нибудь несложные игры и даже получать с них прибыль после монетизации.
Зайдите в Google Play или App Store: там подобных приложений большинство, особенно, среди игр. По статистике таких приложений девять из десяти. Этим и занимается среднестатистический разработчик мобильных приложений. Но с чего начать свое обучение, если вы не хотите остановиться на этом?
Для того чтобы не быть тем самым среднестатистическим разработчиком и создавать что-то действительно оригинальное, нужен качественный фундамент. Опытные программисты рекомендуют начинать обучение с computer science, структуры данных, классических алгоритмов, устройства хэш-таблиц и так далее.
Необходимо уяснить те базовые понятия, что используются в программировании, вне зависимости от языка и устройства. Здесь будет нелишним знать основы C++, несмотря на то, что многие уже считают его устаревшим. Возможно и так, но это основы основ, без которых не возникли бы Java и PHP. Полезно будет узнать о защите данных, шифровании, сетевых протоколах и о ядре Unix.
До сих пор мы говорили лишь о технической части вопроса, но для успеха этого будет недостаточно. По-настоящему качественный софт — это не только программа, которая работает без ошибок. Качественный софт подразумевает продуманный интерфейс, который был бы понятен пользователю (а не только разработчику), логику работы программы с учетом всех возможных вариантов развития событий. Обращать внимание на детали и находить интересные, нестандартные решения — это обязанность каждого разработчика.
Почувствуйте себя создателем тенденций
Как странно бы это ни выглядело на первый взгляд, но разработчику мобильных приложений следует быть не только хорошим программистом, но и проницательным маркетологом.
Важно понять, что востребовано в данный момент среди пользователей, после чего поспешить занять ту нишу, которая еще не была занята вашими конкурентами. Вам не нужно гнаться за тем, что популярно сейчас или было популярно когда-то.
Безусловно, новое — хорошо забытое старое, но успешные программисты не подстраиваются под современные тенденции. Они сами берут на себя ответственность создавать эти самые тенденции.
Кроме того, не следует забывать об изучении английского языка, ведь программные коды пишутся именно на нем. Благодаря написанию этих кодов, вы сможете выучить лишь технический английский, но для общения с англоговорящими заказчиками свои знания придется углубить. К тому же, это станет полезной практикой не только для разработки приложений.
Только если гармонично развивать в себе навыки программиста, дизайнера и маркетолога, можно добиться успеха в сфере разработки мобильных приложений.
В заключение
Когда вы обретете необходимые знания, вы можете смело предлагать свои услуги заказчикам, которых в изобилии сможете найти на биржах фриланса. Не стоит ждать того, что успех сам свалится на вас сразу после регистрации и заполнения портфолио с вашими наработками.
Вначале вам придется выполнять небольшие и несложные заказы, но, если на этом не останавливаться, со временем вы сможете разрабатывать действительно впечатляющие проекты для заказчиков не только своей страны, но и всего мира.
JavaScript. Быстрый старт
Изучите основы JavaScript на практическом примере по созданию веб-приложения
Узнать подробнееХотите узнать, что необходимо для создания сайта?
Посмотрите видео и узнайте пошаговый план по созданию сайта с нуля!
Смотреть видеоначни карьеру / e-Legion corporate blog / Habr
Привет, Хабр! Мы запускаем Академию e-Legion — онлайн-школу для мобильных разработчиков.
Всё серьёзно: 9 месяцев обучения, лекции топовых разработчиков, практические задания, тестирования, чат с преподавателями и материалы для самостоятельной работы.
Под катом — необходимые знания для старта, план обучения Android-разработчиков, знакомство с преподавателями и программа трудоустройства для выпускников Академии.
Необходимые знания для обучения
Начинаем не с нуля. Программа предназначена для начинающих разработчиков со знанием Java.
Твоё первое приложение
Научим работать с Android-платформой и покажем распространённые архитектурные подходы. Изучим популярные библиотеки, Unit- и UI-тестирование, работу с Google Play Services.
Каждый студент в процессе обучения будет создавать собственное приложение. По окончании каждого учебного блока будет выполнять задания — использовать полученные знания для работы над собственным проектом. Итогом обучения станет рабочее приложение, которое можно смело показывать работодателю или коллегам.
Программа обучения
Программа обучения рассчитана на 9 месяцев. Программа состоит из 6 блоков, каждый блок длится 6 недель. Загрузка студента — 4-6 часов в неделю.
Обучение проходит на онлайн-платформе OpenProfession. Вы можете придерживаться нашего графика или учиться в своём темпе.
Блок 1
Познакомьтесь с платформой Android, Android Studio и системой сборки — Gradle. Узнайте, что такое дебаг и логгирование. Изучите основные сущности Android-приложения и поработайте с Activity и Fragment. Познакомьтесь с элементами интерфейса — View, ViewGroup.
Блок 2
Преподаватели расскажут о работе со списками с помощью RecyclerView и покажут средства для обеспечения многопоточности в Android. Вы изучите работу с сетью с помощью Retrofit2/Okhttp3 и познакомитесь с реактивным программированием, в частности, с RxJava2. Научитесь работать с уведомлениями и Room — ORM-обёрткой над SQLite.
Блок 3
Блок 4
Рассмотрите Unit- и UI-тестирование: Mockito, PowerMock, Espresso, Robolectric. Поработаете с ORM-обёртками: Room, GreenDAO, Realm, а также с популярными библиотеками — Picasso, EventBus, ButterKnife и другими стандартами отрасли.
Блок 5
Преподаватели расскажут о Material Design Components. Научитесь работать с анимациями и создавать кастомные элементы интерфейса. Познакомитесь с кастомным LayoutManager.
Блок 6
Формат обучения
Новые знания. Каждый учебный блок содержит видеолекции и live coding-сессии.
Практика. Проверяйте свои знания, выполняя тесты и задания в учебных материалах. И конечно, применяйте новые знания в своём первом приложении.
Общение. Задавайте вопросы и получайте фидбек от преподавателей, общайтесь с другими студентами в чате.
Развитие. Преподаватели программы разработали методические материалы и составили подборку полезных ссылок, чтобы вы продолжали изучать новое даже за рамками Академии.
Преподаватели
Вы будете учиться у ведущих разработчиков e-Legion. Знакомьтесь:
Разработчики Азрет Магометов nullpex и Марат Тайчинов много лет создают мобильные продукты для разных сфер бизнеса, которыми ежедневно пользуются миллионы людей. В программе ребята рассказывают не только теорию, но и делятся лайфхаками.
Собеседование в e-Legion
Мы организовали уже 6 онлайн и оффлайн школ мобильных разработчиков в Санкт-Петербурге и Казани, выпустили 857 разработчиков и 10 из них работают у нас.
Заканчивайте обучение, получайте сертификат OpenProfession и присылайте ваше резюме HR-менеджеру e-Legion.
Го учиться
Старт программы — 5-го февраля.
Остались вопросы? Присоединяйся ко Дню открытых дверей — вебинару, где преподаватели и организаторы Академии ответят на все вопросы и подробно расскажут о процессе обучения.
50 лучших ресурсов для обучения разработке мобильных приложений
У каждого пятого жителя планеты есть смартфон, у каждого 17-го — планшет. А приложения — это посредники между человеком и электронными устройствами.
По статистике, только в США активных пользователей приложений насчитывается 224 миллиона.
Другими словами, спрос на мобильные приложения достаточно высок. Именно поэтому стоит учиться разработке. Конечно, самое сложное — выбор платформы для мобильного приложения. Ведь есть Apple и iOS, Android компании Google — со множеством устройств всевозможной конфигурации, — а также Windows Phone и уже подзабытая Blackberry. У каждой платформы свой индивидуальный язык программирования. Но фундаментальные основы всех языков мало чем отличаются.
Objective-C — это основной язык для устройств Apple (iPhone, iPad и iPod Touch). Но, наряду с Objective-C, становится популярным и Swift. Официальный язык разработки для Android — Java. Можно создавать приложения для Android в Android Native Development Kit (NDK), используя C и C++, но все же Google не рекомендует это.
Есть несколько способов разработки приложений под Windows Phone: XAML используется для интерфейсов, C# или Visual Basic — для программных аспектов.
Приложения Blackberry пишутся на нескольких языках, но, надо сказать, что сейчас платформа канадской компании не так популярна среди пользователей, как раньше.
Мы составили список ресурсов, которые помогут научиться создавать приложения.
Ресурсы для iOS (Apple)
1) iOS Dev Center
Apple предоставляет бесплатный онлайн-ресурс для всех, кто интересуется разработкой приложений под iOS. Здесь есть начальные руководства, пособия, видеоинструкции и важную документацию.
Цена: бесплатно
2) iPhone Dev Forums
Это форум разработчиков приложений для iPhone. Здесь вы найдете гиды, полезные советы, и, конечно, активное сообщество разработчиков.
Цена: бесплатно
3) Developing iOS 8 Apps with Swift
Курсы Стэнфордского университета на iTunes. На компьютере пользователя должна быть программа iTunes.
Цена: бесплатно
4) NSScreencast
Бен Шейрмен из NSScreencast учит iOS-разработке в интегрированных средах XCode и Objective-C, он использует видеоинструкции «размером в один байт». Видеосюжеты публикуются еженедельно, каждый посвящен отдельной теме iOS-разработки. Достаточное количество бесплатных уроков, но если вы хотите получить больше контента, можете оформить подписку за $9 в месяц, что предоставит вам неограниченный доступ к видеотеке сайта.
Цена: есть бесплатные видеоролики, доступ ко всей библиотеке обойдется в $9 в месяц.
5) Flatiron School iOS Development Prework
Инструкции Flatiron School — это коллекция структурированных уроков, которые идеально подходят как для новичков, так и более опытных кодеров. Среди тем уроков — основы iOS, принципы объектно-ориентированного программирования, инструменты iOS UI, кастомизация UI kit, мобильный дизайн, Map Kit и прочее.
6) Geeky Lemon XCode 6 Tutorials
Geeky Lemon предлагает руководство по работе со средой XCode, необходимой для разработки приложений под iOS. Этот портал предоставляет 3 полноценных курса.
Цена: $99
7) iPhoneDev.tv
Бывший сотрудник Apple Пол Солт составил
Цена: $69/месяц; индивидуальные курсы — от $99.
8) Avocarrot iOS Cheatsheet
Этот ресурс больше подходит для начинающих кодеров или среднего уровня, но и эксперт найдет здесь что-то полезное. Это компактная инструкция для разработчиков iOS-приложений.
Цена: бесплатно
9) NSHipster
Цена: бесплатно
10) The Ray Wenderlich Blog
По сути, этот блог — большая коллекция руководств и мануалов для iOS-разработчиков и геймеров. Больше 840 качественных уроков. Некоторый контент бесплатный, но более содержательные уроки предоставляются по подписке на сайт.
Цена: часть контента бесплатная; полная цена доступа к $19 в месяц
11) OneMonth iOS
Курс The OneMonth iOS посвящен созданию первого приложения для iPhone или iPad. В точности следуя учебному плану, вы создадите свой проект в течение месяца. Собственно, проект — это видеоприложение, в котором используется API компании Vimeo.
Цена: $49
12) CodePath iOS Development Courses for Professionals
CodePath предлагает два прекрасных курса для профессионалов. Есть iOS Bootcamp for Designers и iOS Mobile Bootcamp. Курсы проходят в Сан-Франциско.
Цена: бесплатно
13) Code Fellows iOS Development Course
Если хотите научиться разрабатывать приложения под iOS (на Objective-C и Swift с помощью таких инструментов, как Cocoa, Git XCode и UIKit), это курс для вас. Но, надо сказать, понадобится определенный опыт в области программирования, по крайней мере в том, что касается основ. Среди тем, которые изучают студенты курса, асинхронный код, MapKit, CoreImage, NSURLSession, JSON, Core Data, Source Control, AutoLayout, а также процесс отправки приложения в Apple Store.
Цена: о стоимости можно узнать на сайте codefellows.org.
14) ManiacDev iOS 5 SDK Tutorial and Guide Page
Руководства на сайте ManiacDev подойдут для
начинающих разработчиков.
15) Make School Online Academy
Курс Make School посвящен созданию первой игры. Наряду с этим, вы сможете освоить Objective- C, а также Cocos2D, прослушать лекции экспертов и многое другое. Более того, эти лекции помогут разработать клоны Flappy Bird, Angry Birds или Game of Life, либо вашу собственную игру. И главное — не требуется глубокие познания.
Цена курса: $99
16) aleisphere
Если не знаете, с чего начать, тогда это руководство, составленное опытным разработчиком, поможет создать первую игру.
Цена: бесплатно.
17) What’s on iPhone
Первое приложение, которое создается на любых курсах программирования, — пресловутое Hello World.
Данное руководство посвящено разработке именно этого приложения с использованием инструментов iOS.
18) Designthencode Motion Design for iOS Book
Designthecode’s Motion Design for iOS book расскажет о том, как использовать анимацию.
Цена: $69
19) Technobuffalo’s Introduction to iOS Development
Такое руководство по iOS-разработке нельзя назвать столь же комплексным и всеобъемлющим, как некоторые другие ресурсы из этого списка. Оно больше подойдет неофитам, все же базовая информация здесь изложена очень даже доступно.
Ресурсы для разработки приложений под Android
1) Java для Android-разработки
Цена: от $25.
2) Сообщества Android Development
Ресурсы Anddev или Android Development Community посвящены вопросам, связанным с разработкой для платформы Android. Это форум для людей, объединенных общими интересами, которые обсуждают соответствующие темы.
Цена: бесплатно.
3) Official Android Developer’s Community Portal
Вы не найдете каких-либо руководств или советов по разработке на официальном портале сообщества Android. Но в целом здесь достаточно полезной информации: публикуются новости об обновлениях ПО, новых функциональных особенностях; обсуждается важные вопросы разработки.
Цена: бесплатно.
4) Official Android Developer’s Training
Данное руководство размещено на официальном портале Android Developer’s Community. Это определенно то, на чем Android-разработчик должен сделать закладку. Такое руководство не для опытных кодеров, (в нем идет речь о том, как создать свое первое приложение).
Цена: бесплатно.
5) Tuts Plus
Если вы новичок в кодинге, тогда не будет лишним обратиться к руководству Tuts Plus по Android SDK. Это бесплатный ресурс, который расскажет, как пользоваться Android Software Development Kit. Неплохой ресурс для разработчиков со средним уровнем знаний.
Цена: бесплатно.
6) Coursera
Этот курс для новичков — прекрасное место, чтобы познакомиться с основами информатики и программирования. Вначале идет общее знакомство с предметом, затем больше конкретики о том, как использовать Java в разработке под Android.
Цена: бесплатно.
7) Udacity
Udacity — еще одна школа разработчиков. Этот курс по Android-разработке фактически составлен людьми из Google, подойдет для новичков и разработчиков среднего уровня.
Цена: $199/месяц после двухнедельного бесплатного периода
8) Vogella
Этот веб-сайт предлагает множество руководств по разработке Android-приложений, и все они бесплатные. Кодеры разного уровня подготовки найдут здесь полезную информацию. Руководства написаны доступным языком и содержат множество полезных сниппетов с кодом, а также упражнения. Есть ссылки на другие ресурсы.
Цена: бесплатно
9) Technotalkative
Это сайт известного разработчика Пареша Майани (Paresh Mayani), который специализируется в написании пособий и руководств.
Цена: бесплатно
10) Android Hive
Блог Рави Тамада, еще одного известного разработчика. Многие посты блога являются пошаговыми инструкциями по работе с инструментами. Здесь также описываются некоторые специфические функции.
Цена: бесплатно
11) Made in Android
Это еще один блог или онлайн-издание, которое предлагает советы по разработке для Android и некоторые руководства. Ресурс будет полезен для программистов любого уровня, и в особенности для тех, кто ищет подсказки относительно специфических деталей и нюансов, таких как нестандартный список listview со строкой поиска, или приложение с поддержкой Google Maps.
Цена: бесплатно.
12) Codelearn
Codelearn предлагает уникальные уроки по созданию приложения на разных языках, и непосредственно в браузере. Недавно они запустили портал, посвященный Android-разработке, на котором появляется много полезной информации.
Цена: бесплатно
13) Android Example
Android Example — блог, который освещает нишевые темы.
Цена: бесплатно.
14) Android Begin
Еще один полезный ресурс для разработчиков среднего и высокого уровня.
Цена: бесплатно.
Мобильная разработка: почему это круто и где такому учат
Хотите вы того или нет (не исключено даже, что вас это вообще не волнует), но рынок мобильных приложений растёт и ширится. Всё больше людей не представляют свою жизнь без смартфона, с помощью которого можно делать что угодно: вызывать через соответствующее приложение такси, переводить деньги, наконец, отслеживать свою дневную активность и считать калории. Это самые банальные примеры, передающие суть явления — мобильные устройства органично вошли в нашу повседневную жизнь.
Данный тренд на текущий момент выглядит довольно долгоиграющим. Попросту нет причин считать, что в ближайшей перспективе люди массово откажутся от использования смартфонов и планшетов. Соответственно, им будут нужны приложения, игры и всё такое прочее. Вот и получается, что мобильные разработчики без дела и денег сидеть точно не будут.
Сейчас, пожалуй, самый удачный момент, чтобы освоить эту профессию. Рынок бурно развивается, но ещё не перенасыщен кадрами, так что у вас есть вполне реальный шанс предложить свои услуги и получить за них достойное вознаграждение. Не умеете? Учитесь. 🙂
Где научиться
Сразу скажу, не тратьте зря время и силы, идите на курсы. Конечно, можно попробовать самостоятельно разобраться в премудростях создания приложений, но это вариант для тех, кому совсем нечем заняться. Теория без практики ничего не стоит, а применять знания на деле лучше под руководством профессионалов.
Собственно, именно профессионализм наставников и станет первым критерием в выборе школы. Образовательный портал GeekBrains собрал лучших из лучших: преподавателей ведущих вузов страны, сотрудников крупных IT-компаний — в общем, людей, которые разбираются в том, как обстоят дела в отрасли, и могут рассказать об этом другим.
Внушительная продолжительность курсов — ещё один плюс. Чтобы изучить абсолютно новое направление деятельности и вникнуть во все тонкости, потребуется около года качественной и регулярной работы.
Если кто-то обещает научить вас создавать мобильные приложения за месяц — не верьте, это невозможно по определению.
Наконец, уточните, как обстоят дела с дальнейшим трудоустройством выпускников. Предложат ли вам пройти стажировку или отправят самостоятельно искать своё место в жизни? GeekBrains даёт на выбор три варианта: работа в рамках IT-инкубатора, в одной из компаний-партнёров или под руководством специалистов образовательного портала.
Программа обучения
Модуль «Мобильный разработчик» разбит на восемь этапов: семь практических курсов и стажировка. Обучение проходит дистанционно, принимать участие в нём можно из любой точки мира. Даже если пропустите занятие — ничего страшного, в личном кабинете есть все лекции и домашние задания. Не стесняйтесь общаться с преподавателями и однокурсниками: так можно разобраться с моментами, вызывающими вопросы, и совместно найти нестандартные решения возникающих в процессе обучения проблем.
Ну так вот, семь курсов. Начинается всё с Java. Базовый курс расскажет о том, что это вообще за язык и каковы его особенности. Вы изучите объектно-ориентированное программирование и научитесь работать с графическим интерфейсом. «Java. Уровень 2» раскроет вопросы взаимодействия с платформой более подробно, а заключительные два урока вы посвятите созданию сетевого чата.
Следующий этап — Android. Здесь тоже два блока — разработка под мобильные устройства и профессиональная разработка приложений. Сначала вы познакомитесь с платформой, средой разработки и необходимыми инструментами, затем перейдёте к разработке пользовательского интерфейса и вопросам хранения данных. Продвинутый курс затрагивает работу с базой данных SQLite, методы определения местоположения, графику и анимацию, а также отладку Android-приложений.
Настоящий мобильный разработчик должен уметь создавать приложения и для Android, и для iOS. GeekBrains учит тому и другому, что очень классно.
Получается, вы одновременно приобретаете навыки, которые позволят работать сразу на двух рынках. Курс, посвящённый iOS, опять-таки разделён на две части — программирование под iPhone и iPad и профессиональную разработку приложений и игр. Вы изучите язык Objective C, попробуете поработать в среде COCOA и напишете приложение под iPhone. Заключительный этап — знакомство с языком Swift: его основными возможностями, отличиями от Objective C, разработкой игр и приложений.
Всё, обучение закончено, переходим к стажировке. Пришло время на деле показать, чему вы научились. В принципе, не так важно, какой именно вариант вы выберете: IT-инкубатор, одна из 30 компаний-партнёров образовательного портала или гарантированная всем выпускникам стажировка в GeekBrains. Главное, что за это время вы научитесь работать в условиях, максимально приближенных к реальным, сможете выполнять сложные задачи, укладываясь в рамки жёсткого дедлайна, и соберёте портфолио, которое не стыдно показать будущему работодателю.
Если же вы по-прежнему думаете, что программирование — это слишком сложно, просто попробуйте пройти бесплатный базовый курс для начинающих. Понравится — двигайтесь дальше. В конце концов, постоянное обучение и рост над собой — единственный путь к успеху, другого пока не придумали.
Стать мобильным разработчиком
Я хочу стать разработчиком мобильных приложений — что дальше? — Look At Me
Третья составляющая — маркетинг. Надо уметь чувствовать рынок, понимать, что окажется востребованным, а что будет никому не нужно. Это совсем не то же самое, что «следить за мировыми тенденциями». Есть изречение великого хоккеиста Уэйна Гретцки, которое очень любил повторять Стив Джобс: «Я мчусь туда, где шайба будет, а не туда, где она была». Вот именно это умение — понять, где на рынке есть новая ниша, которая пока никем не занята, но которую можно заполнить своей разработкой, — в сочетании с первыми двумя требованиями и приводит к успеху.
Нигде в мире нет такого места, где заплатив за курс обучения, вы сможете быть на 100% уверены, что станете успешным создателем мобильных приложений. Есть университеты, где хорошо учат computer science, и в смысле базового образования в России в некоторых местах до сих пор держат планку: МГУ им. Ломоносова, МФТИ, МГТУ им. Баумана, МЭИ и в некоторых других. Классикой жанра в части программирования (конкретно под мобильные платформы) считается курс лекций Стэнфордского университета (США). Конечно, всё то же самое можно узнать из книг и интернета, но, уверен, грамотно построенный курс позволяет достичь цели намного быстрее, спрямляя к ней путь. Но в любом случае самостоятельная работа по самосовершенствованию необходима.
Следующий вопрос — где вести разработку, где открывать свой бизнес? Этот вопрос выходит далеко за рамки обсуждения перспектив мобильной разработки ПО. В конце концов каждый решает сам, где ему жить, где и на кого работать. В эпоху глобализации границы стираются, и в IT это чувствуется, как ни в одной другой индустрии. В наши дни зачастую можно жить где угодно, и, не выходя из своего дома, работать на заказчика с другого конца света. Для независимого разработчика-одиночки, фрилансера или создателя собственных приложений в этом смысле никаких ограничений нет.
Гораздо сложнее обстоит дело, если речь идёт о создании крупной фирмы, работающей над большими проектами. Тут приходится учитывать как национальные особенности разработчиков, силами которых приходится выполнять поставленные задачи, так и общую политико-экономическую ситуацию в стране. В России много технически сильных программистов, востребованных по всему миру. Однако вопросы дисициплины, самоорганизации и самоконтроля, а также глобальные проблемы коррупции, отсутствия честной конкуренции, прозрачных рыночных отношений и многие другие приводят к тому, что успешных крупных софтверных фирм в современной России не так много. При этом количество сильных и достаточно успешных программистов-одиночек — вполне на мировом уровне.
с чего начать / Mail.ru Group corporate blog / Habr
В нашей работе мы проходим все стадии жизненного цикла создания мобильного приложения, и я бы хотел поделиться нашим опытом в этой сфере. Под катом — рассказ об основах мобильной разработки: от выбора платформы до создания, размещения в магазине и последующего мониторинга.
Тенденции
Чем пользуются владельцы мобильных телефонов?
- Больше половины (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
Прежде всего, необходимо определить, что и для кого мы пишем. Ответы на эти вопросы оформляются в 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. Именно поэтому мы ведем работу со стажерами — потому что иногда легче взять толкового студента и обучить его.
Заключение
Я постарался рассказать вам о базовых особенностях и подводных камнях мобильной разработки, которые встречались нам на нашем пути. Надеюсь, пост оказалась вам полезным. Если у вас остались вопросы по теме, или вы знаете что-то, что может быть полезно нам, давайте обсудим это в комментариях.
Бесплатная онлайн школа Android-разработчиков / Google corporate blog / Habr
Первый Android телефон T-Mobile G1 был представлен в октябре 2008, а сейчас уже насчитывается более 1 миллиарда активных пользователей платформы по всему миру. По статистике 1,5 миллионов Android-устройств активируется каждый день. Приложения и разработчики являются основной составляющей Android экосистемы, поэтому для нас задача обучения и помощи разработчикам является одной из самых приоритетных.
Сегодня компании e-Legion и Google совместно запускают первую онлайн школу мобильных Android–разработчиков.
Начиная с 2011 года компания-разработчик мобильных приложений e-Legion организовывала бесплатные оффлайн школы мобильных разработчиков. Первой стала iOS-школа, которая собрала больше 200 заявок и выпустила 12 студентов осенью 2011 года. Потом были школы мобильных разработчиков под Windows Phone и Android. С каждым анонсом на Хабре нас ждал вопрос о том, будет ли запись лекций и можно ли поучаствовать тем, кто живет не в Питере. Каждый раз мы отвечали что-то из серии «скоро все будет». И вот, наконец-то, это «скоро» наступило. Мы решили создать школу, в которую сможет поступить желающий из любого города и которую можно пройти дистанционно.
Наш новый школьный курс будет состоять из 13 лекций, посвященных Android–разработке. В записи лекций приняли участие представители таких компаний, как Тинькофф, Aviasales, JetBrains, OK.RU, Лаборатория Касперского, Parallels, LinguaLeo, Mail.ru, ABBYY. В ходе курса специалисты расскажут не только теорию разработки под Android, но и покажут различные фишки, а также поделятся оригинальными идеями, которые появлялись в процессе работы над их собственными приложениями.
Каждую неделю, начиная с 30 марта, мы будем выпускать по 1 лекции. Опубликованные лекции будут доступны для просмотра в любое время. После каждой лекции слушателям будет предложено пройти тест для закрепления материала. А по итогам всего курса вас ждет финальный тест. Ученики, успешно сдавшие финальный тест, получат сертификат от Google об окончании Android–школы.
Участие в школе бесплатное. Все, что требуется, — это зарегистрироваться на сайте школы.
Официальный хештэг школы #learndroid, пишите свои отзывы, мы будем рады их прочитать.
Увидимся на занятиях!