Обновить
65.64

iOS *

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

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

Пробуем Xcode Live Rendering

Время на прочтение6 мин
Охват и читатели16K
Как вы знаете, в Xcode 6 и iOS 8 SDK Apple добавила возможность рендеринга кастомных компонентов и редактирования их свойств прямо в стандартном Interface Builder (здесь должно быть едкое упоминание о том, что это было еще в Delphi древних версий).

Основы


Для начала нам понадобится какой-то самодельный наследник UIView, чтобы заставить Xcode рендерить его в Interface Builder. Для этого его нужно пометить атрибутом IB_DESIGNABLE (технически в Objective-C это макрос, ну раз Apple называет это атрибутом, и в Swift это атрибут, так тому и быть):
IB_DESIGNABLE
@interface XXXStaticPriceView : UIView

@property (nonatomic, copy) IBInspectable NSNumber *price;
@property (nonatomic) IBInspectable NSUInteger amount;
@property (nonatomic) IBInspectable NSNumberFormatterRoundingMode roundingMode;

@property (nonatomic, getter = isHighlighted) IBInspectable BOOL highlighted;

@property (nonatomic, copy) IBInspectable UIColor *textColor;
@property (nonatomic, copy) IBInspectable UIColor *outlineColor;

@end

Теперь можно создать storyboard (или xib) и разместить там наш view, и Xcode должен будет его успешно отобразить (предварительно собрав проект):

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

Дайджест интересных материалов для мобильного разработчика #73 (29 сентября-5 октября)

Время на прочтение2 мин
Охват и читатели11K
Пожалуй, главным событием этой недели стала презентация Windows 10 – новой «универсальной» ОС Microsoft, Technical Preview которой уже можно попробовать. Кроме нее есть история Lumia SensorCore SDK, FbStart от Facebook, экосистема для разработчиков от «Ростелеком» и абсолютно лучший материал недели — 20 способов мошенничества при покупке iPhone.

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

Использование дженериков в Swift

Время на прочтение16 мин
Охват и читатели18K
Если Вы уже разобрались, как программировать на Swift, тогда Вы наверняка уже знаете основы языка Swift и как писать классы и структуры. Но Swift — больше, чем это — намного больше. Задача этой статьи расскажать о очень сильной стороне языка Swift, которая уже успела стать популярной в нескольких других языках под названием дженерики.
Читать дальше →

Нативный segue слева направо в iOS

Время на прочтение3 мин
Охват и читатели14K
Предупреждаю сразу, это трюк. Он подойдёт далеко не всем и не всегда, но если вам нужно вывести окно с какой-то информацией слева от основного — то мой способ будет в самый раз.

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

Для начала, немного вводных данных. Segue — это способ смены экранов в iOS. Одна из самых популярных разновидностей, это push (с версии iOS 8 — show). Push segue всегда замещает текущий вид справа налево. То есть, у вас как-бы справа есть второе окно, и при нажатии кнопки оно переезжает налево, замещая первое.

Такое поведение вы видите в телефонной книге при выборе абонента. При этом, вверху появляется кнопка возврата на предыдущее окно, и, при нажатии на него, происходит искомая анимация слева направо.

Проблема в том, что мне нужно было сделать всё тоже самое, но в зеркальном отражении и стандартных способов для этого не существует (если верить Google). Есть масса инструкций, как сделать custom segue с похожей анимацией, но все они режут глаз своей неестественностью по сравнению с родным push.

Вот, что у меня получилось в итоге:



Используются исключительно стандартные методы и 0% кастомной анимации. Готовый пример на GitHub.
Читать дальше →

Мультиконтекстность в Core Data

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

Когда Вы начинаете использовать CoreData для сохранения данных в Ваших приложениях, Вы начинаете работать с единственным управляемым объективным контекстом / managed object context (MOC). Это — то, что используется в шаблоне при создание проекта в xCode, если Вы при создание проекта ставите галочку рядом с «Use Core Data».

image

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

Открытая лекция по основам Swift от MasterUp

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


Рады объявить, что шестого октября мы стартуем наш второй Swift-курс!

Этим летом мы не сидели сложа руки, а тщательно анализировали опыт преподавания курса по objective C для платформы iOS. Мы смогли выделить 3 главных параметра, которые являются основой для нашего нового курса: детализация всех аспектов разработки используя swift, практичность лекционных материалов и курсового проекта, мега-импульс интереса к платформе и новому языку программирования.

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

Очередной Moscow CocoaHeads состоится 3 октября

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


Эта неделя у нас богата на тематические встречи разработчиков. В пятницу, 3 октября, мы приглашаем всех желающих в офис Mail.Ru Group на Moscow CocoaHeads, традиционную встречу разработчиков под iOS/OS X. На этих встречах можно представить свой доклад, рассказать о своем проекте, поделиться опытом и просто пообщаться с единомышленниками. Совсем не обязательно быть гуру, можно просто прийти и послушать, что думают старшие товарищи, задать наболевшие вопросы. В этот раз выступать будут трое докладчиков, так что вечер будет насыщен информацией.
Читать дальше →

Месяц до конференции мобильных разработчиков #MBLTDev

Время на прочтение2 мин
Охват и читатели3.7K
Через месяц 28 октября в Москве пройдет конференция для мобильных разработчиков #MBLTDev, организаторами которой являются e-Legion и РАЭК.



Программа постепенно заполняется и мы рады представить вашему вниманию список докладов и спикеров, которые уже подтвердили свое участие:

  • Тим Мессершмидт (PayPal) «Виды современной аутентификации»
  • Эш Фюрроу (Artsy) «Разработка на Swift»
  • Джей Пи Симард (Realm) «Уроки, которые мы выучили, создавая Realm»
  • Андрей Беленко (viaForensics) «Безопасность iOS-устройств»
  • Юрий Буянов (Одноклассники) «Опыт использования MVVM в реальных проектах»
  • Руслан Шевчук (Aviasales) «Core Data: особенности использования и синхронизация в iCloud»
  • Алексей Коровянский (Mb-Lock) «Функциональное тестирование Android приложений»
  • Александр Черный (Indie-разработчик) «Трилатерация с помощью iBeacon»
  • Джаспер Блюз (Typhoon) «Dependency Injection»
  • Дмитрий Тарасов (Tinkoff Credit Systems) «Практический пример переиспользования кода. Как повысить качество и ускорить разработку»
  • Энди Карвелл (Soundcloud) «Разработка Skippy: высопроизводительной низкоуровневой библиотеки воспроизведения потокового аудио для SoundCloud»

Билеты можно купить на официальном сайте конференции. Стоимость одного билета — 5000 рублей, при покупке 2-х и более — скидка 30%. А под катом вы найдете специальное предложение на покупку билетов для пользователей Хабра.
Читать дальше →

Дайджест интересных материалов для мобильного разработчика #72 (22-28 сентября)

Время на прочтение3 мин
Охват и читатели15K
Прошедшая неделя запомнилась множеством изменений в правилах Google Play для разработчиков, чехардой с версиями iOS и гнутыми iPhone, локализацией приложений для китайского рынка и интересной историей о распознавании голоса в мобильном приложении.

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

Локализация приложений для китайского рынка

Время на прочтение5 мин
Охват и читатели41K
Собственно, ни для кого не секрет, что рынок КНР (а еще и Гонконга и Тайваня) — мечта для любого игропроизводителя. Учитывая азарт китайцев, их внушаемость и распространенность мобильных телефонов среди населения (а также количество абонентов), удачный вход на китайский рынок может принести огромную прибыль.

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


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

Как сделать хорошее видео для страницы приложения в App Store

Время на прочтение7 мин
Охват и читатели28K
Привет, Хабр!

Меня зовут Алёна, я работаю в студии motion-графики. Недавно приложение с нашим роликом успешно прошло модерацию, так что хочу поделиться опытом, как сделать видео для страницы в App Store и не облажаться: что и как может сделать сам разработчик, что лучше отдать на аутсорс, а от каких фишек лучше вообще отказаться.


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

Дайджест интересных материалов для мобильного разработчика #71 (15-21 сентября)

Время на прочтение3 мин
Охват и читатели8.9K
Прошедшая неделя ознаменовалась выходом iOS 8 и новых iPhone (их разобрали по винтику на Хабре, а для iOS 8 уже написали хабро-клавиатуру), появлением первых Android One смартфонов, историями создания мобильных игр и несколькими примерами тестирования мобильных приложений.

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

Разрабатываем хабраклавиатуру под iOS

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

Зачастую для чтения хабра я использую мобильное приложение Хабрахабр для iPhone и iPad. Оно достаточно удобное для чтения статей, но не очень удобное для написания комментариев, особенно если хочется написать что-нибудь этакое, с использованием тегов форматирования. Неудобно, потому что все теги необходимо набирать вручную, поэтому очень легко ошибиться и, как результат, оставить некрасивый комментарий.

Так у меня появилась идея написать свою клавиатуру, в которой по нажатию на клавишу добавляется открывающийся и закрывающийся тег в текстовое поле. Курсор при этом должен стать прямо между ними, чтобы сразу же приступить к написанию текста. Также необходимо иметь возможность перемещать курсор с помощью жестов свайпа, субъективно это удобней, чем тянуть палец к полю, ожидать появления лупы, перемещать палец и надеяться, что курсор попадет куда надо. И наконец, пора бы уже разобраться с тегами «Сарказм» и «Зануда», которые не поддерживаются парсером хабра. Клавиатура должна иметь специальные клавиши для этих целей, а оформление тегов должно быть конфигурируемым в настройках клавиатуры, чтобы каждый мог указать тот вид, который ему нравится.

С выходом iOS 8 Apple открывает новый API, который позволяет разрабатывать расширения к приложениям. Клавиатура (Custom Keyboard) является одним из представителей таких расширений. О ней и пойдет речь. В статье вы узнаете о том, какие возможности, ограничения и баги предоставляет новый API, как разработать хабраклавиатуру, и как сделать так, чтобы ваша клавиатура появилась в AppStore, а следовательно и на устройствах ваших пользователей.
Читать дальше →

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

Тестирование для мобильных устройств: эмуляторы, симуляторы и удалённая отладка

Время на прочтение5 мин
Охват и читатели150K
В давние времена разработки мобильных сайтов и приложений отладка была сложной задачей. Да, можно было заполучить устройство и быстренько проверить работу – но что было делать, если ты обнаруживал баг?

При отсутствии инструментов отладки приходилось полагаться на разные хаки. В целом они сводились к попыткам воспроизвести баг в десктопном браузере и затем отловить его при помощи Chrome Developer Tools или где-то ещё. К примеру, можно было уменьшить размер окна браузера или поменять user agent.

Грубо говоря, эти хаки не работали. Если ты правишь баг на десктопе, ты не уверен, что он исправлен на мобильном устройстве (МУ). Поэтому приходилось постоянно метаться между устройством и десктопом.

Теперь же у нас есть набор инструментов, позволяющих получать осмысленные данные прямо с МУ. Кроме того, можно использовать десктопные инструменты для отладки прямо на МУ.

В этой статье мы разберём несколько эмуляторов и симуляторов, которые позволяют быстро и легко тестировать сайты и приложения. Затем посмотрим на инструменты для удалённой отладки, позволяющие подключаться к МУ.
Читать дальше →

Использование NSURLProtocol в Swift

Время на прочтение21 мин
Охват и читатели10K
NSURLProtocol является своего рода волшебным ключом к URL. Он позволяет Вам переопределить работу системы загрузки URL, компания Apple определяет пользовательские схемы URL и переопределяет работу существующих схем URL.

Это кажется волшебным? Так и должно быть. Потому что, если Вы их поищете, то обнаружите что URL, практически как и любовь, вокруг нас. Что используют UIWebView или WKWebView? Они используют URL. Что используется для трансляции видео с MPMoviePlayer? Для этого используется URL. Как Вы направляете кого-то в свое приложение на iTunes, запускаете FaceTime или Skype, запускаете другое приложение в системе или даже вставка изображение в HTML файле? С помощью URL. Загляните на NSFileManager и обратите внимание на то, для какого количества методов обработки файлов необходимы URL.

В этой статье про NSURLProtocol Вы научитесь определять обработчика протокола, который модифицирует URL схемы. Он добавит необработанный и готовый прозрачный слой кэширования, сохраняя извлеченные ресурсы в Core Data. Запуская его в работу, обычный UIWebView может тогда взять на себя роль браузера, кэшируя загруженные страницы, чтобы можно было позже просмотреть их в оффлайн режиме.

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

Платформа для тестирования мобильных приложений Ubertesters: опыт внедрения

Время на прочтение3 мин
Охват и читатели14K
Пока рядовые юзеры ждут свой очередной iPhone, а ASUS анонсирует новый планшет, я хотел бы поделиться одним днём из жизни разработчика мобильных приложений.

Подобно другим небольшим девелоперским компаниям наша столкнулась с банальной нехваткой людей для ручного тестирования написанных приложений. С ростом количества проектов выросло и число неупорядоченных файлов с баг-репортами. Отсутствие нормальной системы управления билдами и сабмита багов стало серьёзной проблемой.
Читать дальше →

Дайджест интересных материалов для мобильного разработчика #70 (8-14 сентября)

Время на прочтение3 мин
Охват и читатели12K
Конечно же, новости этой недели связаны по большей части с Apple. Компания презентовала два новых iPhone, мобильный кошелек Pay и часы Watch, обновила свой портал для разработчиков, начала принимать приложения для iOS 8, запустила TestFlight и новую мобильную аналитику. Но и кроме этого есть интересная история открытия студии мобильной разработки в Питере, новый кейс от PapaBubaDiop, слухи о покупке Mojang и продаже Unity.

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

Использование MagicalRecord при разработке iOS приложений

Время на прочтение20 мин
Охват и читатели23K
Хабралюди, добрый день!

Сегодня Вашему вниманию хочу представить очередной перевод, не судите строго :) Надеюсь, Вам этот материал пригодится в работе.

В течение многих лет, Core Data была неотъемлемой частью многих OS X и iOS-приложений, обеспечивая сохранение и запрашивая пользовательские данные. Компания Apple тратит много усилий для того, чтобы API Core Data было проще в использовании и облегчала разработчикам процесс интегрирования в приложения.

Этот факт указывает на то, что Core Data является сложно-модифицируемой проектом. Даже если вы знаете как пользоваться Data Core, выполнение простых, ежедневных задач может показаться вам сложной и объемной работой. Хорошо, что существует MagicalRecord – независимая библиотека для Core Data, созданная MagicalPanda. А это учебное пособие научит Вас, как ускорить работу с MagicalRecord быстро и легко.

MagicalRecord – прост в использовании, хорошо разработан и популярен. Авторы проекта заявил, что основная задача MagicalRecord – очистка кода который Вам нужно писать для использования Core Data и с помощью одной простой строки кода сделать выборку данных, одновременно позволяя пользователю оптимизировать производительность. «Как это возможно?» — подумаете Вы. Это возможно благодаря удобной технологии, которая использует один и тот же шаблон для настройки, запросов и обновления Core Data. Особенностью дизайна является влияние Ruby on Rails’ системы хранения данных ActiveRecord.

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

Yandex слышит тебя, dude

Время на прочтение4 мин
Охват и читатели44K
image
Неожиданно пришел приказ — написать приложение под iOS, использующее Yandex Speechkit для распознавания русской речи. Точнее, для распознавания коротких фраз на произвольную тему. Цель задания — сравнить успехи яндекс-двигателя с нашим, саровским движком.

Приказали — сделал следующие шаги.

  1. Зашел на yandex.ru в раздел распознавание речи
  2. Зарегистрировался и получил ключ, он же API_KEY
  3. Отправил письмо в yandex с просьбой активировать ключ


На вопрос, как будет использоваться ключ, я ответил, что выпускаю карточную игру Diablo 3-13, управляемую голосом.

Через два дня ключ активировали. Я поначалу нетерпеливо бил копытом, затем понял, что в yandex работают вдумчивые, синхронные сотрудники.
В своем приложении в дальнейшем я также отказался от асинхронных запросов к yandex.api.
Читать дальше →

Дайджест интересных материалов для мобильного разработчика #69 (1-7 сентября)

Время на прочтение3 мин
Охват и читатели13K
Во многом новости этой недели связаны с Apple – утечка фотографий знаменитостей и расследование этого дела, подготовка к предстоящей во вторник конференции с обновлением инструментов, прогнозы о том, что будет в новых iPhone. Кроме этого вирус для Android, как работает мобильная реклама, первый смартфон с изогнутым дисплеем от Samsung – в еженедельном дайджесте.

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