Проверка знаний iOS

Если стоит задача отбора iOS разработчиков, то можно дополнительно воспользоваться интересным практическим заданием от Джефа ЛаМарша (Jeff LaMarche), которое он упоминает в своем посте.

Требуется скачать проект и сделать его рабочим, т.е. чтобы все открывалось, ничего не падало и не было утечек памяти. По его оценкам толковому человеку требуется от 30 до 90 минут на все.

Highlight.js & Objective C

Highlight.js (en/ru) обзавелся поддержкой Objective-C не без помощи вашего покорного слуги. Фидбек принимается с удовольствием. Пока фича доступна только в репозитории.

Mike Ash: Friday Q&A

Mike Ash выпустил свои пятничные вопросы/ответы в виде отдельной книги. Это серия статей о самых интересных/сложных/низкоуровневых моментах программирования на Objective-C. Что называется must read. iBooks / Amazon

AdHoc тестирование - легко и просто

Открылся замечательный бесплатный сервис TestFlight для легкой и быстрой работы с тестерами. Все проходит примерно так:

  1. Регистрируемся на сайте

  2. Создаем Team (их может быть много)

  3. Приглашаем людей в Team (или рекрутируем, об этом дальше)

  4. Каждый, получивший приглашение, должен зайти со своего устройства на сайт

  5. При первом заходе появится кнопочка “Register”, которая потребует установки дополнительных профилей

  6. После установки надо зайти на сайт с устройства снова и UDID устройства будет зарегистрирован (Иногда это не проходит с первого раза, у меня получилось с 3-го, у некоторых при использовании jailbreak’а не получается вообще)

  7. Разработчик может добавлять новые билды

  8. Собственно это все - следующий заход на сайт с тестеровского девайса будет отображать доступные для установки новые версии приложения(ий) с краткими комментариями, для установки достаточно будет перейти по ссылке

О каждой версии приходят почтовые уведомления. Тестеров можно группировать и распространять соответственно по группам. Кроме того, при публикации билда автоматически показываются все устройства из группы, которые не входят в provisioning profile.

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

Первые впечатления сугубо положительные, никаких нареканий нет. Посмотрим что будет дальше и сколько будет стоить сервис в дальнейшем.

[Перевод] Шифрование SQLite с помощью SQLCipher (iOS/Mac)

Оригинал на английском (disclaimer: перевод вольный)

SQLite является самым распространенным средством  для хранения данных на iPhone со стабильным API и хорошей документацией. Очевидно, что не хотелось бы мешать код приложения с собственно шифрованием, а делать это как можно прозрачней.

Такую функциональность предоставляют SQLCipher и OpenSSL. Оба проекта замечательны своим открытым исходным кодом, а также поддержкой Mac/Windows/Linux.

Итак, что нам потребуется…

Старые баги

Выкладывая расширение, столкнулся со странной проблемой: несмотря на то, что был прописан правильный Content-Type, Safari открывал файл в текстовом виде. Что конечно же было не комильфо.

В процессе отладки выяснилось, что это все происходило из-за того, что по счастливой случайности переход строки в заголовках попадал на 256-ой или 257-ой баг. И сервер в этом случае добавлял дополнительный заголовок “X-Pad: avoid browser bug”.

Оказалось, что сервер обходил баг Netscape с версии 2.0 и до 4.0b2. И сей фикс со стороны сервера существует с 21 апреля 1997 года.

Каким образом этот невинный заголовок портил жизнь Safari я не знаю, но сама ситуация позабавила - современный браузер некорректно работал с файлом из-за серверного фикса бага в другом браузере 13 лет назад :)

Победить не удалось, пришлось обходить стороной - менять размер заголовков переименовыванием файла :)

Английская версия истории бага