Обновить
0

Objective C *

Компилируемый объектно-ориентированный язык

Сначала показывать
Порог рейтинга
Уровень сложности

Как позвонить на iOS7 [jailbreak] из приложения?

Время на прочтение5 мин
Количество просмотров7.3K


У меня появилась задача позвонить с iPhone на iOS7. На предыдущих версиях iOS (6 и ранее) было достаточно воспользоваться private API и все работало, но на iOS7 этот подход перестал работать. В этом посте я хочу рассказать как сделать звонок и получить собственный номер телефона из приложения.

Код проекта на github.
Читать дальше →

Как мы писали iOS-библиотеку для работы с Wargaming API

Время на прочтение9 мин
Количество просмотров9.7K


World of Tanks Assistant (WOT Assistant) и World of Warplanes Assitant (WOWP Assistant) — это приложения–компаньоны для игроков, которые позволяют следить за внутриигровой статистикой, сравнивать свои боевые показатели с друзьями, а также предоставляют оффлайн-доступ к справочной информации по технике.


WOWP Assistant появился относительно недавно (ноябрь 2013), а версия для World of Tanks была переписана почти с нуля в начале 2013, что по времени совпало с переходом на новый Wargaming Public API. 

Надеюсь, наиболее технически интересные моменты разработки iOS-библиотеки для взаимодействия Assistant’ов с API будут полезны для разработчиков и послужат источником вдохновения для участников конкурса Wargaming Developers Contest.
Читать дальше →

Решение проблемы с циклическими ссылками в блоках ObjC

Время на прочтение12 мин
Количество просмотров30K
О блоках в ObjC и правильной работе с ними написано очень много, в том числе и на хабре. Вопрос о том, как правильно работать с self в блоках, чтобы избежать циклических ссылок, регулярно задается на собеседованиях. При использовании таких фреймворков, как ReactiveCocoa количество блоков в коде сильно возрастает, при этом увеличивается шанс допустить ошибку и потерять в памяти объекты. Про попытку окончательно решить эту проблему, метапрограммирование для с99 с экстеншнами и блоками + хипстерсткие макросы с @ под катом.
Читать дальше →

Делаем красивый Progress Bar в iOS приложении

Время на прочтение6 мин
Количество просмотров17K
Добрый день, дорогой Хабрахабр!

В этой статье я хочу описать способ, при помощи которого мы сделали такой красивый кастомный progress bar — на иллюстрации — в одном из последних проектов.

Задача была поставлена следующим образом:

  • Картинки были нарисованны дизайнером.
  • Progress bar должен перекрывать и блокировать весь UI.
  • Элемент должен вызываться нотификацией в NSNotificationCenter.
  • Должна быть возможность досрочно завершить действие элемента.
  • Progress bar должен быть один, вне зависимости от количества посланных нотификаций.

Заинтересовавшихся в реализации прошу под кат.
Читать дальше →

Газовый шейдер в Cocos2d

Время на прочтение5 мин
Количество просмотров11K
Добрый день.
Хотела поделиться своим небольшим опытом оптимизации шейдеров на IOS, и по возможности услышать дельные советы на этот счет. Вроде бы есть прекрасный инструмент OpenGl ES 2.0, и можно сделать неплохие эффекты, но при этом получить более-менее вменяемый fps не всегда получается.


Читать дальше →

Создание оффлайн карты для iOS приложения

Время на прочтение4 мин
Количество просмотров19K


Доброго времени, дорогие Хабровчане!

В этой статье я расскажу о том, как реализовать оффлайн карты.

Дисклеймер. Статья не является пиаром чего-либо. Данный вариант реализации был выбран мною как самый оптимальный и я бы хотел поведать о нем в доступной форме.
Спасибо!

Предыстория


При разработке гид приложения для Гонконга, возникла нужда в использовании оффлайн карт. Google карты, к сожалению, не предоставляют такой возможности, так что, из за безысходности пришлось использовать такой сервис как MapBox, точнее расширение для iOS — MapBox-ios-sdk.

Заинтересовавшихся прошу под кат.
Читать дальше →

Интеграция PayPal Here в iOS-приложение

Время на прочтение3 мин
Количество просмотров7K
Работая над одним проектом, я столкнулся с необходимостью интегрирования PayPal Here в приложения. PayPal вообще никогда не шел на встречу разработчикам, интегрироваться было достаточно сложно, но с PayPal Here дело обстоит несколько иначе (есть целый пример на gitHub’е). Одним словом, если вы владелец интернет-магазина, интернет-аукциона или вообще хотите проводить оплату в своем приложении, то вам будет интересно почитать о том, как можно интегрировать PayPal Here в iOS.

image

Кстати, несмотря на большое количество интернет-магазинов, оплата в которых осуществляется через PayPal, сервис PayPal Here до сих пор не доступен в российском сторе.

Читать дальше →

iBeacon: Руководство к действию

Время на прочтение3 мин
Количество просмотров20K


iBeacon является новой технологией, которая построена на основе Bluetooth Low Energy или BLE. Пока iBeacon более всего ассоциируется с Apple. Начиная с 2013 года iBeacon встроена в Apple iOS 7. Впервые пилотный проект был запущен в магазинах Apple в декабре 2013 года и в 2014 году ожидается существенное расширение использования технологии — via Wi-Life

Добрый день, дорогой Хабрахабр!

Сегодня мы познакомимся с реализацией функционала BLE под iOS на основе iBeacon-девайсов от Roximity. Поискал, поспрашивал, пошерстил, вроде как, никто так и не писал о практической стороне вопроса в рунете. Статью делю на две части: про настройку на серверах Roximity и про подкапотную приложений.

Заинтересовавшихся прошу под кат.
Читать дальше →

Разбираемся с NSURL / NSURLComponents

Время на прочтение5 мин
Количество просмотров14K
От переводчика: В свете последних событий быть разработчиком на Objective-С стало уже не так модно, некоторые уже бегут сдавать его в утиль, но я считаю, что это делать еще рановато, потому позволю себе поделиться переводом. Начав читать оригинал, не ждал ничего нового в, казалось бы, простой и очевидной теме, но в итоге вынес достаточно полезных моментов.

Читать дальше →

Как собрать WhatsApp за сутки. Часть 1

Время на прочтение12 мин
Количество просмотров112K


Здравствуйте, дорогие читатели Хабрахабра!

В этой серии статей я расскажу, как быстро и почти безболезненно поднять свой собственный WhatsApp под iOS. Статью делю на две части для вашего удобства:

  1. Создание проекта, простой UI, привязка к сервису мгновенных сообщений
  2. Делаем красивый UI, добавляем видео и аудио звонки, передачу фото и документов

К сожалению, пособие о том, как набрать 400 000 000 пользователей и продать сервис за 19 Инстаграмов, затерялось где-то на книжной полке. Постараюсь его найти, если кому интересно.

Заинтересовавшихся прошу под кат.
Читать дальше →

Тестируем iOS приложения без Apple Developer Program Membership

Время на прочтение4 мин
Количество просмотров53K
Мне было интересно попробовать написать приложение для iOS, чисто в познавательных целях, но 99USD платить Apple за «любознательность» не очень то и хотелось. Не отчаивайтесь, для таких как мы есть способы и запустить приложение и отладить его на целевом устройстве.

Читать дальше →

Устройство блоков в Objective-C

Время на прочтение6 мин
Количество просмотров19K
image
В Objective-C есть такая штука, как блоки, которая является реализацией концепции замыканий.

Есть много статей о том, как правильно использовать блоки (когда вызывать copy, как избавиться от retain циклов и т. д.), но при этом устройства блоков обычно не затрагивают. Собственно, давайте восполним этот пробел.
Читать дальше →

Встречайте AppCode 3.0: встроенный дизайнер UI, плагин для Reveal и многое другое

Время на прочтение4 мин
Количество просмотров30K
Привет, Хабр! Мы спешим вас порадовать новой, только что выпущенной версией нашей IDE для разработчиков под iOS/OS X — AppCode 3.0. Внутри много интересного: от долгожданного встроенного дизайнера UI до большого сюрприза в виде интеграции с Reveal. Но — обо всем по порядку.

Дизайнер UI


Мы шли к нему довольно долго. Кто-то из вас мог даже попробовать самую первую версию нашего UI-плагина еще в декабре прошлого года. И вот теперь мы рады сообщить, что в AppCode 3.0 появился свой встроенный дизайнер UI. Он поддерживает как формат .xib, так и .storyboard, и дает вам возможность полностью разрабатывать UI вашего приложения в AppCode. Вам доступна вся палитра элементов из iOS SDK, удобная навигация по дереву компонент, всевозможные настройки внешнего вида и поведения элементов UI и, конечно, возможность создавать методы для обработки поведения визуального элемента в один клик.


Читать дальше →

Ближайшие события

Стратегия (Перевод с английского главы «Strategy» из книги «Pro Objective-C Design Patterns for iOS» Carlo Chung)

Время на прочтение13 мин
Количество просмотров17K
Помните ли вы, когда вы в последний раз начиняли блок кода множеством разных алгоритмов и использовали спагетти из условий if-else / switch-case, чтобы определить, какой именно из них использовать. Алгоритмы могли представлять собой набор функций/методов похожих классов, которые решают схожие проблемы. К примеру, у вас есть процедура для проверки входных данных. Сами данные могут быть любых типов (например, CGFloat, NSString, NSInteger и прочее). Каждый из типов данных требует различных алгоритмов проверки. Если бы вы могли инкапсулировать каждый алгоритм в виде объекта, то можно было бы не использовать группу операторов if-else / switch-case для проверки данных и определения, какой из алгоритмов нужен.

Читать дальше →

Sapper: Royal Engineer

Время на прочтение15 мин
Количество просмотров12K
Хабраразработчики, приветствую!

В данном посте я расскажу «историю» разработки и публикации первой нашей игры: как рисовался дизайн, как разрабатывали, с какими трудностями столкнулись, почему StackOverflow лучше Apple Dev Forums и т.д.
Игра делалась с целью формирования механизмов взаимодействия с дизайнером, для последующего ускорения разработки на более сложных играх, поэтому судите строго (на столько, насколько это возможно).

Картинки для привлечения внимания:
image image

image image

Читать дальше →

Используем RestKit 0.22.x для просмотра героев Marvel

Время на прочтение17 мин
Количество просмотров10K
Веб-сервисы, в частности использующие REST-архитектуру, уже плотно вошли в нашу жизнь. Разрабатывая клиентское приложение под iOS, часто так или иначе приходится загружать данные с сервера и хранить/отображать их локально. При этом хочется делать это легко и непринужденно, не прибегая к изобретению собственных “велосипедов”.

Последняя версия известного Objective-C фреймворка RestKit для iOS и OSX значительно упрощает работу с RESTful API. Несомненно, одной из его самых ценных фич является возможность автоматического сохранения объектов в локальную БД, используя CoreData. Давайте вместе проделаем путь от получения данных от сервера до сохранения и отображения их на нашем iOS-устройстве. А чтобы нам не было скучно, в качестве примера будем работать с API всемирно известной компании по производству комиксов Marvel.

Статья представляет из себя некое подобие туториала. Предполагается, что читатель уже знаком с базовыми концепциями разработки на языке Objective-C, использованием iOS SDK, Core Data и такого понятия как блоки.


Читать далее: код, картинки

Многопоточная Core Data

Время на прочтение4 мин
Количество просмотров26K
Как известно, Core Data является мощным Apple фреймворком для управления объектным графом. На Хабре немало статей о Core Data, тем не менее, многопоточность освещена достаточно слабо, а, как мне кажется, вопросом о том как правильно ее реализовать, задавался почти каждый.
Читать дальше →

Как написать «скорочиталку» для iOS за полчаса

Время на прочтение7 мин
Количество просмотров20K
Прочитав на хабре посты про скорочтение QuisyReader и 500 слов в минуту без подготовки, захотелось реализовать данную идею для смартфонов Apple своими силами. Для этого я разработал API, исходные коды, которого опубликованы на github.



О принципе функционирования API и о том, как создать программу для скорочтения на его основе, я расскажу под катом

Читать дальше →

«Сверхзвуковая» загрузка фотографий в Облако с помощью собственного NSInputStream

Время на прочтение10 мин
Количество просмотров16K


Максимально быстрая загрузка фотографий и видео с устройства на сервер была нашим основным приоритетом при разработке мобильного приложения Облако Mail.Ru для iOS. Кроме того, с самой первой версии приложения мы предоставили пользователям возможность включить автоматическую загрузку на сервер всего содержимого системной галереи. Это очень удобно для тех, кто волнуется о возможной потере телефона, однако, как вы понимаете, увеличивает объем передаваемых данных в разы.

Итак, мы поставили перед собой задачу сделать загрузку фото и видео из мобильного приложения Облака Mail.Ru не просто хорошей, а близкой к идеальной. Результатом стала наша библиотека POSInputStreamLibrary, которая реализует потоковую загрузку в сеть фото и видео из системной галереи iOS. Благодаря ее тесной интеграции с фреймворками ALAssetLibrary и CFNetwork загрузка в приложении происходит очень быстро и не требует ни байта свободного места на устройстве. О реализации собственного наследника класса NSInputStream из iOS Developer Library я расскажу в этом посте.
Читать дальше →

+(AppStore *) Timera: архитектура приложения и особенности разработки. Часть 2

Время на прочтение5 мин
Количество просмотров2.5K
Для тех, кто не читал первую часть, коротко: в ней было описано решение задачи по созданию слоев и эффектов, для совмещения старой и новой фотографии. Подробно об этом можно прочитать здесь.

В этой части наш iOS разработчик – heximal – расскажет о том, как реализовывалась гео-позиционно-картографическая функциональность. Так как у него read only то этот пост опять публикую я (будет классно, если кто-нибудь даст ему инвайт). С его слов все записано верно.
Читать дальше →