Как начать разрабатывать под Android

android_3

Многие программисты хотят заняться разработкой приложений под Android. Но немногие представляют, какие шаги здесь надо предпринять. Если заниматься этим серьёзно, то написание программ под Android – это не просто создание небольших игрушек и утилит. Это серьёзный трудозатратный процесс. А если вы хотите собрать команду, то вам ещё надо грамотно представить свою идею сообществу. Обо всех этих и других вопросах речь пойдёт в данной статье.

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

Помогите, я новичок в программировании!

Приложения под Android написаны в основном на Java. Если вы учитесь самостоятельно, то есть хороший список обучающих ресурсов по Java для новичков.

Помогите! Я новичок в Android!

Google сделал хорошее введение в Android на своём сайте. Также есть замечательный краудсорсинговый гид по Android.

Помогите! У меня проблемы с Android!

Перед тем, как задать вопрос по Android, крайне рекомендуется сперва проверить StackOverflow. StackOverflow создан для ответов на технические вопросы и даже является официальной платформой Q&A для Android.

Подскажите хорошие ресурсы по обучению Android.

Прочитайте хороший пост, посвящённый ресурсам по Android.

FAQ

Я хочу начать разрабатывать под Android. С чего мне начать?

Первый и важнейший шаг в разработке под Android – это изучение Java и XML. Как только вы более менее познакомитесь и с тем, и с другим, изучите официальную Документацию по Android и пройдите несколько уроков, пока не почувствуете себя достаточно уверенным для создания собственных проектов. Удачи!

Нужно ли мне Android-устройство для разработки?

Вы можете писать приложения без какого-либо Android-устройства, используя включённый в поставку эмулятор (или усовершенствованный Genymotion). Однако для учёта аппаратных требований ничто не заменит тестирование на настоящем устройстве.

Какой IDE мне лучше использовать?

  • Eclipse был основным IDE для разработки под Android на протяжении многих лет, поэтому большинство уроков, ресурсов, видео и скриншотов сделаны на нём. Новичку будет проще использовать Eclipse, потому что большинство примеров используют его.
  • Android Studio – будущее всех IDE под Android. Если вы не сильно зависите от уроков (или вам легко переводить особенности Eclipse в Android Studio), тогда вам лучше начать с него.
  • IntelliJ IDEA был альтернативой Eclipse, но в настоящее время разумнее начать с Android Studio. Android Studio – это ответвление IntelliJ IDEA, так что вы получите все её преимущества плюс бонусы под Android.

Ресурсы

Здесь представлены основные ресурсы по обучению разработке под Android на английском языке. Это далеко не полный список, но достаточный для старта.

Идеи для приложений

Итак, у вас есть идея для приложения… Люди каждый день об этом пишут. Но перед тем, как просить помощи в реализации проекта, нужно ответить на следующие ключевые вопросы:

Каков мой бюджет?

Если вы настроены серьёзно и хотите выпустить свой продукт, вы должны подумать о своём бюджете. Даже в случае простого приложения, нужно подумать о нескольких тысячах долларах. Хотя бы.

Какая у меня маркетинговая стратегия?

Вы собираетесь использовать обычное сарафанное радио или готовы платить за известность?

Какой скоп задач у данного проекта? Какие есть ограничения? Сколько мне нужно разработчиков?

Откуда будут приходить/где будут храниться данные? Как они будут использоваться? Разработана ли у меня соответствующая политика приватности?

Есть ли цель заработать денег? Если да, как вы собрались её достигать? Через рекламу, IAP, подписки, платные приложения? Всё вышеперечисленное?

Как вы будете платить вашим разработчикам? Есть ли у вас капитал или вы собрались платить им после того, как приложение начнём приносить доход?

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

Какой способ тестирования ему нужен? На какой вид устройства вы собираетесь устанавливать его? Как много итераций вам нужно? Каких людей вы хотите вовлечь?

Каковы сроки? Как скоро вы хотите опубликовать приложение в магазине?

Это однозначно повлияет на конечный доход.

Будете ли вы требовать или предлагать регистрацию/интеграцию с социальными сетями? Как вы собираетесь реализовывать это?

Какова ваша целевая аудитория? Это нишевое приложение или оно может быть распространено повсюду?

Реализована ли уже моя идея? Если да, как я могу улучшить её или что в ней отсутствует?

Что делать с идеями для приложений, если вы не разработчик?

Вы, возможно, ищете разработчиков в вашу команду для реализации приложения. Если у вас есть деньги и вы можете заплатить разработчику или фирме, то всё просто и понятно. Далее мы поговорим о том, что делать, если у вас недостаточно денег, чтобы платить кому-то.

Осознайте, что ваша идея может быть не уникальна, а разработка требует значительных усилий.

  • Нарисуйте дизайн вашего приложения (внешний вид и функциональность). Он может быть грубым и нарисовано на бумаге. Но его не стоит делать размытым, и он должно быть достаточно конкретным.
  • Составьте список своих навыков, связанных с идеей. И список ресурсов, которые вы готовы вложить.
  • Составьте список того, что вы ВЛОЖИТЕ в свою идею.

Сейчас пришло время понять, что разработка требует значительных усилий. Представьте, что разработчик работает полный рабочий день (8 часов) на протяжении 2 месяцев, чтобы создать ваше приложение. И вы также работаете полный рабочий день. Что вы делаете в это время? Если ваша часть, по вашим представлениям, заканчивается раньше, то нужно пересмотреть идею. В этом сценарии разработчик выполняет большую часть работы, и вы, честно говоря, бесполезны. То, что вы можете дать после того, как приложение закончено, не имеет особого значения и не будет мотивировать разработчика заканчивать продукт.

Пересмотр вашей идеи

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

  • Распределяйте работу настолько справедливо, насколько это возможно.
  • Фокусируйтесь прежде всего на ваших навыках.
  • Ваша загрузка должна примерно равняться 2 месяцам полноценной работы. Для простых приложений загрузка, конечно, может быть меньше. Вы можете попросить сообщество (например, наше) помочь в оценке трудозатрат.

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

  • Представьте всё. Не беспокойтесь, что идею могут украсть. Поскольку теперь идея завязана на ваши навыки, а распределение работы более справедливое, разработчик предпочтёт работать с вами вместо того, чтобы делать всё самому. Используйте картинки и диаграммы, где это уместно, чтобы описать идею. Не упускайте важных деталей или то, что вы считаете тайным преимуществом. Скорее всего, оно таковым не является, и замалчивание этих деталей сделает идею размытой и недостаточно убедительной.
  • Что вложите вы? Очень важно это обозначить.
  • Каких взаимоотношений вы ищете? Долевое участие? Будете платить разработчику? При долевом участии нужно принять факт того, что разработчик может изменять приложение, и вам нужно будет вместе работать над тем, чего вы оба хотите. Не только вы обладаете видением того, какое направление является наилучшим.

Возможно, вам надо будет пересмотреть свою идею и внести изменения. И повторить это много раз.

Перевод страницы /r/androiddev’s FAQ.