Конференция Google i\o 2013 подошла к концу.
В этом году получилось несколько противоречиво – показали много такого, чего никто не ожидал, а то, чего ожидали, не показали.
Ну да ладно, об этом уже много написано, статья о другом.
Сегодня мы поговорим лишь об одном нововведении и проблемах, которые оно мне принесло — «Советы по оптимизации» в консоли Google Play.
Казалось бы – хорошая вещь – анализирует наше приложение и дает советы по оптимизации.
Например, для старых проектов показаны языки, на которые хорошо бы перевести приложение, так как из этих стран поступает большое количество загрузок.
Немного предыстории: У нас в компании есть один заказчик, для которого мы производим приложения.
По сути они все однотипны – отличаются только цветовой гаммой и данными.
Дизайн приложения был разработан давно и всем он понравился.
Приложения всегда работали и на телефонах, и на планшетах — интерфейс построен на основе фрагментов.
Единственное, не ввели панель действий - ну она там никогда не была нужна - меню использовало старый стиль.
Манифест содержал android:targetSdkVersion = «10» и на всех устройствах либо использовалась физическая кнопка меню, либо, если ее не было на устройстве, она появлялась в панели кнопок Android. Итак, о чем я — через пару дней после конференции заказчик попросил загрузить новое приложение, которое к этому моменту уже было разработано и протестировано.
Сказано - сделано.
Процесс публикации почти ничем не отличался от предыдущих — единственное, что мы сделали отдельные скриншоты для телефонов и планшетов, так как в интерфейсе они теперь были разделены.
Загрузил приложение, проверил, что оно появилось в Google Play на ТЕЛЕФОНЕ, и с чистой совестью пошёл домой.
Ничего не предвещало беды… На следующее утро, придя на работу, тестировщики сообщили, что приложение найдено только на телефоне, а на планшетах в маркете его не найти.
Я начал проверять, в чем дело.
В списках поддерживаемых устройств присутствовали все доступные планшеты.
И тут я увидел скриншот из начала статьи.
Ага, подумал я, быстро пересобрал и залил приложение с android:targetSdkVersion="11".
Ага, подумал Google, и в Google Play появилась вторая версия приложения, доступная для планшетов, но.
без кнопки меню! Я начал искать, что не так, потому что, кажется, я раньше читал, что если мы не используем панель действий, то должна быть кнопка, вот отрывок из статьи :
- Если вы установите для minSdkVersion или targetSdkVersion значение 11 или выше, система не добавит устаревшую кнопку переполнения.
- В противном случае система добавит устаревшую кнопку переполнения при работе на Android 3.0 или более поздней версии.
- Единственным исключением является то, что если вы установите для minSdkVersion значение 10 или ниже, установите для targetSdkVersion значение 11, 12 или 13 и не используете ActionBar, система добавит устаревшую кнопку переполнения при запуске вашего приложения на телефоне с Android 4.0 или выше.
Ну ничего не поделаешь, оставалось только сообщить заказчику о двух возможных вариантах решения проблемы:
- добавить панель действий
- Добавляем в интерфейс кнопку, при нажатии которой будет открываться меню.
Но потом просто нашли в приложении небольшой баг и решили его исправить и включить в сборку.
Откатил targetSdkVersion до 10 и выложил третью версию (снова появился совет по адаптации приложения под планшеты)… Каково же было мое изумление, когда через некоторое время мой планшет захотел обновиться! Обновил до третьей версии, где была кнопка меню! Ну я думаю это наверное просто небольшой баг в Google Play - обновился потому что на устройстве уже была версия.
Но проверив на "чистом" планшете я его тоже нашел и установил! Думаю, это связано с тем, что Google распространяет свою фильтрацию только на вновь созданное приложение, а если она уже была доступна для данного типа устройств (вторая собранная версия), то снимает ее ограничение.
Такой вывод можно сделать из того, что в старых приложениях отображается предупреждение о targetSdkVersion, а в поиске для планшетов оно присутствует - если бы закрыли эту возможность, было бы много возмущения со стороны разработчиков старых приложений.
Надеюсь, этот опыт будет полезен и сэкономит время разработчикам, столкнувшимся с этой проблемой.
И на самом деле это даже к лучшему — больше разработчиков начнут задумываться о приведении внешнего вида приложений к стилю.
Теги: #разработка Android #разработка Android
-
Принципы Шифрования
19 Oct, 24 -
Содалит: Попытка Оседлать Мечту
19 Oct, 24 -
Союз Программистов? Не Смеши Мои Тапочки
19 Oct, 24