Как на java написать приложение для android
Перейти к содержимому

Как на java написать приложение для android

  • автор:

Как создать Андроид-приложение самому?

Как создать Андроид-приложение самому?

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

Учите Kotlin

  1. Код на Котлине примерно на 20% компактнее, чем на Java. Лаконичность синтаксиса упрощает код и его читабельность, что повышает качество кода и облегчает поиск ошибок. Кроме того, компактность кода снижает затраты, ускоряет создание, поддержку и производительность мобильного приложения.
  2. Язык прост в использовании. Например, привычная для Джавы ошибка NullPointerException (появляется когда приложение Java пытается использовать null вместо объекта) не возникает в Котлине.
  3. С Котлином открыт доступ ко всем фреймворкам и библиотекам Java. Язык полностью совместим с уже написанным Java-кодом. Вы можете постепенно перенести мобильное приложение с Джавы на Котлин без необходимости писать
    код с нуля.

Но одним Котлином сыт не будешь. Учите параллельно и Джаву. В Андроид-разработке вы с ним неизбежно столкнетесь.

Где учить Kotlin?

Вы можете освоить Котлин и Андроид-разработку в целом, используя бесплатные источники ниже:

  • Документация Google по Android-разработке – официальный сайт по андройд-разработке. Тут можно познакомиться с инструментами разработчика, API, передовыми методами создания приложений и пройти десятки бесплатных курсов.
  • Сайт Kotlin – тут найдете подробную документацию с основными фичами и концептами языка.
  • Try Kotlin – задания по Kotlin с консолью, куда можно вносить и проверять код.
  • Kotlin Bootcamp для программистов – учебное пособие по Kotlin от Google.
  • Android Kotlin Fundamentals Course – мини-курсы по основам Android Kotlin.
  • Руководство по языку Kotlin – десятки статей о работе с Kotlin на английском языке.

Загрузите инструментарий для разработки мобильного приложения для Андроид

Установите программу Android Studio (AS). Это официальное средство создания Андроид-приложений с удобными инструментами для создания, отлаживания и развертывания программ.

Также для Андроид-разработки понадобится Android SDK (Android Studio после запуска автоматически загрузит SDK). Этот набор инструментов включает следующие компоненты:

  1. Инструменты разработки приложений:
    • Android Debug Bridge для взаимодействия с Андроид-устройством;
    • Android Asset Packaging Tool для упаковки ресурсов программы;
    • Dalvik Executable для преобразования байткода в формат, понятный виртуальной машине Dalvik или ART и
      другие.
  2. Андроид-библиотеки:
    • Android Support Library – обеспечивает совместимость со старыми версиями Андроид;
    • AndroidX – предлагает улучшенные компоненты и инструменты для разработки.
  3. Интерфейсы API платформы. Открывают доступ к различным функциям и возможностям Android-устройства: камера, сеть, геолокация, датчики и другие.
  4. Эмуляторы Андроид и образы системы. Позволяют тестировать и отлаживать мобильное приложение на виртуальных устройствах Android. Образы системы Андроид можно использовать для создания виртуальных устройств с различными версиями Андроид.

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

Создайте и настройте проект

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

Далее переходим к настройке параметров проекта. В следующем окне указываем:

  1. Название проекта.
  2. Название пакета приложения.
  3. Место сохранения, где ваша программа будет сохранена локально (папка на вашем ПК).
  4. Выберите язык, на котором будете писать код в Андроид Студио: Kotlin или Java.
  5. Выберите минимальный уровень API, на котором будет работать ваша программа.

Настройка параметров проектаНастройка параметров проекта

Далее появится окно:

Первые файлы будущего Android приложения

Откройте экран проекта View > Tool Windows > Project и выберите Android View. Теперь в боковой панели в папке app вы видите файлы:

  • …manifests > AndroidManifest.xml – объясняет атрибуты мобильного приложения, определяет каждый его компонент.
  • …java > com.example.myfirstapp > MainActivity – при запуске программы на этапе ее разработки система запускает экземпляр этого действия и загружает его макет.
  • …drawable > layout > activity_main.xml – XML-файл, определяющий макет UI-дизайна. В нем есть элемент TextView с текстом «Hello, World!»
  • …Gradle Scripts > build.gradle – здесь 2 файла с одинаковым названием. Первый для проекта «Project: My_First_App.», второй – для модуля приложения «Module: My_First_App.app.». Каждый модуль имеет свой файл build.gradle, который используется для управления тем, как плагин Gradle разрабатывает вашу программу.

Запустите приложение на смартфоне

Проект создан, код написан. Теперь можно запустить программу и проверить ее работоспособность. Нужно подсоединить смартфон к ПК через USB-шнур, зайти в «Параметры разработчика» и активировать отладку по USB. Для этого выполните шаги:

  1. Зайдите в «Настройки», затем – «О телефоне» (на смартфонах с Андроид 8.0 или новее зайдите в раздел «Система»).
  2. Внизу страницы найдите и коснитесь 7 раз строки «Номер сборки».
  3. Вернитесь на шаг назад, перейдите в «Параметры разработчика» и активируйте отладку по usb.

В Android Studio выберите ваш проект в «Toolbar’s run/debug configurations drop-down menu». Затем выберите устройство для запуска вашей программы и кликайте «Выполнить». После этого в приложении на смартфоне отобразится «Hello, World!».

Запустите мобильное приложение через эмулятор

Запуск приложения при помощи эмулятора

  1. В Андроид Студио выберите эмулятор смартфона Андроид, на котором нужно установить и запустить приложение.
  2. Далее выберите ваш проект.
  1. Нажмите «Run», после чего AS установит мобильное приложение на виртуальное устройство и запустит эмулятор. В приложении в AS должно отобразиться «Hello, World!».

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

На платформе Android в 2,5 раза больше пользователей, чем на iOs, также правила Google Play проще и понятнее. Поэтому создать мобильное Android-приложение легче. Как это сделать, даже если вы никогда не занимались разработкой приложения, узнаете в статье. Минимальный набор знаний для разработки андроид приложений Если вы хотите создать свое приложение на Android важно понять, с […]

Подготовлено_выпускником —>

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

Получите востребованную профессию бесплатно. Обучение от 1 до 4 месяцев

На платформе Android в 2,5 раза больше пользователей, чем на iOs, также правила Google Play проще и понятнее. Поэтому создать мобильное Android-приложение легче.

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

Минимальный набор знаний для разработки андроид приложений

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

  1. Язык программирования : Java или Kotlin — это основной язык программирования, на котором можно создавать приложения для Android.
  2. ООП — это объектно-ориентированное программирование, концепция программирования, которая использует объекты для описания логики приложения.

В Android используются многие принципы ООП: наследование, полиморфизм, инкапсуляция.

  1. Архитектура Android — это спецификация, которая определяет, как приложения мобильной разработки должны быть построены. Примеры компонентов Android: Activity, Service, Content Provider, Broadcast Receiver.
  2. Жизненный цикл Activity и другие жизненные циклы — это определение того, какие события происходят в жизненном цикле компонента. Например, когда открывается новое окно приложения.
  3. Знание XML и пользовательского интерфейса — это язык разметки, который используется для создания пользовательского интерфейса приложения.
  4. Работа с базами данных: SQLite, Room — это базы данных, используемые для создания и управления хранилищами данных приложения.
  5. Работа с сетью : HTTP-запросы, Retrofit или volley — это позволяет отправлять и получать данные из приложения, используя интернет.
  6. Многопоточность и синхронизация — это способ управления выполнением кода на разных ядрах устройства.
  7. Библиотеки и инструменты : RecyclerView, CardView, Picasso или Glide, EventBus, Firebase — это инструменты, позволяющие более эффективно работать с Android-разработкой.
  8. Тестирование приложений — это процесс проверки наличия ошибок и неожиданного поведения в приложении перед его выпуском.

На чем пишут приложения для Android

Android-приложения пишут на языках программирования Java и Kotlin. Оба языка официально поддерживаются платформой Android и обладают множеством инструментов и функций для разработки мобильных приложений.

Java — это основной и наиболее широко используемый язык программирования для Android-разработки.

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

На Java были написаны, например, Skype, Shazam, Linkedln, игры Angry Birds и Subway Surfers.

Kotlin — это сравнительно новый язык программирования, который появился в 2011 году. Он разработан компанией JetBrains для упрощения и ускорения разработки мобильных приложений для Android.

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

На Kotlin были написаны несколько известных Android-приложений, написанных на Kotlin: Coursera, Pinterest, Netflix, Duolingo

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

Среда разработки андроид-приложений

Среда разработки Android-приложений — это компьютерная программа, которая используется для создания приложений для операционной системы Android.

разработка андроид-приложений

Основной средой разработки для Android является Android Studio.

Android Studio — интегрированная среда разработки (IDE), основанная на Intellij IDEA. Он предоставляет программистам всю необходимую функциональность для создания, тестирования и отладки приложений для Android. У него есть возможность создавать пользовательский интерфейс, работать с базами данных, сетевым взаимодействием, а также прочими функциями, тем самым значительно ускоряя процесс разработки.

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

Создаем эмулятор

Чтобы создать приложение, необходимо создать эмулятор.

Эмулятор — это программное средство, которое позволяет создавать виртуальное устройство, имитирующее железо, такое как смартфон, планшет, компьютер на компьютере или сервере.

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

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

Создать эмулятор вы сможете благодаря этому алгоритму:

  1. Откройте Android Studio.
  2. Нажмите на кнопку «AVD Manager» или перейдите в меню «Tools > Android > AVD Manager».
  3. В окне «AVD Manager» нажмите на кнопку «Create Virtual Device».
  4. Выберите желаемый устройство из списка доступных.
  5. Нажмите на кнопку «Next».
  6. Выберите нужную версию Android системы и нажмите кнопку «Download».
  7. Нажмите кнопку «Next».
  8. На этом этапе вы можете настроить некоторые параметры устройства, например, его название, размер экрана, разрешение, Вы также можете добавить несколько устройств.
  9. Нажмите «Finish» и дождитесь окончания создания эмулятора.
  10. Нажмите кнопку «Finish».

Эмулятор Android готов к использованию! Запустите его, нажав на кнопку Start.

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

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

Из чего же состоит Android-приложение

Android-приложение (Android app) — это приложение, разработанное для платформы Android, которое работает на мобильных устройствах, таких как смартфоны, планшеты и ноутбуки.

Операционная система Android обеспечивает платформу для работающих на ней приложений и предоставляет множество сервисов и API для разработки приложений.

Android-приложение состоит из нескольких компонентов, которые взаимодействуют между собой:

  1. Activity (Активность) — представляет экран с интерфейсом приложения и управляет взаимодействием с пользователем. Каждое приложение может состоять из нескольких активностей.
  2. Service (Служба) — фоновый компонент, который может выполнять длительные операции без взаимодействия с пользователем.
  3. Content providers (Поставщики контента) — компонент, который предоставляет доступ к данным приложения. Он может использоваться для хранения данных, таких как список контактов или избранное, и делиться этими данными с другими приложениями.
  4. BroadcastReceiver (Приемник широковещательных сообщений) служит для получения системных уведомлений и иных сообщений, широко вещаемых в операционной системе.
  5. Intent (Интент) — это объект, который позволяет компонентам приложения взаимодействовать друг с другом через систему.
  6. Файлы с ресурсами — файлы, содержащие изображения, звуки, строки и другие ресурсы, которые используются в приложении.
  7. Манифест (AndroidManifest.xml) — файл, который содержит объявления всех компонентов приложения и служит для описания всех возможностей и требований связанных между собой компонентов.

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

Как разместить приложение в Google Play

Чтобы разместить приложение в Google Play, вам нужно выполнить определенные шаги. Разберем каждый из них:

Создайте аккаунт разработчика: чтобы начать, вам нужно создать и оплатить аккаунт разработчика Google Play Console. Он предоставит доступ к инструментам разработки, которые позволят размещать и поддерживать ваши приложения.

Создайте APK-файл: APK-файл (Android Package Kit) это формат файла, который используется для установки приложений на устройства Android. Чтобы создать данный файл, вам нужно собрать и скомпилировать свое приложение в Android Studio.

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

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

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

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

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

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

Как подготовить релиз-версию приложения

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

подготовка релиз-версии приложения

  1. Создать подпись приложения. Для этого необходимо использовать ключ подписи, который будет использоваться для подписания APK-файла при дистрибуции. Ключ должен быть создан только раз, и его необходимо защитить паролем.
  2. Изменить настройки сборки Gradle . В файле build.gradle необходимо изменить параметры сборки для релиз-версии, такие как версию приложения и настройки подписи.
  3. Собрать APK-файл для релиз-версии. После изменения настроек Gradle необходимо запустить процесс сборки APK-файла для релиз-версии.
  4. Провести тестирование релиз-версии. Перед дистрибуцией необходимо провести тестирование приложения на релиз-версии для проверки работоспособности и отсутствия ошибок.
  5. Опубликовать приложение. После тестирования приложение можно опубликовать в Google Play Store или другом магазине приложений. При дистрибуции APK-файл должен быть подписан ключом подписи.
  6. Обновлять приложение. В случае необходимости обновления приложения необходимо повторить процесс подготовки релиз-версии и повторить пункты с 3 по 5.

Уникальный ключ приложения

Уникальный ключ приложения (также называемый Application ID) — это уникальный идентификатор приложения, который используется для его однозначной идентификации в Google Play Store и других магазинах приложений. Также ключ нужен для обеспечения безопасности передачи данных, мониторинга и анализа использования API с целью оптимизации его производительности.

Без уникального ключа приложение не сможет получить доступ к API и выполнять соответствующие функции.

Ключ генерируется при создании проекта в Android Studio и может быть изменен в файле build.gradle. Обычно он имеет следующий формат: com.example.appname.

Для получения ключа приложения необходимо создать новый проект в Android Studio и указать его настройки, включая имя пакета приложения (Application ID). При экспорте приложения APK-файл будет создан с этим ключом.

Также ключ приложения можно получить через консоль разработчика Google Play Developer Console после загрузки APK-файла приложения на платформу Google Play. Ключ можно найти в разделе «Настройки приложения» (App Settings).

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

Для подписи приложения в Android Studio выполните следующие шаги:

Сгенерируйте ключевое хранилище (keystore), которое будет использоваться для подписи приложения . Вы можете это сделать с помощью утилиты keytool, которая поставляется с JDK. Например, для генерации ключевого хранилища в командной строке Windows выполните следующую команду:

keytool -genkey -v -keystore my-release-key.keystore -alias my_alias -keyalg RSA -keysize 2048 -validity 10000

Подключите ключевое хранилище к проекту. Для этого добавьте следующие строки в файл build.gradle (Module:app):

android

defaultConfig

signingConfigs

release

storeFile file(«path/to/my-release-key.keystore»)

storePassword «password»

keyAlias «my_alias»

keyPassword «password»

>

>

buildTypes

release

signingConfig signingConfigs.release

>

>

>

Вместо «path/to/my-release-key.keystore» укажите путь к своему ключевому хранилищу, а вместо «password» — пароли для доступа к нему.

Соберите приложение в режиме release. Для этого выберите в меню Build -> Generate Signed APK и следуйте инструкциям мастера. После успешной сборки APK-файл будет подписан вашим ключом.

Готовый APK-файл с подписью можно найти в папке app\release, которую можно открыть в файловом менеджере Android Studio.

Как монетизировать приложение

Приложение можно монетизировать несколькими способами. Разберем некоторые из них:

  • Реклама : добавление рекламы в приложение. В этом случае вы получаете деньги от рекламодателей, которые платят за показы рекламных материалов.
  • Платные загрузки : можно добавить возможность платных загрузок, то есть продавать приложение пользователям. В этом случае приложение должно быть качественным и полезным для пользователей.
  • Подписка : добавление возможности подписки на дополнительный контент или функциональность в приложении. Пользователи платят за доступ к премиум-функциям.
  • In-app покупки : возможность покупки внутри самого приложения. Используется для продажи дополнительных уровней, персонажей, предметов или других игровых элементов.
  • Спонсорские контракты : искать спонсоров для приложения, которые могут предложить дополнительную монетизацию в обмен на рекламу на главном экране или в других местах в приложении.

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

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

Выбирайте, в какой профессии вы хотите стартовать:

  • «Тестировщик программного обеспечения: с нуля до первых проектов»
  • «Web-программист: с нуля до первых проектов»
  • «1С программист»
  • «Аналитик данных: с нуля до разработки прикладных решений для бизнеса»
  • «Project manager в IT: старт карьеры руководителя ИТ проектов»

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

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

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

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

Поделиться:

Бесплатно помогаем найти работу мечты

Лучшая инвестиция — это инвестиция в себя, в свои знания и будущее. Оставьте заявку на бесплатное обучение прямо сейчас и станьте участником проекта.

Получите востребованную профессию бесплатно. Обучение от 1 до 4 месяцев

Разработка в Android Studio приложений для андроид с нуля для чайников на языке java (видеоуроки)

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

1. Как скачать, установить и настроить среду разработки Android Studio и пакет Android SDK
2. Как создать простое приложение для android
3. Что такое эмулятор андроид-устройства (AVD) для запуска и тестирования android-приложений

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

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

Уроки выполняются в среде разработки Android Studio, которую создали совместно специалисты Google и команда JetBrains, авторы популярной среды разработки IntelliJ IDEA.

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

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

Уроки постоянно обновляются и добавляются.

Для тех, кто плохо знаком с языком программирования JAVA предлагаем Туториал по основам языка программирования JAVA для начинающих

Также предлагаем Продвинутые курсы:

  • Продвинутый курс по разработке android-приложения «Чат-мессенджер» с push-уведомлениями на Kotlin
  • Продвинутый курс по разработке android-приложения «ТОП-100 криптовалют» на Котлин
  • Как создать простое мобильное приложение для любого сайта (с push-уведомлениями) на Kotlin
  • Продвинутый курс по созданию андроид-приложения QuizApp (викторина, тест, экзамен, опрос)
  • Продвинутый курс по разработке андроид-приложения для Twitter и Facebook
  • Продвинутый курс по созданию андроид-приложения для сайта с push-уведомлениями
  • Продвинутый курс по разработке андроид-приложения HD Обои с покупками в приложении
  • Продвинутый курс по созданию андроид-приложения Вконтакте
  • Как создать полноценное приложение-напоминалку на андроид
  • Как создать мобильное приложение-клиент для YouTube
  • Как создать игру Flappy Bird для андроид
  • Создание игры для android Lunar Rover

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

Пишем первое приложение для Android

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

Статья затронет весь цикл разработки приложения. Вместе мы напишем простенькую игру “Крестики-Нолики” с одним экраном (в ОС Android это называется Activity).

Отсутствие опыта разработки на языке Java не должно стать препятствием в освоении Android. Так, в примерах не будут использоваться специфичные для Java конструкции (или они будет минимизированы на столько, на сколько это возможно). Если Вы пишете, например, на PHP и знакомы с основополагающими принципами в разработке ПО, эта статья будет вам наиболее полезна. В свою очередь так как, я не являюсь экспертом по разработке на Java, можно предположить, что исходный код не претендует на лейбл “лучшие практики разработки на Java”.

Установка необходимых программ и утилит

  1. JDK — набор для разработки на языке Java;
  2. Android SDK and AVD Manager — набор утилит для разработки + эмулятор;
  3. IDE c поддержкой разработки для Android:
    • Eclipse + ADT plugin;
    • IntelliJ IDEA Community Edition;
    • Netbeans + nbandroid plugin;

Утилиты устанавливаются в определенном выше порядке. Ставить все перечисленные IDE смысла нет (разве только если Вы испытываете затруднения с выбором подходящей). Я использую IntelliJ IDEA Community Edition, одну из самых развитых на данный момент IDE для Java.

Запуск виртуального устройства

Запустив AVD Manager и установив дополнительные пакеты (SDK различных версий), можно приступить к созданию виртуального устройства с необходимыми параметрами. Разобраться в интерфейсе не должно составить труда.

Список устройств

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

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

Итак, File->New Project:

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

Структура проекта

На предыдущем скриншоте видна структура проекта. Так как в этой статье мы преследуем сугубо практические цели, заострим внимание лишь на тех папках, которые будем использовать в процессе работы. Это следующие каталоги: gen, res и src.

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

Папка res предназначена для хранения ресурсов, таких как картинки, тексты (в том числе переводы), значения по-умолчанию, макеты (layouts).

src — это папка в которой будет происходить основная часть работы, ибо тут хранятся файлы с исходными текстами нашей программы.

Первые строки

Как только создается Activity (экран приложения), вызывается метод onCreate(). IDE заполнила его 2 строчками:

super.onCreate(savedInstanceState); setContentView(R.layout.main); 

Метод setContentView (равносильно this.setContentView) устанавливает xml-макет для текущего экрана. Далее xml-макеты будем называть «layout», а экраны — «Activity». Layout в приложении будет следующий:

Для этого приложения идеально подойдет TableLayout. Id можно присвоить любому ресурсу. В данном случае, TableLayout присвоен При помощи метода findViewById() можно получить доступ к виду:

 private TableLayout layout; // это свойство класса KrestikinolikiActivity public void onCreate(Bundle savedInstanceState)

Теперь необходимо реализовать метод buildGameField(). Для этого требуется сгенерировать поле в виде матрицы. Этим будет заниматься класс Game. Сначала нужно создать класс Square для ячеек и класс Player, объекты которого будут заполнять эти ячейки.

Square.java

package com.example; public class Square < private Player player = null; public void fill(Player player) < this.player = player; >public boolean isFilled() < if (player != null) < return true; >return false; > public Player getPlayer() < return player; >> 

Player.java

package com.example; public class Player < private String name; public Player(String name) < this.name = name; >public CharSequence getName() < return (CharSequence) name; >> 

Все классы нашего приложения находятся в папке src.

Game.java

package com.example; public class Game < /** * поле */ private Square[][] field; /** * Конструктор * */ public Game() < field = new Square[3][3]; squareCount = 0; // заполнение поля for (int i = 0, l = field.length; i < l; i++) < for (int j = 0, l2 = field[i].length; j < l2; j++) < field[i][j] = new Square(); squareCount++; >> > public Square[][] getField() < return field; >> 

Инициализация Game в конструкторе KrestikinolikiActivity.

public KrestikinolikiActivity() < game = new Game(); game.start(); // будет реализован позже >

Метод buildGameField() класса KrestikinolikiActivity. Он динамически добавляет строки и колонки в таблицу (игровое поле):

private Button[][] buttons = new Button[3][3]; //(. ) private void buildGameField() < Square[][] field = game.getField(); for (int i = 0, lenI = field.length; i < lenI; i++ ) < TableRow row = new TableRow(this); // создание строки таблицы for (int j = 0, lenJ = field[i].length; j < lenJ; j++) < Button button = new Button(this); buttons[i][j] = button; button.setOnClickListener(new Listener(i, j)); // установка слушателя, реагирующего на клик по кнопке row.addView(button, new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT)); // добавление кнопки в строку таблицы button.setWidth(107); button.setHeight(107); >layout.addView(row, new TableLayout.LayoutParams(TableLayout.LayoutParams.WRAP_CONTENT, TableLayout.LayoutParams.WRAP_CONTENT)); // добавление строки в таблицу > > 

В строке 8 создается объект, реализующий интерфейс View.OnClickListener. Создадим вложенный класс Listener. Он будет виден только из KrestikinolikiActivity.

public class Listener implements View.OnClickListener < private int x = 0; private int y = 0; public Listener(int x, int y) < this.x = x; this.y = y; >public void onClick(View view) < Button button = (Button) view; >> 

Осталось реализовать логику игры.

public class Game < /** * игроки */ private Player[] players; /** * поле */ private Square[][] field; /** * начата ли игра? */ private boolean started; /** * текущий игрок */ private Player activePlayer; /** * Считает колличество заполненных ячеек */ private int filled; /** * Всего ячеек */ private int squareCount; /** * Конструктор * */ public Game() < field = new Square[3][3]; squareCount = 0; // заполнение поля for (int i = 0, l = field.length; i < l; i++) < for (int j = 0, l2 = field[i].length; j < l2; j++) < field[i][j] = new Square(); squareCount++; >> players = new Player[2]; started = false; activePlayer = null; filled = 0; > public void start() < resetPlayers(); started = true; >private void resetPlayers() < players[0] = new Player("X"); players[1] = new Player("O"); setCurrentActivePlayer(players[0]); >public Square[][] getField() < return field; >private void setCurrentActivePlayer(Player player) < activePlayer = player; >public boolean makeTurn(int x, int y) < if (field[x][y].isFilled()) < return false; >field[x][y].fill(getCurrentActivePlayer()); filled++; switchPlayers(); return true; > private void switchPlayers() < activePlayer = (activePlayer == players[0]) ? players[1] : players[0]; >public Player getCurrentActivePlayer() < return activePlayer; >public boolean isFieldFilled() < return squareCount == filled; >public void reset() < resetField(); resetPlayers(); >private void resetField() < for (int i = 0, l = field.length; i < l; i++) < for (int j = 0, l2 = field[i].length; j < l2; j++) < field[i][j].fill(null); >> filled = 0; > > 

Определение победителя

К. О. подсказывает, что в крестики-нолики выирывает тот, кто выстроет X или O в линию длиной, равной длине поля по-вертикали, или по-горизонтали, или по-диагонали. Первая мысль, которая приходит в голову — это написать методы для каждого случая. Думаю, в этом случае хорошо подойдет паттерн Chain of Responsobility. Определим интерфейс

package com.example; public interface WinnerCheckerInterface

Так как Game наделен обязанностью выявлять победителя, он реализует этот интерфейс. Настало время создать виртуальных «лайнсменов», каждый из которых будет проверять свою сторону. Все они реализует интерфейс WinnerCheckerInterface.

WinnerCheckerHorizontal.java

package com.example; public class WinnerCheckerHorizontal implements WinnerCheckerInterface < private Game game; public WinnerCheckerHorizontal(Game game) < this.game = game; >public Player checkWinner() < Square[][] field = game.getField(); Player currPlayer; Player lastPlayer = null; for (int i = 0, len = field.length; i < len; i++) < lastPlayer = null; int successCounter = 1; for (int j = 0, len2 = field[i].length; j < len2; j++) < currPlayer = field[i][j].getPlayer(); if (currPlayer == lastPlayer && (currPlayer != null && lastPlayer !=null)) < successCounter++; if (successCounter == len2) < return currPlayer; >> lastPlayer = currPlayer; > > return null; > > 

WinnerCheckerVertical.java

package com.example; public class WinnerCheckerVertical implements WinnerCheckerInterface < private Game game; public WinnerCheckerVertical (Game game) < this.game = game; >public Player checkWinner() < Square[][] field = game.getField(); Player currPlayer; Player lastPlayer = null; for (int i = 0, len = field.length; i < len; i++) < lastPlayer = null; int successCounter = 1; for (int j = 0, len2 = field[i].length; j < len2; j++) < currPlayer = field[j][i].getPlayer(); if (currPlayer == lastPlayer && (currPlayer != null && lastPlayer !=null)) < successCounter++; if (successCounter == len2) < return currPlayer; >> lastPlayer = currPlayer; > > return null; > > 

WinnerCheckerDiagonalLeft.java

package com.example; public class WinnerCheckerDiagonalLeft implements WinnerCheckerInterface < private Game game; public WinnerCheckerDiagonalLeft(Game game) < this.game = game; >public Player checkWinner() < Square[][] field = game.getField(); Player currPlayer; Player lastPlayer = null; int successCounter = 1; for (int i = 0, len = field.length; i < len; i++) < currPlayer = field[i][i].getPlayer(); if (currPlayer != null) < if (lastPlayer == currPlayer) < successCounter++; if (successCounter == len) < return currPlayer; >> > lastPlayer = currPlayer; > return null; > > 

WinnerCheckerDiagonalRight.java

package com.example; public class WinnerCheckerDiagonalRight implements WinnerCheckerInterface < private Game game; public WinnerCheckerDiagonalRight(Game game) < this.game = game; >public Player checkWinner() < Square[][] field = game.getField(); Player currPlayer; Player lastPlayer = null; int successCounter = 1; for (int i = 0, len = field.length; i < len; i++) < currPlayer = field[i][len - (i + 1)].getPlayer(); if (currPlayer != null) < if (lastPlayer == currPlayer) < successCounter++; if (successCounter == len) < return currPlayer; >> > lastPlayer = currPlayer; > return null; > > 

Проинициализируем их в конструкторе Game:

//(. ) /** * "Судьи" =). После каждого хода они будут проверять, * нет ли победителя */ private WinnerCheckerInterface[] winnerCheckers; //(. ) public Game() < //(. ) winnerCheckers = new WinnerCheckerInterface[4]; winnerCheckers[0] = new WinnerCheckerHorizontal(this); winnerCheckers[1] = new WinnerCheckerVertical(this); winnerCheckers[2] = new WinnerCheckerDiagonalLeft(this); winnerCheckers[3] = new WinnerCheckerDiagonalRight(this); //(. ) >

Реализация checkWinner():

public Player checkWinner() < for (WinnerCheckerInterface winChecker : winnerCheckers) < Player winner = winChecker.checkWinner(); if (winner != null) < return winner; >> return null; > 

Победителя проверяем после каждого хода. Добавим кода в метод onClick() класса Listener

public void onClick(View view) < Button button = (Button) view; Game g = game; Player player = g.getCurrentActivePlayer(); if (makeTurn(x, y)) < button.setText(player.getName()); >Player winner = g.checkWinner(); if (winner != null) < gameOver(winner); >if (g.isFieldFilled()) < // в случае, если поле заполнено gameOver(); >> 

Метод gameOver() реализован в 2-х вариантах:

private void gameOver(Player player) < CharSequence text = "Player \"" + player.getName() + "\" won!"; Toast.makeText(this, text, Toast.LENGTH_SHORT).show(); game.reset(); refresh(); >private void gameOver()

Для Java, gameOver(Player player) и gameOver() — разные методы. Воспользовавшись Builder’ом Toast.makeText, можно быстро создать и показать уведомление. refresh() обновляет состояние поля:

private void refresh() < Square[][] field = game.getField(); for (int i = 0, len = field.length; i < len; i++) < for (int j = 0, len2 = field[i].length; j < len2; j++) < if (field[i][j].getPlayer() == null) < buttons[i][j].setText(""); >else < buttons[i][j].setText(field[i][j].getPlayer().getName()); >> > > 

Готово! Надеюсь, эта статья помогла Вам освоиться в мире разработки под OS Android. Благодарю за внимание!

Видео готового приложения

PS: статья была опубликована по просьбе комментаторов этого поста.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *