Обновить
65.59

iOS *

Мобильная ОС компании Apple

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

Objective-D — альтернатива или дополнение к Objective-C

Время на прочтение5 мин
Охват и читатели20K
Objective-C, по-моему мнению, — не очень удобный язык со множеством проблем. Но мы вынуждены писать приложения под iOS на этом языке. Я разработал другой язык, который генерирует код Objective-C. Поэтому в этом языке вы можете легко использовать классы Objective-C и C функции. Вы также легко можете использовать сгенерированные классы в коде Objective-C. Так что есть возможность вести разработку сразу на двух языках. Я назвал этот язык Objective-D.
Читать дальше →

Почему NSURLSession лучше, чем NSURLConnection

Время на прочтение10 мин
Охват и читатели40K


iOS 7 официально вышла в сентябре, тогда Apple предоставила разработчикам новый способ работы с сетью — NSURLSession. Это достаточно фундаментальная вещь, потому в случае необходимости поддержки iOS 6 и ниже, распараллеливать код относительно версии системы будет крайне проблематично. Но тем не менее, время идет, и уже сейчас по разным данным от 75 до 85 процентов пользователей перешло на последнюю iOS, потому я бы советовал попробовать NSURLSession уже в следующем проекте.

По замыслу Apple, NSURLSession должна сменить NSURLConnection, и тут действительно возникает вопрос: «а зачем все это надо?» Потому сразу плюсы по сравнению с NSURLConnection:
  1. Загрузка и отправка данных в бэкграунде
  2. Возможность останавливать и продолжать загрузку
  3. Мы можем использовать блоки и делегаты одновременно, так, например, блоки используем для получения данных и обработки ошибок, а делегатный метод — для прохождения аутентификации
  4. У сессии есть специальный конфигурационный контейнер, в который можно уложить все нужные свойства для всех тасков(запросов) в сессии, а также, например, хэдеры для всех запросов в сессии
  5. Можно использовать приватное хранилище для куков, кэша и прочего
  6. Получаем более строгий и структурированный код, в отличие от набора беспорядочных NSURLConnection

Подробности и примеры

Что нужно знать об ARC

Время на прочтение5 мин
Охват и читатели59K
Автоматический подсчет ссылок (Automatic Reference Counting, ARC) для языка Objective-C был представлен компанией Apple еще в 2011 году для iOS 4.0 и выше, Mac OS X 10.6 и выше, с использованием xCode 4.2 и выше. И, хотя всё больше библиотек, фреймворков и проектов сегодня используют ARC, до сих пор среди программистов встречается либо неприятие этой технологии, либо eё неполное понимание. Опытные программисты, привыкшие к retain/release, иногда считают, что они лучше и эффективней справяться с подсчетом ссылок, чем это за них сделает компилятор, а новички, начищающие сразу использовать ARC, полагают, что им не надо вообще думать об управлении памятью, и всё сделается магическим образом само.
Давайте расставим точки над i

Apple App Store. Получаем ERN

Время на прочтение4 мин
Охват и читатели28K
Перед загрузкой приложения на ревью в Apple App Store нам задают неожиданный вопрос, а не использует ли наше приложение криптографию?

image

И хотя соблазн ответить «нет» и загрузить наконец-то очень велик, и кто-то тихо шепчет, что ты мог и забыть про https или вообще не знать, как он работает, но совесть советует разобраться и в этом.
У меня много сил ушло, чтобы получить ERN(Encryption Registration approval from BIS), и я решил написать инструкцию.
Получаем ERN

Шесть причин для Apple внедрить видеотрейлеры в App Store

Время на прочтение4 мин
Охват и читатели5.4K
Так сложилось, что мы в Alconost делаем не только перевод и локализацию, но и продающие видеоролики для IT продуктов. Новость о первом видеотрейлере приложения в App Store нас очень воодушевила и мы решили перевести статью о том, что принесет появление видеороликов разработчикам и пользователям iOS девайсов, и почему Apple стоит поторопиться с запуском видео в своем Store.

Переведено компанией-локализатором Alconost.


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

Разработка Quick Look plugin для OS X

Время на прочтение8 мин
Охват и читатели12K
Quick Look — приложение в OS X, которое создает thumbnails (иконки) и previews (окно с описанием/содержимым файла по нажатию пробела в Finder). Оно поддерживает ряд стандартных файлов, для не поддерживаемых можно устанавливать QL plugins — генераторы иконок и/или превью. Они имеют формат .qlgenerator, размещаются в ~/Library/QuickLook и /Library/QuickLook.

Я пишу приложения под iOS, иногда под OSX. Со сторонними QuickLook генераторами столкнулся, когда увидел плагин для первью .mobileprovisionProvisioning.
.mobileprovision/.provisionprofile — профиль, содержащий сертификаты, допущенные для установки устройства, некоторые параметры для развертывания iOS & OSX приложений.

Вот так папка с профилями выглядит без всяких плагинов для Quick Look:

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

Сперва я стал использовать open-source Provisioning, потом закрытый, но более красивый и подробный ipaql. Необходимость написания своего открытого решения возникла после того, как автор ipaql добавил совместимость с OS X Mavericks лишь спустя полгода после выхода системы, а отображение иконок не починил до сих пор.

Вот что у меня получилось — ProvisionQL.
Поддерживаемые типы файлов для создания иконок и превью:
  • .ipa — iOS packaged application (как из Xcode, так и из AppStore)
  • .app — iOS application bundle
  • .mobileprovision — iOS provisioning profile
  • .provisionprofile — OSX provisioning profile



Под катом я расскажу об основных шагах при создании Quick Look плагинов.
Читать дальше →

Фоновое обновление данных в iOS7

Время на прочтение4 мин
Охват и читатели31K
В конце сентября компания APPLE выпустила iOS 7, одной из особенностей этой версии стала улучшенная многозадачность и возможность обновления данных, когда приложение не активно.
Есть два варианта запуска приложения для обновления данных — периодические обновления и запуск при получении специального push-уведомления. В каждом из вариантов приложение будет запущено в фоновом режиме (background mode), и будет принудительно закрыто через 30 секунд, так что времени для обновления будет совсем мало.
Читать дальше →

Apple iOS 7.1 Beta 3. Перезагрузка

Время на прочтение2 мин
Охват и читатели50K
Apple выпустила третью beta версию для разработчиков, которая включает в себя, конечно же, исправления ошибок и небольшой набор изменений интерфейса, который позволяет почувствовать яблочную операционную систему немного по-новому.
Дальше будут картинки

Собираем Акулу под iOS и OSX

Время на прочтение14 мин
Охват и читатели19K
image
Да, такой заголовок не очень-то наполнен смыслом, поэтому дам несколько пояснений, для тех кто еще думает «идти под кат или нет?».

Shark — набор С++ библиотек машинного обучения (Machine Learning), а именно линейная и нелинейная оптимизация, нейронные сети, обучение с учителем и без, эволюционные алгоритмы и многое другое. Более детальное описание можно найти на сайте проекта.

Если вас интересуют ответы на следующие вопросы
  • Как собрать статическую библиотеку для iOS?
  • Как создать фреймворк для iOS?
  • Как опубликовать iOS и OSX фреймворк через CocoaPods?


Тогда вам под кат.
Читать дальше →

Кастомизация UICollectionViewLayout. Во имя искусства

Время на прочтение9 мин
Охват и читатели22K
Всем хэй хо!

Интро


Я работаю ios-разработчиком в провинциальном городе провинциальной страны ближайшего (по отношению к России) зарубежья. Около полутора лет назад страна решила, что я ей чего-то должен, а конкретно: должен год своей жизни, год низкоквалифицированного труда, год мечтаний о возвращении домой, к семье и работе… — одним словом, меня призвали в армию. И за этим делом я как-то пропустил выход iOS 6 со всеми ее фичами, в том числе и давно назревшего UICollectionView.
Разделавшись с нарядами, полигонами, уставом и прочими увлекательными вещами, я вернулся домой, снова начал работать, и конечно же проект, в котором заказчику было нужно отображение данных в виде того, что дизайнеры называют, «pinterest board», то есть собственно UICollectionView, не заставил себя ждать.
Читать дальше →

И ботаники бизнес автоматизируют

Время на прочтение5 мин
Охват и читатели44K
Привет, недавняя статья на Хабре о том, как программист пытался продать, заставила меня поведать нашу небольшую историю о том, как мы кинули вызов интерфейсам 90-х и всей автоматизации кафе, баров и ресторанов в целом, используя современные технологии.

image

Ниже много откровения.

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

Скрытые возможности Xcode 5

Время на прочтение4 мин
Охват и читатели34K
Здравствуйте, уважаемые читатели Хабрахабра!

Команде Бессвязного Девелопа удалось получить корпоративный аккаунт благодаря чудотворной программе Хабрахабра по поддержке начинающих стартапов без действующей монетизации. Мы — это ребята, которые частенько устраивают трансляции разработки различных приложений за 24 и 48 часов. Сегодня мы взяли курс на создание бесплатных аналогов нужных, но платных или обвешанных рекламой программ.

Чтобы наш приветственный пост не получился «Ни о чем», сегодня я расскажу о некоторых вкусностях работы с Xcode 5, подсмотренных на iOS 7 Tech Talks. В программе вечера:

  1. Автодополнение кода: печенье, которое еще не все попробовали
  2. Edit in scope: сытный шоколадный тортик
  3. Объекты IB: назовите этот сорт клубничного желе
  4. Двойной статус-бар: подавайте шоколадный шейк охлажденным
  5. Color Blended Layers: вы неправильно наносите ромовый крем
  6. Concurrent Object Enumeration: покройте все сахарной пудрой
  7. Локализация: хватит каждый раз греть духовку

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

Загрузка Reveal SDK с любыми приложениями

Время на прочтение2 мин
Охват и читатели3.9K
Вот в этом посте автор указал в качестве одного из применений Reveal App «знакомство с приложением, написанным другим разработчиком». Идея отличная, ведь, как известно, разобрать что-то чужое — отличный способ обучения. Изучать интерфейс можно чтобы принять чужую работу (если исходники по договору не положены), или отловить баг и отписаться автору приложения из App Store. Одно «но» — для подобных действий в приложение должен быть встроен Reveal SDK, что в production версии почти невероятно. И тут возникает причина поставить jailbreak, который позволит подгрузить нужный dylib (в нашем случае libReveal.dylib) с любым приложением (пока исключений не нашел).
Читать дальше →

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

Захватываем и снимаем демонстрационное видео iOS приложения подручными и не очень средствами – способы и решения

Время на прочтение8 мин
Охват и читатели43K


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

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

Приглашаю всех под кат разобраться, выбрать подходящий из 5 рассмотренных и опробованных нами способов и посмотреть примеры полученного разными способами видео.
Читать дальше →

Вышел непривязанный jailbreak для iOS 7.x

Время на прочтение1 мин
Охват и читатели116K
image

Сегодня, в качестве подарка к рождеству, команда хакеров evasi0n выпустила непривязанный jailbreak для устройств на iOS 7.x, включая iPad Air, iPhone 5s и iPad Mini with Retina Display.

Работоспособность подтверждена автором. Ждем твика Back to Skeumorphism или что-то в этом духе.

Скачать можно с официального сайта.

Перед джейлбриком хакеры рекомендуют:

* Сделать бэкап устройства.
* Отключить пароль на разблокировку устройства.
* Не делать никаких операций на компьютере во время джейлбрика, которые так или иначе связанны с iTunes и iOS.

Если во время установки программа зависла, ребут устройства и самого приложения безопасен.
Если Вы не можете открыть приложение на OS X 10.8, щелкните правой кнопкой мыши на файле и выберете «Открыть».
Читать дальше →

Маленькая хитрость — большие возможности. Оптимизация ключевых слов

Время на прочтение3 мин
Охват и читатели12K
Предыстория. Вчера Apple прислал мне письмо счастья о том, что моя программа нарушает авторские права одной компании. Конекретно — я использую их торговую марку. Само собой я тут же начал разбираться что да как и обнаружил зарегистрированную торговую марку в списке моих ключевых слов для английской локализации приложения. Оказалась она там, благодаря сервису подсказки ключевых слов SensorTower. Данный ключевик был мне горячо рекомендован, по соотношению генерируемый трафик / легкость попадания в топ. В топ то я попал, но вон оно как все обернулось. А дальнейшее развитие событий привело меня к осознанию одной интересной особенности App Store о которой я и хочу вам рассказать.

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

Обновлённая мобильная афиша для детей и родителей, справочник с геолокацией для iOS

Время на прочтение1 мин
Охват и читатели2.2K
KidsReview.ru выпустил новую версию своего бесплатного мобильного приложения для iOS – единственной специализированной детской афиши и справочника на русском языке. К 18 городам России и Украины (Санкт-Петербург, Москва, Владивосток, Екатеринбург, Казань, Калининград, Киев, Краснодарский край, Нижний Новгород, Новосибирск, Одесса, Ростов-на-Дону, Пермь, Петрозаводск, Самара, Томск, Хабаровск, Челябинск) теперь добавился регион «Мир».
Читать дальше →

Eero — Objective-C без скобочек

Время на прочтение7 мин
Охват и читатели14K
#import <Foundation/Foundation.h>

int main()
  parts := ['hello', 'world']
  greeting := ''
  for String part in parts
    if part == parts[0]
      Locale myLocale = Locale.currentLocale
      greeting << part.capitalizedString
    else
      greeting << ' '
      greeting << part

  Log('%@', greeting + '!')
  return 0


На днях из любопытства решил посмотреть, на какой стадии находится проект Eero — диалект Objective-C с альтернативным легким синтаксисом. Оказалось, что проделан уже большой фронт работ и Eero представляет из себя очень интересную разработку.
Читать дальше →

Паттерны ООП в примерах для iOS

Время на прочтение48 мин
Охват и читатели151K

От переводчика


Искали тут двух русскоязычных разработчиков — на iOS и на C++ под Windows. Видел десятки выполненных тестов. Разница в знании ООП между представителями двух платформ — огромная. На C++ обычно красивый расширяемый код, как само собой разумеющееся. На Objective C картина удручающая. Почти все iOS-кандидаты не знали ООП дальше своего носа NSString'ов и AppDelegate'ов.

Понятно, что плюсы учат по Страуструпу и «банде четырёх», а Objective C — больше по туториалам и Stack Overflow. Фастфуд-обучение не оставляет места на фундаментальные вопросы… Но такой разницы я не ожидал.

Поэтому я перевёл пост, в котором даны начальные сведения о шаблонах проектирования с примерами на iOS… «начальные»? Ага, значит, будет продолжение? Нет, не будет. Дальнейшие сведения вы получите из опыта, из попыток организовать процесс написания кода с помощью паттернов. Сначала не будет получаться, вероятно, фасад здания будет торчать из дымовой трубы, но потом придёт понимание, где какие приёмы реально помогают.

Качественная разработка ПО — творческий процесс, уникальный для каждой конкретной головы. Поэтому не существует общей инструкции: if (A and (B or C)) then use Pattern_N;
Как это нет инструкции? Что же делать?

Как скомпилировать билд Unity3D проекта для IOS на Windows?

Время на прочтение2 мин
Охват и читатели71K

Билд для IOS всегда стоял особняком в Unity3D. Если все остальные можно было компилировать на Windows машинах, то для IOS обязательно нужен был Мак. Я как и все столкнулся с этой проблемой при попытке выпустить свой первый проект на IOS, которая казалась мне трудно преодолимой. Однако, совсем недавно произошло два события которые делают эту проблему практически неактуальной, и которые прошли на Хабре незамеченными.
Читать дальше →