Делаем удаленное управление FrownRow с iPhone/iTouch на коленке
По следам публикации в ЖЖ коммьюнити ru_mac

Если посмотреть на аналогичные решения в AppStore, то легко заметить, что все они состоят из двух частей - приложения для iPhone/iTouch и сервера для Mac OS X. Мобильная часть взаимодействует с серверной, а та уже непосредственно "давит на кнопки" мака.
Поступим аналогично, за одним небольшим исключением: мы не будем писать приложение непосредственно для телефона/плейера и избежим проблем распространения его через AppStore или необходимости модифицировать прошивку. Вместо этого ограничимся web-приложением.
Итак, наше наколенное изделие будет представлять из себя маленький встроенный веб-сервер, который работает на порту 5000 и обслуживает единственную страницу index.html, принимая POST-запросы на menu.html, plus.html, minus.html, prev.html, play.html, next.html по странице на каждую из клавиш пультика AppleRemote и, как в качестве реакции эмулировать нажатие клавиш Command-Esc, стрелка вверх/вниз/влево/вправо и Enter. Соединяем части вместе.
В качестве основы сервера берем Cocoa HTTP Server из гуглокода, вырезаем из него https и прочую авторизацию. Добавляем собственное журналирование происходящего. Дизайн страниц для MobileSafari на начальном этапе нагло заимствуем у приложения Rowmote из AppStore. Пробуем.
Запускаем приложение, жмем на ON, сервер включается и в журале сообщает свой адрес для подключения, Нечто вроде
Started HTTP server on port 5000 Bonjour Service Published: domain(local.) type(_http._tcp.) name(pasha)
Берем iPhone/iTouch, открываем Safari и вводим нужный адрес, в моем случае это http://pasha.local.:5000/
В случае успеха видим страницу. Теперь жмем на большой плюс статус бара MobileSafari и выбираем опцию добавления на экран (не в закладки). На столе телефона появляется новая иконка приложения. Запускаем ее. Появляется эта же страница, но без адреса и без статуса. Пробуем управлять.
- Исходный проект в XCode вместе с скомпиленным приложением
- Приложение Rowmote в AppStore, $0.99 (iTunes link)
- Cocoa http server hosted on googlecode
Ой.

0 коммент.:
Отправить комментарий