Разработать приложение для android. Создание программ и приложений для Android

01.06.2019

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

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

Новичкам в программировании поможет наша .

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

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

Вы всегда можете найти у нас на сайте.

FAQ

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

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

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

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

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

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

Может, мне стоит забыть про Java и начать учить Kotlin?

Google теперь официально поддерживает Kotlin как язык разработки под Android, но это не значит, что про поддержку Java можно забыть. В ближайшем обозримом будущем документация, инструменты, новые фичи платформы будут поддерживать как Kotlin, так и Java. Хотя Kotlin - более молодой язык с некоторыми приятными особенностями, вы всё ещё можете создавать отличные приложения на Java. Выбор зависит только от вас, но если вам не принципиально или вы новичок, то, возможно, лучше сделать выбор в пользу Kotlin.

Ресурсы

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

Официальные ресурсы Android

Дизайн

  • Красивости для Android – вдохновение для создания графических интерфейсов под Android.

Рассылки

  • Android Weekly – замечательная рассылка, помогающая быть в курсе последних разработок Android.

Коллекции библиотек

Инструменты

  • Genymotion – крайне полезный и функциональный эмулятор.
  • Android Asset Studio – отличная коллекция инструментов для создания/редактирования иконок, изображений и т.д.
  • Codota Plug-in для Android Studio – замечательные примеры кода прямо в Android Studio.

Примеры open source приложений

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

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

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

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

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

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

Какой список задач у данного проекта?

А также, какие есть ограничения? Сколько мне нужно разработчиков?

Откуда будут приходить/где будут храниться данные?

А также, как они будут использоваться? Разработана ли у меня соответствующая политика приватности?

Есть ли цель заработать денег?

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

Как вы будете платить вашим разработчикам?

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

Какой будет способ тестирования?

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

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

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

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

Продумайте реализацию этой функциональности.

Какова ваша целевая аудитория?

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

Реализована ли уже моя идея?

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

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

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

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

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

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

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

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

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

В статье описаны основные трудности создания приложений под Android.
Рассматриваются базовые понятия программирования Android.
Для примера описано создание игры Sudoku из книги Hello, Android – Ed Burnette .
Осторожно много скриншотов.

1. Трудности разработки

Android это уникальная операционная система. Разработчик приложений должен знать ее особенности и нюансы для получения хорошего результата. Существуют некоторые трудности, которые нужно учитывать при разработке (). Перечислим их кратко:
1) Приложение требует для установки в два раза (или даже в четыре) больше места чем оригинальный размер приложения.
2) Скорость работы с файлами на встроенной флэшке падает в десятки раз при уменьшении свободного места.
3) Каждый процесс может использовать до 16 Мб (иногда 24 Мб) оперативной памяти.

2. Принципы разработки производительных приложений под Android

Для работы нужен Android SDK и Eclipse. О том как все установить и начать написано .

Для загрузки проекта в Eclipse ножно выполнить такую последовательность действий:
1) Разархивировать проект в отдельную папку в рабочем пространстве Eclipse.
2) Выбрать пункт меню File->New->Android Project.
3) В диалоге New Android Project выбрать опцию Create project from existing source.
4) В поле Location указать путь к папке с проектом. Нажать Next.

Меню программы

Игровое меню описано в файле res/layout/main.xml. Описание интерфейса можно редактировать в виде XML или в виде визуализированного интерфейса. Для переключения служат вкладки внизу области отображения содержимого.

Обычно элементы управления содержатся внутри контейнера, в нашем случае это LinearLayout. Он располагает все элементы в виде одной колонки.

Ресурсы

Обратите внимание, что все текстовые надписи (android:text) берут данные из ресурсов. Например, запись android:text="@string/main_title" указывает, что текст нужно искать в файле res/values/string.xml в узле с именем main_title (Android Sudoku). Цвет фона также содержится в ресурсах (android:background="@color/background") но в файле color.xml (#3500ffff). При открытии файлов ресурсов в редакторе может возникнуть ошибка. Но всегда можно перейти к отображению XML.

Элементы управления к которым нужно получить доступ из кода должны иметь id. У кнопок есть id (android:id="@+id/continue_button") для того что бы было можно присоединить к кнопке обработчик нажатия. Знак плюс указывает, что для кнопки нужно создать идентификатор в файле /gen/org.example.sudoku/R.java (public static final int continue_button=0x7f0b000b;). Этот файл генерируется автоматически и не рекомендуется его изменять. Файл содержит класс R через него можно обратиться к любому элементу интерфейса и другим ресурсам.

Создание окон

Рассмотрим создание окна с информацией о программе. Разметка этого окна находится в файле /res/layout/about.xml. Activity класс описан в файле /src/org.example.sudoku/About.java. Activity связана с разметкой в файле AndroidManifest.xml. Этот файл можно просматривать или через редактор или в виде XML. На разных вкладках редактора можно выбрать различные разделы файла. В разделе Application находятся параметры Activity. Обратите внимание, что параметр Theme имеет значение :style/Theme.Dialog. Благодаря этому стиль окна больше похож на модальный диалог.

Вызов окна с информацией о программе осуществляется из класса Sudoku по нажатию кнопки About. Класс Sudoku написан так, что сам обрабатывает событие Click (public class Sudoku extends Activity implements OnClickListener). В методе public void onClick(View v) определяется какая кнопка вызвала событие и выполняется соответствующий код. Для показа окна About вызывается соответствующий Intent.
case R.id.about_button:
Intent i = new Intent(this, About.class);
startActivity(i);
break;

Обработчики событий также могут устанавливаться на конкретные элементы управления. Например в классе Keypad при создании класса в методе setListeners() устанавливаются обработчики для отдельных кнопок.

Простой диалог

Пользователю нужно дать возможность выбрать уровень сложности. Это маленький диалог, в котором нужно выбрать один из нескольких вариантов. Очень радует, что для этого не нужно создавать отдельный Intent, а достаточно воспользоваться классом AlertDialog.
Разберем процес старта новой игры. Пользователь нажимает на кнопку New Game. Обработчик нажатия это метод класса Sudoku – onClick. Далее вызывается метод openNewGameDialog, который показывает диалог выбора сложности и стартует игру с выбранным уровнем сложности. Это диалог строится с помощью класса AlertDialog.

Private void openNewGameDialog() { new AlertDialog.Builder(this) .setTitle(R.string.new_game_title) .setItems(R.array.difficulty, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialoginterface, int i) { startGame(i); } }) .show(); }

Обратите внимание, что содержимое диалога (набор кнопок) строится из массива строк R.array.difficulty. Тут же назначается обработчик нажатия на кнопки диалога, который по номеру нажатой кнопки запускает новую игру с заданным уровнем сложности, вызывая метод startGame.

Графика

За игровую логику отвечает класс Game. Тут загружаются задания, проверяются условия выигрыша. Класс Game есть Activity но интерфейс описан не в XML, а создается кодом. В методе onCreate создается View:

PuzzleView = new PuzzleView(this);
setContentView(puzzleView);
puzzleView.requestFocus();

PazzleView это класс производный от View, в нем рисуется игровое поле и происходит обработка событий касания экрана (метод onTouchEvent) и нажатия клавиш (метод onKeyDown).

Разберем процесс рисования в Android. Для рисования нужно перегрузить метод onDraw. Метод получает объект Canvas через который осуществляется рисование. Для задания цветов создаются обьекты класса Paint. Цвет задается в формате ARGB. Цвет лучше хранить в виде ресурсов (файл colors.xml). Paint это не только класс для хранения информации о цвете. Например при рисовании текста он содержит информацию о способе закрашивания, шрифте и выравнивании текста.

Canvas содержит набор методов для рисования графики (drawRect, drawLine, drawPath, drawText и другие).

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

Музыка

Для воспроизведения музыки используется класс MediaPlayer. Музыка для игры добавлена в ресурсы. Нужно просто скопировать нужные файлы в папку /res/raw (форматы WAV, AAC, MP3, WMA, AMR, OGG, MIDI).
Для начала нужно создать экземпляр класса MediaPlayer:
mp = MediaPlayer.create(context, resource);
тут context это обычно класс, который инициирует запуск музыки, resource – идентификатор ресурса с музыкой. Для управления воспроизведением используют методы start, stop и release.

В игре музыка воспроизводится в главном меню (запуск из класса Sudoku) и в игровом процессе (запуск из класса Game). Для управления воспроизведением создан класс Music. Класс содержит статический экземпляр MediaPlayer, что позволяет не создавать отдельный проект для каждого запуска звукового ресурса.

В классах Sudoku и Game переопределены методы onResume и onPause, в которых запускается музыка при старте Activity и останавливается при деактивации.

Выводы

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

P.S. Большое спасибо пользователю

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

Идея

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

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

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

Типы приложений

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

  • развлекательные (мультимедийные) приложения — любые проигрыватели видео и аудиофайлов, программы для просмотра изображений, для чтения книг, игры;
  • коммуникационные — ответственные за общение пользователя, его контакты, социальные сети, СМС-сообщения;
  • навигационные — приложения, работающие с географическими координатами, с системой GPS;
  • прикладные — всевозможные калькуляторы, органайзеры, записные книжки;
  • справочные — энциклопедии, словари;
  • бизнес-приложения, позволяющие организовывать работу, набирать сотрудников, разрабатывать стратегии, повышать прибыль;
  • обучающие программы.

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

Если вы не Евросеть или Мегафон, не интернет-портал AliExpress, то вы возможно захотите заработать на создании вашего приложения. Самый простой способ это создать платное приложение. Но здесь вам необходимо задать себе несколько вопросов:

  1. Что представляет из себя ваше предложение, какую пользу оно приносит людям?
  2. Какими преимуществами обладает по сравнению с конкурентами?
  3. Сколько скачиваний у конкурентов?

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

Другие варианты монетизации:

  • встроенные покупки;
  • реклама в приложении;
  • спонсорство и офферы;

Разработка

У вас есть идея, но нет никакого опыта в программировании, тогда для вас следующие варианты:

  • сайт AppBooker выдаст вам список популярных разработчиков, с учетом вашего бюджета и потребностей;
  • apps4all.ru — здесь хороший список отечественных разработчиков;
  • самый дешевый вариант — это обратиться на биржу фрилансеров.
Самый дешевый, не значит плохой, но значит более рискованный: вам могут сделать отличное приложение, но вам и может попасться недобросовестный работник.

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

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

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

Как создать приложение бесплатно?

Если вы обладаете хотя бы минимальными навыками программирования, тогда вам в помощь онлайн конструкторы мобильных приложений. В них обращайте внимание на то, для какой системы пишется мобильное приложение, например, для iPhone или Nokia Corporation, Android, Java. Наиболее популярная система — Android. Алгоритм создания мобильного приложения схож с алгоритмом создания сайтов. Но учтите сразу, что если вы желаете создать нечто уникальное в высшей степени, то ваша разработка потребует или денег, или серьезного вложения времени.

Сколько можно заработать?

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

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

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

С помощью онлайн-конструкторов действительно можно сделать работоспособные качественные мобильные приложения. В дальнейшем их стоит рекламировать, публиковать в Google Play и AppStore. Покупки приложений приносят дохода на 25% меньше, чем покупки в самом приложении, - по данным исследования Apple, — но на 30% больше, чем реклама внутри сервиса и другие способы заработка.

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

Проверка гипотезы: стоит ли использовать online сервисы для создания мобильных приложений?

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

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

Одним из способов проверки ценности планируемых задач будущего проекта является короткий TTM (time to market), цель которого за короткий срок выпустить минимальную рабочую версию мобильного приложения и получить ускоренный фидбек от пользователей.

Способов достижения короткого TTM и быстрого сбора отзывов множество. Один из наименее затратных и позволяющих в короткий срок проверить необходимость создания программы на андроид для уже существующего бизнеса - online-конструкторы мобильных приложений.

Для каких задач подойдет такое решение:

  • Создание мобильной версии вашего сайта
  • Увеличение каналов продаж имеющегося on-line магазина
  • Повышение коммуникационных каналов между сотрудниками и клиентами
  • Увеличение новостных каналов для вашего блога, сайта, новостной рассылки

Когда использовать такие сервисы?

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

Преимущества использования:

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

Недостатки:

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

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

Если вы все же решились делать приложение самостоятельно, мы подобрали для вас несколько бесплатных / условно-бесплатных сервисов.

TOP-10 ПРОГРАММ ДЛЯ СОЗДАНИЯ ПРИЛОЖЕНИЙ ДЛЯ ANDROID И IOS

    Сервис appsgeyser позволяет переделать ваш сайт, блог, видео или страницу в соц сетях в мобильное приложение для android с последующей публикацией в Google Play.

    – полностью бесплатный и не ограничивает вас в количестве созданных пользователем приложений.

    Преимущества платформы: удобный просмотр приложений, программ, быстрая конвертация любого контента (видео с YouTube, html документа, сайта) в мобильное приложение.

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

  1. www.theappbuilder.com

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

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

    Цена: индивидуально по запросу.

  2. – сервис, предлагающий готовые решения для бизнеса – приложения для ресторанов, отелей, ночных клубов, общественных организаций. Конструктор рассчитан на создание мобильных программ для Android (Андроид), Apple iOS, Mobile Web, Webpage. Приложение можно сделать мультиязычным.

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

    Стоимость разработки одного мобильного приложения: 49 $.

    – русскоязычный сайт-конструктор приложений, позволяющий без знания программирования создавать функциональные приложения по готовым шаблонам для всех популярных электронных устройств (iPhone, Android, iPad, Android Tablet). Так же сервис предлагает простой способ размещения приложения в магазинах Google Play и Apple Store.

    Цены: Разработка мобильного приложения для Android и iOS – FREE. Пакет «Бизнес» – 2 400 руб./мес (1 приложение, 3 тыс. установок, публикация в магазинах, отсутствие рекламы). Пакет «Безлимитный» – 3 700 руб./мес (1 приложение, неограниченное количество установок, публикация в магазинах, отсутствие рекламы). Пакет «Корпоративный» – 27 100 руб./мес (10 приложений, неограниченное количество установок, дополнительная защита контента, техническая и консультативная поддержка).

  3. www.mobileroadie.com

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

    Цена на использования различается от пакета услуг: Пакет Core – 149 $ в месяц или 1 499 $ в год, позволит создать простое приложение без сложных технических решений и внешних сервисов. Пакет Pro – 799 $ в месяц или 7 999 $ в год, позволит подключить внешние сервисы и настраивать контент приложение из админки.

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

    Важное преимущество сервиса – полное отсутствие рекламы и возможность разработки приложений для электронных устройств на iOS, Android (Андроид) и Windows Phone.

    Цены: На сайте доступны бесплатный и платный пакет: App Basics – 1 $ в месяц App Pro – 9 $ в месяц Unlimited Reseller – 39 $ в месяц.

    Аppery – платформа для разработки бизнес приложений для iOS, Android (Андроид) и Windows Phone. Конструктор развернут в облаке, что исключает необходимость установки программ на жесткий диск и предназначен для создания функциональных бизнес-приложений.

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

    Стоимость пакетов: Базовая версия: 30 $ Стандартная версия: 30 $ (оплата за 12 мес), 45 $ (помесячная оплата). Версия Pro: 57 $ (оплата за 12 мес); 85 $ (помесячная оплата).

    – платформа для самостоятельного конструирования мобильных приложений для iPad, iPhone, Android, HTML5. Ко многим своим преимуществам, сервис позволяет создавать e-commerce приложения с подключением монетизации.

    Цены: Basic – 22,90 $ в месяц или 19,90 $ в месяц (при годовой оплате) Advanced – 58,90 $ в месяц или 49 $ в месяц (при годовой оплате) Unlimited – 139,90 $ в месяц или 119,90 в месяц (при годовой оплате).

    – платформа дает возможность пользователю без труда создать функциональное приложение для Android и iOS (iPhone, iPad) под малый и средний бизнес. На BiznessApps вы создаете мобильное приложение с использованием сотен готовых шаблонов.

    Стоимость пакетов: Мобильный сайт – 29 $ в месяц Мобильного приложение – 59 $ в месяц.

  5. www.viziapps.com

    – сервис позволяет создавать мобильные приложения для бизнеса с помощью функционального визуального редактора. Через платформу легко внедрить новый интерфейсы для SalesForce, QuickBooks, QuickBase, Google Spreadsheets и SQL Databases. Приложения, созданные в Viziaapps, работают на всех популярных типах мобильных ОС.

    Стоимость пакетов: Developer – 33 $ в месяц Pro – 79 $ в месяц Premium – 129 $ в месяц.

    * Годовая оплата обязательна.

    Так же, как и с сайтами, при создании своего продукта с помощью on-line конструкторов на вас накладывается множество ограничений. Примеры ограничений:

    • Приложение сложно интегрировать со внешними сервисами, не предусмотренными конструктором.
    • При использовании бесплатных on-line конструкторов на вас накладываются серьезные ограничения, такие как реклама внутри вашего продукта, сбор данные о продукте и клиентах, функциональные ограничения.
    • Созданный продукт сложно масштабировать. В случае роста числа пользователей ваше решение будет виснуть или может стать недоступным для пользователей. Так же вы не сможете перенести приложение на альтернативные площадки использования (например, имеющий в СНГ популярность yandex.store или в США Amazon).

    Созданные с помощью on-line конструкторов приложения служат для проверки гипотез вашего проекта. Однако, если вы получили отрицательный отзыв и ваш проект не оценили, перед тем как убрать его в дальний ящик, определите что именно стало залогом неудачи. Иначе вы рискуете потерять прибыльный проект из-за слабой реализации.

Изучить новый язык и среду разработки - это минимум, что от тебя потребуется, если ты захочешь написать свое первое мобильное приложение. Чтобы с пониманием набросать элементарный todo list для Android или iOS, не передирая пример из книжки, уйдет не меньше пары недель. Но можно не осваивать Objective-C или Java и при этом быстро разрабатывать приложения для смартфонов, если использовать такие технологии, как PhoneGap.

Если ты внимательно изучал нововведения, которые ожидают нас в Windows 8, то, возможно, заметил, что под ней можно будет разрабатывать приложения на HTML5. Идея, на самом деле, не новая - технологии, реализующие тот же подход для мобильных платформ, развиваются семимильными шагами. Одним из таких фреймворков, позволяющим разрабатывать приложения для смартфонов с помощью связки привычных для нас HTML, JavaScript и CSS!, как раз и является PhoneGap. Написанное с его помощью приложение подойдет для всех популярных платформ: iOS, Android, Windows Phone, Blackberry, WebOS, Symbian и Bada. Тебе не нужно будет изучать особенности программирования под каждую платформу (например, Objective-C в случае с iOS), разбираться с различными API и средами разработки. Все, что потребуется для создания кросс-платформенного мобильного приложения, - это знание HTML5 и специального PhoneGap API. При этом на выходе получится не тупая HTML-страница, «обрамленная» в интерфейс приложения, нет! API фреймворка позволяет задействовать практически все возможности телефона, которые используются при разработке с помощью нативных инструментов: доступ к акселерометру, компасу, камере (запись видео и фотосъемка), списку контактов, файловой системе, системе нотификаций (стандартных уведомлений на телефоне), хранилищам и т. д. Наконец, такое приложение может безболезненно обращаться к любому кросс-доменному адресу. Ты можешь воссоздать нативные элементы управления с помощью фреймворков вроде jQuery Mobile или Sencha, и конечная программа будет выглядеть на мобильном телефоне так, как будто она написана на нативном языке (ну или почти так). Лучше всего проиллюстрировать вышесказанное на деле, то есть написать приложение, поэтому предлагаю сразу приступить к практике. Засекай время - на все про все уйдет едва ли больше получаса.

Что мы будем создавать

В качестве целевой платформы возьмем iOS - да-да, деньги лежат в AppStore, и монетизировать свои разработки пока лучше всего там:). Но сразу внесу ясность: все то же самое, без изменений, можно провернуть, скажем, для Android. Долго думал, какой пример рассмотреть, так как писать очередную тулзу для учета списка дел совершенно не хотелось. Поэтому я решил создать приложение под названием «Геонапоминалка», навигационную прогу, назначение которой можно описать одной фразой: «Сообщи мне, когда я снова тут окажусь». В AppStore есть немало утилит, которые позволяют «запомнить» место, где пользователь припарковал машину. Это почти то же самое, только чуть попроще. Ты сможешь указать на карте города точку, задать для нее определенный радиус и запрограммировать сообщение. Когда ты в следующий попадешь в пределы окружности с указанным радиусом, приложение выдаст тебе уведомление, а точка будет удалена. Будем действовать по такому плану: сначала создадим простое веб-приложение, проверим его в браузере, а затем перенесем с помощью PhoneGap на платформу iOS. Очень важно написать в прототипе и протестировать в браузере на компьютере основную часть кода, поскольку отлаживать приложение в телефоне гораздо сложнее. В качестве каркаса мы возьмем JS-фреймворк jQuery c jQuery Mobile (jquerymobile.com), а в качестве движка карт - Google Maps v3. Приложение будет состоять из двух страниц: карты и списка точек.

  • На карте устанавливается маркер твоего текущего положения. По клику на карте создается точка, к которой привязывается сообщение (вроде «машина рядом»). Точку можно удалить, кликнув на ней. Для перемещения маркера человека по карте используется геонавигационный API.
  • На странице со списком точек должна иметься дополнительная кнопка «Удалить все точки», а рядом с каждой точкой - кнопка «Удалить эту точку». Если кликнуть по элементу в списке, соответствующая точка отобразится на карте. Настройки пользователя и список точек будем сохранять в localStorage.

UI-фреймворки

jQuery Mobile - это, конечно, не единственный фреймворк для создания мобильного интерфейса. На сайте PhoneGap приведен огромный список библиотек и фреймворков, которые ты можешь использовать (phonegap.com/tools): Sencha Touch, Impact, Dojo Mobile, Zepto.js и др.

Каркас приложения

Сразу объясняю, зачем мы будем использовать jQuery Mobile. Эта JS-библиотека предоставляет нам уже готовые элементы интерфейса мобильного приложения (максимально приближенные к нативным) для самых разных платформ. Нам ведь надо, чтобы на выходе было именно мобильное приложение, а не страничка из браузера! Так что качаем последнюю версию JQuery Mobile (jquerymobile.com/download) и переносим в рабочую папку первые файлы приложения, которые нам понадобятся:

  • images/ (перенеси сюда все изображения из одноименной папки архива jq-mobile);
  • index.css;
  • index.html;
  • index.js;
  • jquery.js;
  • jquery.mobile.min.css;
  • jquery.mobile.min.js.

Нужно сделать ресурсы в основном локальными, чтобы пользователь в будущем не тратил мобильный интернет. Теперь создаем каркас страниц в файле index.html. Приведенный ниже код описывает верхнюю часть страницы с картой, надписью «Геонапоминалка» и кнопкой «Точки».

Страница с картой

Геонапоминалка

Точки

Атрибут страницы data-dom-cache=»true» необходим для того, чтобы она не выгружалась из памяти. Для кнопки «Точки» используется data-transition=»pop», чтобы страница «Список точек» открывалась с эффектом «Всплытие». Подробнее о том, как устроены страницы jQuery Mobile, можно почитать в хорошем мануале (bit.ly/vtXX3M). По аналогии создаем страницу со списком точек:

Страница со списком точек

Удалить все

Точки

Карта

Для кнопки «Карта» тоже пропишем data-transition=»pop», но добавим атрибут data-direction=»reverse», чтобы страница «Карта» открывалась с эффектом «Затухание». Те же атрибуты пропишем в шаблоне точки. Все, наш каркас готов.

Создание приложения

Теперь надо отобразить карту, для чего мы возьмем стандартный API Google Maps, который используется миллионами разных сайтов:

Var latLng = new gm.LatLng(this.options.lat, this.options.lng); this.map = new gm.Map(element, { zoom: this.options.zoom, // Выбираем начальный зум center: latLng, // Устанавливаем начальный центр mapTypeId: gm.MapTypeId.ROADMAP, // Обычная карта disableDoubleClickZoom: true, // Отключаем автозум по тапу/двойному клику disableDefaultUI: true // Отключаем все элементы интерфейса });

Здесь Gm - это переменная, ссылающаяся на объект Google Maps. Параметры инициализации я хорошо закомментировал в коде. Следующий шаг - отрисовка маркера человечка на карте:

This.person = new gm.Marker({ map: this.map, icon: new gm.MarkerImage(PERSON_SPRITE_URL, new gm.Size(48, 48)) });

В качестве PERSON_SPRITE_URL используется адрес спрайта человечка из Google-панорам. Его статический адрес - maps.gstatic.com/mapfiles/cb/mod_cb_scout/cb_scout_sprite_api_003.png . Пользователь будет добавлять точки, кликая на карте, поэтому, чтобы их отрисовывать, мы будем слушать событие click:

Gm.event.addListener(this.map, "click", function (event) { self.requestMessage(function (err, message) { // Метод, возвращающий текст, введенный пользователем if (err) return; // Метод добавляет точку в список активных и // отрисовывает ее на карте self.addPoint(event.latLng, self.options.radius, message); self.updatePointsList(); // Перерисовываем список точек }); }, false);

Я привожу бОльшую часть кода - остальное ищи на диске. Дальше нам нужно научить приложение перемещать иконку пользователя по карте. В прототипе мы задействуем Geolocation API (тот, который используется в том числе в десктопных браузерах):

If (navigator.geolocation) { // Проверяем, поддерживает ли браузер геолокацию function gpsSuccess(pos) { var lat, lng; if (pos.coords) { lat = pos.coords.latitude; lng = pos.coords.longitude; } else { lat = pos.latitude; lng = pos.longitude; } self.movePerson(new gm.LatLng(lat, lng)); // Перемещаем иконку пользователя } // Каждые три секунды запрашиваем текущее // положение пользователя window.setInterval(function () { // Запрашиваем текущее положение navigator.geolocation.getCurrentPosition(gpsSuccess, $.noop, { enableHighAccuracy: true, maximumAge: 300000 }); }, 3000); }

Метод movePerson с помощью простой процедуры getPointsInBounds() проверяет, не находится ли пользователь в какой-нибудь активной точке. Последний вопрос - где хранить список точек? В HTML5 появилась возможность использовать localStorage, так что не будем ей пренебрегать (предоставляю тебе самостоятельно разобраться с этими участками кода, которые я хорошо закомментировал). Итак, приложение, работающее в браузере, готово!

Запуск веб-приложения

Как я уже говорил, отладку в основном необходимо выполнять на компьютере. Самый подходящий браузер для тестирования веб-приложений на компьютере - это Safari или Chrome. После отладки в этих браузерах ты можешь быть уверен в том, что твое приложение не «поедет» в браузере мобильного телефона. Оба этих браузера совместимы с большинством мобильных веб-браузеров, поскольку точно так же, как и они, построены на основе движка WebKit. После устранения всех багов можно переходить к запуску мобильного веб-приложения непосредственно на телефоне. Для этого настрой свой веб-сервер (пусть даже Denwer или XAMPP), чтобы он отдавал созданную страницу, и открой ее уже в браузере мобильного телефона. Приложение должно выглядеть примерно так, как показано на рисунке. Тут важно понимать, что будущее мобильное приложение, собранное для мобильной платформы с помощью PhoneGap, будет выглядеть почти один в один, за исключением того, что на экране не будет отображаться навигационная панель браузера. Если все хорошо, можно приступать к созданию из странички полноценного iOS-приложения. Заметь, что PhoneGap и IDE для мобильной разработки мы до этого момента даже не трогали.

Подготовка

Для того чтобы собрать приложение под iOS, тебе нужен компьютер с операционной системой Mac OS 10.6+ (или виртуальная машина на Mac OS 10.6), а также среда разработки Xcode с установленным iOS SDK. Если у тебя не установлен SDK, придется скачать с сайта Apple образ диска, включающий в себя Xcode и iOS SDK (developer.apple.com/devcenter/ios/index.action). Имей в виду, что образ весит около 4 Гб. Кроме этого, тебе понадобится зарегистрироваться на сайте Apple в качестве разработчика (если ты не собираешься публиковать свое приложение в AppStore, то это требование можно обойти). С помощью этого набора можно разрабатывать приложения на нативном для iOS языке Objective-C. Но мы решили пойти обходным путем и воспользоваться PhoneGap, поэтому нам еще нужно установить пакет PhoneGap iOS. Просто скачай архив с офсайта (https://github.com/callback/phonegap/zipball/1.2.0), распакуй его и в папке iOS запусти программу установки. Когда установка завершится, в меню проектов Xcode должна появиться иконка PhoneGap. После запуска придется заполнить несколько форм, но уже очень скоро ты увидишь рабочую область IDE с твоим первым приложением. Чтобы проверить, все ли работает, нажми кнопку Run - должен запуститься эмулятор iPhone/iPad с шаблонным приложением PhoneGap. Собранная программа выдаст ошибку с сообщением о том, что index.html не найден, - это нормально. Открой папку, в которой ты сохранил первичные файлы проекта, и найди в ней подпапку www. Перетащи ее в редактор, кликни на иконке приложения в списке слева и в появившемся окне выбери «Create folder references for any added folders». Если запустить программу еще раз, то все должно заработать. Теперь можно скопировать все файлы нашего прототипа в папку www. Пора подпилить наш прототип для работы на смартфоне в обработке PhoneGap.

Перенос прототипа

В первую очередь нужно подключить phonegap-1.2.0.js в твой индексный файл. PhoneGap позволяет ограничивать список доступных для посещения хостов. Предлагаю сразу настроить такой «белый список». В меню проекта открой Supporting Files/PhoneGap.plist, найди пункт ExternalHosts и добавь в него следующие хосты, к которым будет обращаться наше приложение (это сервера Google Maps): *.gstatic.com, *.googleapis.com, maps.google.com. Если их не указать, программа выдаст предупреждение в консоли и карта не отобразится. Для инициализации веб-версии нашего приложения мы использовали событие DOMReady или хелпер jQuery: $(document).ready(). PhoneGap генерирует событие deviceready, которое говорит о том, что мобильное устройство готово. Предлагаю этим воспользоваться:

Document.addEventListener("deviceready", function () { new Notificator($("#map-canvas")); // Если у пользователя нет интернета, // сообщаем ему об этом if (navigator.network.connection.type === Connection.NONE) { navigator.notification.alert("Нет интернет-соединения", $.noop, TITLE); } }, false);
Запретим скроллинг: document.addEventListener("touchmove", function (event) { event.preventDefault(); }, false);

Затем заменим все вызовы alert и confirm на нативные, которые предоставляет нам PhoneGap:

Navigator.notification.confirm("Удалить точку?", function (button_id) { if (button_id === 1) { // Нажата кнопка OK self.removePoint(point); } }, TITLE);

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

Navigator.geolocation.watchPosition(function (position) { self.movePerson(new gm.LatLng(position.coords.latitude, position.coords.longitude)); }, function (error) { navigator.notification.alert("code: " + error.code + "\nmessage: " + error.message, $.noop, TITLE); }, { frequency: 3000 });

Этот код более изящный - он генерирует событие только тогда, когда координаты изменились. Жмем кнопку Run и убеждаемся, что только что созданное нами приложение отлично работает в симуляторе iOS-устройства! Пора приступать к запуску на реальном устройстве.

Запуск на устройстве

Подсоедини iPhone, iPod или iPad к компьютеру, на котором запущен Xcode. Программа определит новое устройство и попросит разрешения использовать его для разработки. Нет смысла ей отказывать:). Повторю еще раз: чтобы запустить написанное приложение на iOS, необходимо быть авторизированным разработчиком iOS (другими словами, быть подписанным на iOS Developer Program). Этим придется заморочиться только в случае разработки приложений для продукции Apple, с другими платформами (Android, Windows Phone) все намного проще. У тех, кто обучается в вузе, есть шанс получить доступ к программе бесплатно благодаря каким-нибудь льготам. Все остальные должны платить $99 в год для участия в программе. Apple выдает сертификат, которым ты сможешь подписывать свой код. Подписанное приложение разрешается запускать на iOS и распространять в App Store. Если ты не студент, а $99 для невинных экспериментов тебе пока жалко, то есть и другой способ - обмануть систему. Ты можешь создать самоподписанный сертификат для верификации кода и запустить мобильную программу на джейлбрейкнутом iOS-устройстве (не буду на этом останавливаться, потому что все максимально подробно расписано в этой статье: bit.ly/tD6xAf). Так или иначе, ты вскоре увидишь работающее приложение на экране своего мобильного телефона. Останавливай секундомер. Сколько времени у тебя на это ушло?

Другие платформы

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

Appcelerator Titanium (www.appcelerator.com).

Titanium умеет собирать приложения в первую очередь под Android и iPhone, но в нем также заявлена поддержка BlackBerry. Кроме самого фреймворка, проект предоставляет набор нативных виджетов и IDE. Ты можешь разрабатывать приложения на Titanium бесплатно, однако за поддержку и дополнительные модули придется заплатить (от $49 в месяц). Цена некоторых сторонних модулей доходит до $120 за год. Разработчики Appcelerator Titanium утверждают, что на основе их фреймфорка написано более 25 тысяч приложений. Исходный код проекта распространяется под лицензией Apache 2.

Corona SDK (www.anscamobile.com/corona).

Эта технология поддерживает основные платформы - iOS и Android. Фреймворк нацелен в основном на разработку игр. Еще бы, ведь разработчики заявляют о высококачественной оптимизации на OpenGL. Бесплатной версии у платформы нет, а цена довольно-таки кусачая: $199 в год за лицензию для одной платформы и $349 в год для iOS и Android. Corona предлагает свою IDE и эмуляторы устройств. Приложения под Corona пишут на языке, похожем на JavaScript.

Заключение

Мы создали простое мобильное веб-приложение и в несколько простых шагов портировали его на платформу iOS с помощью PhoneGap. Мы не написали ни строчки кода на Objective-C, но получили программу приличного качества, потратив минимум времени на перенос и изучение API PhoneGap. Если ты предпочитаешь другую платформу, например Android или Windows Mobile 7, то ты так же легко, без каких-либо изменений под эти платформы, сможешь собрать наше приложение (для каждой из них есть хороший вводный мануал и видеоурок: phonegap.com/start). Чтобы убедиться в состоятельности платформы, можно посмотреть на уже готовые приложения на PhoneGap, которые разработчики технологии собрали в специальной галерее (phonegap.com/apps). По факту PhoneGap - это идеальная платформа для создания как минимум прототипа будущего приложения. Ее главными преимуществами являются быстрота и минимум затратат, чем активно пользуются стартапы, которые во всех отношениях ограничены в ресурсах. Если приложение попрет, а внутренности на HTML+JS тебя по какой-то причине перестанут устраивать, всегда можно будет портировать приложение на нативный язык. Не могу не сказать, что PhoneGap изначально разрабатывался компанией Nitobi как открытый проект (репозиторий располагается на GitHub: github.com/phonegap). Исходники и дальше будут оставаться открытым, хотя в октябре прошлого года компанию Nitobi купил Adobe. Нужно ли говорить, какие перспективы появляются у проекта при поддержке в лице такого гиганта?