Создать приложение для мобильного телефона. Создание первого Android-приложения - все, что вам нужно знать. AppsMakerstore — платформа создания простых программ

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

Организация фондов и создание каталогов невозможна без группировки документов и сведений о них в виде библиографического описания занесенного на каталожную карточку (бумажную и/или электронную). Реализовать эти технологические процессы возможно посредством аналитико-синтетической переработки информации о документах. Осуществление АСПИ позволяет упорядочить библиотечный фонд и осуществить каталогизацию: составить библиографические описания на документы и сгруппировать их по определенным признакам. Группировка документов и их библиографических описаний по различным признакам, или классификация, позволяет разносторонне раскрыть содержание фонда библиотечно-информационного учреждения.

Классификация учитывает определенные признаки документов, например, содержание, аспекты содержания, вид документа (учебное издание, справочное издание и т.д.), целевое и читательское назначение (справочное издание для младших школьников, учебное издание для вузов и т.д.). Каждая документная классификация «написана» на определенном информационно-поисковом языке. ИПЯ – это искусственный формализованный язык, на котором описаны признаки группировки документов и их библиографических описаний.

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

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

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



Процесс индексирования представляют в виде последовательности следующих операций:

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

2. Аннотирование. Мысленно составляется аннотация на индексируемый документ на естественном языке, в которую включаются ключевые слова, характеризующие данный документ и дается ответ на вопрос: «О чем рассказывается в документе?».

3. Классификационное решение в словесной форме . Ключевые слова заменяются лексическими единицами конкретного ИПЯ (классификационными индексами, предметными рубриками, дескрипторами). В результате создается поисковый образ документа и осуществляется свертывание информации и перевод информации о содержании и форме документа на информационно-поисковый язык.

4. Классификационное решение на ИПЯ. Составление полного индекса, предметной рубрики для алфавитно-предметного указателя, ключевых слов.

5. Редактирование индексов, предметных рубрик и ключевых слов.

6. Оформление принятого решения.

Качество индексирования характеризуется двумя показателями: глубиной и детальностью.

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

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



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

Для отражения влияния психологических факторов на качество индексирования вводится понятие «непоследовательность (воспроизводимость) индексирования». Непоследовательность индексирования характеризуется расхождениями по глубине и детальности поисковых образов одного и того же документа, составленных различными индексаторами или одним и тем же индексатором в разное время. Причинами непоследовательности являются различия в знаниях и навыках различных индексаторов (общая эрудиция, ориентировка в данной области знания, владение ресурсами ИПЯ, опыт работы и т.д.), а также психологические качества (память, внимание и т.д.). Чтобы избежать непоследовательности, разрабатываются специальные методики, алгоритмические предписания, которыми руководствуются индексаторы. Тем не менее, при смысловой обработке информации человеком, непоследовательность исключить полностью невозможно.

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

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

Типы систем индексирования. Морфологический анализ и нормализация понятий.

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

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

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

Рассмотрим типологию систем индексирования по пяти наиболее важным основаниям (рис. 5.1).

1. Но степени автоматизации процесса индексирования выделяют

Ручного индексирования;

Автоматического индексирования;

Автоматизированного индексирования.

2. По степени контролируемости различают системы:

Без словаря;

С жестким словарем;

Со свободным словарем.

3. По характеру алгоритма отбора слов текста выделяют системы:

С последовательным просмотром текста (отбираются все полнозначные слова);

Эвристическими процедурами выбора слов текста (слова отбираются интуитивно или по заданной процедуре):

Со статистическими процедурами выбора слов (отбираются только информативные слова в соответствии с распределением частот их употребления).

4. По характеру лексикографического контроля различают системы:

Без лексикографического контроля;

С полным контролем;

С промежуточным контролем.

Лексикографический контроль предусматривает:

Устранение синонимии, полисемии и омонимии на основе нормативных словарей лексических единиц с парадигматическими отношениями между ними;

Нормализацию слов на основе морфологических нормативных словарей.

В системах с полным контролем реализуются обе функции лексографического контроля. В системах индексации с промежуточным контролем эти функции реализуются частично.

Рис. 5.1. Типы систем индексирования

5. По характеру морфологического анализа слов различают системы:

С использованием морфологических словарей;

С использованием основных лексических словарей;

С использованием морфологического анализа с усечением слов.

Возможны системы индексирования без морфологического анализа.



Примеры систем индексирования:

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

2) Процесс полусвободного индексирования аналогичен вышеописанному, но слова сформированного списка соотносятся со словарем, несовпадающие слова отбрасываются в ПОД не включаются.

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

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

Существует ряд и других систем индексации.

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

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

Прямой тип индекса строится по схеме «документ-термины». Поисковое пространство в ЭТОМ случае представлено в виде матрицы размерностью nxm. Строки этой матрицы представляют поисковые образы документов.

Инвертированный тип индекса строится по обратной схеме - «термин-документы». Поисковое пространство соответственно представлено аналогичной матрицей, только в транспонированной форме. Поисковыми образами документов в этом случае являются столбцы матрицы.

Второй подход к автоматическому индексированию применяется в полнотекстовых системах. В процессе индексирования в индекс заносится информация обо всех словах текста документа (отсюда и название «полнотекстовые»).

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

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

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

Процедура морфологического анализа по морфологическим словарям состоит:

1) в определении обобщенного грамматического класса слова и его членами на основу и окончание (по словарям основ и окончаний);

2) в идентификации рода существительных (по основам слов);

3) в выявлении номера флексивного класса слов (по обобщенному грамматическому классу, признаку рода, окончанию, конечным буквосочетаниям основы);

4) в определении номера набора грамматической информации к слову.

Результатом такого анализа является нормализованное слово и номер набора его грамматической информации.

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

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

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

1. Отождествление слов словосочетания с элементами словаря слов. Замена их номерами по словарю, сопровождение грамматической информацией.

2. Выявление грамматической структуры словосочетания в целом – синтаксический анализ (по грамматической информации слов словосочетания).

3. Поиск по словарю номера словосочетания, соответствующего данному сочетанию номеров слов и грамматической структуре кодируемого словосочетания.

4. Выбор из словаря по номеру словосочетания соответствующего ему номера грамматической структуры и самой структуры. Сравнение выбранной грамматической структуры с грамматической структурой кодируемого словосочетания, полученной на втором этапе. Если структуры совпадают, то понятия тождественны. Анализируемое словосочетание заменяется соответствующим ему номером или кодом. Два последних этапа являются этапами семантического анализа.

Декодирование словосочетаний представляет собой :

1) выбор из словаря по номеру словосочетания соответствующего ему набора номеров слов и номера грамматической структуры;

2) извлечение информации о формах слов и их связях, восстановление порядка слов в словосочетании (по грамматической структуре);

3) формирование буквенного кода словосочетания и самого сочетания.

Морфологический анализ по словарям основных лексических единиц включает 2 этапа: сравнение слова со словарем (идентификация и определение номера совпадающего понятия) и выявление номера набора понятий осуществляется буквенным кодом или кодами понятий (по словарю).

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

а) с использованием словарей (основ, окончаний и т.д.);

б) без использования словарей (по простейшим априорным правилам);

в) статистическое усечение слов с использованием аппарата позиционной статистики.

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

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

Контрольные вопросы

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

2. Приведите примеры систем индексирования.

3. По каким типологическим признакам можно разделять системы индексирования?

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

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

Идея

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

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

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

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

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

  • развлекательные (мультимедийные) приложения — любые проигрыватели видео и аудиофайлов, программы для просмотра изображений, для чтения книг, игры;
  • коммуникационные — ответственные за общение пользователя, его контакты, социальные сети, СМС-сообщения;
  • навигационные — приложения, работающие с географическими координатами, с системой 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% больше, чем реклама внутри сервиса и другие способы заработка.

Ежедневно миллионы людей запускают на своих смартфонах мобильные приложения - это целая культура, развивающаяся в бешеном темпе. Разработчики этих приложений - новые романтические герои, люди, способные в одночасье стать миллиардерами, как создатели 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 это чувствуется, как ни в одной другой индустрии. В наши дни зачастую можно жить где угодно, и, не выходя из своего дома, работать на заказчика с другого конца света. Для независимого разработчика-одиночки, фрилансера или создателя собственных приложений в этом смысле никаких ограничений нет.

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

Куда ходить

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

Учтите, что студия постоянно обновляется, поэтому внешний вид окон и другие детали могут отличаться от данного примера. Большинство уроков на сайте сейчас используют версию 2.3. 25 октября 2017 года вышла версия 3.0, в которой многое поменялось. В этой статье я постарался заменить все картинки под новую версию.

В качестве языка программирования для Android используется Java. Для создания пользовательского интерфейса используется XML.

Здесь следует сделать небольшое отступление. В Android Studio 3.0 добавлена полноценная поддержка нового языка Kotlin, разработанная котанами. Google объявила о своих планах сделать новый "кошачий" язык основным. Но вы должны понимать, что за предыдущие годы было написано огромное количество примеров на Java. Если вы новичок в программировании, то лучше в первый период обучения полностью сосредоточиться на Java, вам будет проще находить ответы на вопросы. Kotlin от вас никуда не денется, перейти потом на него будет проще, а вот обратный процесс будет проходить тяжелее. Когда немного освоитесь в Java, то можете параллельно изучать примеры на Kotlin. Google сейчас активно переписывает документацию под Kotlin, но до полного перехода ещё далеко, даже меньше 50%. Чуть позже я также буду делать уроки под Kotlin, но это будет не скоро.

По традиции, заложенной в прошлом веке, каждый программист должен был написать «Hello World!» (Здравствуй, Мир!) в качестве первой программы. Времена меняются, и программа «Hello World!» уже встроена в среду разработки под Android в целях совместимости, а современные программисты должны писать программу Hello Kitty! (Привет, киска!). Согласитесь, что здороваться с котёнком имеет больше здравого смысла, чем с каким-то миром.

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

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

Запускаем Студию и выбираем File | New | New Project... . Появится диалоговое окно мастера.

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

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

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

Поле Package name формирует специальный Java-пакет на основе вашего имени из предыдущего поля. В Java используется перевёрнутый вариант для наименования пакетов, поэтому сначала идёт ru , а потом уже название сайта. Пакет служит для уникальной идентификации вашего приложения, когда вы будете его распространять. Если сто человек напишет сто приложений с названием "Cat", то будет непонятно, где приложение, написанное разработчиком Василием Котовым. А приложение с именем пакета ru.vaskakotov.cat проще найти. Обратите внимание, что Гугл в своей документации использует пакет com.example в демонстрационных целях. Если вы будете просто копировать примеры из документации и в таком виде попытаетесь выложить в Google Play, то у вас ничего не выйдет - это название зарезервировано и запрещено к использованию в магазине приложений. Кнопка Edit позволяет отредактировать подготовленный вариант. Например, вы пишете приложение на заказ и вам нужно использовать имя пакета, утверждённое заказчиком, а не ваш вариант по умолчанию.

Ниже представлены два варианта для написания программ на C++ и Kotlin. Эти варианты мы пока не рассматриваем. Когда вы будете писать на Kotlin, то ставьте соответствующий флажок. Впрочем, вы можете сконвертировать проект с Java на Kotlin и позже средствами студии.

Нажимаем на кнопку Next и переходим к следующему окну. Здесь мы выбираем типы устройств, под которые будем разрабатывать своё приложение. В большинстве случае мы будет писать для смартфонов и планшетов, поэтому оставляем флажок у первого пункта. Также вы можете писать приложения для Android TV, Android Wear, Android Auto и Android Things.

Кроме выбора типа устройств, надо выбрать минимальную версию системы, под которую будет работать приложение. Выберите свой вариант. На данный момент Гугл поддерживает версии, начиная с API 7, выпуская специальные библиотеки совместимости для старых устройств. Но вы можете выбрать более современный вариант. У меня в наличии телефон с минимальной версией Android 4.4, поэтому я выставляю этот вариант.

java

Папка java содержит три подпапки - рабочую и для тестов. Рабочая папка имеет название вашего пакета и содержит файлы классов. Сейчас там один класс MainActivity . Папки для тестов можете не трогать. Если вы знаете, как работают пакеты в Java, то можете создавать новые папки и подпапки.

res

Папка res содержит файлы ресурсов, разбитых на отдельные подпапки.

  • drawable - в этих папках хранят графические ресурсы - картинки и xml-файлы, описывающие цвет и фигуры.
  • layout - в данной папке содержатся xml-файлы, описывающие внешний вид форм и различных элементов форм. После создания проекта там уже имеется файл activity_main.xml , который отвечает за внешний вид главного окна приложения.
  • mipmap - здесь хранят значки приложения под разные разрешения экрана
  • values - тут размещаются строковые ресурсы, ресурсы цветов, тем, стилей и измерений, которые мы можем использовать в нашем проекте. Здесь вы можете видеть файлы colors.xml , strings.xml , styles.xml . В старых проектах был ещё файл dimens.xml , сейчас от него отказались

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

Работа с проектом - Здравствуй, Мир!

Как уже говорилось, программа Hello, World! уже встроена в любой новый проект, поэтому вам даже не нужно ничего писать. Просто нужно запустить проект и получить готовую программу!

Для изучения вам нужно открыть два файла - MainActivity (скорее всего он уже открыт) и activity_main.xml (res/layout ) в центральной части Студии. Если файлы не открыты, то откройте их самостоятельно двойным щелчком для редактирования (или просмотра). Таким способом вы можете открыть любой нужный вам файл.

Не будем пока изучать код, а просто нажмём на зелёный треугольник Run (Shift+F10) на панели инструментов в верхней части студии для запуска приложения.

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

Если всё сделали правильно, то в эмуляторе или на устройстве загрузится ваша программа. Поздравляю!

Итак, если программа запустилась, то увидите окно приложения с надписью . Заголовок у программы будет также . Все эти строки можно найти в файле res/values/strings.xml и отредактировать при желании.

Теперь посмотрим на код. Сначала изучим activity_main.xml .

Смотреть его можно в двух режимах - Design и Text .

Откройте в режиме Text .

Это новый код шаблона, который появился в Android Studio 2.3 в марте 2017 года. Раньше использовался другой код с RelativeLayout (а ещё раньше и другой код с LinearLayout ). Если вам будут попадаться старые примеры, то в студии есть контекстное меню, которое поможет сконвертировать старый код в новый.

Немного о XML-коде. Имеется специальный контейнер ConstraintLayout , в котором размещён компонент TextView , предназначенный для вывода текста.

Теперь посмотрим на Java-код (MainActivity.java )

Package ru.alexanderklimov.helloworld; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } }

Перед вами открыт файл класса, где имя класса MainActivity совпадает с именем файла с расширением java (это правило, установленное языком Java). В первой строке идет название пакета - его мы задавали при создании проекта (Package Name ). Далее идут строки импорта необходимых классов для проекта. Для экономии места они свёрнуты в одну группу. Разверните её. Если однажды вы увидите, что имена классов выводятся серым цветом, значит они не используются в проекте (подсказка Unused import statement ) и можете спокойно удалить лишние строки. Также они могут удаляться автоматически (настраивается).

Далее идёт объявление самого класса, который наследуется (extends ) от абстрактного класса Activity . Это базовый класс для всех экранов приложения. Не исключено, что у вас будет AppCompatActivity , если при создании проекта вы оставили поддержку старых устройств (флажок Backwards Compatibilty (App Compat) ). В старых версиях не было плюшек, которые появились после Android 4, поэтому для них была создана специальная библиотека совместимости, которая позволяет использовать новинки от новых версий Android в старых программах. Класс AppCompatActivity как раз и относится к библиотеке совместимости. Считайте её бедным родственником базовой Activity . У неё есть все нужные методы и вспомогательные классы, но названия могут немного различаться. И смешивать названия нельзя. Если уж используете класс из библиотеки совместимости, то методы берите соответствующие.

На разных этапах использовались разные названия класса активности, которые могут вам встретиться в старых проектах. Например, сначала использовался FragmenActivity , затем ActionBarActivity , а 22 апреля 2015 года вышла новая версия библиотеки совместимости и на данный момент используется новый класс AppCompatActivity .

В самом классе мы видим метод onCreate() – он вызывается, когда приложение создаёт и отображает разметку активности. Метод помечен как protected и сопровождается аннотацией @Override (переопределён из базового класса). Аннотация может пригодиться вам. Если вы сделаете опечатку в имени метода, то компилятор сможет предупредить вас, сообщив об отсутствии такого метода у родительского класса Activity .

Разберём код метода.

Строка super.onCreate(savedInstanceState); – это конструктор родительского класса, выполняющий необходимые операции для работы активности. Эту строчку вам не придётся трогать, оставляйте без изменений.

Вторая строчка setContentView(R.layout.activity_main); представляет больший интерес. Метод setContentView(int) подключает содержимое из файла разметки. В качестве аргумента мы указываем имя файла без расширения из папки res/layout . По умолчанию проект создаёт в нём файл activity_main.xml . Вы можете переименовать файл или создать свой файл с именем cat.xml и подключить его к своей активности. Тогда код будет выглядеть так:

SetContentView(R.layout.cat);

Чтобы ваш код был аккуратным, старайтесь придерживаться стандартов. Если вы создаёте разметку для активности, то используйте префикс activity_ для имени файла. Например, разметка для второй активности может иметь имя activity_second.xml .



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: