Что нужно для разработки приложений под android


Android: Подготовка к разработке

Статья проплачена кошками - всемирно известными производителями котят.

Если статья вам понравилась, то можете поддержать проект.

Вступление

Android - бесплатная операционная система, основанная на Linux с интерфейсом программирования Java.

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

Установка Android Studio

Статьи часто перерабатываются, так как некоторые вещи быстро устаревают. Но уследить за всем я не могу, поэтому в чём-то придётся разбираться самостоятельно, если встретите различия.

Важно понимать, что само приложение пишется на Java (а теперь ещё и на Kotlin), а среда разработки выбирается по вкусу. То, что можно сделать на Android Studio (или в его старшем брате IntelliJ IDEA), можно сделать и на Eclipse и в других редакторах. Хотя с 2016 официальная поддержка Eclipse прекратилась.

Скачать установочный пакет для студии можно со страницы https://developer.android.com/studio/index.html

Сама установка проблем вызвать не должна. Установочный пакет включает в себя необходимый минимум. Иногда вам необходимо запускать Android SDK Manager и проверять наличие новых версий SDK через меню Tools | Android | SDK Manager:

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

Пользователь из Болгарии написал, что в Win64 требуются права администратора при установке или обновлении. Имейте в виду. У меня на чистой системе ничего не спрашивало.

В версии студии 2.3 (может и раньше) ставится пакет OpenJDK, который является альтернативой JDK от Oracle. В настройках студии есть примечание, что OpenJDK является рекомендуемым вариантом, хотя вы можете указать путь и к стандартной JDK. В любом случае у вас будет Java 8 вне зависимости, какой вариант вы выберете.

Создание эмуляторов

Для отладки приложений используется эмулятор телефона - виртуальная машина, на которой будет запускаться наше приложение. Также можно использовать и реальное устройство.

Сейчас в момент установки студия создаёт одно устройство для эмулятора. Если это не так, вы всегда можете установить вручную. А также можете добавить и другие устройства под разные версии Android, разрешения экрана и т.д.

Чтобы создать эмулятор телефона, выбираем в меню Tools | Android | AVD Manager. При первом запуске появится диалоговое окно мастера.

Нажимаем кнопку Create a virtual device и в новом окне видим набор возможных эмуляторов, в том числе и для часов. Скачайте необходимые эмуляторы. Для начала вполне подойдёт один эмулятор.

Вводим любое понятное имя, например, Android4. Выбираем нужную версию Android, размер экрана и т.д.

При необходимости можно создать эмуляторы для каждой версии ОС и проверять программу на работоспособность. Остальные настройки можно оставить без изменений. Вы всегда можете вернуться к настройкам и отредактировать снова. Часто рекомендуют использовать опцию Use Host GPU, чтобы задействовать возможности графического процессора. Это даёт прирост скорости эмулятора. Нажимаем кнопку OK.

Добавленные эмуляторы будут храниться в менеджере эмуляторов.

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

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

Если вы всё же попались в эту ловушку, то дам ссылку по смене папки пользователя на английский: http://www.cherneenet.ru/lokalnaj_zapis.html (спасибо читателю Евгению Степанову за подсказку). Также можно подправить ini-файл и прописать путь к виртуальному устройству таким образом, чтобы в пути не встречались русские буквы (соответственно, сам файл *.avd также нужно переместить в другое место).

В зависимости от мощности компьютера нужно немного подождать, чтобы сначала загрузился эмулятор. Эмулятор от Intel загружается на порядок быстрее. Также можно использовать реальный телефон. Я обычно использую старый телефон и эмулятор для новых версий Android.

Тестируем на реальном устройстве

Окончательную версию приложения желательно проверять на настоящем устройстве. Начиная с Android 4.4, на устройстве (планшет, телефон, часы) нужно активировать режим разработчика. Для этого идём в Настройки, там открываем страницу "О телефоне" и щёлкаем семь раз на строчке с номером сборки Build number. После этого в настройках появится новый пункт Для разработчиков или что-то в этом роде, если производитель использует свою оболочку.

Открыв страницу для разработчиков, вам нужно включить отладку через USB. Также я включаю опцию Не выключать экран. Для некоторых устройств требуется установить отдельный драйвер, ищите информацию на сайте у производителей.

Работаем в режиме терминала

Студия также позволяет запускать команды командной строки в отдельном окне Terminal. Для удобства следует немного настроить систему под себя.

У меня установлена нелокализованая версия Windows, поэтому часть пунктов будут даны на английском.

Для Windows 7/8 откройте Панель управления | Система, нажмите кнопку Advanced System Settings. В новом окне нажмите кнопку Environment Variables.

Найдите переменную Path в списке System variables

Нажмите на кнопку Edit для редактирования переменной. Добавьте в конце строки точку с запятой, а затем укажите пути к папкам platform-tools и tools, которые входят в состав SDK. В моём случае получилось следующее:

;D:\Android\SDK\platform-tools;D:\Android\SDK\tools

Закройте все окна (лучше перезагрузиться). Проверьте, правильно ли всё работает. Запустите командную строку и введите команду:

echo %path%

Вы должны увидеть строку с перечислением всех путей, входящих в переменную Path, в том числе и ваши.

Для следующей проверки введите команду:

adb

Запустится перечень параметров команды.

Также попробуйте команду:

android

Запустится окно SDK Manager.

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

Теперь проделаем эти операции в самой студии. Запустите студию и откройте проект (см. следующий урок). Внизу в строке состояния есть вкладка Terminal. Переключитесь на неё. В окне терминала введите любую из двух предыдущих команд.

Документация

Последнюю версию документации всегда можно найти по адресу developer.android.com. Если у вас возникли проблемы с интернетом, то в подпапке /docs в вашей папке установленной Android SDK можно найти ее локальную копию (если вы не отказывались от её установки).

Установка кота

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

Подготовка к разработке завершена. Теперь следующий этап — создание первого приложения.

Устраивайтесь поудобнее в кресле и пристегните ремни - нас ждёт увлекательное путешествие в мир разработки приложений под Android.

Дополнительное чтение

Обсуждение статьи на форуме.

Реклама

developer.alexanderklimov.ru

Урок 1. Установка Android Studio, создание эмулятора, Hello World

Facebook

Twitter

Вконтакте

Google+

Какую IDE выбрать для Android?

Некоторое время назад официальной IDE для Android был Eclipse (как стандарт де-факто для Java) с плагином ADT. Некоторое время спустя среди Java-программистов начала набирать популярность IDE от JetBrains, потом для нее появился плагин для разработки под Android, и народ начал потихоньку переходить на нее с Eclipse.

Еще чуть позже Google объявляет о том, что будет делать Android Studio на базе IDEA. И вот на подходе уже вторая версия Android Studio, и Eclipse вспоминается разве что как страшный сон :)

Android Studio — официальная среда разработки под Android. По сути, Android Studio — это известная Java IDE IntelliJ IDEA с плагинами.

На данный момент существуют следующие опции при выборе IDE для Android:

  1. Eclipse. Самая популярная какое-то время назад IDE для Java, сейчас использовать ее для разработки под Android крайне не рекомендуется.
  2. IntelliJ IDEA. Отличная IDE, хорошо подходит для Android.
  3. Android Studio. Лучшая IDE для Android. От IDEA отличается мелочами, но эти мелочи очень-очень приятны и сильно облегчают наш труд :) Именно на ней мы и остановимся.
Установка Android Studio

В первую очередь, нужно убедиться, что у вас установлен JDK (Java Development Kit). Это обязательный компонент для разработки на Java, а поскольку разработка под Android ведется на Java — то и для разработки под Android тоже.

Скачать JDK можно по этой ссылке (официальный сайт, само собой, JDK бесплатен :)) Выбирайте самый новый JDK, и именно JDK, а не JRE!

Теперь перейдем к установке Android Studio.

Для начала, Android Studio необходимо скачать. В одном установщике будет все необходимое — сама IDE, Android Emulator, Android SDK. То, чего нет в комплекте, инсталлятор докачает самостоятельно.

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

 

Здесь, как следует из скриншота, установщик спрашивает, куда ставить студию, и куда ставить SDK. Если с самой студией все понятно, то SDK нужно быть внимательным. Как опять же следует из скриншота, для установки SDK нужно минимум 3.2 GB места на диске. Это минимум, на самом деле, места нужно больше, поскольку через какое-то время вам нужно будет докачивать обновленный SDK. так что, если вы не уверены, что места в будущем хватит — лучше измените местоположение на более вместительный диск.

После этого понадобится стандартно несколько раз нажать на кнопочку «далее», и на этом установка Android Studio завершена.

Настройка Android Studio

При первом запуске Android Studio задаст вам стандартный вопрос об импорте конфигурации:

 

По умолчанию будет выбран тот же чекбокс, просто нажмите на кнопку «ОК».

После этого Android Studio начнет качать Android SDK. Это может занять некоторое время. Если загрузка завершится неудачей, IDE предложит попробовать еще раз — обязательно нажмите «Retry».

 

После окончания загрузки нажмите «Finish».

В принципе, на этом установка закончена, но я бы порекомендовал произвести еще некоторые настройки.

Во-первых, я советую сменить тему на темную («Darcula»).

 

По началу раз светлый текст на темном фоне может показаться вам непривычным, но поверьте — для глаз так намного легче. Разве что в темное время суток при Alt-Tab’е на «светлый» браузер смена фона будет резать глаза, но для того, чтобы этого не было, я рекомендую поставить замечательную программку f.lux.

Во-вторых, поставьте галочки «show line numbers» и «show method separators»:

 

Первая будет отображать номера строк слева от текста, вторая — будет рисовать разделители между методами в коде.

Эти две опции невероятно важны, а особенно для новичков, и я не понимаю, почему они выключены по-умолчанию.

В-третьих, настройте автодополнение. Для этого в «Case sensitive completion» выберите «None»:

 

Поясню, почему именно так. Опция по-умолчанию подразумевает срабатывание автодополнения только в том случае, если первая буква набрана в правильном регистре. Опция None будет вызывать автодополнение независимо от того, в каком регистре вы начали набирать код.

Стандартное значение этой опции, как и прошлых двух, вызывает у меня недоумение.

Создание первого проекта

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

В главном окне Android Studio нажмите на «Start a new Android Studio project«:

 

Появится новое окно, в котором нам нужно выполнить несколько действий.

В первом нужно задать имя приложения, домен компании (из этих двух параметров будет создано имя пакета), и расположение проекта на диске:

 

В Android, как и в Java, основным идентификатором приложения является имя пакета. Если вы ранее работали с Java, вы знаете, что это такое. Тем же, кто не знает, рекомендую гугл, или, например, вот эту статью.

Далее Android Studio спросит нас, какие и каких версий SDK мы хотим использовать. Пока что нам хватит «Phone and Tablet» SDK, версию API поставьте 16 вместо рекомендуемой 15-й, поскольку API 15 уже неактуально и совсем не распространено:

 

На следующем экране нас спросят, какие компоненты приложения мы хотим создать. Выберите «Empty Activity»:

 

На следующем шаге просто нажмите «Finish», ничего не меняя.

Далее, нам придется подождать некоторое время (от минуты до пяти минут, в зависимости от мощности вашего компьютера), пока Android Studio создает проект.

По завершению этого процесса вы увидите, наконец-то, свой первый проект:

 

Он уже вполне работоспособен, но чтобы его запустить, нам понадобится эмулятор Android.

Создание эмулятора Android

Для создания эмулятора Android нам понадобится Android AVD Manager (AVD = Android Virtual Device). Не беспокойтесь, ставить больше ничего не потребуется. Просто нажмите на эту кнопочку:

 

Потом на эту кнопочку:

 

А потом просто несколько раз кликните «Next» и, наконец, «Finish»

Запуск Hello World

Пришло время запустить наш первый проект, созданный в Android Studio!

Нажмите на вот эту кнопку (или Shift-F10):

 

После этого вы увидите диалог, в котором вам будет предложено выбрать девайс, на котором IDE должна запустить собранное приложение:

 

Поставьте выделенную стрелкой галочку и нажмите «ОК». Начнется сборка проекта, запуск эмулятора, установка приложения на эмулятор, и запуск приложения.

На это уйдет некоторое время (чем мощнее ваш компьютер — тем меньше времени понадобится), поскольку эмулятор — вещь достаточно медлительная, несмотря на колоссальные улучшения в последние пару лет.

И вот, по прошествии 1-10 минут (после запуска эмулятора проекты, конечно же, будут собираться и запускаться быстрее), вы, наконец, увидите свой Hello World на экране эмулятора!

 

На этом все, а в следующем уроке мы рассмотрим структуру Android-проекта и систему сборки Gradle.

Новые уроки добавляются каждый день! Чтобы ничего не пропустить, подпишитесь на нашу группу ВКонтакте, или на рассылку по e-mail (обещаем, спама не будет. честно.)

Facebook

Twitter

Вконтакте

Google+

android-school.ru

31 совет / Блог компании Alconost / Хабрахабр

Стать обычным 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

habrahabr.ru

40+ полезных инструментов для разработчика приложений под Android / Хабрахабр

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

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

41. JSONViewjsonview.com

Расширение для Firefox, которое позволяет просматривать JSON в браузере. Документ выглядит отформатированным, есть подсветка и можно сворачивать и раскрывать объекты и массивы.

40. Android GUI Setwww.bypeople.com/free-photoshop-android-interface-gui

Набор интерфейсов, в который входят и файлы для фотошопа. Главное меню, клавиатура, панель статуса, браузер, слайдер, список контактов, и т.д. и т.п. 39. XAppDbgdeveloper.sonymobile.com/knowledge-base/tools/xappdbg

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

38. Android Holo Colors Generatorandroid-holo-colors.com

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

37. Android Action Bar Style Generatorjgilfelt.github.io/android-actionbarstylegenerator

Позволяет создать красивый action bar в стиле вашего приложения. Автоматически генерит картинки, патчи, XML и стили, которые можно сразу копировать в проект.

36. TestObjecttestobject.com

Создание сценариев для тестов, для последующей записи и воспроизведения. Доступ к 120 настоящим Android-устройствам прямо из браузера. Автоматическая регистрация ошибок (security exception, illegal state, null pointer).

Цена: $89/месс

35. Bizness Appswww.biznessapps.com

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

Цена: $29/месс

34. Splunkmint.splunk.com

Splunk отслеживает быстродействие и использование приложений. Информация об ошибках, событийная аналитика, транзакции и отчёты по отслеживанию сети.

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

33. Ubertestersubertesters.com

Инструмент для тестирования – организовывайте, выполняйте, контролируйте и наблюдайте за процессом бета-тестирования. Редактирование ошибок в приложениях, распределение приложений over-the-air (OTA), интеграция с внешними системами багтрекинга.

Бесплатно до 5 пользователей

32. Android Layout Binderandroid.lineten.net/layout.php

Превращает XML в набор из деклараций.

31. Jsonstubjsonstub.com

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

30. Mobile Dev HQwww.mobiledevhq.com

SEO для мобильных приложений. Предлагаются ключевые слова на основе релевантности, сложности и поискового объёма. Отслеживается положение в поисковой выдаче по ключевым словам.

Бесплатно для отслеживания до 10 приложений.

29. APKAnalyserdeveloper.sonymobile.com/knowledge-base/tools/analyse-your-apks-with-apkanalyser

Статический и виртуальный анализ, просмотр архитектуры приложения, зависимостей, ссылок на API и дизассемблер. Изучение пакетов, классов, методов, файлов, декодирование XML-файлов и редактирование APK.

28. GitEyewww.collab.net/downloads/giteye

Комбинирует графический git-клиент и agile-планирование, отслеживание ошибок, обзоры кода и другие инструменты. Интегрируется с CloudForge, TeamForge, Jira, BugZilla, GitHub и другими.

От $350/мес.

27. Push IOresponsys.com/marketing-cloud/products/push-IO

Oracle Push Cloud Service платформа уведомлений энтерпрайз-уровня. Предоставляет SDK, API и панель для работы через веб, для юзер-таргетинга на основе геотаргетинга, предпочтений и параметров устройств.

26. LiveCodelivecode.com

LiveCode простой высокоуровневый язык для разработки приложений под Android и iOS. Можно создавать функциональные рабочие прототипы. Сервис содержит обучающие материалы.

Цена: от $299/год

25. GENWIgenwi.com

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

24. Applausewww.applause.com/mobile-sdk

Платформа тестирования. Отзывы от тестеров и пользователей. Сообщения об ошибках, отказах и прочем. Тестерам автоматически передаётся последний билд приложения.

23. BitBucketbitbucket.org

Веб-хостинг для приложений, использующих git или mercurial. Работа в команде, пул-реквесты, обзор кода и приватные репозитории.

Бесплатно для 5 пользователей.

22. App Icon Sizesromannurik.github.io/AndroidAssetStudio

Генерирует из одной картинки начальный экран, иконки и дефолтную графику. Создаёт нужную структуру каталога.

21. Android Icon Generatorromannurik.github.io/AndroidAssetStudio

Создание иконок из клипартов, текста и картинок.

20. IBM Mobile Push Notificationwww-03.ibm.com/software/products/en/mobile-push-notification

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

19. Spoonsquare.github.io/spoon

Распределяет выполнение тестов и показывает результаты в удобном виде. Можно посмотреть результаты каждого теста на одном устройстве и суммарные результаты одного теста на разных устройствах.

18. Kendo UIwww.telerik.com/kendo-ui

Создание мобильных и веб-приложений через HTML5 и JavaScript. Более 70 jQuery виджетов для интерфейса. Поддержка интеграции с AngularJS, Bootstrap и оффлайновым хранением данных.

Цена: $699

17. Cenzicwww.cenzic.com/products/mobile/index.html

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

16. MyAppBuildermyappbuilder.com

Использует фреймворк PhoneGap для создания приложений со стандартным веб-API для нужных платформ. Приложения создаются при помощи JavaScript, HTML и CSS.

Цена: $9/мес.

15. Pubnubwww.pubnub.com

Облачный сервис обмена сообщениями для приложений реального времени. Можно отправлять сообщения о событиях и получать их через специальный API.

Бесплатно для объёмов до 1 миллиона сообщений в месяц.

14. SwebAppswww.swebapps.com

Платформа для создания веб-приложений и нативных Android-приложений. Способна поддерживать любые приложения, от малых до больших. Можно добавлять фотки, видео, аудио, документы, и для всего есть категории и подкатегории.

Цена от $19/месс

13. Sencha Touchwww.sencha.com/products/touch-bundle

JavaScript + HTML фреймворк и инструменты, предназначенные для создания приложений, ориентированных на сенсорные экраны. Прототипирование приложений, редактор кода и интерактивные графики.

Цена: $3855

12. Appboywww.appboy.com

Веб-сервис для наблюдения и измерения CRM, управления пользователями, анализа и многого другого. Персонализация приложений для пользователь.

Цена: от $10/месс

11. ShoutEmwww.shoutem.com

Простая и мощная система для создания мобильных приложений без необходимости писать код. Интерфейс drag&drop, CMS, аналитика, монетизация и инструменты для паблишинга.

От $19,90/месс

10. Fluid UIwww.fluidui.com

Веб-сервис для прототипирования мобильных приложений. Более 3500 виджетов для мобильных телефонов, планшетов и носимых гаджетов. Загрузка своих картинок. Превью и тестирование мокапов прямо в браузере и возможность показа прототипов третьим лицам (клиентам).

Цена: от $10/месс

9. Appceleratorwww.appcelerator.com

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

8. PhoneGapphonegap.com

Создание приложений при помощи CSS, HTML и JavaScript. При помощи фирменного приложения можно вести разработку на компьютере и мгновенно наблюдать результаты изменений на устройстве. Приложение компилируется в облаке. Открытый исходный код.

7. Protoproto.io

Создание интерактивных прототипов без необходимости писать код. Тестирование прототипов на устройствах – анимация, интерактив и поддержка жестов.

Цена: от $24/месс

6. Mobile Roadiemobileroadie.com

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

Цена: от $149/мес.

5. Parsewww.parse.com

Платформа для создания многоплатформенных приложений.

4. Apiaryapiary.io

Создание API. Прототипирование API, совместная разработка, встроенные примеры кода, автоматическое создание документации, отладка и автоматическое тестирование.

3. GameSalad Creatorgamesalad.com/creator

Простая система создания игр, включающая физический движок. Можно создать и протестировать игру без необходимости писать код. Интерфейс drag&drop. Аналитика быстродействия игры.

2. Appmakrwww.appmakr.com

Быстрый способ создать мобильное приложение через drag&drop, без необходимости писать код. Добавление фоток, видео, карт, интеграция соцсетей.

1. Genymotionwww.genymotion.com

Эмулятор Android с поддержкой различных уровней API, работает с Android Studio, использует визуализацию архитектуры x86 и содержит 20 предварительно настроенных устройств. Бесплатно для персонального использования.

habrahabr.ru

Как разрабатывать под Android: советы самому себе

Ачин Сагар на Quora объяснил самому себе, как правильно изучать разработку под Android.

Если бы я мог путешествовать во времени и встретить самого себя еще до того, как начал изучать разработку под Android, я бы посоветовал себе следующее:

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

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

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

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

Тебе не нужно изучать все концепции Java до того, как начинать делать Android-приложение. Одной недели достаточно для написания простого работающего кода, а больше ты узнаешь в процессе разработки.

Этот совет я дал себе два года назад, и он до сих пор работает. Не используй Eclipse, он помирает. Переключайся на Android Studio, это сделает твою жизнь проще.

Купи настоящий телефон на Android, если это возможно. Эмулятор Android это ад, ты будешь тратить массу времени на ожидание. Кроме того на эмуляторах что-то не работает. Если эмулятор это единственная возможность, используй Bluestacks (я до сих пор использую).

Исследуй много кода. Не трать все время на написание, ты перестанешь расти после определенного уровня. Проводи время за изучением кода открытых Android-приложений, и ты многому научишься.

Самостоятельная работа не особое достижение. Работай в команде и многому научишься. Написание кода, который понятен другим это большее достижение, чем написание кода, который только ты можешь понять. И это поможет тебе после поступления на работу, иначе у тебя будут неприятности.

Добавление к предыдущему пункту. Чтобы узнать, как правильно структурировать приложение – изучай код open source приложений, чьи методики разработки нашли подтверждение. Если ты не будешь следовать таким правилам, то твой код будет беспорядочным, и ты будешь проводить много времени, отлаживая его.

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

Отдавай приоритет UI/UX. Пользователю все равно, сколько у приложения функций или сколько часов ты провел, создавая всю сложную начинку.

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

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

Постарайся сохранять размер приложения на минимальном уровне, удаляй все ненужные ресурсы.

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

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

Используй все известные библиотеки. Не делай HTTP запросы напрямую в коде, это не работает. Используй Retrofit/Volley и сохрани себе время. Используй Picasso/Glide для загрузки изображений. Не используй документацию Facebook для логина, используй библиотеку. Максимально удаляй весь шаблонный код.

Тебе не нужно делать приложение, работающее в первой версии Android. Просто убедись, что ты поддерживаешь все версии, покрывающие 90% устройств. Не трать свое ценное время на оставшиеся 10%.

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

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

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

И, наконец, задай вопрос типа этого на Quora или Reddit до начала разработки :).

Июл 11, 2016Леонид Боголюбов

apptractor.ru

с чего начать / Блог компании Mail.Ru Group / Хабрахабр

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

Тенденции

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

  • Больше половины (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. Именно поэтому мы ведем работу со стажерами — потому что иногда легче взять толкового студента и обучить его.
Заключение

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

habrahabr.ru

30+ инструментов для профессиональной разработки приложений под Android / Хабрахабр

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

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

FlowUp

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

Stetho

Мощная платформа для отладки с открытым исходным кодом под Android, разработанная Facebook. Этот инструмент позволяет отлаживать собственные приложения под Android так же просто, как отладка веб-страниц с помощью инструментов разработчика Chrome и помогает выполнять различные действия, такие как проверка полной иерархии активностей, проверка базы данных SQLite, мониторинг сетевых операций и т. д.

JRebel for Android

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

Gradle Please

Если вы используете Gradle в качестве вашей системы сборки в Android Studio, то вы можете добавить любую внешнюю библиотеку в свой проект только одной строчкой кода. Но как можно получить эту строчку легко и быстро? Этот сладкий маленький инструмент вам в этом поможет.

Android Asset Studio

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

LeakCanary

LeakCanary — это мощный инструмент обнаружения утечки памяти, разработанный Square, что делает сложную и трудоемкую работу по обнаружению утечек памяти намного проще. После настройки он автоматически начнет присылать вам уведомления, когда утечка памяти произойдет в вашем приложении с полной трассировкой стека, чтобы помочь вам исправить ее.

DryRun

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

Slides Code Highlighter

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

InstaBug

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

Takt

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

Android Debug Database

Удивительный инструмент, который полностью изменяет способ отладки баз данных и общих настроек в приложении под Android. Теперь вы можете просматривать все данные, редактировать их, удалять и запускать SQL-запросы в чистом и красивом пользовательском интерфейсе.

Source Tree

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

GenyMotion

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

Vysor

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

Android Wifi ADB

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

FindBugs

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

Drawable Optimizer

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

Scalpel

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

BlockCanary

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

NimbleDroid

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

Methods Count

Кто не любит добавлять удивительные библиотеки в свой проект и увеличивать его функциональность? Но вы всегда должны думать о проблеме с ограничениями 65K. Этот замечательный инструмент может пригодиться, поскольку он может дать вам четкое представление о количестве методов, которые каждая библиотека добавляет в ваше приложение.

Android Tool for Mac

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

DevKnox

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

JSONSchema2POJO

Мы все сталкиваемся с этим несколько раз, когда у нас есть JSON, и мы хотим сделать из него эквивалентный POJO. Это довольно скучно и отнимает много времени, но именно здесь этот отличный инструмент может пригодиться. Все, что вам нужно сделать, это вставить JSON, и он автоматически сгенерирует все классы POJO.

ADB IDEA

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

Key Promoter

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

Fabric

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

ClassyShark

С помощью ClassyShark вы можете проверить любой Android APK, чтобы получить из него много полезной информации, например, классы, ресурсы, манифест, зависимости и многое другое. Это может дать вам представление о том, что делают другие приложения, и, возможно, о том, как они это делают.

APK DeGuard

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

Codota

Довольно часто мы застреваем при разработке чего-то нового и должны проверять некоторые быстрые примеры кода из StackOverflow или Github. Но этот удивительный инструмент может позволить вам сделать это, даже не выходя из IDE.

Material Design Icon Generator

Этот плагин для Android Studio позволяет получить доступ ко всем значкам material design и настроить их прямо из самой IDE, что значительно сэкономит ваше время при разработке приложений.

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

habrahabr.ru


Смотрите также