Пишем первое приложение для Android
В любом деле самое сложное — это начало. Часто бывает тяжело войти в контекст, с чем столкнулся и я, решив разработать свое первое Android-приложение. Настоящая статья для тех, кто хочет начать, но не знает с чего.
Статья затронет весь цикл разработки приложения. Вместе мы напишем простенькую игру “Крестики-Нолики” с одним экраном (в ОС Android это называется Activity).
Отсутствие опыта разработки на языке Java не должно стать препятствием в освоении Android. Так, в примерах не будут использоваться специфичные для Java конструкции (или они будет минимизированы на столько, на сколько это возможно). Если Вы пишете, например, на PHP и знакомы с основополагающими принципами в разработке ПО, эта статья будет вам наиболее полезна. В свою очередь так как, я не являюсь экспертом по разработке на Java, можно предположить, что исходный код не претендует на лейбл “лучшие практики разработки на Java”.
Установка необходимых программ и утилит
Утилиты устанавливаются в определенном выше порядке. Ставить все перечисленные IDE смысла нет (разве только если Вы испытываете затруднения с выбором подходящей). Я использую IntelliJ IDEA Community Edition, одну из самых развитых на данный момент IDE для Java.
Запуск виртуального устройства
Запустив AVD Manager и установив дополнительные пакеты (SDK различных версий), можно приступить к созданию виртуального устройства с необходимыми параметрами. Разобраться в интерфейсе не должно составить труда.
Список устройств
Создание проекта
Мне всегда не терпится приступить к работе, минимизируя подготовительные мероприятия, к которым относится создание проекта в IDE, особенно, когда проект учебный и на продакшн не претендует.
Итак, File->New Project:
По нажатию кнопки F6 проект соберется, откомпилируется и запустится на виртуальном девайсе.
Структура проекта
На предыдущем скриншоте видна структура проекта. Так как в этой статье мы преследуем сугубо практические цели, заострим внимание лишь на тех папках, которые будем использовать в процессе работы. Это следующие каталоги: gen, res и src.
В папке gen находятся файлы, которые генерируются автоматически при сборке проекта. Вручную их менять нельзя.
Папка res предназначена для хранения ресурсов, таких как картинки, тексты (в том числе переводы), значения по-умолчанию, макеты (layouts).
src — это папка в которой будет происходить основная часть работы, ибо тут хранятся файлы с исходными текстами нашей программы.
Первые строки
Как только создается Activity (экран приложения), вызывается метод onCreate(). IDE заполнила его 2 строчками:
Метод setContentView (равносильно this.setContentView) устанавливает xml-макет для текущего экрана. Далее xml-макеты будем называть «layout», а экраны — «Activity». Layout в приложении будет следующий:
Для этого приложения идеально подойдет TableLayout. Id можно присвоить любому ресурсу. В данном случае, TableLayout присвоен При помощи метода findViewById() можно получить доступ к виду:
Теперь необходимо реализовать метод buildGameField(). Для этого требуется сгенерировать поле в виде матрицы. Этим будет заниматься класс Game. Сначала нужно создать класс Square для ячеек и класс Player, объекты которого будут заполнять эти ячейки.
Square.java
Player.java
Все классы нашего приложения находятся в папке src.
Game.java
Инициализация Game в конструкторе KrestikinolikiActivity.
Метод buildGameField() класса KrestikinolikiActivity. Он динамически добавляет строки и колонки в таблицу (игровое поле):
В строке 8 создается объект, реализующий интерфейс View.OnClickListener. Создадим вложенный класс Listener. Он будет виден только из KrestikinolikiActivity.
Осталось реализовать логику игры.
Определение победителя
К. О. подсказывает, что в крестики-нолики выирывает тот, кто выстроет X или O в линию длиной, равной длине поля по-вертикали, или по-горизонтали, или по-диагонали. Первая мысль, которая приходит в голову — это написать методы для каждого случая. Думаю, в этом случае хорошо подойдет паттерн Chain of Responsobility. Определим интерфейс
Так как Game наделен обязанностью выявлять победителя, он реализует этот интерфейс. Настало время создать виртуальных «лайнсменов», каждый из которых будет проверять свою сторону. Все они реализует интерфейс WinnerCheckerInterface.
WinnerCheckerHorizontal.java
WinnerCheckerVertical.java
WinnerCheckerDiagonalLeft.java
WinnerCheckerDiagonalRight.java
Проинициализируем их в конструкторе Game:
Победителя проверяем после каждого хода. Добавим кода в метод onClick() класса Listener
Метод gameOver() реализован в 2-х вариантах:
Для Java, gameOver(Player player) и gameOver() — разные методы. Воспользовавшись Builder’ом Toast.makeText, можно быстро создать и показать уведомление. refresh() обновляет состояние поля:
Готово! Надеюсь, эта статья помогла Вам освоиться в мире разработки под OS Android. Благодарю за внимание!
Видео готового приложения
PS: статья была опубликована по просьбе комментаторов этого поста.
Пишем своё первое приложение на Android
Предисловие
Подготовка к разработке
Установка среды разработки Eclipse
Тут всё просто. Идём в раздел Downloads на официальном сайте и качаем версию Classic. Далее просто распакуйте архив, куда вам хочется, я же решил это сделать в почетную директорию C:\Eclipse
Установка ADT плагина к Eclipse
Запускаем Eclipse, и открываем диалог установки плагина через меню Help → Install new software. В поле Work with вписываем адрес загрузки плагина dl-ssl.google.com/android/eclipse (если не получилось, то плагин можно скачать и установить вручную по ссылке http://developer.android.com/sdk/eclipse-adt.html), далее в таблице ниже появится Developer Tools, отмечаем его и идем далее.
После успешной установки, можно перезапустить среду Eclipse.
Установка среды для Java: JDK и JRE
Если у вас еще не установлены Java Development Kit (JDK) и Java Runtime Environment (JRE), то их необходимо установить. Сделать это можно на сайте Oracle. Скачайте и установите JDK и JRE.
Установка Android SDK
Дело осталось за малым — это скачать и установить свежий Android SDK. Это делается на сайте для Android разработчиков. Я лично установил SDK опять-таки в почётную директорию C:\Android. После этого необходимо добавить платформы и прочие дополнительные элементы SDK. Я добавил все доступные версии, так как планирую делать приложения и для ранних платформ, а также USB-драйвер и примеры приложений.
Подготовка к разработке завершена. Теперь следующий этап — создание приложения.
Создание Android-приложения
Перед тем как создать своё первое приложение, можно создать виртуальное Android-устройство, чтобы быстро тестировать на нём свой свеженаписанный софт. Вначале я хочу сказать вам несколько слов по поводу Android Virtual Device (AVD). Это виртуальный смартфон с ОС Android, на котором вы с легкостью сможете запускать созданную вами программу. Как можно заметить, преимущество Android Virtual Device состоит в том, что наглядно можно увидеть как будет работать Ваша программа на разных смартфонах с Android, а не покупать весь модельный ряд и тестировать приложение на каждом из них.
Приступим к созданию виртуального устройства Android. Следуем в меню по пути Window → Android SDK and AVD Manager.
Выбираем New в правой части окна, в появившемся окне вписываем имя виртуального устройства, платформу (допустим Android 2.1), размер карты памяти (допустим 512 Mb), тип дисплея (допустим HVGA). Затем жмем внизу на кнопку Create AVD.
Теперь создадим проект. Для этого идем по пути в меню File → New → Other, в появившемся списке Android → Android Project.
В качестве примера расскажу о разработке одной моей простейшей программы UfaTermometr, показывающей текущую температуру с датчиков, расположенных на одном из объектов местной энерго-компании.
Подробно останавливаться на разметке элементов управления не буду, так как это всё достаточно подробно описано в мануале и вообще интуитивно понятно, особенно тому, кто имел дело с html/css-вёрсткой и/или разработкой в какой-либо визуальной среде (например, Delphi). Единственное, обратите внимание как я загрузил произвольное изображение в ImageView. В поле src указывается путь, начинающийся с символа @ и далее указываете адрес по дереву. В папке res я заблаговременно создал подпапку drawable и «закинул» туда логотип, а затем просто указал ImageView путь. Легко? По мне так очень.
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.Button;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.regex.*;
public class UfaTermometr extends Activity
<
@Override
public void onCreate(Bundle savedInstanceState)
<
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final Button button = (Button) findViewById(R.id.refrbutton);
button.setOnClickListener( new Button.OnClickListener() <
public void onClick(View v) // клик на кнопку
<
RefreshTemper();
>
>);
RefreshTemper(); // при запуске грузим температуру сразу
>;
//—————————————————————-
public String GetTemper(String urlsite) // фукция загрузки температуры
<
String matchtemper = «» ;
try
<
// загрузка страницы
URL url = new URL(urlsite);
URLConnection conn = url.openConnection();
InputStreamReader rd = new InputStreamReader(conn.getInputStream());
StringBuilder allpage = new StringBuilder();
int n = 0;
char [] buffer = new char [40000];
while (n >= 0)
<
n = rd.read(buffer, 0, buffer.length);
if (n > 0)
<
allpage.append(buffer, 0, n);
>
>
// работаем с регулярками
final Pattern pattern = Pattern.compile
( » [^-+0]+([-+0-9]+)[^ [^(а-яА-ЯёЁa-zA-Z0-9)]+([а-яА-ЯёЁa-zA-Z ]+)» );
Matcher matcher = pattern.matcher(allpage.toString());
if (matcher.find())
<
matchtemper = matcher.group(1);
>
return matchtemper;
>
catch (Exception e)
<
>
return matchtemper;
>;
//—————————————————————-
public void RefreshTemper()
<
final TextView tTemper = (TextView) findViewById(R.id.temper);
String bashtemp = «» ;
bashtemp = GetTemper( «be.bashkirenergo.ru/weather/ufa» );
tTemper.setText(bashtemp.concat( «°» )); // отображение температуры
>;
>
После того как приложение написано, можно уже его отлаживать и тестировать.
Запуск и тестирование приложения
Вспоминаем про нашу виртуальную машину и запускаем привычной кнопкой или менюшкой Run → Run
Вот такую картину мы можем затем созерцать:
Заключение
В заключении хотелось бы сказать, что безусловно разработка приложений для Android приятна, достаточно проста и интересна. Конечно, мы рассмотрели лишь верхушку айсберга, но я надеюсь, что в умах тех из вас, кто раньше не пробовал делать ничего подобного «загорелась лампочка» и вполне возможно, что когда-то вашим приложением будут пользоваться миллионы.
Источники, ссылки
UPD: Устранение возможных ошибок
ERROR: Unable to open class file C:\workspace\Test\gen\com\example\test\R.java: No such file or directory
emulator: ERROR: no search paths found in this AVD’s configuration. Weird, the AVD’s config.ini file is malformed. Try re-creating it
— это следствие того, что у Вас кириллица в имени пользователя. Решается: идем в Компьютер → Свойства системы → Дополнительные параметры системы → Переменные среды. Создаем новую переменную с именем ANDROID_SDK_HOME и значением – путем, где находится папка AVD (например, C:\Android\). Создаем, далее ищем там же переменную Path, открываем и в поле значений через точку с запятой добавляем путь до папки tools Android SDK (например, C:\Android\tools). Сохраняем. Запускаем Eclipse, запускаем программу.
UPD 05.10.2011, во что превратилось данное приложение можно лицезреть на следующих скринах:
Это результат развития той самой болванки, которая выше дана в качестве примера.
Разработка и создание Android-приложений
Создание сайтов
10 качественных конструкторов приложений для Android
Как создать приложение для Android?
Для начал вам нужно определиться, как именно вы будете создавать приложения: вручную прописывать код или с помощью графических конструкторов приложений? Ручные верстаки более продвинуты и дают более сложные игры, но для новичка это не вариант.
Так как вы читаете эту статью, то скорее всего, ваши знания еще не на высоком уровне и вы только делаете первые шаги.
Основные задачи для начинающего разработчика
Прежде разберемся, какой конструктор приложений вы будете использовать. Чем должен обладать наш редактор:
Придерживайтесь данных советов и выбирайте только проверенные редакторы.
10 самых популярных графических конструкторов приложений
#1 Alstrapp
Alstrapp — полноценная CMS для создания и управлением приложением для Android и iOS.
Нет никаких абонентских платежей и подписок — только единоразовая покупка лицензии, которая дает возможность создавать неограниченное(!) количество приложений без ограничений.
Из основных преимуществ стоит отметить:
Приложение созданное через Alstrapp, будет иметь чистый код и без труда пройдет модерацию в мобильных сторах. Как правило, с этим пунктом во многих онлайн конструкторах есть проблемы.
Alstrapp имеет систему локализаций и поддерживает русский язык.
Кстати, на русском языке можно написать и в поддержку — разработчики наши соотечественники.
#2 NWICODE
NWICODE является инновационным лидером в области разработок приложений, т.к. разработчикам удалось создать полноценную CMS, благодаря который каждый человек сможет написать своё приложение без каких либо знаний языков программирования. На этой платформе возможно создавать приложения для Android, iOS, а также Web App. Основные плюсы:
Также хорошими плюсами является отзывчивая команда техподдержки и бесплатный хостинг для приложений на первый месяц обслуживания.
Программа оставляет открытым исходный код и стили, которые можно изменять на своё усмотрение, если обладаете навыками программирования. Полностью на русском языке.
#3 APPS-TECH
Мы заметили удивительную вещь. Среди зарубежных конструкторов приложений большинство бесплатные, а среди отечественных – платные. Поэтому APPS-TECH словно глоток свежего воздуха, ведь предлагает создание и размещение приложений бесплатно.
Понятный интерфейс на русском языке и возможность разрабатывать неограниченное количество приложений портят только банальные шаблоны со стандартным дизайном
#4 FREEL APP
Главная особенность сервиса FREELAPP в отсутствии классической оплаты. Платить нужно только за лицензию на определённое количество приложений. Видеоуроки с пошаговым обучением, открытые исходные коды, удобный интерфейс, хранение данных на безопасных облачных серверах – благодаря этим преимуществам FREELAPP находится в нашем списке.
К сожалению сервис больше не доступен.
#5 Своёприложение
Платформа с креативным названием Своёприложение создана в начале 2017 года молодыми российскими предпринимателями и обладает широким функционалом. Она подходит для всех типов бизнеса, особенно, мобильных интернет-магазинов.
Первая «фишка» сервиса в том, что вы можете прислать свой фирменный стиль менеджеру, и он бесплатно интегрирует его в ваше приложение. Вторая — в приложении уже подключен эквайринг
К сожалению сервис больше не доступен.
#6 APPSFERA
Платформа APPSFERA позволяет создать приложение без технических знаний и буквально за несколько минут. Она предлагает более 50 готовых модулей, полностью настраиваемый дизайн, возможность использования собственных стилей и кодов, а также интегрирование RSS ленты любого сайта в приложение.
Вас ждут и дополнительные «плюшки», среди которых фото и видеогалерея, отправка push сообщений непосредственно на смартфоны клиентов, обнаружение геолокации
#7 THEAPPBUILDER
Это бесплатный инструмент создания приложения. Явное неудобство состоит в том, что русского языка нет вообще, поэтому начальные знания английского языка вам необходимы, но в целом разобраться нетрудно.
Сервис отлично подойдёт для начального и среднего уровня знания темы. Доступны пошаговые инструкции, также есть полезные советы.
Перечислю главные достоинства THEAPPBUILDER:
#8 APPSGEYSER
Самый быстрый конструктор приложений. Главное преимущество данного редактора – вшивать ссылки и рекламу вашего сайта в приложения Android.
Вот еще некоторые главные отличия данного сервиса:
#9 IBUILDAPP
Этот редактор, можно смело именовать как – конструктор приложений. Что вам будет нужно, так это складывать уже существующие пазлы, которых собранно очень много в инструменте.
Перечислим особенности IBUILDAPP:
#10 App Inventor
Самый востребованный графический конструктор приложений на рынке. Данный ресурс был разработан, некем иным, как компанией Google. Этот редактор оснащен самыми продвинутыми методами и алгоритмами, которые способны создавать достойные программы.
Бесплатность проекта, только усиливает его привлекательность для простого обывателя. Для работы с данным приложением, вам необходимо иметь аккаунт в Google системе. Регистрация также бесплатна. Все ваши начинания, будут сохраняться в облаке, что дает вам неограниченные возможности работать дома с любого устройства, так и в любой точке мира.
Еще хочется отметить следующее:
Интересный факт: через десять лет каждый второй разработчик компьютерных игр будет женщиной
Писать самому или доверить студии разработчиков?
Из вышесказанного в статье, сразу отметим, что написание программ вручную не так сложно. Создавая самим, вы не уплачиваете разработчикам, а значит получаете неоценимый личный опыт в создании и выгоду в первоначальном взносе. При личном написании работы, вам будет проще создавать то, что вы желаете, ведь не всегда можно доходчиво описать свои желания, а уж тем более воссоздать в программе.
Но если вы решитесь довериться студии разработчиком, можно рассчитывать на быстрое выполнение вашего заказа. Профессионалы своего дела, способны создавать ваши пожелания в проекты, на уровне интуиции, они все знают об этом деле. Так вы получите очень дельные советы по улучшению вашей программы, для увеличения ее прибыльности и качества.
В заключение отмечу, чтобы вы ни выбрали, для начала составьте план ваши действий, прикиньте, если у вас столько свободного времени для создания и каковы ваши финансовые возможности. В целом каждый из ресурсов поможет вам достигнуть желаемого — было бы только желание!
Создаем приложение для ANDROID быстро и просто
После успешной установки мы можем создать свой первый проект.
Мы можем его запустить в эмуляторе, который идет комплекте с Visual Studio нажав клавишу F5.
Приводим код к такому виду. Здесь мы создаем WebView контейнер который будет грузить локальный HTML файл, который находится в проекте в папке Assets.
По такому принципу можно создать приложение быстро и просто. Файлы html будут выглядеть одинаково на всех устройствах. То есть, Вы можете сделать приложения для Android и iOS с одинаковым интерфейсом. Не надо изучать сложные языки разметки, не надо изучать сложные макеты (сториборды) на iOS. Все можно сделать на HTML.
В идеале, вместо локальных файлов можно сделать загрузку со стороннего сайта. В этом случае Вы можете менять контент приложения без его обновления в AppStore и Google Play.
Q: Но как быть с функциями самой платформы? Пуш сообщения? Как взаимодействовать с самой платформой?
Все очень просто! JavaScript можно использовать для вызова функций Android:
Мы видим, что теперь программа ругается на Export так как не знает что это такое.
Так вы можете подключать библиотеки если вдруг Visual Studio ругается на что то.
Данная функция это показ всплывающей информации на экране. Она выполняется именно на платформе Андроида. То есть мы можем написать в HTML файле вызов функции Андроида. Получается полное дружелюбие двух платформ по JavaScript интерфейсу. Данные можно передавать туда сюда. Вызывать переход от одной активити в другую. Все через HTML + JavaScript.
Немного модифицируем файл login.htm:
Теперь при нажатии на кнопку HTML вызывается функция Toast андроида и выводиться сообщение пользователю.