Сообщество - Android Developers

Android Developers

90 постов 2 040 подписчиков

Популярные теги в сообществе:

942

Сколько можно заработать на мобильном Android приложении? Пример1

Привет, Пикабу!

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


В самом начале своего пути я практически ничего не знал о монетизации мобильных приложений, да и сейчас мои знания оставляют желать лучшего, работаю над этим. Сегодня хочу рассказать вам о своем Android-приложении "Игра Шпион" (не уверен, что можно прикреплять ссылку на Google Play, но при желании без труда можно найти). Приложение является адаптацией настольной игры "Spyfall", о которой, наверное, многие из вас слышали.


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


Так уж совпало, что примерно в это же время (3 года назад) я начал изучать разработку под Android. Так и пришла идея: написать приложение, которое само рандомно выберет кто шпион, какая локация. Вкратце: создаем игру, генерируются карточки, люди передают телефон по кругу и смотрят на доставшуюся им роль.


Вот так выглядит последняя версия приложения (обновление опубликовано недавно).

Сколько можно заработать на мобильном Android приложении? Пример Приложение на Android, Android, Монетизация, Длиннопост

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

Дальше произошло то, на что я совершенно не рассчитывал, через месяц у приложения было уже 100 пользователей, через три месяца 1000.

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

Сколько можно заработать на мобильном Android приложении? Пример Приложение на Android, Android, Монетизация, Длиннопост

(Кстати, очевидно, что резкий прирост происходит в праздничные новогодние дни)


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

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

Уж не знаю, совпадение это или нет, но после публикации обновления пошел резкий рост аудитории.

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

Почему-то Google AdMob не дал пройти мне регистрацию. На мои письма с вопросами "почему так?" мне не отвечали.  Ну и ладно. Решил монетизировать через Яндекс РСЯ.

Тип рекламы - Interstitial, показывается при клике на какую-либо из кнопок на главном экране, ходу игры никак не мешает.

Никакие CPMV не настраивал (пока до конца с этим не разобрался).



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

Итого, при суточной аудитории, в среднем за неделю (3000 - 6000 человек).


Доход за сутки с даты публикации версии с рекламой

Сколько можно заработать на мобильном Android приложении? Пример Приложение на Android, Android, Монетизация, Длиннопост

Показы рекламы за сутки

Сколько можно заработать на мобильном Android приложении? Пример Приложение на Android, Android, Монетизация, Длиннопост

CPMV (доход с 1000 просмотров) за сутки (на зеленую кривую не образайте внимание). До сих пор не понимаю, от чего конкретно зависит CPMV, уж очень большой разброс.

Сколько можно заработать на мобильном Android приложении? Пример Приложение на Android, Android, Монетизация, Длиннопост

Аудитория распределена следующим образом

Сколько можно заработать на мобильном Android приложении? Пример Приложение на Android, Android, Монетизация, Длиннопост

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


Кстати, CPMV в странах восточной Европы в раз десять меньше, чем в США или западной Европе. Из чего можно сделать вывод: если решите монетизировать свое приложение, обязательно переводите его на английский язык, а лучше сделайте его вообще дефолтным. 

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


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

Спасибо за внимание.

Показать полностью 6

Помогите с роутером для Xiaomi Mi TV Box S

Помогите с роутером для Xiaomi Mi TV Box S Tv Box, Xiaomi mi box, Android, Роутер, Помогите найти

Доброго времени суток господа пикабушники. Настало время оживить своего старичка 47" телевизора LG. На нем есть свой смарт, но очень глючный, обрезанный и очень медленный. Телевизор покупался в 2013 году и тогда все эти смарт тв только начинались, ах да на нем еще присутствует замечательная технология 3d, которая сейчас уже никому не уперлась. Но сам телевизор не плох, хорошая цветопередача, full hd разрешение, менять пока на новый не хочу. В общем, перерыв интернет, склонился к покупке на всем знакомом китайском сайте тв приставки xiaomi. Да, по железу приставка не топ знаю, чувствую сейчас полетят камни в меня - бери x96 и прочее, но я так решил, да и люблю сяоми как бренд, многая техника в доме тоже этой фирмы. Так вот, ищу совета от счастливых обладателей сего агрегата, в плане какой роутер для него прикупить. Канал у меня 100 Мегабит/с, но роутер слабый, стоковый,самый простой, провайдер ставил, роутер на 2,4 Ггц. А в интернетах пишут нужен 5 Ггц, вроде как с первым приставка хуже ладит. По шнуру через переходник на usb, тоже не вариант подключать, телевизор висит на стене, кабеля все вмонтированы в стену, болтающийся кабель не вариант, только wi-fi. Телевизор находится в двух метрах от роутера, на телефоне по wi-fi в районе телевизора спидтест показывает до 23-25 Мегабит/с с просадками до 15, думаю это слабовато, да и скорость неравномерная. Еще оговорочка, дома есть ноутбук, у него прием идет только на 2,4 Ггц, что означает что нужен двухдиапазонный роутер. Думаю для понимания моей ситуации худо-бедно обрисовал картину. В общем буду рад советам с моделями маршрутизаторов, особенно тем, кто владеет такой приставкой и уже на своем опыте поняли что и как для нее лучше. Заранее благодарю за помощь.

Показать полностью 1
4

Тесты ПУЭ на Xamarin часть 5

Часть 1: Тесты ПУЭ на Xamarin

Часть 2: Тесты ПУЭ на Xamarin часть 2

Часть 3: Тесты ПУЭ на Xamarin часть 3

Часть 4: Тесты ПУЭ на Xamarin часть 4

Приложение: https://play.google.com/store/apps/details?id=com.GRText.pue...

Клик по кнопке "Следующий вопрос" сбрасывает все MyLabel к исходному состоянию. Затем в контексте привязок обновляется отображаемый экземпляр QuestCase и некоторые свойства. Посредством OnPropertyChanged("Имя_свойства") система извещается об изменении указанного свойства, затем система изменяет привязанные объекты.

Тесты ПУЭ на Xamarin часть 5 Xamarin, Csharp, Программирование, Приложение на Android, Разработка, Net
Тесты ПУЭ на Xamarin часть 5 Xamarin, Csharp, Программирование, Приложение на Android, Разработка, Net

Двойной клик по номеру вопроса открывает перехода к выбранному по номеру, вопросу.

Тесты ПУЭ на Xamarin часть 5 Xamarin, Csharp, Программирование, Приложение на Android, Разработка, Net

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

Тесты ПУЭ на Xamarin часть 5 Xamarin, Csharp, Программирование, Приложение на Android, Разработка, Net

На этом я заканчиваю серию.

Да, я "причёсываю" проект. Думаю, он будет опубликован на Github, а ссылка будет под этим комментарием: #comment_175300323

Показать полностью 4
6

Тесты ПУЭ на Xamarin часть 4

Часть 1: Тесты ПУЭ на Xamarin

Часть 2: Тесты ПУЭ на Xamarin часть 2

Часть 3: Тесты ПУЭ на Xamarin часть 3

Приложение: https://play.google.com/store/apps/details?id=com.GRText.pue...

В конструкторе класса App устанавливается главная страница приложения - MainPage, в конструкторе главной страницы создается экземпляр класса MyView, который устанавливается контекстом привязок. Для события получения ответа GotAnswer устанавливается обработчик.

Тесты ПУЭ на Xamarin часть 4 Xamarin, Csharp, Программирование, Приложение на Android, Разработка, Net, Длиннопост

MainPage.xaml.cs содержит три поля. Color для подсвечивания MyLabel по которым сделан клик,  в вопросах где больше одного варианта ответа. Color - исходный цвет MyLabel. И переменная для работы счётчика кликов (некоторые элементы ожидают больше одного клика).

Тесты ПУЭ на Xamarin часть 4 Xamarin, Csharp, Программирование, Приложение на Android, Разработка, Net, Длиннопост
Тесты ПУЭ на Xamarin часть 4 Xamarin, Csharp, Программирование, Приложение на Android, Разработка, Net, Длиннопост

При клике по одному из MyLabel выполняется функция TapGestureRecognizer_Tapped. В ней сначала проверяется получено ли ожидаемое количество ответов. Если да, то ничего не происходит, выполнение функции завершается. Иначе, инвертируется свойство IsClicked MyLabel'a по которому был сделан клик и изменяется свойство Taps(количество выбранных ответов) контекста привязок. При изменении свойства Taps оно сравнивается с ожидаемым количеством ответов и если выбрано ожидаемое количество ответов, вопрос становится закрытым, срабатывает событие GotAnswer.

Тесты ПУЭ на Xamarin часть 4 Xamarin, Csharp, Программирование, Приложение на Android, Разработка, Net, Длиннопост
Тесты ПУЭ на Xamarin часть 4 Xamarin, Csharp, Программирование, Приложение на Android, Разработка, Net, Длиннопост

В обработчике события GotAnswer проверяется полученный ответ. Если ответ неверный, этот вопрос вносится в список чаще показываемых. Т.е. свойству Errors этого экземпляра QuestCase присваивается значение 5. Если ответ из списка чаще показываемых и ответ верный свойство Errors уменьшается на 1. Затем показываются цвета всех MyLabel.

Тесты ПУЭ на Xamarin часть 4 Xamarin, Csharp, Программирование, Приложение на Android, Разработка, Net, Длиннопост

Список чаще показываемых вопросов - это экземпляры QuestCase со свойством Errors больше 0.

Тесты ПУЭ на Xamarin часть 4 Xamarin, Csharp, Программирование, Приложение на Android, Разработка, Net, Длиннопост
Показать полностью 6
8

Тесты ПУЭ на Xamarin часть 3

Часть 1: Тесты ПУЭ на Xamarin

Часть 2: Тесты ПУЭ на Xamarin часть 2

Приложение: https://play.google.com/store/apps/details?id=com.GRText.pue...

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

Да, можно обойтись одним переключателем. )

Тесты ПУЭ на Xamarin часть 3 Xamarin, Csharp, Программирование, Приложение на Android, Разработка, Net, Android разработка, Длиннопост
Тесты ПУЭ на Xamarin часть 3 Xamarin, Csharp, Программирование, Приложение на Android, Разработка, Net, Android разработка, Длиннопост

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

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

Тесты ПУЭ на Xamarin часть 3 Xamarin, Csharp, Программирование, Приложение на Android, Разработка, Net, Android разработка, Длиннопост
Тесты ПУЭ на Xamarin часть 3 Xamarin, Csharp, Программирование, Приложение на Android, Разработка, Net, Android разработка, Длиннопост

В сгенерированном при создании проекта классе App в файле App.xaml.cs устанавливается главная страница приложения.

Этот класс после автоматического создания содержит три метода вызывающихся при изменении состояния приложения: OnStart, OnSleep и OnResume.

Я написал два простых метода Open и Save для сохранения или загрузки списка вопросов в зависимости от состояния приложения.

Тесты ПУЭ на Xamarin часть 3 Xamarin, Csharp, Программирование, Приложение на Android, Разработка, Net, Android разработка, Длиннопост

При создании решения в проекте для Android генерится файл MainActivity.cs содержащий класс MainActivity. В этом классе определена переменная basename содержащая название файла в котором будут храниться вопросы. Этот файл в ходе работы приложения будет перезаписываться. Т.е. в перезаписываемом файле помечаются вопросы где была допущена ошибка.

Также в переменной XMLname содержится имя XML файла со списком вопросов содержащегося в Assets. Этот файл поставляется с приложением.

Тесты ПУЭ на Xamarin часть 3 Xamarin, Csharp, Программирование, Приложение на Android, Разработка, Net, Android разработка, Длиннопост
Тесты ПУЭ на Xamarin часть 3 Xamarin, Csharp, Программирование, Приложение на Android, Разработка, Net, Android разработка, Длиннопост

Выполнение приложения начинается с функции OnCreate класса MainActivity проекта для Android. Здесь загружается ранее сохранённый файл, если не получается, загружается XML поставляющийся с приложением.

Далее с созданием экземпляра класса App приложение запускается:

LoadApplication(new App(basename));

Тесты ПУЭ на Xamarin часть 3 Xamarin, Csharp, Программирование, Приложение на Android, Разработка, Net, Android разработка, Длиннопост
Показать полностью 7
2

Тесты ПУЭ на Xamarin часть 2

Начало: Тесты ПУЭ на Xamarin

Корневая страница приложения содержит ToolbarItem (кнопка "Настройки"), несколько Label и MyLabel и кнопку "Следующий вопрос". Четыре объекта MyLabel с вариантами ответов размещены внутри объекта ScrollView. Всё это сориентировано вертикально. Также в файле определён словарь ресурсов - это три конвертера используемых в привязках (Binding) и пара стилей определяющих внешний вид некоторых Label и Frame.

Тесты ПУЭ на Xamarin часть 2 Xamarin, Csharp, Программирование, Приложение на Android, Разработка, Длиннопост

Конвертеры собраны в отдельном файле Converters.

Тесты ПУЭ на Xamarin часть 2 Xamarin, Csharp, Программирование, Приложение на Android, Разработка, Длиннопост

Экземпляр конвертера PlusOdin имеет ключ PlusOdin_ и используется в привязке к свойству Text объекта Label отображающего номер вопроса. Для номера вопроса я использую номер элемента в массиве, поэтому потребовался этот конвертер. Возможно это лютый трэш )


Экземпляр конвертера IsGreaterZero имеет ключ IsGreaterZero_ и привязан к свойству BorderColor объекта Frame внутри которого размещён Label с текстом вопроса. Эта привязка определяет цвет рамки вокруг вопроса. Если вопрос из списка чаще показываемых, то рамка - красная, иначе - зелёная.


Экземпляр конвертера StringToBool с ключом StringToBool_ нужен для изменения свойства IsVisible объекта Frame в котором отображается текст четвёртого варианта ответа. К этому свойству, в свою очередь привязано свойство IsVisible вложенного объекта MyLabel. Ответов бывает 3, поэтому Frame и MyLabel четвёртого ответа при трёх ответах отображать не требуется.

Тесты ПУЭ на Xamarin часть 2 Xamarin, Csharp, Программирование, Приложение на Android, Разработка, Длиннопост

Каждый вариант ответа размещён в объекте MyLabel. К свойству Text этого объекта привязан текст варианта ответа. К свойству isAnswer привязано значение типа bool определяющее верный этот вариант или нет. Таких объектов четыре.

Тесты ПУЭ на Xamarin часть 2 Xamarin, Csharp, Программирование, Приложение на Android, Разработка, Длиннопост

Контекст привязок - это класс MyView. Этот класс унаследован от INotifyPropertyChanged. Когда требуется оповестить систему об изменении какого - либо свойства этого класса, вызывается метод OnPropertyChanged с названием изменившегося свойства в качестве параметра. Затем система изменяет привязки.

Тесты ПУЭ на Xamarin часть 2 Xamarin, Csharp, Программирование, Приложение на Android, Разработка, Длиннопост
Тесты ПУЭ на Xamarin часть 2 Xamarin, Csharp, Программирование, Приложение на Android, Разработка, Длиннопост
Тесты ПУЭ на Xamarin часть 2 Xamarin, Csharp, Программирование, Приложение на Android, Разработка, Длиннопост
Тесты ПУЭ на Xamarin часть 2 Xamarin, Csharp, Программирование, Приложение на Android, Разработка, Длиннопост
Показать полностью 8
33

Тесты ПУЭ на Xamarin

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

Ссылки на посты:

Запилил тесты ПУЭ

Выкатил вопросы на 5 группу электробезопасности

Решение на XamarinForms содержит несколько проектов. Главный проект и проекты для каждой выбранной на этапе создания решения платформы.

Здесь была выбрана только одна платформа, поэтому решения два.

Тесты ПУЭ на Xamarin Xamarin, Csharp, Программирование, Приложение на Android, Разработка, Длиннопост

Каждый вопрос с вариантами ответов хранится в классе QuestCase.

Переменная errors - счётчик до выхода вопроса из списка чаще показываемых вопросов. Когда происходит неправильный ответ, errors становится 5. С каждым правильным ответом errors уменьшается на 1. Когда errors становится 0, вопрос исключается из списка чаще показываемых.

Тесты ПУЭ на Xamarin Xamarin, Csharp, Программирование, Приложение на Android, Разработка, Длиннопост

Интерфейс IFileWorker нужен для работы с файлом вопросов/ответов.

Этот интерфейс описан в главном проекте

Тесты ПУЭ на Xamarin Xamarin, Csharp, Программирование, Приложение на Android, Разработка, Длиннопост

а реализован в проекте для Android в классе FileWorker.

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

Тесты ПУЭ на Xamarin Xamarin, Csharp, Программирование, Приложение на Android, Разработка, Длиннопост

Текст каждого ответа размещается в MyLabel наследованном от Label.

MyLabel знает какой ответ в нем - верный или неверный - свойство isAnswer,

MyLabel запоминает клик по нему - свойство isClicked.

Я использовал BindableProperty для реализации этих свойств.

Тесты ПУЭ на Xamarin Xamarin, Csharp, Программирование, Приложение на Android, Разработка, Длиннопост

Это первая часть поста. Планирую ещё как минимум две.

Показать полностью 5
1

Ж, 30 лет, не встаёт HAXM. Android чтоб его

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

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

Я скачала андроид студио, установила.
Выбрала устройство.

Ж, 30 лет, не встаёт HAXM. Android чтоб его Android, Разработка, Программирование, Самообразование, Длиннопост

Здесь пытаюсь поставить галочку , чтобы установить HAXM, и получаю ошибку

Ж, 30 лет, не встаёт HAXM. Android чтоб его Android, Разработка, Программирование, Самообразование, Длиннопост

Господа, о великие программисты всех времен и народов! Нижайше прошу!!! Помогите!!! Спасите от темноты незнаний!
Могу задонатить немного ₽

Совсем не хочется бросить разработку так рано)
Можете топить в минусах, мне рейтинг не особо важен, только помогите, пожалуйста 😫🙏🙏💓

Да, в биосе визуализацию отключила, не помогло.
Место на диске освободила, тоже не помогло.
Hyper-v галочки не стоят.

Вот вам кошечку! Всем мира и добра!

Ж, 30 лет, не встаёт HAXM. Android чтоб его Android, Разработка, Программирование, Самообразование, Длиннопост
Показать полностью 3
Отличная работа, все прочитано!