Метка «Cocoa»

В Cocoa очень популярен паттерн делегирование. Стандартный способ реализации этого паттерна — добавление к делегатору weak свойства, которое хранит ссылку на делегат.

У делегирования много различных применений. Например, реализация какого-то поведения в другом классе без наследования. Еще делегирование используется как способ передачи уведомлений. Например, UITextField вызывает у делегата метод textFieldDidEndEditing:, который информирует его о том, что редактирование закончено, и т.д.

А теперь представьте задачу: надо сделать так, чтобы делегатор посылал сообщения не одному делегату, а нескольким, причем делегирование реализовано стандартным методом через свойство.
Читать полностью »

Привет!
Новая встреча RADUG пройдет 10 июня в 20:30 в офисе Dream Industries, в Центральном Телеграфе по адресу Москва, ул. Тверская, 7. Ходят слухи, что Apple в этом году обещает транслировать Keynote WWDC, поэтому это отличный повод собраться и посмотреть его вместе на проекторе.

Будет круто обсудить iOS 7, OSX 10.9 и возможно AppleTV SDK. Если не будет live-трансляции, то как всегда откроем ленту The Verge. После Keynote можно будет пообщаться на кухне на небольшой afterparty.

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

Читать полностью »

В данном посте я хочу обратиться к теме, о которой многие начинающие iPhone-разработчики часто имеют смутное представление: Objective-C Runtime. Многие знают, что он существует, но каковы его возможности и как его использовать на практике?
Попробуем разобраться в базовых функциях этой библиотеки. Материал основан на лекциях, которые мы в Coalla используем для обучения сотрудников.
Читать полностью »

Я уже 2 года занимаюсь разработкой приложений под iOS и в этой статье мне захотелось представить те факты, которые показались мне интересными и полезными. Буду рад, если вы так же поделитесь своими знаниями в комментариях. В следующей статье хотелось бы собрать подобные факты о Foundation Kit.

.m

Разрешение .m (message) ввели для того чтобы выделить ключевую особенность Objective-С. По сути, мы не вызываем методы у класса, мы отправляем сообщение объекту, после чего происходит диспетчеризация в ходе которой диспетчер методов Objective-C ищет нужный класс и вызывает у него необходимый метод.

NS

Префикс NS обозначает Next Step. Он возник еще в те времена, когда не было Cocoa, а фрейворк назывался NextSTEP и был продуктом NeXT Software. Apple купила эту компанию в 1996 году и чтобы не нарушать обратную совместимость кода продолжила использовать этот префикс.

Читать полностью »

Понятие отсутствия чего-либо — ничего — это не только философская, но и вполне улититарная единица: людям, как и созданным ими вычислительным машинам, часто приходится оперировать «пустыми», выражающими лишь несуществование чего-либо значениями, будь то отсутствие денег на банковской карте, about:blank, чёрные дыры или grep "${rootpswrd}" /etc/passwd.

Для выражения подобного «несуществования» в языках программирования используется большое количество различных мнемоник. Мы же рассмотрим те из них, что используются в сверхпопулярном (за прошедшую пятилетку, но, будем верить, что и на долгие лета́ вперёд) языке Objective-C.

Читать полностью »

Выпущен новый Mail.Ru Агент для Mac OS XДобрый день, уважаемые читатели!

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

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

Читать полностью »

Вступление

Приветствую, читатели!

В ходе разработки приложений под iOS у меня накопились некоторые хитрости, которыми я хотел бы поделиться с Вами.

Сразу предупрежу, что я стараюсь шагать в ногу со временем, поэтому примеры будут под iOS >=5.0 и использовать Storyboard и ARC, но ничего не мешает их портировать на 4.*.

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

Заинтересовавшимся — прошу под кат (Пост содержит скриншоты областей Interface Builder-а, поэтому предупреждаю о траффике).

Читать полностью »

Мой друг, bartwader, попросил меня опубликовать эту статью.

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

Часть первая.

Все было как в популярных демотиваторах — я открыл книгу, прочитал первую главу — и тут понеслось.
Что касается книги, то, на мой взгляд, она не очень хорошая. У меня сложилось впечатление, что собралась группа разработчиков, и под пивко за ночь набросали книжку. На тот момент мне казалось что обучение происходило по принципу – нету времени объяснять, делай как мы говорим. Тем не менее книгу я прочитал на одном дыхании, решил, что стоит закрепить знания, написав что-то отличное от примеров.
Читать полностью »

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

Как я писал Футболоид под iOS
Не так давно, во время поиска новой работы, я получил очень интересное тестовое задание от ZeptoLab: написать за пару рабочих дней арканоид под iOS без использования сторонних библиотек типа Cocos2d/Box2d и т.п., то есть, на «чистом» OpenGL, что показалось мне весьма интересным. Кстати, об этом задании на Хабре уже писали, и даже устраивали разбор полётов. Итак, я бросил вызов судьбе и взялся за геймдев впервые после школьных упражнений с васиком в графическом режиме!

Уточню, что некоторые знания OpenGL у меня уже были, но весьма и весьма поверхностные. Можно сказать, что их не было ну почти совсем, я просто знал, что такое вьюпорт и что бывают какие-то там спрайты, что существуют матрицы преобразования… Так что данная статья могла бы быть озаглавлена "Как написать простую игру под iOS на чистом OpenGL, не зная его", но это слишком уж длинно.

В общем, если Вам интересно, как я это сделал за ~10 часов разработки и ~2 часа чтения, прошу под кат. (осторожно! много кода! мало картинок! ссылка на гитхаб и расслабляющее видео в конце!)
Читать полностью »

Честно говоря, каждый раз, когда в том или ином блоге зарубежного разработчика я читал о том, как чудесно прошла последняя встреча, я испытывал смешанные чувства.С одной стороны, я всё-равно чувствовал себя сопричастным этому глобальному коммьюнити, и потому радовался, что среди Cocoa разработчиков есть такая традиция. С другой, я понимал, что я-то здесь, и у меня-то нет возможности полноценно приобщиться к этим встречам.

В конце-концов моё терпение лопнуло, и я сказал себе:«Эй, ты живёшь в самом огромном городе самой большой страны в мире, и ты думаешь, что вокруг тебя нет ребят, которые так же сильно любят Cocoa и не мечтают собираться вместе, чтобы поделиться опытом и обсудить то, что им так дорого?»

Сказано—сделано.
Поэтому приглашаю вас обсудить детали нашей первой встречи, что пройдёт в последнюю неделю августа.
Читать полностью »