[Android] Симуляция низкой скорости соединения

Во время тестирования бывает необходимым проверить поведение приложения при нестабильном Интернет-соединении, или низких скоростях.

Для того, чтобы симулировать такое на реальном устройстве Android (метод подойдет и для iOS), то можно воспользоваться возможностями прокси-сервером Charles, и его функцией «Throttle Settings…» (в меню Proxy). В окне настроек уже есть заготовленные пресеты.

Удаление Gmail-писем из приложения Apple Mail для iOS

При использовании приложения Apple Mail для iOS в связке с Google-аккаунтом может возникнуть ситуация, что удалить письма нельзя, можно только заархивировать.

Проблема решается следующим образом:

  1. Settings -> Password & Accounts
  2. Выбрать из списка Gmail-аккаунт, а затем еще раз нажать уже на адрес вашей почты
  3. В окне настроек аккаунта нажать Andvanced
  4. В разделе «Move discarded massages to» выбрать «Deleted Mailbox»

Теперь вместо архивирования будет возможность сразу же удалять письма.

Обновление прошивки на Xiaomi MiPad 4

Есть в наличии планшет Xiaomi MiPad 4, с неофициальной прошивкой v10.1.1.0.ODJCNFI и разблокированным загрузчиком.

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

Инструкция по обновлению:

    1. Скачать последнюю версию прошивки с официального сайта (искать по фразе 4/plus). Сейчас это V10.3.2.0.ODJCNXM от 15 мая.
    2. Т.к. прошивка идет без предустановленных Google Play Services, то также скачать самодельный инсталлятор
    3. Установить на компьютер ADB (идет в составе Android SDK)
    4. Включить планшет в режиме Fastboot (для этого удерживать клавишу питания и клавишу «Уменьшение громкости»)
    5. Выполнить скрипт flash_all.sh из архива скаченной прошивки (все данные на устройстве будут удалены). Если все прошло удачно, то после обновления планшет включится
    6. Установить Google Play Services

[iOS] Не передается локаль через Promoted In-App Purchases

Недавно в приложение Кино1ТВ для iOS мы добавили поддержку фичи «Promoted In-App Purchases», анонс которой состоялся в прошлом году на WWDC 2017.

Вкратце, теперь на странице приложения в App Store можно рекламировать до 20 покупок, используемых в приложении. В нашем случае, мы добавили промо подписки, которая дает возможность смотреть фильмы и сериалы из соответствующего раздела.

Для тестирования»Promoted In-App Purchases» достаточно сформировать специальную ссылку, при нажатии на которую приложение будет перехватывать ее и выполнять необходимые действия. В нашем случае ссылка выглядит так:

itms-services://?action=purchaseIntent&bundleId=ru.1tv.kino&productIdentifier=ru.1tv.kino.subs_kino

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

Распознавание QR-кодов в iOS 11

В iOS 11 появилась очень полезная функция — возможность распознать QR-кодов при использовании приложения «Камера». Для этого достаточно навести фокус на QR-код, после чего на экране появится уведомление «Открыть в Safari» с указанием ссылки, на которую ведет QR-код.

На данный момент в iOS 11 через «Камеру» можно распознавать лишь QR-коды, в то время как другие виды многомерных кодов (Aztec code, Micro QR code, Data Matrix) — нет. Также нельзя просканировать линейные штрих-коды (EAN, UPC и пр.).

Многие заговорили, что теперь сторонние приложения по распознаванию штрихкодов можно хоронить, и отчасти это верно. Зачем ставить лишнюю программу, которая копирует те же функции, которые уже есть «из коробки»? С другой стороны, тем, кому нужен более широкий функционал (в том числе считывание других видов кодов), все равно будут использовать сторонние решения (к примеру, как Qrafter).

Заедание кнопки включения на LG Nexus 5

Неделю назад мой LG Nexus 5 стал самопроизвольно выключаться после того, как его разблокировать. Далее происходила попытка включиться, но через несколько секунд телефон мог опять выключиться и так по кругу.

Оказывается, для Nexus 5 это одна из распространенных проблем, а виной тому проблемы с кнопкой включения, которую для решения проблемы необходимо заменить. Т.к. кнопка включения припаяна к материнской плате, но сначала ее необходимо удалить, а затем припаять новую. Сертифицированные центры по ремонту такими делами не занимаются – предложили полностью заменить материнскую плату (цена ~10 тыс. руб.), что, естественно, меня совершенно не устроило. Похоже, придется обращаться к более простым сервисным центрам.

[Кино1ТВ] Обновление приложения для Android

Основная концепция интерфейса приложения Кино1ТВ не менялась с самого первого выпуска – в горизонтальном меню располагались три вкладки (Премьеры, Подписка и Амедиатека), в фильмы были помещены в вертикально прокручивающиеся списки. Такое решение было разумным, когда контента на сервисе было немного, но с увеличением числа фильмов ориентироваться в списках становилось все сложнее.

Новый интерфейс мы решили сделать таким же, как используется в Google Play Movies. В отличии от проектирования интерфейсов под Android TV, где используется фреймворк Leanback, здесь Google не снабдил разработчиков готовыми шаблонами, поэтому интерфейс пришлось строить самостоятельно – где-то помогли библиотеки от Google, где-то сторонние.

В конце апреля новая версия приложения появилась в Google Play.

Мы также постепенно отказываемся от горизонтальных картинок фильмов, отдавая предпочтения привычным постерам. Приложения для Android и Android TV уже используют постеры, а чуть позже мы обновим и остальные клиенты.

[Кино1ТВ] Обновление приложения для Android

Оплата через Touch ID

Мы долго ломали голову, почему при вызове окна оплаты в приложении не отображается окно Touch ID для авторизации, хотя с системных настройках опция подтверждения через Touch ID включена. Да и в других приложениях при совершении оплаты Touch ID появлялся, а у нас нет.

Оказалось, что мы смотрели сборку, установленную напрямую через Xcode, а в этом случае окно Touch ID не появляется (вместо него – стандартное окно для ввода пароля вручную). При этом на сайте Apple для разработчиков мы так и не смогли найти информацию об этом. Получается вот такое незадокументированное поведение.

[Android] Перезагрузка устройства через ADB

Перезагрузить устройство через adb можно с помощью следующей команды:

adb reboot

Можно еще так:

adb shell am broadcast -a android.intent.action.BOOT_COMPLETED

Nexus 5 без Android N (Nougat)

К сожалению, телефон Nexus 5 не получит в качестве обновления Android Nougat, которая должна выйти ориентировочно уже в сентябре. Google, как и Apple, поддерживает свои устройства лишь несколько лет. Но в отличии от Apple, у Google «срок жизни» устройств меньше и составляет всего два года:

  • Nexus 5X (2015) – до сентября 2017
  • Nexus 6P (2015) – до сентября 2017
  • Nexus 6 (2014) – до октября 2016
  • Nexus 9 (2014) – до октября 2016
  • Nexus 5 (2013) – до октября 2015
  • Nexus 7 (2013) – до июля 2015
  • Nexus 10 (2012) – до ноября 2014

К слову, iOS 10 будет доступна начиная с iPhone 5, который вышел в 2012 году. Прошло четыре года, а Apple все еще продолжает поддерживать данный телефон. Огорчает, что Google не идет по такому же пути.

Ждем анонса новых Nexus’ов, чтобы можно было обновить свой телефон. Покупать 5x / 6P бессмысленно, потому что осенью следующего года они также перестанут получать обновления.