1. Typhoon без Info.plist

    Интеграция с Info.plist — одна из приятных мелочей, которая делает Typhoon более дружелюбным к конечному пользователю. Что может быть проще — написал новую TyphoonAssembly, добавил в plist-файл — и все, остальное сработает за тебя самостоятельно. До тех пор, пока сам не заинтересуешься деталями реализации, под капот лезть не придется. Такой подход хорош для небольших приложений, в которых используется пара-тройка assembly — одна для контроллеров, другая — для сервисных объектов, третья — для всяких полезных мелочей. Но когда приложение начинает расти, либо в чью-то светлую голову приходит желание внедрять VIPER — начинаются проблемы.
    Подробнее

  1. Typhoon и Storyboard’ы

    С версии 3.3.4 в Typhoon появилась поддержка работы с несколькими storyboard’ами из коробки. Что, как и зачем — под катом.
    Подробнее

  1. Зачем ViewController’ам пустые интерфейсы?

    Заметка написана по мотивам пары крупномасштабных холиваров, имевших место в последние несколько недель в Rambler&Co. Именно из-за такого происхождения и был выбран несколько шизофренический стиль повествования.
    Подробнее

  1. Полгода вне блога

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

  1. Parse Revealer v.0.2

    Сегодня выпустил новую версию Parse Revealer — утилиты для пентестинга приложений, использующих Parse. Из основных новых фич — просмотр структуры классов и экспорт всех данных в txt.
    Подробнее

  1. Хорошие ресурсы для objc-девелоперов

    На днях я наконец-то собрался с силами и сел приводить свои RSS-подписки в порядок — что в итоге вылилось в желание написать пост с подборкой годных ссылок для objc-разработчиков (да, практически ничего про swift тут не найти). Ну и, конечно, в посте будет много капитанства в виде всем известных ресурсов.
    Под катом — RSS-ленты, подписки и твиттер-аккаунты, из которых можно почерпнуть много интересного и полезного.
    Подробнее

  1. pod ‘UIViewController+Routing’, ‘~> 0.1.0’

    Наконец-то выделил несколько часов и оформил UIViewController+Routing в виде пода. Под катом — немного дополнительной информации.
    Подробнее

  1. Стройные роутеры

    В конце прошлого года я выкладывал презентацию и проект на GitHub, в которых рассказывал о роутерах — объектах, позволяющих вынести весь код, связанный с навигацией, из ViewController‘ов. Теперь я готов дополнить изложенную идею более стройной реализацией.
    Подробнее

  1. Безопасность Parse в iOS приложении

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

  1. Parse Revealer v.0.1

    Parse Revealer — небольшая утилита для Mac OS X, упрощающая некоторые рутинные действия при пентестинге приложений, использующих сервис Parse.
    Подробнее

  1. Storyboard Segregation

    Все (я немного оптимист) любят красивую и стройную архитектуру, при которой весь функционал приложения разбит по модулям со строго определенными контрактами. Все бы хорошо, если бы не UI — в большинстве случаев он представлен одной огромной Main.storyboard и пачкой xib‘ов для ячеек таблиц.
    В рамках очередного R&D в Rambler&Co мною были рассмотрены различные решения по оптимизации работы со Storyboard и навигацией в iOS приложениях.
    Подробнее

  1. Обходим защиту iOS клиента Dropbox

    Что в первую очередь сделает iOS разработчик, если перед ним встанет задача спрятать пользовательские данные от любопытных глаз? Конечно же, встроит экран парольной защиты. Особо хитрый разработчик даже не будет хранить установленный пользователем пароль в NSUserDefaults, а аккуратно спрячет его в связку ключей — в этом случае приложение в глазах как его, так и заказчика, сразу же перемещается в разряд «сверхзащищенных».
    Мы не будем углубляться в описание опасностей хранения ключа в открытом доступе — ведь есть гораздо более интересный способ обхода такой защиты.
    Подробнее

  1. Как мы QR-коды распознавали

    Совсем недавно я завершил работу над приложением Рамлер-Касса: Терминал. Основная его задача — распознавание билетов посетителей кинотеатра. Изначально для этой цели использовались нативные средства, предоставляемые iOS (AVFoundation.framework). Проблемы проявились при попытке сканирования QR-кода из Passbook — приложение распознавало его только при минимальном уровне яркости экрана. Здесь-то и началось самое веселое.
    Подробнее

  1. ЦСКА — на главной Featured в App Store

    На этой неделе Apple включили разработанное мной приложение ПФК ЦСКА в еженедельную подборку лучшего в App Store.
    Подробнее

  1. Нескучные UITableViews

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

  1. Phrasal Verbs обновился до версии 2.2

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

  1. Составление отчета о тестировании iOS-приложения

    Учитывая достаточно большое количество одновременно разрабатываемых в high!glossy digital media solutions проектов, новые сборки появляются несколько раз в неделю, и, конечно же, все их необходимо тщательно тестировать. Процесс этот у нас построен достаточно прямолинейно и очевидно — на все устройства устанавливается текущая сборка, тестировщик тщательно ее исследует и готовит список обнаруженных багов, который затем превращается в Issues на GitHub либо задачи в TeamLab. Самым проблемным в этой цепочке был процесс превращения списка найденных ошибок в задачи для разработчика — тестировщик по большей части готовил отчет в свободной форме, в результате чего периодически терялась последовательность воспроизведения багов, указание рассматриваемой платформы или другие важные параметры. В качестве решения этой проблемы на скорую руку был подготовлен шаблон отчета о тестировании сборки приложения.
    Подробнее

  1. Защита баз данных в iOS

    Уязвимость информации, хранимой в базах данных, является одной из самых распространенных проблем безопасности iOS приложений. Многие программы предлагают пользователю использовать пароль для доступа к данным — но в большинстве случаев это никаким образом не влияет на то, в каком виде хранится сама информация. Таким образом, к данным таких приложений, как менеджеры паролей, блокноты, органайзеры, трекеры финансов, может получить доступ практически любой посторонний, в руках у которого окажется ваше устройство.
    Подробнее

  1. My Plastic — хранилище кредитных карт

    Теперь данные ваших кредитных карт всегда будут в безопасности — в App Store вышло приложение My Plastic!
    Подробнее

  1. Распознавание текста в iOS 7.1

    Одной из новых возможностей, которые iOS 7 предоставила разработчикам, стала реализация функции text-to-speech, автоматической озвучки заданного текста. Недавнее обновление системы до версии 7.1 принесло с собой поддержку большого количества новых языков, среди которых оказался и русский.

    Подробнее

  1. Горизонтальная прокрутка фотографий

    На днях в App Store появится обновленная версия приложения ПФК ЦСКА, полностью адаптированная под iOS 7. Помимо этого приложение подверглось полному редизайну и получило кучу нового функционала. Впрочем, суть поста не в рекламе. Одним из основных элементов этой версии является новостная лента — по сути, агрегатор контента разного типа, в том числе фотогалерей. Как раз о том, как оформить их отображение, и пойдет речь.

    Подробнее

  1. Балда: Помощник, v.1.6

    Сегодня в App Store появилось обновление для «Балда: Помощник». На данный момент, кстати, приложение было загружено около 23.000 раз.

    Подробнее

  1. Чак Норрис на иврите

    Пару дней назад в App Store вышло приложение, разработкой части функционала которого я занимался на oDesk — сборник шуток о Чаке Норрисе. Ценности для русскоязычных пользователей не представляет ровным счетом никакой — доступно только на иврите.
    Подробнее

  1. Как написать свой компонент для iOS [Перевод]

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

  1. Простая анимация нижнего меню

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

  1. Запрет бэкапа данных — выполняем пункт 2.23 App Store Review Guidelines

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

  1. Графики на iOS — [ios-Linechart]

    ios-Linechart — очень удобная библиотека для построения небольших графиков. Применять следует в тех случаях, когда использование CorePlot неоправданно.
    Подробнее

  1. Как дублировать проект в Xcode

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

  2. Динамический поиск строки в iOS

    Недавно появилась задача — встроить в приложение динамический поиск информации, то есть выдача должна генерироваться параллельно вводу пользователем символов. Вся информация хранится в SQLite базе данных. Все бы ничего, но в каждом слове выдачи искомые символы должны подсвечиваться.
    Было принято волевое решение не использовать внешние библиотеки, а попробовать обойтись своими силами.
    Подробнее