Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Живые обои для Android. Как создать. Тонкости. Продвижение

12,168 views

Published on

Презентация с доклана на #uwdc 2014 про то как мы делаем Живые обои и что для этого нужно.

Published in: Software
  • Be the first to comment

Живые обои для Android. Как создать. Тонкости. Продвижение

  1. 1. Живые обои для Android. Тонкости. Продвижение Михайлов Сергей Kolesov & Mikhaylov
  2. 2. О чем доклад: • Что такое Живые обои, и чем они отличаются от обычного приложения для Android; • Какие существуют тонкости при создании Живых обоев; • На что влияет фрагментацияAndroid, с т.з. разработки Живых обоев; • Как можно продвигать Живые обои; • На что обращают внимание пользователи Живых обоев; • Можно ли зарабатывать на Живых обоях.
  3. 3. Что такое Живые обои, и чем они отличаются от обычного приложения для Android
  4. 4. Что такое Живые обои, и чем они отличаются от обычного приложения для Android Для создания живых обоев нужно: • Идея контента для обоев; • Определиться с технологий вывода изображений – Canvas – OpenGL ES 1.0, 2.0, 3.х • Будут или не будут в ваших живых обоях настройки (они не обязательны); • Будут или не будут обои использовать информацию о смене экрановлаунчера; • Миниатюра для отображения в списке всех живых обоев (она задается дополнительно в XML файле).
  5. 5. Что такое Живые обои, и чем они отличаются от обычного приложения для Android Живые обои – это Service, а не Activity. package android.service.wallpaper; public abstract classWallpaperService extends Service WallpaperService отвечает за отображение живых обоев за приложениями, которые находятся перед ним на экране. Назначение этого объекта - генерировать экземпляры классаWallpaperService.Engine при необходимости. WallpaperService.Engine обеспечивает доступ к поверхности, на которой должно происходить рисование живых обоев.
  6. 6. Что такое Живые обои, и чем они отличаются от обычного приложения для Android Минимальный код вашего класса для работы живых обоев: public class PlasticineFarm extendsWallpaperService { @Override public Engine onCreateEngine() { return newWallpaperEngine(); } classWallpaperEngine extends Engine { //Инициализация потока прорисовкиCanvas или OpenGL на поверхности, полученной через метод getSurfaceHolder(); } …. }
  7. 7. Что такое Живые обои, и чем они отличаются от обычного приложения для Android Для работы живых обоев в манифесте нужно прописать: ……… <uses-feature android:name="android.software.live_wallpaper" /> <application android:label="@string/app_label”> <service android:label="@string/app_label" android:name="PlasticineFarm" android:permission="android.permission.BIND_WALLPAPER"> <intent-filter> <action android:name="android.service.wallpaper.WallpaperService" /> </intent-filter> <meta-data android:name="android.service.wallpaper" android:resource="@xml/wallpaperapp" /> </service> …..
  8. 8. Какие существуют тонкости при создании Живых обоев • Прорисовка живых обоев – Скорость загрузки при возвращении на Home screen; – Видимость живых обоев; – Определение, когда живые обои находятся в preview режиме. • Интерактивность – Прикосновения к экрану, использование датчиков; – Определение смещения по экранам лаунчера. • Настройки • Отображение живых обоев лаунчером и Google Play – Особенности отображения в лаунчере; – Особенности отображения в Google Play.
  9. 9. Какие существуют тонкости при создании Живых обоев Прорисовка живых обоев – Критична скорость загрузки ресурсов; – В Preview режиме нет смещения по экранам, сцену нужно центровать без учета смещения по экранам лаунчера. – Видимость живых обоев. onSurfaceCreated(SurfaceHolder holder) boolean isPreview() boolean isVisible() onVisibilityChanged(boolean visible)
  10. 10. Какие существуют тонкости при создании Живых обоев • Прорисовка живых обоев – Критична скорость загрузки ресурсов; – Учитывать новые размеры поверхности. onSurfaceCreated(SurfaceHolder holder) onSurfaceChanged(SurfaceHolder holder, int format, int width, int height)
  11. 11. Какие существуют тонкости при создании Живых обоев • Интерактивность – Прикосновения к экрану, использование датчиков; – Определение смещения по экранам лаунчера. onOffsetsChanged(float xOffset, float yOffset, float xOffsetStep, float yOffsetStep, int xPixelOffset, int yPixelOffset)
  12. 12. Какие существуют тонкости при создании Живых обоев Важные методыWallpaperService.Engine для работы живых обоев • public void onVisibilityChanged – Необходимо отключать прорисовку сцены, когда живые обои не видно; • public void onSurfaceChanged – Необходимо обрабатывать изменения поверхности (поворот телефона); • public void onOffsetsChanged – Если нужно реагировать на смену экранов в лаунчере; • public boolean isVisible • public boolean isPreview – Нужно учитывать поведение живых обоев в Превью режиме, так как там нет экранов лаунчера, и метод onOffsetsChanged не работает; • public void onTouchEvent – Если нужно обрабатывать и создавать какой-то интерактив.
  13. 13. Какие существуют тонкости при создании Живых обоев • Настройки – Существенный компонент Живых обоев, который влияет на мнение пользователей;
  14. 14. Какие существуют тонкости при создании Живых обоев • Как добавить настройки в живые обои? – Нужно добавить класс, отвечающий за работу с настройками; public class PlasticineFarmSettings extends PreferenceActivity – Прописать его в манифесте; <activity android:label="@string/Wallpaper_settings" android:name="PlasticineFarmSettings" android:theme="@style/AppBaseTheme" android:exported="true"> </activity> – В XML файле, указанном в манифесте для сервиса («xml/wallpaperapp.xml») нужно указать созданный класс: <wallpaper xmlns:android="http://schemas.android.com/apk/res/android" android:settingsActivity="com.mikhaylov.kolesov.plasticinefarm.free.PlasticineFarmSettings" android:description="@string/app_descr" android:thumbnail="@drawable/thumbnail" />
  15. 15. Какие существуют тонкости при создании Живых обоев • Отображение живых обоев лаунчером и Google Play – Особенности отображения в Google Play. • Плюсом кнопки «Открыть» является возможность вызова «активности», которая помогает установить обои или показывает рекламу. Уводит внимание от другого варианта - кнопки «Удалить».
  16. 16. Какие существуют тонкости при создании Живых обоев • Отображение живых обоев лаунчером и Google Play – Особенности отображения в Google Play. – Особенности отображения в лаунчере; • Три варианта отображения – 1)Только кнопка «Удалить» и выбор обоев из списка живых обоев; – 2) Кнопка «Открыть» и «Удалить». При установке появляется ярлык на «активность» обоев на одном их экранов лаунчера; – 3) Кнопка «Открыть» и «Удалить». После установки появляется иконка «активности» живых обоев в списке всех приложений
  17. 17. Какие существуют тонкости при создании Живых обоев • Стандартный вариант описания в манифесте. Появляется иконка в общем списке приложений и кнопка «Открыть» вGoogle Play: <activity android:name="LWPLauncherActivity" android:label="@string/promo_button1_tytle_PFarm_free" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> • Вариант с ярлыком на экране. Появляется иконка на экране лаунчера и кнопка «Открыть» в Google Play: <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.INFO" /> </intent-filter>
  18. 18. На что влияет фрагментация Android, с т.з. разработки Живых обоев • Лаунчеры и сборки Android – SamsungTouchWiz – Nokia X launcher. – и т.д. • Факторы существенные для всехAndroid приложений – Графика, Экраны, Производительность и т.п.
  19. 19. На что влияет фрагментация Android, с т.з. разработки Живых обоев • Лаунчеры и сборки Android – Существуют лаунчеры, которые вообще не работают с живыми обоями (Nokia X); – Существуют лаунчеры, которые не работают со смещениями экранов (SamsungTouchWiz); – Расположение кнопок в лаунчере (мертвые зоны); – Лаунчеры и сборкиAndroid OS могут предоставлять пользователям совершенно непредсказуемую навигацию до списка живых обоев;
  20. 20. На что влияет фрагментация Android, с т.з. разработки Живых обоев • Лаунчеры и сборки Android Nokia X Launcher KitKat 4.4 Launcher (Google Now Launcher) Android 4.x Launcher
  21. 21. На что влияет фрагментация Android, с т.з. разработки Живых обоев • Факторы существенные для всехAndroid приложений: Графика, Экраны, Производительность и т.п. По опыту нашей команды: – Для живых обоев лучше использовать OpenGL ES 2.0 и выше. – Лучше использовать сжатие текстур. Как минимум ETC1; – Не использовать Canvas.
  22. 22. Как можно продвигать Живые обои • Виральные механизмы; – Рассказать друзьям и т.п. • Сообщества; – Публикуем в Google+ и других сообществах информацию о новых живых обоях; • Фанаты; – Мы создали для наших фанатов приложение KM Fan zone и через push-уведомления рассказываем о новых живых обоях; – Странички в соц. сетях. – Часто пользователи, если им нравятся живые обои, ради поддержки покупают все живые обои той-же тематики. У нас так было с пластилиновыми живыми обоям. • Добавление виджетов в пакет с живыми обоями, позволяет Живым обоям ранжироваться дополнительно в категории «Виджеты». Какие механизмы продвижения пробовала наша команда:
  23. 23. Как можно продвигать Живые обои • Обзоры и тематические сайты, посвящённые живым обоям или публикующие их; – Год назад обзор на сайте Androidpolice.com поднял наши продажи и загрузки с 0 до 100 долларов в день; – Регулярно публикуем информацию о новых работах в двухнедельный обзор новых приложений на Android Police; – Размещаем информацию на livewallpapers.org; – Отрицательный опыт с обзорами на droider.ru. (На наш взгляд аудитория не сильно расположена к использованию живых обоев. Платные обзоры пишут иногда хуже, чем некоторые сайты, которые делают обзоры бесплатно.); – Положительный опыт с http://sonyselect.sonymobile.jp/; Какие механизмы продвижения пробовала наша команда:
  24. 24. Как можно продвигать Живые обои • Топ новых Живых обоев и приложений – В России, для попадания вТОП-10 новых Живых обоев достаточно около 30 покупок + желательны отзывы с оценками (в первую неделю). – Наш личный рекорд 6 место вТОП Новых Живых Обоев на рынке США, 3-место в ТОП Новых Живых Обоев на рынке РФ. Какие механизмы продвижения пробовала наша команда:
  25. 25. Как можно продвигать Живые обои Какие механизмы продвижения пробовала наша команда:
  26. 26. Как можно продвигать Живые обои Какие механизмы продвижения пробовала наша команда: Локализация В том плане, что поисковая оптимизация по грамотно переведенному описанию лучше помогает ранжировать приложение, чем автоматический перевод Google Play. • Живые обои в этом плане простое приложение, и если что и нужно переводить – это описание Google Play. • В настройках мы нашли простой инструмент – картинки. Они без преодоления языкового барьера дают понять, что делает настройка.
  27. 27. На что обращают внимание пользователи Живых обоев • Наличие настроек и опций – Привязка чего-либо к реальному времени; – Привязка к данным о погоде; – Реагирование на смещение по экранам или повороты устройства; – Наличие большего количества настроек по сравнению с платной версией. • Качество работы живых обоев – Скорость загрузки при возвращении на Home screen или поворотах экрана.
  28. 28. Можно ли зарабатывать на Живых обоях • Способы монетизации – В бесплатной версии: • Баннеры; • Встроенная покупка расширений; – В платной версии: • Стоимость обоев; • Встроенная покупка расширений.
  29. 29. Можно ли зарабатывать на Живых обоях • На своем хобби я заработал 7000$+ (gross) Более 350 000 загрузок обоев; • Koi LiveWallpaper заработали 200 000$+ (gross); • Paperland PRO заработал 200 000$+ (gross); • По простоте исполнения, с т.з. привлечения художника, Digital Flux LiveWallpaper заработали 10 000$+ (gross)
  30. 30. Можно ли зарабатывать на Живых обоях 200 000$+ 200 000$+ 10 000$+
  31. 31. Спасибо за внимание! E-mail: mikhaylov@kolesov-mikhaylov.com sergey@mikhaylov.com Skype: bzSega Website: • http://kolesov-mikhaylov.com • http://kolesov-mikhaylov.ru • http//mikhaylov.com

×