- Quick App Ninja: своя викторина за 10 минут
- Android Simple Quiz App Tutorial with Source Code
- Operating System
- Getting Started:
- Layout Design
- Android Manifest File
- Creating The Quiz Content
- The Main Function
- DEMO
- Разработка игры для Android на Unity 5. От идеи до монетизации (Live)
- Идея игры
- Структура проекта
- Особенности игровой логики и хранения данных
- Внедрение инструментов монетизации in app purchase и официального плагина AdMob
- Продвижение
- Создаём развивающее приложение при помощи Android Studio
- Введение
- Теория
- Основная часть
Quick App Ninja: своя викторина за 10 минут
И нет, это не преувеличение — он действительно отменно работает, вы правда можете за 10 минут создать первую игру, и она правда вам сразу начнет приносить деньги. Заманчиво?
Хотите заняться мобильными играми, но не знаете с чего начать? В нашем обзоре сегодня отличный бесплатный конструктор викторин Quick App Ninja, который за 10 минут позволит вам выпустить первую игру для Android и начать зарабатывать деньги. И нет, это не преувеличение — он действительно отменно работает, вы правда можете за 10 минут создать первую игру, и она правда вам сразу начнет приносить деньги. Заманчиво? Давайте по пунктам.
Конструктор Quick App Ninja позволяет вам быстро и просто создавать мобильные викторины трех типов — в первом можно отгадывать одно слово, представленное четырьмя картинками, во втором угадывать, что изображено на фотографии, в третьем открывать фотографию кусочками и угадывать, кто на ней. Пользователи отгадывают одно слово или термин за другим и продвигаются таким образом по игре.
В одной викторине вопросы разных типов не допускаются, то есть вам сразу надо задуматься о том, какой тип вы хотите использовать. Пользователям доступна “Помощь друга” через социальные сети и подсказки за монеты, игровая валюта это “потребляемый” и “возобновляемый” ресурс — возобновляются они за правильные ответы, просмотр вознаграждающего видео и посты в сетях.
Для создания контента игры нужен список вопросов с ответами, фотографии (обратите внимание — и об этом предупреждают авторы — права на них лучше иметь, Google Play может завернуть игры с контентом брендов)… и всё.
В оформлении игры вы можете менять цвета (есть темы — готовые наборы цветов, которыми вы можете воспользоваться, если не хотите особенно напрягаться), звуки, создать иконку из фотографий вопросов, задать название и определить ряд технических параметров, вроде имени пакета. Делается это простыми, понятными и визуальными визардами.
Самое вкусное — монетизация. Вы регистрируете аккаунт в одной из доступных рекламных сетей (Admob, Facebook, Mobfox) и одной строчкой прописываете полученный аккаунт в свою игру. Реклама моментально начинает откручиваться в приложении и приносить вам деньги.
Также в игре вы можете включить покупку монет через Google Play (их пользователи тратят на подсказки) — это рекомендуется делать при достижении определенного количества установок, чтобы не отпугивать пользователей. Монеты и отсутствие упоминания самого конструктора — премиальная функция конструктора, включаемая для игры раз и на всю ее жизнь.
Всё! После этого в течение нескольких минут ваша игра будет готова для публикации в Google Play. Quick App Ninja пришлет вам на почту не только сам пакет, но также (что очень удобно) все необходимые для размещения в магазине ассеты — иконку, скриншоты для всех устройств, даже готовую политику конфиденциальности.
Если еще немного поговорить про жизненный цикл игры, то вы можете добавлять в нее вопросы из админки сайта — они будут появляться у пользователя автоматически и обновлять приложение в магазине вам не понадобится (пуши о появлении нового контента пока не приходят, обновление происходит только при заходе пользователя в игру, но авторы Quick App Ninja обещали подумать над реализацией этого функционала).
На создание первой игры у вас может уйти до часа, а вот дальнейшие “клепаются” уже реально за 10 минут. Кроме того вы можете клонировать уже существующие игры и выпустить несколько вариантов одной игры, например, с разным цветовым оформлением или разными вопросами.
Пример созданной игры: Угадай еду, продукты, брэнд! Более полумиллиона установок!
Источник
Android Simple Quiz App Tutorial with Source Code
Operating System
In this tutorial, we will try to create a Simple Quiz App Using Android. This simple application can generate random questions and generate choices to be answered. Android is a mobile operating system developed by Google. It used in several gadgets like smartphones, tablets, and even television. Android is open source to developers who has an interest in developing mobile apps. It also provides an adaptive framework that allows the developer to develop apps in a simpler way. Android is open-source so that developers find it easy to develop and expand new features. So let’s do the coding.
Getting Started:
First you will have to download & install the Android Development IDE (Android Studio or Eclipse). Android Studio is an open-source development feel free to develop your things.
Layout Design
We will now create the design for the application, first locate the layout file called activity_main.xml, this is the default name when create a new activity. Then write these codes inside your layout file.
Android Manifest File
The Android Manifest file provides essential information about your app to the Android system in which the system must require before running the code. It describes the overall information about the application. It contains some libraries that needed to access several method within the app.
Creating The Quiz Content
This code contains the list of all questionnaires within the quiz app. To do that simply create a new java file namely Question then write these blocks of code inside the newly created java file class.
The Main Function
This code contains the main function of the application. This code will automatically generate a random question every time the answer is correct. To start with first locate your MainActivity java file and open it, then write this variable inside the MainActivity class.
Then add this handler as implement to the MainActivity class, this will listened to all button function within the activity
Then write these method to make to code work correctly.
Finally, initialize the require methods inside the onCreate method to run the application.
Try to run the app and see if it worked.
DEMO
There you have it we have created a Simple Quiz App using Android. I hope that this tutorial helps you with what you are looking for. For more updates and tutorials just kindly visit this site.
Enjoy Coding.
Note: Due to the size or complexity of this submission, the author has submitted it as a .zip file to shorten your download time. After downloading it, you will need a program like Winzip to decompress it.
Virus note: All files are scanned once-a-day by SourceCodester.com for viruses, but new viruses come out every day, so no prevention program can catch 100% of them.
FOR YOUR OWN SAFETY, PLEASE:
1. Re-scan downloaded files using your personal virus checker before using it.
2. NEVER, EVER run compiled files (.exe’s, .ocx’s, .dll’s etc.)—only run source code.
Источник
Разработка игры для Android на Unity 5. От идеи до монетизации (Live)
Привет Хабр. Хочу поделиться опытом в разработке игры-викторины на Unity 5 версии. Замечу, что подобная игра уже выпускалась мной в 2014 году и набирала 7800 скачиваний. Из-за ужасной реализации игра заработала 80% удалений и проект был заброшен. Попробуем запустить игру по новой, исправив ошибки предшественника.
В статье рассмотрим такие темы как:
- Идея игры
- Структура проекта
- Особенности игровой логики и способы реализации
- Внедрение инструментов монетизации in app purchase и официального плагина AdMob
- Продвижение
Идея игры
Идея игры простая. Мы зашифровываем популярные песни в виде смайлов emoji и предлагаем пользователю расшифровать.
На момент публикации, подобных русскоязычных игр в Google Play нет.
Структура проекта
При разработке на Unity я не использую паттернов, но стараюсь разделить логику от отображения.
Игровой объект Display (Canvas) является родительским элементом UI, на нем висит класс для доступа ко всему UI — GameDisplay. Весь интерфейс размещается в родительском Display (Canvas) и мы при необходимости ссылаемся к элементам UI через класс GameDisplay.
Для обработки взаимодействия с UI я создаю пустой игровой объект Handlers и на нем размещаю класс(ы), который содержит методы для обработки нажатия кнопок.
Для удобства группировки, все это мы помещаем в пустой игровой объект UI (не является элементам интерфейса и не отображается).
В объекте Levels содержатся наши уровни Level_(num). Как видно по скрину, Level_1 элемент UI содержащий компонент grid layout group. В Level_1 помещены дочерние Image элементы, которые отображают смайлы и группируются в grid благодаря родительскому компоненту.
Особенности игровой логики и хранения данных
Для сохранения незначительно количества игровых данных (счет\имя игрока и.т.д) я использую PlayerPrefs обернутый для удобства в класс DB.
С помощь этого, мы имеем возможность удобно обращаться к бд Db.CurrentLevel = Db.CurrentLevel + 1;
Логика игры не сложная и состоит из одного класса Game. Все уровни (имеют тег Level) по умолчанию активированы. Наша задача найти и отключить, за исключением текущего CurrentLevel.
Внедрение инструментов монетизации in app purchase и официального плагина AdMob
Раньше пользовался «самопальными» инструментами для сервиса Admob и внутриигровых покупок. Сейчас Unity и Google предоставляют из коробки прекрасные\удобные\простые плагины. Плагин для рекламы можно скачать тут, а для in app purchase в самой Unity → Services. Скачал, загрузил все в проект и используешь. Официальные примеры и документация превосходны.
Продвижение
Раньше я использовал сервисы для накрутки пятерок\скачиваний\комментариев advertmobile и apptools. Я крайне не рекомендую пользоваться этими инструментами. Ребята из корпорации бобра серьезно потрудились, накрученные отзывы удаляются\не отображаются.
Игра находится в GP пятый день, статистика по скачиваниям: 228/459 (+1 игровая покупка). В adMob 5900 показов и 6$ дохода. Мы получили 231 удаление, есть над чем поработать. Возможно хромает качество, или игра не оправдала ожидание. Согласно «доске лидеров» в игру играют, люди пишут мне на почту и просят подсказки.
Для продвижения использую тематические форумы, группы вк, статьи в блогах, группы в телеграмм, Хабрахабр. Смогу ли я набрать 7800 скачиваний как в прошлой версии, или GP для инди стал непостижим? Ответ на этот вопрос и при необходимости\востребованности более подробный разбор логики в следующий раз.
Источник
Создаём развивающее приложение при помощи Android Studio
Введение
Теория
Для начала нам нужно определиться с архитектурой программного интерфейса. Я предпочитаю MVC (Model — View — Controller).
При таком подходе контроллер перехватывает событие извне и в соответствии с заложенной в него логикой, реагирует на это событие изменяя модель, посредством вызова соответствующего метода. После изменения модель использует событие о том что она изменилась, и все подписанные на это события представления, получив его, обращаются к Модели за обновленными данными, после чего их и отображают. Так, определились. Дальше нужно выбрать язык программирования. Мне нравиться Java. Java — это объектно ориентированный язык программирования, поэтому нам следует придерживаться принципов ООП:
1) Инкапсуляция — это компонент позволяющий объединить код и данный которыми он манипулирует.
2) Полиморфизм — свойство системы, позволяющее использовать объекты с одинаковым интерфейсом без информации о типе и внутренней структуре объекта.
3) Наследование — свойство системы, позволяющее описать новый класс на основе уже существующего с частично или полностью заимствующейся функциональностью. Класс, от которого производится наследование, называется базовым или родительским классом. Новый класс — потомком, наследником, дочерним или производным классом.
Теперь ограничим предметную область такими классами как:
Игра (Game), Игрок (Player), Поле (Field). Игра отвечает за данные формируемые непосредственно в игре. Поле хранит информацию о том, какие ячейки закрашены, а какие нет. Игра умеет создавать поле. Игрок умеет обрабатывать пользовательские данные, т.е. сохранять очки и рейтинг, когда это необходимо.
Основная часть
Хватит теории. Нам нужно выполнить следующую последовательность действий:
1) Скачать среду разработки и JDK.
2) Установить оба комплекта себе на компьютер.
3) Запустить среду разработки.
Создадим пустой проект и начнём творить. Определим структура пакетов таким образом:
Дальше мы проделываем небольшой трюк. Создаём файлы разметки:
Xml файл root отвечает за корень нашего представления. Внутри него будут динамически меняться разметки фрагментов, которые мы уже создали. Соответственно в пакете представления (view) создадим классы фрагменты:
Каждый фрагмент отвечает за один режим игры. При открытии приложения выполняется метод onCreate класса MainActivity(который мы тоже положили в пакет view). Изменим это метод до такого состояния:
Тут мы проверяем, что если наша активность создаётся первый раз, то нужно создать объекты фрагментов и сделать видимым фрагмент меню. Конечно прежде чем создавать объекты нужно задать им ссылки, но я думаю, что с этим вы сами справитесь.
Фрагменты созданы, но они ничего не делают. Самое время придать вдунуть в них жизнь. Создадим интерфейс:
Через методы данного интерфейса объекты будут сообщать о своих действиях активности, а она уже будет решать, что ей делать.
Создадим фрагмент главного меню:
Тут я создал нашёл кнопки и повесил на них слушателя событий. В слушателе выбирается какая кнопка была нажата. В зависимости от этого объекту интерфейса посылается нужное сообщение. Но наша активность ещё не реагирует на посылаемые фрагментом сообщения. Исправим это позже, а сейчас напишем логику нашей игры. Наша логика содержится в пакете model. Там создадим вспомогательный класс Field:
Как вы видите этот класс нам нужен для работы с массивом правильных ответов. Если элемент массива содержит 1, то клетка закрашена. Поле умеет себя создавать. После создания оно себя сразу перемешивает. Теперь создадим базовый класс Game для режимов игры.
Данный класс определяет базовую функциональность режимов игры. Он умеет создавать поле, устанавливать текущий уровень игры, создавать диалоговые окна (именно для этого ему и нужна ссылка на активность) и показывать их. Объекты данного класса мы создавать не можем, поэтому создадим классы наследники. К примеру класс GameModSprint:
Этот класс определяет каким образом будут появляться диалоговые окна. Дело в том, что не всегда мне нужно просто перенести игрока на следующий уровень. К примеру в других режимах игры я захочу сделать прибавление рейтинга игроку или ещё какие-либо манипуляции с пользовательскими данными которые нужно выполнять только в данном режиме игры. Остальные классы создаются аналогичным образом.
И наконец мы можем реализовать наш интерфейс.
» alt=«image»/>
Теперь у фрагмента игрового уровня есть всё необходимое для создания. Он знает о текущем поле всё, что ему нужно. Осталось только связать наши данные с пользовательским интерфейсом.
Обратите внимание, на этот метод:
С помощью него активность передаёт ссылку на объект игры фрагменту. Также, чтобы не использовать длинных точечных нотация создадим отдельную ссылку для поля.
Код в целом очень простой. Создаются массив кнопок, заполняется. Получается, что индексы двумерного массива кнопок совпадают с индексами двумерного массива из объекта класса Field.
Таким образом при определении нажатой кнопки нужно проверить какая цифра лежит в массиве объекта класса Fild. Если 0, то пользователь сделал неверный ввод и надо закончить игру вызовом
который создаст и откроет нужное нам диалоговое окно с выборов действий.
Если игрок выбрал все элементы равное 1, то создаётся победное диалоговое окно. Несмотря на то, что у нас ссылка типа Game объект создавался активностью типа GameModSprint, значит и вызовется соответствующая переопределённая версия этого метода:
Таким образом мы пользуемся мощнейшим средством языка Java — динамической диспетчеризацией методов.
Источник