[Нам пишут] Passbook: Сложно ли его поддерживать?

Нам пишет пользователь twitter: @Virasio

Одной из новых «фишек» 6-ой версии iOS стало приложение Passbook. Многие «критики» занесли его в список «бесполезно», говоря, что в России оно не будет поддерживаться технически. Когда стало известно, что сервис «Рамблер-касса» будет поддерживать этот формат, то голоса «критиков» стали не такими уверенными. Теперь они говорят, что наши компании слишком тяжелы на подъём и просто не будут добавлять поддержку. Я задался вопросом: а так ли сложно добавить эту поддержку? Ответ на вопрос оказался в документе, находящемся в закрытом разделе сайта Apple для разработчиков. К сожалению, я не являюсь зарегистрированным разработчиком, но Интернет всегда готов прийти на помощь, и документация по интеграции с Passbook мне стала доступна.

iPhone_passbook_nfc

Какие типы карточек можно добавлять?

Этот вопрос выяснить проще всего запустив приложение Passbook на iPhone, и это:

  • посадочные талоны
  • билеты
  • карты магазинов
  • купоны

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

Как добавляются карточки?

Есть три способа добавить карточку в Passbook:

  1. через письмо на электронную почту, которое откроют в Mail.app
  2. через URL, который откроют в Safari
  3. из своего приложения через внутренние средства iOS

Последний способ понятен, там используются конкретные функции нового framework, добавленного в iOS 6, и для такой поддержки необходимо иметь своё приложение и дорабатывать его. Но как видим, наличие собственного приложения для добавления в Passbook карточек не обязательно, можно это делать через электронную почту или браузер. Причём не имеет значения мобильные версии или их старших братьев в OS X. Начиная с версии OS 10.8.2, встроенные Mail и Safari будут понимать MIME-тип application/vnd.apple.pkpass, и файл с таким типом будут добавлять в Passbook на iOS-устройства пользователя, используя iCloud. Конечно же, мобильные версии Mail и Safari в iOS умеют делать тоже самое, то есть достаточно пользователю iPhone прислать файл или ссылку на файл, чтобы добавить карточку. Главное, чтобы правильно сообщался MIME-тип файла web-сервером в случае с Safari и правильно был прописан в теле письма в случае с Mail.

Как создаются файлы карточек?

Выше я написал, что карточка по факту представляет из себя некоторый файл в специальном формате. На самом деле это подписанный ZIP-архив с определенной структурой файлов. Самое интересное для меня оказалось при изучении этой структуры — это возможность локализации карточек на нескольких языках. По-моему это очень удобно для разных музеев и других туристических мест, а также для посадочных талонов. Но сейчас мы говорим не об удобстве использования, а об удобстве создания карточки. Для этого нужно заготовить структуру файлов один раз и дальше генерировать только один файл с ключевой информацией, который является текстовым файлом в специальном формате — JSON. Любой современный разработчик знаком с этим форматом и знает средства для обработки и генерации данных в нём. Для заполнения некоторых полей этого файла необходимо быть зарегистрированным в Apple разработчиком под iOS (иметь свой уникальный идентификатор), и необходимо зарегистрировать свой тип карточек. А весь процесс генерации карточки любой адекватный разработчик реализует за день, если уже существует некая система генерации уникальных серийных номеров для этих карточек. Тут больше придётся поработать дизайнерам и в некоторых случаях переводчикам.

Кто может быстро добавить поддержку?

Конечно же те, у кого есть считывающие устройства, которые смогут считать такие данные с экрана iPhone.
Я не так давно ездил в отпуск, и в Москве добирался от вокзала до аэропорта на метро, а затем на аэроэкспрессе. Уже тогда я просто сохранил изображение, присланное мне в письме на телефон, и на выходе у турникета к считывателю подносил экран iPhone с этим изображением. Для аэроэкспресса это совсем не проблема теперь присылать письмо ещё и в формате, пригодном для Passbook. Конечно же, разработчик их системы запросит за такую функциональность дополнительные деньги, но они готовы платить за такое, т.к. их поездами пользуются многие высокопоставленные люди и иностранцы, у которых есть iPhone.
А вот у РЖД всё не так просто. Засунуть iPhone со штрих-кодом для распечатки билета в их устройство на вокзале не удалось, там очень неудобная щель, и пришлось вводить код руками. Хотя сейчас уже не требуется печатать билет, можно пройти электронную регистрацию, и им не нужна поддержка Passbook на уровне штрих-кодов. Но это не мешает им прислать билет в формате Passbook для того, чтобы клиент не забыл про свою поездку. Здесь больше надежда на расчёт РЖД на клиентов «Сапсанов» и надвигающуюся Олимпиаду.
Для купонных сервисов тут тоже есть где развернуться, благо они в большинстве своём паразитируют в Интернете, и все их купоны и так электронные.
Кроме того, как уже упоминалось, моду уже задают «Рамблер-Кассы». Надеюсь, многие быстро подхватят эту инициативу.

А где революция?

Перевод штрих-кодов с бумажек на экран телефона, конечно же, хорошо, но в чём же плюс использования Passbook? Ну во-первых, про грядущие события (даты указаны в билетах и посадочных талонах) он сможет напомнить, и их не нужно держать в голове. А во-вторых, на сервере можно организовать систему не просто для генерации карточек и для поддерживания их актуального состояния. У вас может отображаться накопленная сумма баллов, оставшееся количество посещений и т.п. Кроме того, сервер с помощью push-уведомлений может сообщать о переносе времени или места события/посадки, например, в случае со сменой терминала для посадки на самолёт. Но, конечно, это уже потребует больше усилий программистов, и больше денежных затрат на создания и поддержание инфраструктуры у владельцев бизнеса. Но что такое эти затраты по сравнению с той рекламой, которую организуют первые фирмы, реализовавшие поддержку этой системы? Вот вы знали раньше о «Рамблер-Кассе»? Я нет. А теперь мне они интересны. И я такой не один. Так что революция будет, фирмы будут соревноваться — кто сможет красивее преподнести клиенту свою услугу.