• Установка неподписанных программ на устройства с iOS 9 без Jailbreak

    • Tutorial
    Дорого дня, уважаемые хабражители!

    Сегодня я расскажу вам о том, как можно установить неподписанное (или плохо подписанное) приложение на устройство с iOS 9. Да, без Jailbreak. Да, бесплатно. Нужен лишь компьютер с OS X и Apple ID. Как такое возможно? Читаем под катом.



    Осторожно! Много картинок!
    Читать дальше →
  • 10 малоизвестных возможностей Objective-C

    • Tutorial
    Приветствую уважаемых хабражителей!

    Objective-C — язык с богатым рантаймом, но в данной статье речь пойдёт не о содержимом хедера <objc/runtime.h>, а о некоторых возможностях самого языка, о которых многие разработчики и не догадываются. Да, на них натыкаешься, читая документацию, отмечаешь про себя «хм, интересно, надо как-нибудь копнуть», но они обычно быстро вылетают из головы. А начинающие разработчики часто вообще читают документацию наискосок.

    В этой статье я собрал 10 удивительных на мой взгляд свойств языка Objective-C. Некоторые свойства самоочевидны, некоторые далеко не таковы. За использование некоторых в боевом коде надо бить по рукам, другие же способны помочь в оптимизации критических мест кода и в отладке. В конце статьи имеется ссылка на исходник, показывающий на примере все эти фичи.

    Итак, начну с самого «вкусного» на мой взгляд: безымянные методы.

    1. Безымянные методы


    Читать дальше →
  • Поздравляем с Днём программиста!


      src

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

      Мы, программисты, чаще всего интроверты, потому что такой склад характера позволяет сконцентрироваться на интересной задаче, укрывшись в своём «пузыре» от внешних раздражителей.
      Читать дальше →
    • Scrambls — защита Вашей интеллектуальной собственности и шифрование в соцсетях

        Привет, уважаемые хабражители! Многие в наше время интересуются безопасностью своих личных данных, а особенно переписки. И это не удивительно, учитывая скандал с АНБ и прочие факторы.

        Так же имеется определённая проблема с социальными сетями и облачными сервисами: нам больше ничего не принадлежит, то есть, наши посты в соцсетях являются их собственностью, а не нашей, как и наши данные в облачных хранилищах принадлежат не нам.

        И как же выйти из такой ситуации? Ребята из Scrambls, кажется, уже решили эту задачу!
        Как? Читайте под катом
      • 19 команд ffmpeg для любых нужд

        • Перевод
        • Tutorial
        От переводчика:
        Многие знают, что ffmpeg — это сила, но не все знают, какая именно. Он многогранен и безграничен, а его man объёмен и местами малопонятен, лишь немногие постигли дао профессиональной работы с ним. И тем не менее, этот инструмент может быть полезен почти всем, кто хоть иногда работает с видео и звуком, даже на бытовом уровне. О некоторых полезных консольных командах ffmpeg и пойдёт речь в статье. В некоторых местах я взял на себя смелость вставить ссылки на поясняющие статьи.


        ffmpeg — это кроссплатформенная open-source библиотека для обработки видео- и аудиофайлов. Я собрал 19 полезных и удивительных команд, покрывающих почти все нужды: конвертация видео, извлечение звуковой дорожки, конвертирование для iPod или PSP, и многое другое.

        1. Получение информации о видеофайле

        ffmpeg -i video.avi
        

        2. Превратить набор картинок в видео

        ffmpeg -f image2 -i image%d.jpg video.mpg
        

        Эта команда преобразует все картинки из текущей директории (названные image1.jpg, image2.jpg и т.д.) в видеофайл video.mpg

        (примечание переводчика: мне больше нравится такой формат:
        ffmpeg -r 12 -y -i "image_%010d.png" output.mpg
        

        здесь задаётся frame rate (12) для видео, формат «image_%010d.png» означает, что картинки будут искаться в виде image_0000000001.png, image_0000000002.png и тд, то есть, в формате printf)
        Читать дальше →
      • theos: пишем твик для iOS SpringBoard

        • Tutorial
        Доброго скороновогоднего вечера уважаемым хабралюдям!

        Сегодня я расскажу о создании твика для iOS SpringBoard с помощью theos. Зачем? В качестве интересного рисёрча и тренировки. В конце туториала мы получим примерно такую штуку прямо на экране блокрировки нашего i-девайса:


        Читаем далее
      • iOS Console App — пишем программу для iOS без GUI

        • Tutorial
        Доброго дня всем хабравчанам!

        Сегодня я расскажу вам о том, как можно легко, быстро и просто написать консольную программку для запуска на iOS-девайсе. Разумеется, нам потребуется для этого jailbreak-нутый девайс, без него, увы, никак: iOS AppStore (он же iTunesStore) не позволяет распространять консольные утилиты.



        Писать HelloWorld — дело не особо интересное. Поэтому, мы будем писать полезную утилиту, позволяющую просмотреть некоторую информацию о системе, полученную через приватные API.

        К примеру, информацию об установленных программах и их версиях.

        В принципе, можно ещё поворовать пароли и прочие персональные данные, но это оставлю как факультативное задание.

        Итак, под катом — описание процесса создания консольной программки прямо в Xcode.
        Поехали
        • +25
        • 15k
        • 7
      • Выпущен новый Mail.Ru Агент для Mac OS X

          Добрый день, уважаемые хабралюди!

          Сегодня я рад представить вам (от имени всей команды) новую версию Агента для [Mac] OS X! И это не просто релиз багфиксов и мелких улучшений (коих действительно немало), в новой версии есть несколько действительно больших новых фич.

          Со времени прошлой публикации об Агенте для Мака прошло больше года, с тех пор была выпущена ещё одна мажорная версия, в которую вошла поддержка ICQ и прочие улучшения.

          Фичи под катом
        • Работа с файлами .plist в Cocoa/CocoaTouch

          • Tutorial
          Всем доброго хабрадня!

          Сегодня я бы хотел рассказать о некоторых аспектах сохранения настроек и прочих данных программы в OS X и/или iOS. Как обычно, у нас есть несколько вариантов: Core Data, «голый» SQLite, свои бинарные форматы, свои текстовые форматы, NSUserDefaults и, как Вы уже наверняка слышали, файлы типа PLIST, то есть XML Property List.

          Вкратце, plist-файлы представляют из себя обычный XML, но с некоторыми оговорками. К примеру, порядок тегов в нём обусловлен некоторыми правилами: они идут парами «ключ-значение», но теги типа «ключ» и теги типа «значение» располагаются на одном уровне. Типичный пример:

          	<key>identifier</key>
          	<string>j3qq4-h7h2v</string>
          

          Плисты умеют хранить основные типы данных Cocoa: NSString, NSNumber (int, float, BOOL), NSDate, NSArray, NSDictionary и NSData. Этим типам соответствуют следующие теги: , , , <true/>, <false/>, , , , . Собственно, plist состоит из тегов , за которыми следуют перечисленные теги со значением.

          Под катом - описание дополнительных ограничений и, что самое главное, API для работы с такими файлами.
          Как с ними работать
        • Создание красивого образа .dmg для программы в [Mac] OS X

          • Tutorial
          Приветствую достопочтенных жителей Хабра!

          Сегодня я расскажу вам о том, как красиво преподнести пользователю инсталлятор своей программы. Наверняка каждый, кто пользуется не только программами из AppStore, сталкивался с красивыми образами диска .dmg, как вот у Адиума, к примеру. Такой образ представляет из себя, так сказать, интерактивный инсталлятор, в котором дана чёткая подсказка: перетащи значок вот сюда. Всё предельно понятно и просто.

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

          Можно, конечно, проделать это всё вручную, но это не_наш_метод™, так что мы будем писать shell-скрипт для автоматизации сего процесса. Автоматизация нам так же пригодится в случае ввода в эксплуатацию билд-сервера, тогда этот сервер будет не только собирать программу из исходников, но и делать образ диска для дистрибьюции.

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