Welcome to the Android developer guides. The documents listed in the left navigation teach you how to build Android apps using APIs in the Android framework and other libraries.
If you’re brand new to Android and want to jump into code, start with the Build Your First App tutorial.
And check out these other resources to learn Android development:
- Codelabs: Short, self-paced tutorials that each cover a discrete topic. Most codelabs step you through the process of building a small app, or adding a new feature to an existing app.
- Courses: Guided training paths that teach you how to build Android apps.
Online training: If you prefer to learn online with videos, check out the Developing Android Apps with Kotlin course on Udacity (trailer embedded here), and other online courses below.
Otherwise, the following is a small selection of essential developer guides that you should be familiar with.
Essential documentation
Это универсальный план по освоению Android-профессии. С его помощью вы сможете прокачаться в Android-разработке с самого нуля до профессионального уровня и подготовиться к трудоустройству в этой сфере.
Конечно, для разработки вам понадобится компьютер. Это может быть настольный ПК, а может быть и обычный ноутбук без самых выдающихся характеристик.
Писать приложения вы можете без какого-либо Android-смартфона, используя включённый в среду разработки эмулятор (программа, имитирующая реальное Android-устройство). Но, конечно, будет гораздо лучше, если у вас будет собственный Android-смартфон, на котором вы сможете тестировать ваши приложения.
Основой мобильной разработки на сегодняшний день является Java. С изучения языка и стоит начать свой путь в Android. Прежде чем приступить к написанию мобильных приложений, будет полезно посвятить время изучению Java. На нашем сайте этой теме посвящён отдельный курс «Java для начинающих».
Для разработки приложений на Java вам понадобится среда разработки. Пожалуй, лучшим вариантом на сегодняшний день является Intellij IDEA. Это очень умная среда разработки, в которой удобно писать код благодаря функции автозаполнения кода, а также производить отладку и рефакторинг. Для обучения будет достаточно бесплатной версии. В нашем курсе мы подробно рассказываем, как настроить и начать работу с Intellij IDEA.
После того, как вы сделали первый шаг к освоению Android-профессии — начали уверенно понимать Java, можно приступать к Android-разработке. Теперь, понимая особенности языка, на котором происходит разработка, можно сконцентрироваться на особенностях мобильной разработки.
На этом этапе вы изучите основные компоненты Android-приложений и способы их взаимодействия между собой, особенности сетевого взаимодействия и основы пользовательского интерфейса. Эти темы подробно рассматриваются в самом актуальном на сегодняшний день курсе «Android для начинающих».
Здесь самое время начать создавать свои первые приложения и почувствовать уверенность в своих силах. Вся разработка приложений ведётся в единственной официально поддерживаемой среде разработки Android Studio. Именно она используется в современных руководствах и видео, в том числе и от Google. Хорошей новостью является то, что Android Studio разработана на основе Intellij IDEA, а это значит, что у вас не возникнет абсолютно никаких проблем при переходе от Java-разработки к Android. Она также доступна в бесплатном виде. В нашем курсе вы найдёте достаточно информации о начале работы с ней.
Уже смотрите на смартфон глазами разработчика, а не пользователя? Отлично — самое время переходить дальше.
После того, как освоите основы, вы будете готовы для того, чтобы изучать более сложные темы: базы данных, библиотеки, архитектурные компоненты, тестирование. Это позволит вам писать сложные и полезные приложения с хорошим кодом, которые могут стать примером для других разработчиков.
Это самое время для реализации собственных идей (с которыми вы, возможно, и пришли в мобильную разработку), итогом которых может стать готовое для публикации в Play Market приложение.
Прямым продолжением курса для начинающих разработчиков является курс «Android для продвинутых», который поможет вам сделать качественный скачок вперёд. Он появится на нашем сайте в самое ближайшее время, а здесь появится ссылка на него.
К этому моменту у вас уже будет достаточно знаний и навыков, чтобы начать строить карьеру в любимой сфере. Устраивайтесь на работу, вливайтесь в сообщества других разработчиков, участвуйте в интересных открытых проектах, показывайте свои приложения другим разработчикам, получайте конструктивную критику и делитесь опытом с коллегами.
Android-разработка — это безусловно хороший выбор для новичка в сфере IT. Здесь низкий порог вхождения, отличные перспективы развития и просто множество интересных проектов.
Не бойтесь начинать свою карьеру в области мобильной разработки, а мы вам в этом с радостью поможем. Вместе с нами вы сможете пройти весь путь мобильного разработчика — от Java и до уверенного владения Android-инструментами. Мы покажем вам на деле все преимущества Android-разработки и научим работать вас со своим смартфоном не в качестве пользователя, а в качестве продвинутого разработчика.
А для читателей нашего блога у нас есть специальный промокод на 10% скидку на курс «Профессия Android-разработчика»: BLOG10
ПОХОЖИЕ ПУБЛИКАЦИИ
- Как найти хороший онлайн-курс по Android?
- Топ-17 плагинов для Android Studio
- Почему нужно стать Android-разработчиком?
- Как перейти из QA в Android-разработку
- Как реализовать чистую архитектуру на Android?
- Используем Firebase в качестве хранилища изображений для Android-приложения
Перевод страницы /r/androiddev’s FAQ
Многие программисты хотят заняться разработкой приложений под Android. Но немногие представляют, какие шаги здесь надо предпринять. Эта подборка призвана помочь новичкам в освоении Android-разработки.
Начало работы
Новичкам в программировании поможет наша вводная статья.
Для новичков в Android Google сделал хорошее введение в Android на своём сайте. Также есть замечательный краудсорсинговый гид по Android. Кроме того, есть курс от Google на Udacity.
Если у вас возникают проблемы с Android, крайне рекомендуется сперва проверить StackOverflow. Он создан для ответов на технические вопросы и даже является официальной платформой Q&A для Android.
Статьи по Android вы всегда можете найти у нас на сайте.
FAQ
Я хочу начать разрабатывать под Android. С чего мне начать?
Первый и важнейший шаг в разработке под Android – это изучение Java и XML. Как только вы более менее познакомитесь и с тем, и с другим, изучите официальную Документацию по Android и пройдите несколько уроков, пока не почувствуете себя достаточно уверенным для создания собственных проектов. Удачи!
Нужно ли мне Android-устройство для разработки?
Вы можете писать приложения без какого-либо Android-устройства, используя включённый в поставку эмулятор (или усовершенствованный Genymotion). Однако для учёта аппаратных требований ничто не заменит тестирование на настоящем устройстве.
Какую IDE мне лучше использовать?
Идеи для приложений
Итак, у вас есть идея для приложения… Люди каждый день об этом пишут. Но перед тем, как просить помощи в реализации проекта, нужно ответить на следующие ключевые вопросы:
Каков мой бюджет?
Если вы настроены серьёзно и хотите выпустить свой продукт, вы должны подумать о своём бюджете. Даже в случае простого приложения нужно подумать о нескольких тысячах долларов. Хотя бы.
Какая у меня маркетинговая стратегия?
Вы собираетесь использовать обычное сарафанное радио или готовы платить за известность?
Какой список задач у данного проекта?
А также, какие есть ограничения? Сколько мне нужно разработчиков?
Откуда будут приходить/где будут храниться данные?
А также, как они будут использоваться? Разработана ли у меня соответствующая политика приватности?
Есть ли цель заработать денег?
Если да, как вы собрались её достигать? Через рекламу, IAP, подписки, платные приложения? Всё вышеперечисленное?
Как вы будете платить вашим разработчикам?
Есть ли у вас капитал или вы собрались платить им после того, как приложение начнём приносить доход? Часто независимые контрактники требуют часть полной стоимости авансом. Большинству разработчиков неинтересно разделение доходов, за исключением случаев, когда они сами вкладываются в приложение.
Какой будет способ тестирования?
На какой тип устройства вы собираетесь устанавливать его? Как много итераций вам нужно? Каких людей вы хотите вовлечь?
Как скоро вы хотите опубликовать приложение в магазине?
Это однозначно повлияет на конечный доход.
Будете ли вы требовать или предлагать регистрацию/интеграцию с социальными сетями?
Продумайте реализацию этой функциональности.
Какова ваша целевая аудитория?
Это нишевое приложение или оно может быть распространено повсюду?
Реализована ли уже моя идея?
Если да, как я могу улучшить её или что в ней отсутствует?
Что делать с идеями для приложений, если вы не разработчик?
Вы, возможно, ищете разработчиков в вашу команду для реализации приложения. Если у вас есть деньги и вы можете заплатить разработчику или фирме, то всё просто и понятно. Далее мы поговорим о том, что делать, если у вас недостаточно денег, чтобы платить кому-то.
Разработчик iOS (Objective-C)
Photo Lab, Москва, Одесса, можно удалённо, от 150 000 до 250 000 ₽
tproger.ru Вакансии на tproger.ru
Осознайте, что ваша идея может быть не уникальна, а разработка требует значительных усилий.
- Нарисуйте дизайн вашего приложения (внешний вид и функциональность). Он может быть грубым и нарисован на бумаге. Но он должен быть достаточно конкретным, а не размытым.
- Составьте список своих навыков, связанных с идеей.
- Составьте список того, что вы вложите в свою идею.
Поймите, что разработка требует значительных усилий. Представьте, что разработчик работает полный рабочий день (8 часов) на протяжении 2 месяцев, чтобы создать ваше приложение. И вы также работаете полный рабочий день. Что вы делаете в это время? Если ваша работа, по вашим представлениям, заканчивается раньше, то нужно пересмотреть идею. В этом сценарии разработчик выполняет большую часть работы, и вы, честно говоря, бесполезны. То, что вы можете дать после того, как приложение закончено, не имеет особого значения и не будет мотивировать разработчика заканчивать продукт.
Пересмотр вашей идеи
Если разработчик выполняет больше работы, чем вы, нужно пересмотреть идею, чтобы распределить работу более справедливо. Это даст преимущества от совместной работы. Посмотрите на ваш список навыков и подумайте, как их можно применить. Это нормально, если приложение будет отличаться от начальной задумки. Пересматривайте его до тех пор, пока количество вашей работы и работы разработчика, как минимум, не сравняются.
- Распределяйте работу настолько справедливо, насколько это возможно.
- Фокусируйтесь прежде всего на ваших навыках.
- Ваша загрузка должна примерно равняться 2 месяцам полноценной работы. Для простых приложений загрузка, конечно, может быть меньше. Вы можете попросить сообщество (например, наше) помочь в оценке трудозатрат.
В зависимости от того, какое приложение вы хотите иметь в итоге, сейчас вы можете быть или не быть готовыми. Можно представить свою идею и получить обратную связь.
- Представьте всё. Не беспокойтесь, что идею могут украсть. Поскольку теперь идея завязана на ваших навыках, а распределение работы более справедливое, разработчику выгоднее работать с вами вместо того, чтобы делать всё самому. Используйте картинки и диаграммы, где это уместно, чтобы описать идею. Не упускайте важных деталей или того, что вы считаете тайным преимуществом. Скорее всего, оно таковым не является, и замалчивание этих деталей сделает идею размытой и недостаточно убедительной.
- Что вложите вы? Очень важно это обозначить.
- Каких взаимоотношений вы ищете? Долевое участие? Будете платить разработчику? При долевом участии нужно принять факт того, что разработчик может изменять приложение, и вам нужно будет вместе работать над тем, чего вы оба хотите. Не только вы обладаете видением того, какое направление является наилучшим.
Возможно, вам надо будет пересмотреть свою идею и внести изменения. И повторить это много раз.
Не смешно? А здесь смешно: @ithumor
Автор оригинала: Aritra Roy Стать обычным Android-разработчиком легко, а вот чтобы стать успешным и выдающимся Android-разработчиком, требуется много тяжелого труда, энтузиазма, самоотдачи и настойчивости. Я не могу показать вам короткий путь к успеху, но если вы готовы приложить усилия – он ждёт вас. Чтобы помочь вам на пути становления, я собрал несколько небольших советов, исходя из своего опыта. Если вы решили стать Android-разработчиком или уже работаете в этой области какое-то время, мои советы вам пригодятся. Переведено в Alconost
1. Узнайте получше функционал фреймворков для разработки приложений под Android
И я не говорю о чтении документации, речь идет о фактическом коде фреймворка. Я знаю немало разработчиков, которые не потрудились «нырнуть» поглубже во внутренности фреймворков. Не будьте такими. Это невероятно, как много можно узнать, когда вы понимаете, как реально работают вещи, как складываются воедино детали мозаики. Если вам нужно закончить вашу игру для Android, прекратите игнорировать функционал SDK, сделайте его своим помощником.
2. Хватит бояться упустить что-то
Android как платформа необъятна. Вы не сможете изучить ее полностью за месяц или даже за три. Чем больше вы учитесь, тем больше вы понимаете, что вы ее не знаете. Для новичка на стадии глубокого невежества нормально опасаться, что он упустит какую-то существенную информацию при разработке, но тем не менее преодолевайте свои страхи. Сначала изучайте вещи, действительно необходимые для приложения, которое вы на настоящий момент разрабатываете, а потом постепенно расширяйте свои горизонты.
3. Читайте как можно больше кода
Большинство разработчиков не утруждают себя изучением кода, написанного другими разработчиками. В итоге они просто тратят свое время на написание того, что они и так уже знают. Это никак не поможет вам вырасти как Android-разработчику. Единственный способ действительно улучшить свои навыки – это читать качественно написанный код более опытных товарищей. Просматривайте программы и библиотеки с открытым исходным кодом, именно там вы обнаружите новые техники программирования и реализации функционала, о которых вы раньше даже и не подозревали. Совет:вот хороший ресурс, на котором можно найти лучшие приложения с открытым кодом, для начала.
4. Подумайте об изучении дополнительных языков
Я, конечно, не имею ввиду китайский или испанский. Я предлагаю изучить несколько новых языков программирования. Держите себя в курсе того, что происходит в сфере вашей деятельности. Не ограничивайте свой кругозор до программирования под Android. Это откроет для вас перспективы, вдохновит на новые идеи, поможет существенно улучшить навыки программирования под Android. Настройтесь на изучение одного нового языка программирования в год. Совет: Здесь можно начать (если вдруг вы этого еще не знаете): JavaScript.
5. Пора изучить шаблоны проектирования Java
Я не могу не отметить, насколько важным это может оказаться для вашей карьеры Android-разработчика. Каждый раз, когда вы пытаетесь решить критическую проблему в программировании, шаблоны проектирования будут вашим спасением. А еще вам нужно быть на одной волне с другими разработчиками: когда они будут обсуждать шаблоны Factory, Decorator или Facade, вы будете понимать, о чем идет речь. Дайте себе обещание, что будете изучать по одному шаблону каждую неделю, до тех пор, пока вы не будете знать большинство их них. Совет: Вот хороший ресурс для освоения шаблонов проектирования Java. Если вы хотите еще больше информации, обязательно прочтите эту книгу.
6. Участвуйте в разработке проектов с открытым кодом
Если вы разработали библиотеку, плагин или другую полезную часть кода и используете ее в собственном приложении, подумайте о переходе на открытый исходный код. Участвуя в разработке совместного или собственного проекта с открытым исходным кодом, можно многому научиться. Считайте это экспресс-курсом open-source программирования, который значительно увеличит вашу стоимость как разработчика. Если вам нечего переводить в открытый код, проверьте другие open-source проекты, которые вас заинтересуют. Исправьте ошибки, улучшите документацию, напишите несколько тестов для них. Даже самый небольшой вклад (такой, как исправление грамматических ошибок в документах) поможет лидеру проекта поддерживать его в рабочем состоянии.
7. Пусть ваша IDE работает на вас
Потратьте больше времени на то, чтобы понять интегрированную среду разработки (IDE), которую вы используете: Android Studio. Ее возможности шире, чем вы можете себе представить. Она предлагает крутой функционал, который многие разработчики не исследуют досконально. Возьмите себе за правило открывать новые и лучшие способы использования ваших инструментов. Это улучшит организацию рабочего процесса и повысит вашу продуктивность.
8. Пора структурировать приложение правильно
В основном весь наш написанный код целиком выгружается в Activities или Fragments (я тоже этим грешу), превращаясь постепенно во «всемогущий объект», который практически невозможно поддерживать и тестировать. Важно подобрать правильный шаблон при проектировании архитектуры вашего приложения, например MVP (Model-View-Presenter – Модель-Представление-Представитель) или MVVM (Model-View-ViewModel – Модель-Представление-Модель Представления). Разделите логику функционирования приложения, взаимодействие представлений, взаимодействие данных в различные слои, чтобы было проще управлять ими и тестировать их. Совет: Обратите внимание на эти полезные макеты от Google: они упростят вашу жизнь при проектировании приложений.
9. Изучите стандарты чистого программирования под Android
Этот пункт тоже не стоит игнорировать, так как тяжело поддерживать стандартные принципы кодирования под Android, работая с программистами, которые не пишут чистый код. Это же не запуск межконтинентальной баллистической ракеты, требуется всего лишь несколько часов, чтобы изучить основы программирования под Android. Совет: Вот здесь можно начать изучение.
10. Изучите передовой опыт программирования под Android
Чтобы становиться лучше других разработчиков, чтобы ваши приложения выглядели и работали лучше, изучайте передовой опыт программирования под Android. Изучите, что стоит делать, а чего избегать, чтобы стать лучшим разработчиком и чтобы ваше приложение выделялось среди остальных. Совет: Тут вы найдете ряд наработок, который поможет вам создавать лучшие приложения.
11. Используйте свободное время эффективно – слушайте подкасты
Попробуйте использовать ваше время с пользой. Когда вы едете в общественном транспорте, занимаетесь в тренажерном зале, управляете машиной, готовите, ваш гениальный мозг не очень-то и занят. Добавляйте в свою жизнь многозадачность – слушайте подкасты по Android. Совет: Начните с Fragmented Podcasts и Android Developers Backstage.
12. Не усложняйте. Будьте реалистами.
Это происходило не только со мной, но и с некоторыми моими друзьями-разработчиками. Конечно, будет правильно сначала подумать, перед тем как начать работу над чем-то (очень правильно, вообще-то). Но не перемудрите, это приведет к путанице, пропущенным срокам и фрустрации. Делайте то, что, по вашему мнению, необходимо для проекта прямо сейчас. Вы всегда сможете внести необходимые изменения впоследствии, если это потребуется.
13. Узнайте что-нибудь про дизайн
Я понимаю, что главное для программиста – научиться писать хороший код. Но если вы хотите стать полноценным разработчиком, стоит также уделять время изучению и пониманию пользовательского интерфейса (UI) и пользовательского опыта (UX). Эти знания изменят ваш взгляд на приложения, которые вы создаете. Старайтесь чаще общаться с UI и UX дизайнерами вашей команды, чтобы иметь лучшее представление о дизайне приложения.
14. Станьте перфекционистом
«Идеал» – понятие субъективное, но возьмите за правило всегда стремиться к лучшей возможной версии продукта, над которым вы работаете. Никогда не останавливайтесь на меньшем. Не делайте ничего «на отстань». Работайте с энтузиазмом, делайте больше чем можете. Благодаря такому подходу вы будете постоянно расти над собой и в конце концов станете успешным разработчиком.
15. Постоянство – ключ к успеху
Если вы хотите стать успешным в программировании (или в чем угодно еще в жизни), вам нужно быть последовательным. Если вы будете делать что-то несколько дней или недель, а потом бросать свое начинание, вас это никуда не приведет. Не будьте легкомысленным. Определитесь, где вы хотите быть разработчиком Android через несколько лет, и следуйте своей цели, несмотря на все препятствия. Новое дело начинать легко, тяжело поддерживать интерес и энтузиазм к нему на протяжении длительного времени.
16. Начинайте с малого и постепенно расширяйтесь.
Вам стоит всегда разбивать любую сложную проблему или задачу на несколько маленьких, простых и независимых частей, которые можно легко понять и быстро разрешить. Не надо пугаться объемов или сложности проекта. Все проблемы можно решить, если вы идете правильным путем. Начинайте с малого, продвигайтесь понемногу, а затем постепенно расширяйтесь.
17. Всегда имейте под рукой площадку для проверки кода
Наличие инструментов для проверки кода может полностью изменить ваш процесс обучения. Если вы столкнулись с чем-то новым в Android, возьмите за правило всегда проверять это с помощью площадок для проверки кода. Представьте, что вы случайно нашли интересную Android библиотеку. Вместо того, чтобы просто пробежаться по документам и API, протестируйте ее. Это даст вам возможность изучить указанную библиотеку лучше.
18. Пишите больше тестов
Это очень важно. Вы не можете считать, что работа над функционалом программы завершена, пока вы не подготовили исчерпывающий тест для нее. Тесты помогут вам обрести уверенность в отношении вашего кода. Не делайте ошибки: пренебрежительное отношение к тестированию впоследствии причинит массу неприятностей в виде регрессионных ошибок, например.
19. Переходите на разработку через тестирование (TDD)
Разрабатывайте приложение сразу надежным и эффективным, способным выдержать проверку временем. Следуйте принципу «красный/зеленый/рефакторинг» при разработке через тестирование (TDD). Сначала напишите тест, который не будет пройден (красный), потом напишите код, который пройдет тест (зеленый), и в итоге исправляйте и оптимизируйте код (рефакторинг).
«Разработка через тестирование — это способ управлять собственным страхом при программировании. Страх делает вас нерешительным и менее коммуникабельным. Страх заставляет вас избегать обратной связи. Из-за страха вы становитесь угрюмым». — TDD by Example
20. Настройте хороший механизм для автоматизации релиза
Как разработчик, старайтесь тратить как можно меньше времени на вещи, которые можно автоматизировать, такие как проверка качества приложения и релиз. Автоматизировать проверку качества вашего кода можно при помощи таких инструментов, как CheckStyle, PMD, Lint и FindBugs. Прохождение всех модульных и инструментальных тестов является обязательным до интеграции любых существенных изменений в ваше приложение. После того, как все проверки пройдены, вы можете публиковать ваш APK в Play Store или распространять его любым иным образом.Совет: Изучите возможность автоматизировать публикацию приложения в Play Store посредством этого open-source инструментария.
21. Развивайте навык реактивного программирования
Если вы хотите улучшить навыки программирования под Android, вам однозначно стоит попробовать реактивное программирование. Это поможет вам думать в другой плоскости при разработке приложений. Используя данный подход, вы сможете разрабатывать интерактивные приложения быстрее, а это сделает вашу жизнь проще. Совет:Тут можно найти хороший материал по RxJava для Android.
22. Привыкайте использовать Kotlin для программирования под Android
С тех пор, как Google анонсировал анонсировал первоклассную поддержку для языка программирования Kotlin на конференции Google I/O 2017, интерес к нему резко возрос. Этот язык программирования — как глоток свежего воздуха в мире программирования под Android. Это шикарная новость для Android-разработчиков, которым надоело программировать на старых, перегруженных и полных ошибок Java-приложениях. Дайте ему шанс, возможно, именно Kotlin вдохновит вас на новые свершения. Совет: Оцените это шикарное руководство по Kotlin.
23. Посещайте митапы, больше общайтесь с другими разработчиками
Мы, разработчики, обычно интроверты. Любим сидеть тихонечко в уголке со своим компьютером, погруженные в собственный мир. Выходите из своей зоны комфорта и общайтесь с другими программистами. Многому можно научиться во время митапов по разработке, на вечеринках или просто общаясь с людьми со схожими интересами. Совет: Зайдите на meetup.com, чтобы найти интересные вам митапы.
24. Изучите «горячие клавиши»
Практически для любой операции, которую вы хотели бы выполнить в Android Studio, есть «горячие клавиши». Если вы выучите их, это существенно сократит временные затраты на разработку и повысит вашу продуктивность. Вам потребуется какое-то время, чтобы запомнить сочетания клавиш, но в отдаленной перспективе это позволит перейти на работу без мышки. Совет: Если вы не хотите запоминать «горячие клавиши» по старинке, тут можно найти замечательный плагин, который поможет вам в этом.
25. Старайтесь узнавать как минимум одну новую вещь об Android каждую неделю
В необъятном мире Android есть множество вещей, которым предстоит научиться, которые нужно понять и которые просто могут раздавить вас, при первом приближении. Но все станет намного проще, если вы дадите себе обещание изучать хотя бы одну вещь об Android еженедельно. Составьте перечень вещей, которые вы еще не знаете, распределите приоритеты и начинайте прорабатывать каждый пункт. Через пару месяцев вы оглянетесь и удивитесь, насколько далеко вы продвинулись.
26. Автоматизируйте все, что «съедает» ваше время
Мы, инженеры, ленивы от рождения, мы всегда пытаемся найти легкий способ выполнить скучную работу. Так что если вы вынуждены по несколько раз за день выполнять повторяющуюся и неинтересную работу – автоматизируйте ее. Это сохранит много времени, которое можно посвятить более полезным делам. Совет: Обратите внимание на Zapier – качественный сервис, который позволит вам объединить и автоматизировать некоторые ваши инструменты, которые вы используете ежедневно.
27. Запускайте две версии Android Studio одновременно
Наиболее важные ежедневные операции совершайте в стабильной версии Android Studio. Но не стоит упускать возможности самых свежих бета-версий Android Studio. Иногда в этих последних версиях есть новые интересные возможности, которые вы не захотите упустить.
28. Периодически пересматривайте чужие библиотеки
Все мы любим использовать библиотеки, и это прекрасно, когда мы нуждаемся в них. Но возьмите за правило время от времени пересматривать чужие библиотеки, которые вы используете и избавляться от тех, которые вам больше не нужны. Если вы используете лишь маленькую часть определенной библиотеки, лучше извлечь эту часть, вместо того, чтобы сохранять ее целиком. Подобные проверки также позволят вам своевременно обновлять необходимые вам библиотеки.
29. Найдите лучшие способы рефакторинга старых кодовых баз.
Не делайте ошибки и не занимайтесь рефакторингом всех предыдущих версий кодовых баз одновременно. Таким образом вы загоните себя в ловушку, из которой не сможете выбраться. Вместо этого осуществляйте рефакторинг тех частей кодовой базы, которые вам нужны для работы прямо сейчас, а потом постепенно расширяйте его на остальные части, когда это станет необходимо. И еще пишите тесты для экранов, которые вы хотите подвергнуть рефакторингу, до того как трогать код, который по вашему мнению может нарушить существующую функциональность. Совет:Эта книга полностью изменила мой взгляд на работу с унаследованным кодом. Однозначно прочтите ее.
30. Всегда тестируйте приложения на устройствах с низкой производительностью
Если вы хотите создать приложение как настоящий профи, ни за что не тестируйте его на высокопроизводительных девайсах. Обычно разработчики предпочитают приобретать флагманы и писать код для них. Однозначно стоит избегать такого подхода. Приобретите самые дешевые и низкопроизводительные девайсы, которые вы только сможете найти, и заведите привычку разрабатывать приложения только для них. Вы начнете замечать множество недостатков вашего приложения, о которых раньше и не догадывались. Так вы сможете подготовить ваши приложения для большей части населения Земли, которым недоступны лучшие Android-устройства.
31. Купите самый лучший компьютер, какой вы только можете себе позволить
Не делайте ошибки, приобретая дешевый ноутбук, это будет уничтожать ваш опыт разработки ежедневно (прим. редактора: мы как раз перевели статью о том, как выбрать лэптоп для программирования). Отдайте предпочтение Mac, а не Windows. Вы просто влюбитесь в его простоту и надежность. Если вы приобретаете MacBook, выберите вариант с самыми лучшими характеристиками. Потом вы будете бесконечно благодарны себе за это решение.
Поделитесь своими советами
Теперь, когда вы прочли и обдумали эти советы, пора воплощать их в действия. Надеюсь, мои подсказки помогут вам стать лучшим Android-разработчиком. И не забудьте поделиться своим опытом в комментариях. О переводчике Перевод статьи выполнен в Alconost. Alconost занимается локализацией приложений, игр и сайтов на 68 языков. Переводчики-носители языка, лингвистическое тестирование, облачная платформа с API, непрерывная локализация, менеджеры проектов 24/7, любые форматы строковых ресурсов, перевод технических текстов. Мы также делаем рекламные и обучающие видеоролики — для сайтов, продающие, имиджевые, рекламные, обучающие, тизеры, эксплейнеры, трейлеры для Google Play и App Store. Подробнее: https://alconost.com 107 27k 107
Хотите устроиться в качестве Junior? Есть несколько вещей, которые я от вас жду. Разумеется, требовать особенно углубленных знаний по ним я не буду, но хочу видеть, что вы заинтересованы в этой области и учитесь, совершенствуя уже имеющиеся навыки.
В Android без этого не обойтись. Данные события крайне важны для разработки приложений, которые не должны крашиться при обычном повороте экрана просто потому, что вы решили поработать с программой в постели.
На первый взгляд алгоритм кажется сложным:
Но я и не жду, что Junior Android разработчик знает все наизусть. Важно лишь, чтобы вы понимали, за что отвечают методы onCreate, onPause, onResume и onDestroy, что их вызывает и каков результат работы. В противном случае рекомендую ознакомиться с официальной документацией. Если же вы приведете пример того, как жизненный цикл может привести к утечке памяти, я буду действительно впечатлен.
Фундамент любого приложения. Существует 4 основных компонента:
- BroadcastReceiver;
- Service;
- Activity;
- Content Provider.
Каждая из этих составляющих играет важную роль в создании Android-приложений. Зачастую вам даже не придется использовать все компоненты в одном ПО (например, я за всю свою профессиональную карьеру ни разу не написал ContentProvider), но мне бы хотелось, чтобы кандидат на должность понимал их назначение и знал, где они необходимы.
Не забывайте и об идее: ваша работа должна выделяться.
Есть несколько вариантов сохранения данных в программировании на Андроид, и в каждом из них есть свои плюсы и минусы. На сайте Android Developer вы найдете полезное руководство, в котором подробно изложен принцип работы каждого типа сохранения, и я хочу видеть, что вы помните их и хотя бы в общих чертах понимаете, для чего используется тот или иной вариант.
Это большая тема, из которой можно много чего «выцепить», но будущему Junior-девелоперу достаточно знать лишь несколько вещей, которые я считаю существенными.
Базовые знания о REST обязательны, и если вы не умеете делать простые GET и POST запросы из Android-приложения, следует вернуться к базису. Почти любое приложение, которое приходит мне на ум, способно делать REST-запросы, и это является главным в выборе специалиста. Volley для Android станет отличным началом для тех, кто хочет изучить основы, вот только вы очень быстро поймете, что данный способ взаимодействия с сетью уже устарел.
Таким образом, если вы отдадите предпочтение альтернативному варианту в виде Retrofit, вы значительно увеличите свои шансы получить должность. Также есть другие варианты создания сетей на Android, однако все они довольно узконаправленные. Retrofit же необычайно прост в использовании, хорошо сочетается с гибкостью OkHttp и регулярно получает обновления в виде замечательных функций от команды Square.
Кроме того, знания о сереализации оказались бы весомым плюсом. Опыт работы с Moshi, Gson, Jackson и аналогичными библиотеками действительно важен, поскольку в 2017 году пора забыть о том, чтобы вручную вытаскивать данные из JSON.
Данная IDE преодолела большой путь, учитывая, что первый запуск был осуществлен несколько лет назад, в те времена, когда все активно юзали Eclipse. Даже в Junior-разработчике я бы хотел видеть доказательства того, что он знаком со средой программирования Android Studio. Исключительно ручной ввод данных – признак скудного опыта. К тому же, это занимает уйму времени, а потому неэффективно. Мне нравится, когда люди используют горячие клавиши для быстрого ввода. В перечне моих тем для собеседования есть и вопрос о том, какие комбинации клавиш наиболее часто использует кандидат.
Говоря простым языком, я не ожидаю от вас уровня гуру, но ориентировка в инструментарии Android Studio на должном уровне продемонстрирует ваш неподдельный интерес к работе. Знание же хотя бы нескольких комбинаций из этого перечня сделает вас особенно продуктивным, а парное программирование – максимально легким.
Ничего страшного, если вы все еще используете IntelliJ IDEA, но если вы до сих пор работаете с Eclipse… Скажем, мне было бы любопытно узнать, почему вы предпочитаете именно эту среду разработки.
Еще один важный момент. Для меня удивительно, что в наши дни некоторые кодеры работают без использования VCS. Если вы не используете Git прямо сейчас, пора начинать. И хоть изучить эту систему контроля версий непросто, результат приложенных усилий не заставит себя ждать. Да, сложно оценить все преимущества системы, если вы до этого времени работали самостоятельно. Но вы их обязательно увидите, когда в процессе разработки приложения допустите существенную ошибку и захотите вернуться к тому состоянию программы, когда она еще работала. Вам нужно просто начать, и вы непременно освоите Git.
Разумеется, существуют и другие системы контроля версий, и знание принципов их работы не менее значительно. Однако наиболее широкое распространение получила именно система Git, поэтому понимание данной VCS приоритетно.
Шаблоны проектирования не так важны, и, уверен, многие их используют, даже не догадываясь, что это и есть те самые паттерны. Но если вы знаете Builders, Singletons и Factory Methods, а также хорошо осведомлены, где их можно использовать (и даже знаете, где найти пример в Android SDK) – это огромный плюс для вашего резюме.
Даже если вы только слышали о «Банде четырех» (GoF) и «Effective Java» Джошуа Блоха, это также дополнительные баллы для вас. Кстати, говоря о баллах:
- модульное тестирование и понимание, почему тесты на Android могут быть настолько сложными;
- наличие хотя бы одной из классических книг по программированию;
- вы «играли» с другими языками, в том числе с Kotlin;
- в Play Store загружено хотя бы одно ваше приложение.
Конечно, есть и другие навыки, которые мне хотелось бы видеть в практике кандидата на такую должность, как Junior Android разработчик.
На мой взгляд, роль этой категории программистов заключается в том, чтобы выучить как можно больше и как можно быстрее для качественного вклада в разрабатываемый продукт. Грубо говоря, Junior выполняет изначально простую работу, которая постепенно погружает его все глубже и глубже в «тему», взращивает уверенность и навыки профессионального разработчика.
Сам факт, что вы читаете и черпаете новые знания о программировании – ваше преимущество, даже если вы осведомлены лишь о некоторых библиотеках, функциях, методах и общих сложностях. Надеюсь, что вы подписаны на Android Weekly , можете назвать хотя бы пару влиятельных людей в своей отрасли, следите за их блогами и учетными записями в Twitter.
И самое главное: вам должно это нравиться. Моя профессиональная деятельность включает 6 лет, а я до сих пор словно впервые волнуюсь, когда вижу обновление от команды Android. И всякий раз устанавливаю далеко не идеальную альфу, чтобы просто поковыряться в ней и узнать обо всех плюсах обновления.
Android – это новое слово в современном мире, и я просто счастлив, что могу участвовать в развитии данной отрасли. Если вы также в этом заинтересованы и можете поставить немало галочек напротив перечисленных мною пунктов – будьте уверены, любой адекватный работодатель будет рад взять вас на такую должность, как Junior Android разработчик.
- https://developer.android.com/guide
- https://devcolibri.com/android-developer-way/
- https://tproger.ru/translations/how-to-start-android/
- https://m.habr.com/ru/company/alconost/blog/336204/
- https://proglib.io/p/android-developer/