Самоучитель по созданию андроид приложений. Как написать приложение для Android при помощи Android Studio. Что нужно для разработки своего приложения

Как создать мобильное приложение в Android Studio

Android Studio - интегрированная среда разработки (IDE) на базе IntelliJ IDEA , которую Google называет официальной IDE для приложений Android.

В этом руководстве описана разработка приложений для android :

  • Навигация между файлами с помощью проводника
  • Установка файла AndroidManifest.xml
  • Импорт файлов в проект
  • Расширенный редактор макетов с функцией динамического превью
  • Использование Logcat и Android Monitor для отладки приложений

Начало работы в Android Studio

Запустите Android Studio, в окне Android Studio Setup Wizard выберите Start a new Android Studio project (начать новый проект).

В окне Create New Project выберите Application Name (название приложения) как Fortune ball («Шар фортуны»), введите домен компании; в поле Project location выберите место в котором приложение будет сохранено. Кликните Next .

Перед вами окно Target Android Devices . Выберите Phone and Tablet . В поле Minimum SDK укажите API 15 . Нажмите Next .

В окне Add an activity to Mobile выберите Basic Activity . Оцените все опции, в этом окне представлен обзор доступных макетов.

Кликните Next .

В окне Customize the Activity , скриншот которого размещен ниже, вы сможете изменить Activity Name (название активности), Layout Name (название макета), Title (общее название) и Menu Resource Name (название меню ресурсов). Оставьте значения по умолчанию и кликните Finish .

Через несколько секунд появится следующее окно:

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

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

Структура проекта и файла

Окно показывает файлы проекта.

В выпадающем меню (скриншот ниже) есть несколько фильтров для файлов. Основные - Project и Android.

Фильтр Project покажет все модули приложения - в каждом проекте присутствует как минимум один модуль. Среди модулей других типов есть модули из библиотек сторонних разработчиков, или модули других приложений Android (такие как приложения для Android Wear, Android TV). У каждого из модулей имеется свой набор характеристик, в т. ч. файл gradle, ресурсы и исходные файлы (java-файлы).

Примечание. Если проект не открыт, кликните вкладку Project на левой стороне панели, как показано на скриншоте. По умолчанию установлен фильтр Android, который группирует файлы по определенному типу. На верхнем уровне вы увидите следующие папки:

  • manifests
  • Gradle Scripts

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

Обзор AndroidManifest.xml

У каждого приложения под Android есть файл AndroidManifest.xml, который находится в папке manifests. Этот XML-файл сообщает вашей системе о требованиях приложения. Присутствие этого файла обязательно, т. к. именно он позволяет системе Android создать приложение.

Откройте папку manifests и AndroidManifest.xml. Двойной клик откроет файл.

Теги manifest и application нужны для manifest, появляются только один раз.

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

android:icon, android:label и android:theme

Среди прочего в manifest может появиться:

  • uses-permission: запрашивает специальное разрешение, которое выдается приложению для корректной работы. К примеру, приложение должно запрашивать разрешение у пользователя, чтобы получить доступ к сети - в случае, если вы добавите разрешение android.permission.INTERNET.
  • activity: сообщает об активности, которая частично отвечает за визуальный UI и логику. Любая активность, которая предусмотрена в приложении, должна добавляться в manifest - неотмеченную активность система не заметит, и она не будет отображаться в приложении.
  • service: добавляет сервис, который вы собираетесь использовать, чтобы реализовать продолжительные операции или расширенные коммуникации API с другими приложениями. Примером в данном случае может служить сетевой вызов, с помощью которого приложение получает данные. В отличие от активностей, у сервисов нет пользовательских интерфейсов.
  • receiver: благодаря приемнику широковещательных сообщений приложение получает сигналы о системных сообщениях или сообщениях других приложений, даже когда другие компоненты приложения не запущены. Пример такой ситуации - батарея с низким уровнем заряда и уведомление об этом операционной системы.

Полный список тегов можно найти в manifest-файле на сайте Android Developer.

Настройки файла Manifest

В activity добавьте следующий атрибут:

android:screenOrientation=”portrait”. чтобы ограничить экран только портретным режимом. Если этого не сделать, экран, в зависимости от расположения устройства, будет либо в ландшафтном, либо в портретном режиме. После добавления атрибута файл manifest будет выглядеть как на скриншоте.

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

Обзор Gradle

Перейдем к Gradle. Gradle превращает Android-проект в инсталируемый APK, который можно устанавливать на устройства. Файл build.gradle присутствует в Gradle scripts, на двух уровнях: модульном и проектном.

Откройте файл build.gradle (Module:app). Вы увидите установку gradle по умолчанию:

apply plugin: "com.android.application" android {compileSdkVersion 25buildToolsVersion "25.0.2"defaultConfig {applicationId "com.raywenderlich.fortuneball"minSdkVersion 15targetSdkVersion 25versionCode 1versionName "1.0"testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"}buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"}}} dependencies {compile fileTree(dir: "libs", include: ["*.jar"])androidTestCompile("com.android.support.test.espresso:espresso-core:2.2.2", {exclude group: "com.android.support", module: "support-annotations"})compile "com.android.support:appcompat-v7:25.1.0"compile "com.android.support:design:25.1.0"testCompile "junit:junit:4.12"}

Разберем основные компоненты:

  • apply plugin: ‘com.android.application’ применяет плагин Android на родительском уровне и обеспечивает доступность задач верхнего уровня, которые нужны для создания приложения.
  • Рядом с разделом android{…} находятся опции настроек, такие как targetSdkVersion. Целевой SDK для вашего приложения должен располагаться на новейшем уровне API. Еще один важный компонент - minSDKVersion (определяет минимальную версию SDK, которая должна быть установлена на устройстве, чтобы приложение можно было запустить). К примеру, если версия SDK 14, тогда приложение будет невозможно запустить на этом устройстве, поскольку в данном конкретном случае минимальная поддерживаемая версия 15.
  • Последний компонент - dependencies{…}. Необходимо отметить compile ‘com.android.support:appcompat-v7:VERSION’ и compile ‘com.android.support:design:VERSION’. Они обеспечивают поддержку и совместимость особенностей новых и старых API.

Кроме библиотек совместимости Android, вы можете добавить библиотеки сторонних разработчиков в компонент dependencies{…} Библиотека анимаций, например, содержит эффекты пользовательского интерфейса. Найдите dependencies, затем добавьте вниз две следующие линии:

dependencies { ... compile "com.daimajia.easing:library:2.0@aar"compile "com.daimajia.androidanimations:library:2.2@aar"}

Здесь можно добавить dependencies сторонних разработчиков. Библиотеки автоматически загружаются и интегрируются в Android Studio. Кликните Sync Now, чтобы интегрировать эти зависимости в свое приложение.

Синхронизация длится несколько секунд. Обновления Gradle появляются во вкладке Messages нижней панели.

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

Импорт файлов

В разработке приложения под Android важна интеграция с другими ресурсами: изображения, кастомные шрифты, звуки, видео и пр. Эти ресурсы импортируются в Android Studio и помещаются в соответствующие папки, что позволяет операционной системе подбирать корректные ресурсы для приложения. Для нашего приложения Fortune Ball понадобится импорт изображений в папки drawable. В этих папках могут содержаться изображения или специальные файлы XML drawables (т. е. вы можете рисовать формы с помощью XML-кода и использовать их в своих макетах).

В Android Studio перейдите из Android в Project

Откройте папку res (app > src > main). Клик правой кнопки мыши по папке res, выберите New > Android resource directory.

Появится окно под названием New Resource Directory.

Из выпадающего списка Resource type выберите опцию drawable. В списке Available qualifiers выберите Density, затем кликните кнопку, которая выделена на скриншоте.

В следующем окне выберите XX-High Density из списка Density. Кликните OK.

Повторите все, чтобы создать папки drawable-xhdpi, drawable-hdpi и drawable-mdpi. Выберите X-High, high (высокую) и medium (среднюю) плотность соответственно из списка Density.

Каждая папка, у которой есть определитель плотности (i.e. xxhdpi, xhdpi, hdpi), содержит изображения, которые соотносятся с определенной плотностью или разрешением. К примеру, папка drawable-xxhdpi содержит изображение высокой плотности, это означает, что Android-устройство с экраном высокого разрешения извлечет изображение из этой папки. Изображение будет хорошо смотреться на всех устройствах Android, независимо от качества экрана. Больше информации о плотности экранов содержится в документации Android.

Создав все «рисованные» папки, вы можете вернуться к нераспакованному контенту в папке и скопировать (cmd + C) изображение из каждой папки и поместить (cmd + V) в соответствующую папку Android Studio.

Поместив файлы, вы увидите окно Copy. Выберите OK.

XML View и Dynamic Layout Previews

Создание макета, с которым пользователи могут взаимодействовать, - важная часть процесса. В Android Studio это можно сделать в редакторе макета. Откройте content_main.xml из res/layout. Во вкладке Design вы можете переносить элементы интерфейса (кнопки, текстовые поля).

Справа от Design есть вкладка Text, которая позволяет редактировать XML непосредственно в макете.

Перед созданием внешнего вида, необходимо определить некоторые значения. Откройте strings.xml во вкладке res/values и добавьте следующее:

Suggest the question, which you can answer “yes” or “no”, then click on the magic ball.

strings.xml содержит все строки, которые появляются в приложении. Разделение этих строк в отдельные файлы упрощает интернационализацию, т.к. нужен только файл строк для каждого языка, который требуется в приложении. Даже если вы не собираетесь переводить приложение на другие языки, использовать файл строк всегда рекомендуется.

Откройте dimens.xml в res/values и добавьте следующее:

15sp20sp

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

Вернитесь в content_main.xml и замените все содержимое файла следующим кодом:

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

В относительной разметке добавляются две части текста, изображение и кнопка. Все эти детали будут видны в порядке добавления. Их содержимое можно будет прочитать в strings.xml (текст) и в drawable (изображения).

Обновляя content_main.xml, обратите внимание на окно Preview обновляет UI:

Примечание: если не видно окно предпросмотра, во вкладке Text кликните на кнопку Preview на панели редактора разметки справа.

Создайте и запустите.

И вот вы создали макет приложения. Но на данном этапе это только красивое изображение - клик по кнопке ни к чему не приведет.

Объединяем Activity и View

Вы можете использовать java-файлы, размещенные в app / src / main / java чтобы установить логические связи в приложении.

Откройте MainActivity.java и добавьте эти данные под уже существующие:

Import java.util.Random;import android.view.View;import android.widget.Button;import android.widget.ImageView;import android.widget.TextView; import com.daimajia.androidanimations.library.Techniques;import com.daimajia.androidanimations.library.YoYo;

Первые пять импортов указывают на соответствующие классы в вашем коде: Random, View, Button, ImageView и TextView. Следующие два импорта указывают на то, что вы будете использовать два класса из библиотек, в т.ч. build.gradle для анимаций. В MainActivity.java в класс MainActivity добавьте:

String fortuneList = {"Don’t count on it","Ask again later","You may rely on it","Without a doubt","Outlook not so good","It"s decidedly so","Signs point to yes","Yes definitely","Yes","My sources say NO"}; TextView mFortuneText;Button mGenerateFortuneButton;ImageView mFortuneBallImage;

В этом небольшом отрезке кода вы установили 4 переменных для активности. Первая - строки, которые определяют возможные состояния, другие три - элементы UI, которые вы создали в макете/разметке.

Теперь замените содержимое метода onCreate() следующими данными:

// 1:super.onCreate(savedInstanceState);// 2:setContentView(R.layout.activity_main);Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);setSupportActionBar(toolbar);// 3:mFortuneText = (TextView) findViewById(R.id.fortuneText);mFortuneBallImage = (ImageView) findViewById(R.id.fortunateImage);mGenerateFortuneButton = (Button) findViewById(R.id.fortuneButton); // 4:mGenerateFortuneButton.setOnClickListener(new View .OnClickListener() {@Overridepublic void onClick(View view) {// 5:int index = new Random ().nextInt(fortuneList.length);mFortuneText.setText(fortuneList);// 6:YoYo.with(Techniques.Swing).duration(500).playOn(mFortuneBallImage);}});

  • Проверьте, что активность готова (реализация суперкласса).
  • Укажите, что макет для данной активности представлен макетом, который вы создали ранее, проверьте панель инструментов.
  • Заполните значения трех переменных, которые вы создали прежде в компонентах views макета с помощью метода findViewById. Значение id то же, что и в макете XML.
  • Добавьте OnClickListener на кнопке. Это простой класс, который инкапсулирует (упаковывает) функциональность, которую, в свою очередь, вызывает нажатие кнопки.
  • Выберите произвольный вариант из набора fortuneList для данного приложения, и обновите текст fortune text, чтобы это показать.
  • Используйте библиотеку сторонних разработчиков, чтобы добавить зависимость в файл gradle, и таким образом добавить анимацию в приложение.

Уже почти готово. Но нужно убрать плавающую кнопку. Перейдите в res / layout и откройте activity_main.xml.

В этом файле макета содержится ссылка на content_main.xml, который вы прежде редактировали. Он по умолчанию определяет контент (тулбар и плавающая кнопка действия). Однако в данном конкретном приложении (Fortune Ball) плавающая кнопка не нужна. Поэтому уберите следующий блок кода из xml-файла:

Теперь в правом нижнем углу нет плавающей кнопки.

Задайте вопрос (What’s my fortune?) - нажмите кнопку. Проверьте работу приложения.

Android Monitor

В Android Studio содержится широкое множество инструментов. Откройте вкладку Android Monitor в нижней части окна Android Studio.

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

  • Камера и кнопка play слева позволяют делать скриншоты и записывать видео.
  • Увеличительное стекло открывает ряд дополнительных опций, например анализ памяти приложения.
  • Layout Inspector предоставляет визуальный интерфейс, который определяет, почему интерфейс приложения выглядит определенным образом.

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

Проверьте, что вы выбрали Show only selected application в правом верхнем углу, как было показано на скриншоте выше. Теперь будут видны только сообщения вашего приложения.

В MainActivity.java добавьте к списку импортов следующее:

Import android.util.Log;

В конце onCreate() в MainActivity.java добавьте следующую линию:

Log.v("FORTUNE APP TAG","onCreateCalled");

Log.v вызывает два параметра - тег и сообщение. В данном случае тег определен как “FORTUNE APP TAG”, а сообщение как “onCreateCalled”.

Запустите приложение, чтобы видеть сообщение лога на панели Logcat.

Отфильтруйте содержимое LogCat, впишите onCreateCalled в поисковую строку над консолью:

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

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

Перейдите к MainActivity.java и измените следующую линию в onCreate():

//mFortuneText = (TextView) findViewById(R.id.fortuneText);

Запустите приложение. Кликните кнопку What’s My Fortune? Не работает!

Как бы вы исправили ошибку, если бы не знали о наличии бага? В этом поможет Logcat.

Перейдите к панели Logcat - она выглядит примерно так:

Здесь много красного текста. В данном случае проблема в линии 50 в файле MainActivity.java. LogCat превратил эту ссылку в гиперссылку синего цвета. Если ее нажать, можно узнать, в чем проблема.

Изменив mFortuneText = (TextView) findViewById(R.id.fortuneText), вы тем самым создали переменную, но не указали ее значение - отсюда исключение нулевого указателя. Вернитесь обратно и измените код, запустите приложение. В этот раз все работает гладко. Logcat - полезный инструмент для поиска ошибок.

Share this article:

Related Articles

Разработка мобильного программного обеспечения может стать интересным и полезным занятием. В этой статье мы расскажем, как создать приложение для Android .

Android Studio

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

Но сначала нужно загрузить и установить Java Development Kit (JDK ) от Oracle . Найдите раздел «Java SE Development Kit 7u79 » и загрузите версию для своего ПК. Важно загрузить правильную версию (32-разрядную или 64-разрядную ), иначе Android Studio не сможет найти Java Runtime Environment (JRE ).

Примечание: Oracle не будет публиковать на своих общедоступных сайтах какие-либо обновления Java SE 7 , и предполагается, что пользователи массово перейдут на Java 8 . Но в настоящий момент Android Studio требует наличия Java 7 . Это может измениться в будущем.

После того, как вы установили JDK , нужно инсталлировать Android Studio . Во время установки необходимо указать, сколько памяти зарезервировать для эмулятора Android . Он запускает Android в виде виртуальной машины, как смартфон с процессором Intel . Это быстрее, чем эмуляция процессора ARM на ПК. Но для запуска этой виртуальной машины эмулятор должен выделить некоторый объем памяти. Но перед тем как создать приложение для Андроид самому, имейте в виду, что сочетание Android Studio , Java и эмулятора будет довольно ресурсоемким, и компьютер может подтормаживать.

Google говорит, что необходимо как минимум 2 ГБ оперативной памяти, а рекомендуется 4 ГБ. Но мой основной ПК имеет 8 ГБ, и все равно иногда тормозит:


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

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

Создаем новый проект

Нажмите «Start a new Android Studio project » и введите название своего приложения в поле «Application name ». В поле «Company Domain » введите официальный домен вашей компании. Если вы независимый разработчик или любитель, введите собственный домен. Если вы просто экспериментируете с Android и не собираетесь в ближайшее время публиковать свои приложения в Google Play , просто оставьте пример домена, только измените «user » на ваше имя (без пробелов ):


В следующем диалоговом окне проверьте, чтобы у вас выбрана опция «Phone and Tablet », а для «Minimum SDK » установлено — API 15: Android 4.0.3. Для опций «Wear » и «TV » флажки не должны быть установлены.

В диалоговом окне «Add an activity to Mobile » оставьте значение по умолчанию «Blank Activity » и нажмите «Next ». В диалоговом окне «Customize the Activity » оставьте все значения и нажмите «Finish »:


Интегрированная среда разработки (IDE ) запущена. Это может занять несколько минут (особенно, если вы впервые создали проект ). Если при запуске IDE увидите сообщение об ошибке «Rendering Problems: Rendering failed with known bug », нажмите ссылку «rebuild », которая отображается рядом с сообщением об ошибке.

По умолчанию, рабочее пространство среды IDE делится на три основные части (не считая панели инструментов и т. д. ). Слева сверху находится дерево проекта. Справа от него — редактор кода, а под ними сообщения.

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

Дерево проекта

Дерево проекта содержит все файлы и ресурсы, необходимые для создания Android-приложения . Если вы знакомы с написанием простых программ на Java , C , Python и т. д., то могли бы подумать, что все будет содержаться только в одном или двух файлах. Но разработка Android-приложений немного сложнее:


В узле «app » дерева проектов содержится несколько узлов (например, папки ), которые можно развернуть. Узлами верхнего уровня являются “manifests ”, “java ” и “res ”. Последний — это сокращение от “resources ”.

В “manifests ” располагается файл «AndroidManifest.xml », каждое приложение должно содержать его. Это XML-файл с информацией о приложении, включая его название. Часто добавляемым в этот файл элементом является список разрешений, необходимых для приложения. Для этого простого приложения не нужно здесь ничего менять.

В разделе «java » располагается Java-код приложения. Он будет находиться в подкаталоге, с именем com.example.user.myfirstapp . Это имя домена компании, которое вы ввели ранее, только наоборот, плюс название приложения. В этой папке находится файл MainActivity.java . Это точка входа в приложение и единственный файл Java , который нам понадобится.

Продолжаем создавать простое приложение для Андроид . В разделе «res » есть несколько папок для графики, меню и элементов пользовательского интерфейса. Нас интересуют «layout » и «values ». В папке «layout » находится файл под названием «activity_main.xml ». Это XML-файл , описывающий пользовательский интерфейс. Редактировать его можно двумя способами. Первый — непосредственное редактирование XML-кода , второй — использование встроенного дизайнера пользовательского интерфейса:


В папке «values » содержатся несколько XML-файлов . В данный момент наиболее важным для нас является strings.xml . Вместо того чтобы задавать в Java-коде строковые значения их принято помещать в файл «strings.xml », и мы можем ссылаться на них через идентификаторы. Преимущество заключается в том, что если строка используется несколько раз, ее можно изменить только один раз, и изменения вступят в силу во всех местах. Это также упрощает поддержку нескольких языков в приложении.

Чтобы создать приложение для Андроид самому, нужно будет изменить файлы MainActivity.java , activity_main.xml и strings.xml .

Написание приложения

Для нашего примера мы добавим кнопку с меткой «Tap Me! », изменим приветствие по умолчанию «Hello world! » на «Tap me if you dare! ». А также поменяем его, чтобы оно находилась в центре. И добавим код, чтобы при нажатии кнопки отображался текст «toast »!

Начнем с изменения текста приветствия и его выравнивания. Сначала найдите в дереве проекта файл «activity_main.xml » и дважды кликните по нему. Помните, что «activity_main.xml » — это файл, который содержит определение пользовательского интерфейса. В нижней части окна кода есть две вкладки: «Design » и «Text ». Перейдите на вкладку «Design ».

Теперь нажмите на текст «Hello world! », который показан в окне предварительного просмотра экрана смартфона. Если он слишком мал, используйте кнопку масштабирования (лупа со значком «плюс» ).

В окне свойств, расположенном справа от изображения телефона, прокрутите экран вниз до тех пор, пока не найдете надпись «layout: centerInParent ». Кликните по пробелу рядом с ней и выберите «horizontal ». После этого текст «Hello world! » переместится в центр:


Перед тем, как создать приложение для Android без навыков, изменим текст. Строка «Hello world! » хранится в файле «strings.xml » в разделе res-> values . Если вы дважды кликните по этому файлу, то увидите несколько строк XML , которые определяют строки, используемые приложением.

Найдите эту строку:

XMLSELECT ALL XMLSELECT ALL Hello world!

И измените ее на:

CSSELECT ALL CSSELECT ALL Tap me if you dare!

Мы изменили выравнивание приветствия и его текст. Теперь добавим кнопку. Вернитесь на вкладку «Design » файла «activity_main.xml », найдите в списке «Palette » слева от изображения смартфона пункт «Button » и нажмите на него. Теперь кликните где-нибудь под надписью «Tap me if you dare! ».

Дважды кликните по кнопке, чтобы изменить ее текст. В конце поля “text: ” расположена кнопка с тремя точками, нажмите на нее. В окне «Resources » нажмите «New Resource », а затем «New String Value… ». В поле «Resource name: » введите «tapme », а в поле «Resource value: » — “Tap me! ”. Затем нажмите «ОК ». Теперь у нас есть кнопка “Tap me! ”.

Последний шаг создания простого приложения для Андроид — добавить Java-код , который реагирует на нажатие кнопки. Один из элементов пользовательского интерфейса Android — это “toast. ”. Он предоставляет простое сообщение в небольшом всплывающем окне. Вы, несомненно, видели это. Например, в Gmail при выходе из электронной почты до отправки письма выводится сообщение «Сообщение сохранено в черновики ». Спустя определенное время оно исчезает.

Для нашего примера приложения мы будем отображать сообщение каждый раз, когда нажимается кнопка. Первым шагом является добавление Java-кода . Найдите файл «MainActivity.java » и добавьте следующий код в «onCreate «:

JAVASELECT ALL JAVASELECT ALL public void onButtonTap(View v) { Toast myToast = Toast.makeText(getApplicationContext(), "Ouch!", Toast.LENGTH_LONG); myToast.show(); }

Слово «View » во фразе «(View v )» будет красным, рядом с ним отображается сообщение, что вы использовали новую конструкцию (View ), не импортируя ее в разделе импорта, в верхней части Java-кода . Это легко исправить. Нажмите на слово «View », а затем ALT + ENTER . Если слово “Toast ” отмечено красным цветом, проделайте то же самое еще раз:


Вернитесь в раздел конструктора файла «activity_main.xml », нажмите кнопку и прокрутите список свойств до пункта «onClick ». Нажмите на поле справа, и на экране появится список функций. Кликните по «onButtonTap », это функция, которую мы только что добавили.

Теперь функция onButtonTap() будет вызываться всякий раз, когда будет нажиматься кнопка. Чтобы вывести сообщение, мы вызываем myToast.show() .

Вот и все, что касается создания приложения для Андроид самому, теперь протестируем его в эмуляторе.

Построение и тестирование приложения

В меню «Tools » перейдите к Android- AVD Manager . Этот инструмент отображает список текущих настроенных виртуальных Android-устройств . У вас будет одно устройство, настроенное по умолчанию, возможно, Nexus 5 . Нажмите на значок воспроизведения (треугольник ) в столбце «actions ». Это запустит эмулятор.

XXI век. Эпоха цифровых технологий и интернета. Реальность все увереннее становится виртуальной. Сегодня чуть ли не каждый первый житель любой развитой страны не расстается со смартфоном. И если часть отдает предпочтение модным Iphone и операционной системе IOS, то большинство пользуется устройствами на Android. Ведь они дешевле и выбор приложений гораздо богаче. И чтобы создавать такие приложения, нужны специально обученные люди, называемые программистами. Что нужно знать и уметь для того, чтобы погрузиться в Android-программирование?

Инструменты для разработки

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

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

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

Установка необходимого ПО

Перед началом разработки на компьютер следует установить драйверы для смартфона. Это если на компьютере установлена Windows. Остальные системы обходятся без специальных драйверов. Искать их лучше на официальном сайте производителя устройства. Если в процессе программирования будут возникать вопросы (а они будут возникать постоянно), то нужен доступ к интернету. Разработка под Android происходит в программе "Андроид Студио". Скачивается она с официального сайта. Разработана программа компанией Google.

Какие выбрать источники?

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

Какую книгу выбрать? Хорошо себя зарекомендовала книга из серии Head First «Программирование для Android». В ней в доступной для новичка форме описан весь процесс. Авторы выбрали не скучную и монотонную, а юмористическую манеру изложения материала с массой интересных заданий.

Язык программирования

Основным языком, на котором разрабатываются приложения, является Java. Поэтому нужно знать его хотя бы на начальном уровне для того, чтобы Android-программирование давалось легко. Без знаний Java ничего не выйдет. Это один из самых востребованных по всему миру языков программирования. Он в освоении намного проще, чем языки C и C++. Java строго типизирован, и это привьет хорошие манеры написания кода. Для изучения этого языка тоже есть книга от Head First. Программирование для Android осилит любой желающий. Главное, чтобы была мотивация.

Мотивация и способы изучения

Для начала можно начинать с 15 минут в день. Если будет затягивать, то постепенно добавлять по 5 минут. На первых порах нет нужды в многочасовом сидении за компьютером. Такое под силу только профессионалам. Да и желание может пропасть.

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

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

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

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

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

Идея

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

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

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

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

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

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

Варианты монетизации

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

  • Бесплатное приложение. Обычно используется крупными компаниями, и приложение помогает продавать их товары или услуги.
  • Бесплатное приложение с рекламой. Используется в популярных приложениях, активно взаимодействующих с пользователем
  • Платное приложение. Самый популярный и доходный вид монетизации. С каждой продажи вашего приложения Apple берет комиссию в размере 30%.
  • Lite и Pro. Lite приложение бесплатно, но с ограниченным набором функций. Покупая Pro вы разблокируете весь функционал
  • Покупки внутри приложения - вы можете продавать новый функционал или новые уровни игры прямо из приложения

Разработка

Теперь у вас есть идея. Здорово, это уже полдела! Но что теперь? Мы предполагаем, что у вас, как и большинства людей, нет никакого опыта в программировании. И это прекрасно! Есть куча вариантов.

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

Хороший список отечественных разработчиков можно посмотреть здесь – ratingruneta .

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

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

Стоимость их работы?

На кого они работали в прошлом?

Являются ли их приложения успешными?

Буду ли я обладать всеми правами на приложение?

Есть ли у них опыт и знания, чтобы воплотить вашу идею в жизнь?

Под какие платформы (IOS, Android и т.д.), они могут создавать приложения?

Стоимость разработки

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

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

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

Чтобы приблизительно узнать, сколько будет стоить разработать приложение можно воспользоваться калькулятором howmuchtomakeanapp . Его создала канадская компания ooomf.com. Полученную цену можно смело делить на 2, и вы узнаете цену разработки у нас. Можно посмотреть также примеры уже созданных ими приложений с ценами – crew.co .

Размещение уже готового приложения на App store обойдется вам $99.9 в год. Размещение приложения на Android Market стоит $25.

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

Конечно, вы можете сделать еще один хит на подобии Angry Birds, которые будут зарабатывать для вас $100 000 в месяц!

Для того чтобы хорошо зарабатывать на своем приложении, прочтите несколько советов:

  • ваше приложение должно быть интересно широкой аудитории
  • исследуйте самые популярные приложения на рынке
  • в настоящее время, легче заработать деньги на приложениях для IOS
  • сделайте ваше приложение доступным для Ipad

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

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

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

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

Сроки

Первое, из чего складывается стоимость и время разработки - это сложность приложения. Второе - количество платформ (iPhone iOS, iPad iOS, Android phone, Android tablet, Windows Phone), на которых оно будет работать. Да, планшеты и смартфоны нередко считаются отдельно, но не всегда, ниже объясню почему.

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

Приложения средней сложности

Средние по сложности - это те, которые охватывают несколько процессов. К ним относится большинство интернет-магазинов и систем бронирования. Экранов там около 10, есть личный кабинет, поддерживается авторизация через соцсети, есть интеграция с сервером или сайтом, часто и с платежными системами. Может быть встроен функциональность обратной связи, выставления оценок, выстраивания рейтингов. Для нескольких платформ они делаются за 3-6 месяцев (300-800 часов).

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

Сложные приложения

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

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

Стоимость

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

Аренда помещения

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

Одновременно такой штат может вести 8 проектов (тоже по аналогии с материалом по ссылке выше), то есть за каждый месяц работы с вами они потратят как минимум 15 тысяч на аренду офиса под ваш заказ. Таким образом, для простых приложений, которые делаются за месяц-два, расходы составят 15-30 тысяч, для средних (3-6 месяцев) - 45-75, для сложных - от 90.

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

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

Плюс компании, которые используют BaaS-платформы (Backend as a service) вроде нашей, тратят на разработку значительно меньше (об этом ниже), соответственно, их услуги должны стоить дешевле. Эту информацию можно и нужно запрашивать на этапе переговоров, как и оценки всех работ с разбивкой по часам сотрудников. Лучше попросить выставить реальную стоимость разработки в часах с отдельно указанной комиссией, так вам будет проще сравнить предложения разных студий друг с другом и с цифрами из нашей статьи.

Проектирование и дизайн

Этим может заниматься и команда от трех специалистов (UX-дизайнер, UI-дизайнер и графический дизайнер), и один мастер на все руки. В первом варианте качество выше (цена тоже), но обычно студии используют второй. В нем на дизайн в среднем уходит 80 часов при затратах на разработку в 500 часов и 160 - при разработке в 900. Со средней московской зарплатой соответствующего дизайнера в 80 000 рублей в месяц (по данным hh.ru) и средним количеством рабочих часов в месяц 165 (по производственному календарю) получаем округленно 15 000 для простого приложения (около 270 часов на создание), 40 000 для среднего (около 670), 80 000 для сложного (около 1 150).

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

Разработка

Делится на backend и frontend, но мобильные программисты, специализирующиеся на определенной ОС, занимаются и тем, и другим. Исходя из среднего оклада сотрудника в 100 000 в месяц (по данным Superjob), получаем стоимость разработки простого приложения примерно в 120 000, среднего - 290 тысяч, сложного – 515 тысяч (количество часов на создание берем то же, что выше).

Пользуясь услугами фрилансеров, можно сэкономить, если искать их на русскоязычных площадках (причем желательно разработчиков из провинции) или найти хорошего недорогого спеца по рекомендации. Поиск на международных ресурсах программистов с хорошим рейтингом может обернуться только переплатой, даже при учете экономии на аренде помещения: если средний программист студии получает по текущему курсу около 9 долларов в час, то свободные художники с их свободным английским не стесняются оценивать себя в 2-6 раз дороже (данные Upwork).

Есть вариант упростить обе части разработки, создав приложения по шаблону. За него вы ежегодно будете платить всего 3-4 тысячи рублей, но качество таких продуктов обычно очень далеко от современного понимания прекрасного. Дальше, чем качество шаблонов сайтов и email-рассылок, например.

Второй вариант – упростить только программирование серверной части, воспользовавшись платформами backend-разработки. Это эффективно, потому что доля backend-работ (включая core) в программировании приложений составляет около 80% – на front уходит только пятая часть времени. Вы получаете готовый SDK, который включает в себя моделирование данных, PUSH, email- и SMS-уведомления, облачное хранилище, серверный код на JavaScript, аналитические инструменты и управление пользователями. Он помогает сократить количество задействованных сотрудников (даже в сложных приложениях можно обойтись без архитектора и разработчика баз данных, системного администратора и одним-двумя системными разработчиками вместо двух-трех) и снижает долю серверного программирования в разработке до 30%.

Это особенно положительно влияет на сроки создания всего продукта (то, что без BaaS-платформы можно написать за 18 месяцев, с ней делается в 2-3 раза быстрее), потому что больше всего времени на серверную функциональность тратится в начале, и пока не создана база, frontend писать невозможно. Плюс автоматически решается вопрос с облачными сервисами для хостинга данных и инструментами анализа серверной нагрузки на приложение. За использование платится комиссия, как у любого облачного сервиса.

Тестирование и публикация

Этим обычно занимается менеджер проекта или специальные тестировщики ПО, но зарплаты у них примерно одинаковые - около 80 тысяч в среднем (снова данные Superjob и HeadHunter). По практике, на тестирование и выкладывание в сторы уходит от 2 дней до 2 недель непрерывной работы, то есть от 16 до 80 часов. Для простого приложения это будет стоить 8 000 рублей, для сложного в районе 40, для среднего – около 25.

Прибавим сюда управление проектом, которое, скорее всего, будет осуществлять тот же менеджер. По опыту, он потратит на это около 3 дней непрерывной работы (включая первую встречу с клиентом, сбор требований и т.п.) в простом варианте, 7 - в среднем и от 14 - в сложном. В деньгах такие траты - это 12 000, 27 000 и 54 000 рублей соответственно.

Кстати, выкладывание приложения в магазин далеко не последняя по сложности задача. Гайдлайны App Store и Google Play содержат довольно много причин, по которым ваш продукт могут отклонить, например, возрастной рейтинг . Кроме того, каждая итерация проверки занимает довольно много времени – около недели (но есть способы ускорить процесс), что добавляет проблем тем, у кого к чему-то приурочены дедлайны по выкладке. Почитать инструкции, хитрости и опыт других других людей, который поможет в этом непростом деле, можно на Хабре.

Если говорить об итоговых цифрах времени и денег, на которые надо рассчитывать, по словам самих исполнителей, то здесь данные студий очень разнятся. Например, 2Nova Interactive озвучивает рамки от 600 тысяч рублей до нескольких миллионов. Минимальный срок разработки у них - 1,5 месяца (без учёта времени согласований и публикации в сторах).

У MST в портфолио есть и проекты, которые были сделаны менее чем за 2 недели, и такие, работы по которым ведутся уже несколько лет (продолжается доработка дополнительной функциональности). В AGIMA нам рассказали, что простое приложение делают за 2-3 месяца и относят к таким все, что дешевле 1 млн рублей (среднее они создают за 3-6 месяцев и стоит оно 2-4 млн, сложные – от 6 месяцев, и стоят они уже от 4 миллионов). Кстати, стоимость может быть как фиксированной, так и пересматриваться в процессе разработки, если у вас горят сроки и нет времени определяться с объемом функционала в начале проекта. Правда, во втором варианте, вы, скорее всего, переплатите за срочность.

Прогнозы

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

Например, уже сейчас есть гибридная система React Native, разработанная компанией Facebook, которая работает с нативными компонентами операционных систем iOS и Android. То есть это вариант кроссплатформенной разработки, которая, за счет взаимодействия с разными ОС напрямую, выглядит так, как будто приложение писали под каждое устройство отдельно. Пока технология ещё очень молодая (Android-версию, например, выпустили меньше года назад), в системе доступен весьма ограниченный функционал интерфейсных элементов, в плане багов тоже не всё гладко, но в будущем она вполне может решить все основные проблемы кроссплатформенной разработки.

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