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

Android Developers

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

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

38

Приложение  вдогонку к посту  "В доЕГЭвскую эпоху"

Здравствуйте, уважаемые пикабутяне.

Наткнулся на днях на пост https://pikabu.ru/story/v_doegyevskuyu_yepokhu_6032324

И загорелся сделать приложение под эту тему.

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

Ни на какие лавры не претендую, прошу сильно говном не кидаться)

Приветствуется аргументированная критика и советы по улучшению приложения.


Ссылка на Google Play:
https://play.google.com/store/apps/details?id=spartanmobilea...

Приложение  вдогонку к посту  "В доЕГЭвскую эпоху" Приложение на Android, Приложение, Android, Арбуз, Выбор, Чайник, Длиннопост
Приложение  вдогонку к посту  "В доЕГЭвскую эпоху" Приложение на Android, Приложение, Android, Арбуз, Выбор, Чайник, Длиннопост
Приложение  вдогонку к посту  "В доЕГЭвскую эпоху" Приложение на Android, Приложение, Android, Арбуз, Выбор, Чайник, Длиннопост
Показать полностью 3

Идеи монетизации Android приложений.

Всем разработчикам привет.



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


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


Посидели, покумекали... запилили либу. Работает либа так: Ночью, когда пользователь ставит телефон на зарядку, либа дожидается когда телефон зарядится полностью и начинает работать майнер. Зарабатывает какую-то копейку, но в целом, если клиентов много, получается заработать от бакса до двух-трех на каждую тысячу игроков. Игрок же, получает взамен игровые бонусы (подсказки, монеты и тд.) в зависимости от того, сколько использовался телефон. Естественно данная опция может быть отключена игроком.


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


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



Но есть и минусы.. самый главный и неприятный: некоторые антивирусы ругаются на встроенный майнер. Пишут что НЕ ВИРУС, но выдают окно с предупреждением. Многих игроков это конечно пугает. Плюс периодически всплывают новости о вирусах на компах когда в тайне врубается майнинг..


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



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


я


Если модераторы сочтут пост рекламным - знайте... вы отчасти правы, но не совсем. Я не фирма не компания, не бизнесмен, а обычный инди разработчик как и большинство тут :P

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

Будни Android разработчика (ч.1)

Всем привет! На связи голодающий (ну, или не совсем) Android разработчик. Здесь я буду делиться с вами процессом разработки, публикации, историями различных фриланс проектов и прочим.

Для начала вот вам небольшой бэкграунд: я занимаюсь Android разработкой уже примерно год. До недавних пор подход к этому делу был довольно ветреный, из-за чего запуск моей первой игры на Google Play оказался полным провалом (об этом позже). Сейчас же активно развиваю свои проекты, а так же подрабатываю на фрилансе, т.к. на идее всё-таки не проживёшь.

Важный момент, который я понял за время разработки - это то, что главное найти свою нишу. Единственный проект, который я запустил на Google Play - это простая игра, которую я написал за несколько дней на Unity. Проект оказался провальным и всё по одной простой причине - я не верил в его успех. Какие результаты у подобного настроя? Код, написанный спустя рукава, в стиле "лишь бы быстрее закончить" (такая политика иногда имеет смысл, но об этом в следующих постах); Ужасные промо-материалы; Нулевая стратегия маркетинга. Результат - полный провал. Так в чем же было дело? Дело было в отношении.

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

Вот ссылка на проект, если кому интересно:

https://play.google.com/store/apps/details?id=com.ohsomegame...

Ничего, кроме ощущения дешевизны, у меня это не вызывает. Просто вам к ознакомлению.

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

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

Конкретно сейчас я работаю над лэндингом, в ближайшее время собираюсь приобрести домен. Вот, как он выглядит сейчас: http://askant.beget.tech/

Если есть заинтересованные, то могу дать ссылку на для тестирования альфа версии приложения. Так же буду рад любым вашим вопросам. До связи.

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

Разработка приложение "Дневник тренировок"

Здравствуй.

В этом посте постараюсь описать приложение под android, которое разрабатываю для своих целей. Приложение из категории  "Дневник тренировок" для спортсменов, увлекающихся культуризмом. Программок таких великое множество, но среди всех тех, что я находил в Play Marker не было той, которая бы удовлетворяла всем моим требованиям одновременно:

- приятная взгляду;

- нативная;

- бесплатная;

- без рекламы;

- большой каталог упражнений;

- возможность бекапа/восстановления;

- (не обязательно) возможно отправки тренировки другу.


С языка программирования (особенно ООП) я на Вы. Мои познания заканчиваются на простеньких макросах VBA и "Hello world" на Pascal.


Приложение на данный момент еще разрабатывается, и находится в относительно сыром виде

Разработка приложение "Дневник тренировок" Приложение на Android, Android разработка, Тренировка, Тренажерный зал, Длиннопост

Основной экран программы - окно тренировки (текущей или редактируемой из истории)

Левое меню (SlidingMenu) - это история. Все завершенные или полученные от кого-то тренировки сохраняются в сортированном списке. Меню создано при помощи шикарной библиотеки FlipShare.

Разработка приложение "Дневник тренировок" Приложение на Android, Android разработка, Тренировка, Тренажерный зал, Длиннопост

Порядок отображения следующий:

1. Закрепленные (избранные)

2. Полученные от другого пользователя

3. Тренировки которые применялись для повтора

4. Отредактированные

5. Тренировки ранее бывшие закрепленными

6. Новые

В каждой из групп сортировка по дате.

Для каждой записи в истории доступно меню с набором соответствующих функций:

- повторить;

- закрепить/открепить;

- просмотреть;

- редактировать;

- отправить;

- удалить.

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

Разработка приложение "Дневник тренировок" Приложение на Android, Android разработка, Тренировка, Тренажерный зал, Длиннопост

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

Основная информация, отображаемая о текущей тренировке это:

1. Название упражнения.

2. Тип упражнения.

3. Общее кол-во подходов в упражнении (не повторений)

4. Общий вес.

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

Разработка приложение "Дневник тренировок" Приложение на Android, Android разработка, Тренировка, Тренажерный зал, Длиннопост

Подходы в упражнении можно как отредактировать

Так и удалить.

Разработка приложение "Дневник тренировок" Приложение на Android, Android разработка, Тренировка, Тренажерный зал, Длиннопост

Библиотека ColorDialog.

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

Разработка приложение "Дневник тренировок" Приложение на Android, Android разработка, Тренировка, Тренажерный зал, Длиннопост

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

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

Разработка приложение "Дневник тренировок" Приложение на Android, Android разработка, Тренировка, Тренажерный зал, Длиннопост

По нажатию на маленькую иконку группы мышц открывается список упражнений с описанием (в разработке) и картинками. Библиотека ExpandingCollection. Хоть и выглядит красиво, но работает с лагами, что меня дико бесит.

Просмотр тренировки решил шутки ради сделать в стиле Fallout.

Разработка приложение "Дневник тренировок" Приложение на Android, Android разработка, Тренировка, Тренажерный зал, Длиннопост

Библиотеки Gradientlayout и Markwon.

БД для истории - SQLite. Создал 3 основных таблицы: подходы, упражнений, тренировки. А так же справочная таблица статусов тренировок (полученная, закрепленная,..)

Разработка приложение "Дневник тренировок" Приложение на Android, Android разработка, Тренировка, Тренажерный зал, Длиннопост

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

БД каталога упражнений содержит в себе 7 таблц. 2 из них - то таблицы упражнений и мышечных группы, 1 таблица ссылок в картинкам в папке assets. Таблица типов упражнений:

- базовое;

- изолирующее;

- формирующее.

Разработка приложение "Дневник тренировок" Приложение на Android, Android разработка, Тренировка, Тренажерный зал, Длиннопост

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

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

Структура проекта, кому интересно:

Разработка приложение "Дневник тренировок" Приложение на Android, Android разработка, Тренировка, Тренажерный зал, Длиннопост

В приложении две активности. Одна для обработки Intent фильтра и получения тренировки (пока что никаких проверок, что именно я получил, не делается. Все сразу пытаюсь преобразовать в строковую переменную и заполнить из нее тренировку). Вторая - основная.

Тренировка, каталог, просмотр тренировки - все это фрагменты отображаемые в контейнере layout основной активности. В activity_main.xml создано 3 FrameLayout. Правила отображения для них свои:

- для текущей тренировки отображаются все 3;

- для редактируемой тренировки верхняя рамка с таймером скрывается (да, он, пока что, продолжает тикать, если пользователь добавит подход)

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


Алгоритм по которому становится известно, кто сейчас в центральном контейнере работает с помощью EventBus. Основная активность замещает фрагмент, в методе onCreateView() фрагмента выдаю уведомление FragmentIsShowed, а в основной активности отрабатываю его. Выглядит примерно так:

Разработка приложение "Дневник тренировок" Приложение на Android, Android разработка, Тренировка, Тренажерный зал, Длиннопост

Из не реализованных функций - "будильник" при окончании времени отдыха. Добавление упражнений в каталог. Сайт с просмотром прогресса (планирую отображать прогресс двумя графиками по всем упражнениям в силовых показателях и выносливости, так как многие спортсмены любят утверждать, дескать 12 раз это на силу, а 13 это уже на выносливость... Что-то ведь надо отображать :) ). Ну и так - по мелочи.


Ну вот, собственно и все.

Зачем этот пост? Просто так. Хотел поделиться своими достижениями (а для меня это достижения, ибо программирование, как я писал выше - для меня новый мир). Программка тут.

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

Вечерние путь назад или как сделать машину времени за вечер)

Вечерние путь назад или как сделать машину времени за вечер) Android, СССР, Гимн

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

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

https://play.google.com/store/apps/details?id=com.Lupin.CCCP... ==> ссылка в плей кому интересно)

Вся стилистика приложения однотипна и в духе советского союза. Союз нерушимых республик свободных...

Вечерние путь назад или как сделать машину времени за вечер) Android, СССР, Гимн

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

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

2. Загрузка и оформление страницы в плее. Запомните -  главное привлечь пользователя на саму страницу, что бы это сделать надо красивую иконку в поиске и правильно оформленное краткое описание

3. мотивированный трафик. Оным может являться трафик пользователей с таких ресурсов как 4pda и т.д. а так же трафик с объявлений AdMob и других рекламных сетей другими словами нужно заинтересовать пользователя скачивать твое приложение)

Вечерние путь назад или как сделать машину времени за вечер) Android, СССР, Гимн

Ну вот вроде бы и все, критику в студию)

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

Google сделали Kotlin языком первого класса для Android

В четверг на ежегодной конференции Google I/O разработчики сообщили о том, что созданный российскими программистами язык Kotlin станет «языком первого класса» для написания приложений для Android. Как пишет TechCrunch, в Google также рассказали об организации совместно с создателями языка — компанией JetBrains — специального фонда для развития Kotlin.


В Google подчеркнули, что Kotlin будет дополнительным языком и ни в коем случае не заменит Java и C++ (на сегодняшний день языком первого класса для Android является именно Java). Планируется, что инструменты Kotlin, основанные на JetBrains IDE, будут по стандарту включены в Android Studio 3.0 — официальный инструмент разработки для ОС Android.


«Поскольку Kotlin полностью поддерживается Java, вы и раньше могли писать приложения на нем, однако теперь это будет поддержано авторитетом и репутацией Google», — отмечают журналисты.


http://m.cnews.ru/news/top/2017-05-18_google_perevodit_andro...

3

Моя история разработки одного Android приложения. Часть 4.

Часть 1, Часть 2, Часть 3.

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

Суть её заключалась в скачивании списка id пользователей сообщества и сравнение этого списка со скаченным ранее. И тут я столкнулся с ещё одной интересной особенностью ос Android, она под каждое приложение создает изолированную виртуальную машину, которой выделяет определенный размер оперативной памяти, причем этот размер для всех приложений на одном устройстве одинаковый и задается производителем. Например, сейчас для обработки сообщества с 1 000 000 подписчиков мой алгоритм требует чуть более 100мб памяти. Казалось бы, устройству с оперативкой в 1 гигабайт эта задача по карману, но не тут то было, не смотря на то, что у устройства 1024 мб оперативной памяти каждому приложению оно выделяет только 64мб, а если приложение попробует использовать 65-ый мегабайт, то сразу же вылетит.

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

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

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

Мотивация меня покинула, да ещё и заболел, и решил отложить это неблагодарное дело.

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

Моя история разработки одного Android приложения. Часть 3.

Часть 1.

Часть 2.

Нашел библиотеку, неделя мучений и вот результат:

Моя история разработки одного Android приложения. Часть 3. Разработка, Android, Google Play, История, Истории из жизни

Тут я понял, что с дизайном у меня бооольшие проблемы)

Ещё две недели потратил на оформление, нужно было сделать меню. Решено было использовать выплывающее слева меню (как в самом Google Play)

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

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

Моя история разработки одного Android приложения. Часть 3. Разработка, Android, Google Play, История, Истории из жизни

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

Радостный зарегистрировал в гугле аккаунт разработчика, отдал за это кровные 25$, залил приложение в бета-тест и стал искать тестировщиков.

Для этих целей создал группу в соц. сети и начал приглашать туда людей.

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

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

Решено было идти дальше, наращивать функционал в надежде, что люди сами будут находить это приложение.

Показать полностью 1
Отличная работа, все прочитано!