Что нужно для создания приложения. Как сделать приложение для андроид самому

Ежедневно миллионы людей запускают на своих смартфонах мобильные приложения - это целая культура, развивающаяся в бешеном темпе. Разработчики этих приложений - новые романтические герои, люди, способные в одночасье стать миллиардерами, как создатели Instagram, имея под рукой несколько компьютеров и хорошую идею. Их нигде этому не учат, и в этом они чувствуют своё преимущество и уникальность - всё зависит от тебя самого. Ты берёшь и пишешь программу, и если она работает - значит ты всё сделал верно, если нет - твоё место в топе Apple Store займёт кто-то другой. Главное тут - скорость. Совершенно не обязательно пять лет сидеть за партой, чтобы начать программировать. Это как раз тот случай, когда всё зависит от желания и практики. С чего же всё-таки стоит начать разработку мобильных приложений, Look At Me обсудил с опытными девелоперами.

Мэтт Томпсон о том,
что лучшие программисты - самоучки

Мэтт Томпсон

разработчик и дизайнер в Heroku, автор блога про Objective-C и Cocoa NSHipster.com , автор многих Open Source проектов, например AFNetworking, который использовали хотя бы раз все iOS разработчики

Лучший и единственный способ стать мобильным разработчиком - начать разрабатывать! Правда, сейчас в интернете столько вспомогательных ресурсов, что освоить профессию просто, как никогда раньше. Никто, кроме вас самих, не научит вас программировать. Просто прочтите туториал в книге или в Сети и начните создавать интересующее вас приложение, начните с самого простого. Или я бы рекомендовал вообще начать с веб-разработки: HTML и CSS или jQuery, если вас тянет к приключениям.

Некоторые стремятся обязательно пройти школу программирования, но я не раз убеждался, что лучшие разработчики - самоучки, причём с разноплановым бэкграундом. Чёрт возьми, да я сам бросил курс Computer Science в университете, чтобы изучать философию! Хорошим программистом двигает страсть к поиску решений проблемы. Если в вас есть эта страсть - у вас всё получится.

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

«Некоторые стремятся обязательно пройти школу программирования, но я не раз убеждался, что лучшие разработчики - самоучки»

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

Сергей Шаповалов о базовом образовании
для разработчиков и о том, почему
в США у них больше перспектив

Сергей Шаповалов

разработчик приложений для iOS и OS X, кандидат физико-математических наук, cоздатель приложений Qik, Auto-Assistant, Moow и др., в настоящее время живёт и работает в Кремниевой Долине, США

Современные языки программирования, используемые для написания приложений под мобильные устройства, довольно просты. Освоить азы и написать своё первое приложение за месяц нетрудно. Можно начать штамповать простенькие игрушки, стандартные безликие бизнес-приложения и т. д., даже получать какую-то прибыль с их продаж. Примеров таких разработчиков и таких приложений море: и в App Store, и в Google Play таких программ, наверное, 9 из 10. Но я бы посоветовал начинающему разработчику начать совсем с другого.

Чтобы сделать что-то своё, особое и неповторимое, по-настоящему оригинальное, нужен хороший фундамент. Надо изучать computer science, классические алгоритмы, структуры данных, знать, что такое быстрая сортировка и за какое время она работает, как устроены хэш-таблицы и многое другое. Нужно хорошо усвоить базовые понятия, используемые в программировании на любом языке под любое устройство: процессы и потоки, управление памятью, указатели, параллельные вычисления. Знать назубок C++ (пригодится, и ох как неправы те, кто отправляет его на свалку истории). Понимать и уметь применять на практике design patterns (шаблоны проектирования). Знать, что такое клиент-серверная архитектура и как правильно организовать взаимодействие клиента с сервером в условиях ненадёжного канала связи с помехами. В качестве факультатива почитать что-нибудь про шифрование, защиту данных, сетевые протоколы и ядро Unix.

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

.

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

Третья составляющая - маркетинг. Надо уметь чувствовать рынок, понимать, что окажется востребованным, а что будет никому не нужно. Это совсем не то же самое, что «следить за мировыми тенденциями». Есть изречение великого хоккеиста Уэйна Гретцки, которое очень любил повторять Стив Джобс: «Я мчусь туда, где шайба будет, а не туда, где она была». Вот именно это умение - понять, где на рынке есть новая ниша, которая пока никем не занята, но которую можно заполнить своей разработкой, - в сочетании с первыми двумя требованиями и приводит к успеху.

Нигде в мире нет такого места, где заплатив за курс обучения, вы сможете быть на 100% уверены, что станете успешным создателем мобильных приложений. Есть университеты, где хорошо учат computer science, и в смысле базового образования в России в некоторых местах до сих пор держат планку: МГУ им. Ломоносова, МФТИ, МГТУ им. Баумана, МЭИ и в некоторых других. Классикой жанра в части программирования (конкретно под мобильные платформы) считается курс лекций Стэнфордского университета (США). Конечно, всё то же самое можно узнать из книг и интернета, но, уверен, грамотно построенный курс позволяет достичь цели намного быстрее, спрямляя к ней путь. Но в любом случае самостоятельная работа по самосовершенствованию необходима.

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

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

Куда ходить

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

Елена Шраменко

Генеральный директор
компании «Акинцев и Партнеры»

«Хочу сказать несколько слов о конструкторе мобильных приложений от компании AppGlobal.

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

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

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

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

Мы же благодаря этому получаем постоянных клиентов и привлекаем новых».

Илья Баснин

Партнер компании AppGlobal

«Большой минус всех других сервисов - отсутствие техподдержки.

Я проанализировал много конструкторов.

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

Большой минус у них - отсутствие поддержки. И, несмотря на низкие цены, они всё-таки не выдерживают конкуренцию».

Артур Будовский

«Продажи выросли на 14% уже в первый месяц использования мобильного приложения!

Я пишу продающие тексты и обучаю людей этому искусству. Уровень доверия моих читателей ко мне возрос лишь потому, что есть мобильное приложение. Мол, если моя Школа есть в Апстор и Гугл Плей, значит, у меня солидный бизнес, а не какой-то "развод". Люди покупают тренинги даже не закачивая приложение на свой телефон.

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

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

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

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

Спасибо AppGlobal за простые решения сложных, но важных вопросов!»

Многим кажется, что написать свое приложение для смартфонов на базе Android, это чрезвычайно сложная задача. Многие думают, что писать коммерчески успешные программы под Android под силу только компаниям с десятками разработчиков и дизайнеров, которые тратят месяцы на создание продукта. Конечно, если большие приложения, например игры со сложной трехмерной графикой, над которыми трудятся целые команды специалистов. Но есть так же много приложений, которые популярны, находятся в топе в Google Play , и при этом созданы одним человеком. И такие приложения приносят приносят достаточно большой доход своему разработчику.
В английском языке существует термин «indie». Разработчик-одиночка, пишущий приложения для Андроид звучит как «indie android developer».
Поищите в Гугле по этим словам, и вы найдете не одну сотню блогов с отчетами о доходе от своих приложений. И если другие смогли самостоятельно написать и выпустить свое приложение, значит это сможете и вы!
Возможно вы знаете, что знаменитая игра Angry Birds , приносящая создателям миллионы, была сделана маленькой финской кампанией, несколько лет безуспешно пытавшейся делать другие игры. А приложение и сервис Instagram было сделано парой калифорнийских ребят. Игра Cut The Rope с миллионами закачек, создана двумя братьями из России. Такие примеры вдохновляют меня.

Миф 1. Необходимо в совершенстве знать язык Java, чтобы писать приложения для Android.

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

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

Миф 2. Нужно иметь смартфон с Android

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

Миф 3. Необходимо много денег

Среда разработки Eclipse и Android SDK бесплатные. Руководства по программированию для Android и учебники по Java можно найти в Интернете.
Сделать свое приложение вам может не стоить ничего, кроме собственного затраченного времени и усилий.
Если же вы хотите опубликовать свое приложение в крупнейшем магазине Google Play (бывший Android Market), то вам понадобится $25. Но эта сумма с лихвой окупится теми доходами, которые вы получите. О том, как правильно представить свой продукт на рынке приложений, я расскажу в ближайших постах.

Миф 4. Нужно уметь рисовать/владеть Photoshop/Corel Draw

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

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


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

Проверка гипотезы: стоит ли использовать 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 конструкторов приложения служат для проверки гипотез вашего проекта. Однако, если вы получили отрицательный отзыв и ваш проект не оценили, перед тем как убрать его в дальний ящик, определите что именно стало залогом неудачи. Иначе вы рискуете потерять прибыльный проект из-за слабой реализации.

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

Платформа Android

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

Необходимые инструменты

C чего начать писать приложение для Android? Первым делом установите программу Android Studio . Это официальная среда разработки (IDE) для Android, она выпускается для Windows, macOS и Linux . Хотя при разработке программ для Android можно использовать и другие среды, кроме Android Studio.

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

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

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

Что из себя представляет Android-приложение

Стандартный язык программирования Android-приложений - это Java . Правда, сейчас Google активно продвигает Kotlin как язык, который сможет заменить Java . Приложения также можно писать на C++ .

Инструменты Android SDK компилируют ваш код вместе с любыми данными и ресурсами в файл APK (пакет Android) с расширением .apk . Этот файл содержит всё необходимое для установки приложения на Android-устройство.

Каждое Android-приложение живет в собственной «песочнице», которая подчиняется правилам безопасности Linux :

  1. Каждое приложение - это отдельный пользователь в многопользовательской системе Linux.
  2. По умолчанию система назначает каждому приложению уникальный user ID, неизвестный приложению; система устанавливает разрешения для всех файлов приложения, так что они доступны только этому user ID.
  3. У каждого процесса своя виртуальная машина (VM), так что исполняемый код изолирован от других приложений.
  4. По умолчанию каждое приложение запускает собственный Linux-процесс.

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

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

  1. Активность (activity) - элемент интерактивного пользовательского интерфейса в приложении. Обычно под активностью понимается группа элементов пользовательского интерфейса, которая занимает целый экран. Когда вы создаете интерактивную программу Android, то начинаете с создания подклассов на основе класса Activity . Одна активность активизирует другую и передает информацию о том, что намерен делать пользователь, через класс Intent (в переводе с английского «намерение»). Это абстрактное описание операции, которую одна активность должна выполнить по требованию другой. Если сравнивать приложения Android с веб-приложениями, то активности подобны страницам, а намерения - ссылкам между ними. Когда пользователь нажимает иконку приложения, то запускается активность Main . Однако из других мест (например, из уведомлений) можно отправлять пользователя напрямую к другим активностям.
  2. Сервис (service) - универсальная точка входа для поддержания работы приложения в фоновом режиме. Этот компонент выполняет в фоне длительные операции или работу для удаленных процессов. У служб нет визуального интерфейса.
  3. Широковещательный приемник (broadcast receiver) - компонент, который позволяет позволяет нескольким участникам слушать намерения, которые транслируются приложениями в системе.
  4. Поставщик содержимого (content provider) - компонент, который управляет общим набором данных приложения из файловой системы, базы данных SQLite, интернета или любого постоянного хранилища, к которому может обратиться приложение.

Теперь попробуем сделать свое приложение для Android.

Создаем Android-приложение

Как сделать простое приложение для Android? Этот процесс состоит из нескольких этапов: создания проекта в Android Studio, запуска приложения в эмуляторе, формирования простого пользовательского интерфейса и добавления новых активностей в приложение.

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

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

Затем нужно задать одну или несколько целевых платформ для сборки. Для этого используется SDK и AVD, менеджер виртуальных устройств Android. Данный инструмент позволяет устанавливать в SDK пакеты, которые будут поддерживать несколько версий операционной системы Android и несколько уровней API (интерфейсов программирования приложений).

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

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

Указываем название для этой активности.

Нажимаем кнопку Next, затем Finish - и после нескольких минут сборки Android Studio открывает интерфейс IDE.

Если выбрать в выпадающем меню вид Android , то можно посмотреть основные файлы своего проекта. Например, наша основная активность называется app > java > ru.skillbox.skillboxapp > FullscreenActivity , потому что при создании проекта мы указали вместо активности Main запускать приложение в полноэкранном режиме (Fullscreen ).

Наконец, третий важный файл: app > manifests > AndroidManifest.xml , который описывает фундаментальные характеристики приложения и определяет все его компоненты.

Содержимое манифеста


package="ru.skillbox.skillboxapp">

android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
android:name=".FullscreenActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="@string/app_name"
android:theme="@style/FullscreenTheme">




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

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

Для запуска в эмуляторе нажимаем в Android Studio кнопку Run в меню Run (Shift+F10) . Там выбираем подходящее устройство и версию ОС, портретную или ландшафтную (альбомную) ориентацию.

Android Studio установит эмулятор и запустит его.

Создание простого пользовательского интерфейса

Пришло время создать базовый интерфейс для главного экрана. Пользовательский интерфейс Android-приложения создается через иерархию макетов (layouts, объекты ViewGroup ) и виджетов (объекты View ). Макеты - это невидимые контейнеры, которые управляют расположением дочерних виджетов на экране. Сами виджеты - это непосредственно компоненты UI, такие как кнопки и текстовые поля на экране.

Интерфейс активностей хранится по большей части в XML-файлах. А создается в Android Studio в Редакторе макетов (Layout Editor).

Снова открываем файл app > res > layout > activity_fullscreen.xml. В левом верхнем углу мы видим Палитру (Palette) со всеми виджетами, которые можно добавить на экран. Добавляются они просто перетягиванием мышью. Например, перетянем на экран текстовое поле (PlainText) . Это виджет EditText , куда пользователь может вводить текст.

Также на экран можно перетащить кнопки и другие элементы.

Новые действия, активности и навигация

Предположим, что мы создали активность с текстовым полем и кнопкой «Отправить». После этого нужно написать, что конкретно будет происходить при нажатии кнопки «Отправить». Для этого заходим в код app > java > FullscreenActivity и добавляем метод SendMessage() в класс FullscreenActivity , чтобы при нажатии пользователя на кнопку вызывался этот метод.

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

Курс «Мобильный разработчик»

Детально все этапы разработки приложения объясняются в курсе . Участники этой 12-месячной программы научатся создавать приложения под Android и iOS. Кроме того, они получат полноценное портфолио разработчика и могут устроиться на работу в качестве джуниор-программиста или попытать участия в качестве инди-разработчика, то есть индивидуалиста, который сам создает приложения, распространяет их, зарабатывает и ни с кем не делится доходами, кроме налоговых отчислений в бюджет.