Рубрика «Cocoa» - 5

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

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

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

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

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

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

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

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

Память, как известно, бывает подводит. Здесь на помощь приходит простой и действенный чудо-рецепт автоматической установки номера сборки проекта.

Готовый проект с кратким описанием доступен на github: github.com/eshurakov/XcodeAutoBundleVersion
Читать полностью »

Вступление

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

В ходе разработки приложений под 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 и не мечтают собираться вместе, чтобы поделиться опытом и обсудить то, что им так дорого?»

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

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

NSNumber оказался идеальным кандидатом на то, чтобы применить полученые знания на практике—давайте же попробуем написать нашу собственную реализацию этого класса. За основу мы возьмем MANumber—кастомную реализацию NSNumber, и добавим туда поддержку меченых указателей.
Читать полностью »

Если вы когда-нибудь писали приложение на Objective-C, вы должны быть знакомы с классом NSNumber — оберткой, превращающей число в объект. Классический пример использования — это создание числового массива, заполненного объектами вида [NSNumber numberWithInt:someIntValue];.

Казалось бы, зачем создавать целый объект, выделять под него память, потом ее чистить, если нам нужен обычный маленький int? В Apple тоже так подумали, и потому NSNumber — это зачастую совсем не объект, и за указателем на него скрывается… пустота.

Если вам интересно, как же так получается, и при чем тут меченые указатели — добро пожаловать под кат!
Читать полностью »

(оригинал — Mike Ash, взято отсюда)

Многие Cocoa разработчики имеют довольно смутное представление об Objective-C Runtime API. Они знают, что он существует где-то там(некоторые не знают даже этого!), что он важен, и Objective-C без него неработоспособен, но обычно этим все знания и ограничиваются.

Сегодня я расскажу о том, как устроен Objective-C на уровне Runtime и о том, как конекретно вы можете это использовать.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js