Обновить
65.59

iOS *

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

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

StartAD.mobi: Приветствие

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


Здравствуйте, уважаемые Хабражители.

Этим постом мы открываем наш официальный блог на Хабре и начинаем знакомить вас с сервисом "StartAD.mobi".

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

Создаем свое AppStore для распространения по программе iOS Enterprise Distribution

Время на прочтение5 мин
Охват и читатели14K
В developer подписках Apple есть возможность разрабатывать приложения для внутрикорпоративного использования. При этом приложения не проходят проверку со стороны Apple и не обязаны «светится» в AppStore. Всё выше сказанное относится и к Ad Hoc приложениям, они принципиально ничем не отличаются, разве что временем жизни после создания.

Для распространения приложения хотелось решить задачи:
  1. пользователь самостоятельно мог установить приложение на свое устройство
  2. только авторизированный пользователь мог устанавливать приложение
  3. простая публикация приложения на сервере

Подробности

Обновление сертификатов на билд сервере

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

Во многих компаниях используют Continuous Integration.
Например, в Git может быть три ветки: customer, master, test.
Пуш в customer или test инициирует создание сборки, а также ее доставку на устройства заказчика или тестировщиков.

Для распространения тестовых сборок на iOS, используются Ad Hoc профайлы. Суть в том, что сборка должна быть подписана профайлом, в котором указан UUID устройств на которых она может быть установлена.

Процедура добавления/удаления устройства в Ad Hoc профайл требует его пересоздания. После того как профайл обновлен, он должен быть установлен на сборочный нод (компьютер на котором собирается сборка). Обычно процедура обновления профайла выполняется через Xcode, что требует доступ к сборочному ноду через VNC и непосредственного участия человека.

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

Tetris запрещено упоминать в App Store

Время на прочтение2 мин
Охват и читатели31K
image
В нашей ядерной лаборатории существует несколько методик для моделирования физических явлений на регулярной сетке. Большинство сеток — прямоугольные, то есть у каждой ячейки есть строго один сосед справа, один — слева, один — сверху, один — снизу. Четыре соседа. Удобно, рационально, ячейки не жесткие, в отличии от треугольных.

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

Я решил взять несколько популярных игр, основанных на четырехугольных сетках (Lines, Tetris, Dots, Panda, Candy Crash Saga) и переписать их на натуральную шестиугольную сетку.
Тетрис, названный Hetris (от Hexagonal tetris), получился довольно забавным и я решился выложить его в AppStore.
Дабы избежать обвинений в саморекламе, я прикрутил к приложению Push Notification, и описываю особенности своей реализации в данной статье.

А вы знаете, что слово Tetris запрещено упоминать всуе?

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

Скроллер для видео и понимание представления времени в Objective-C

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


Здраствуй, Хабражитель!

В этой статье я хочу поделиться своим опытом работы с видео в одном из своих последних проектов для iOS. Не буду углубляться в подробности, лишь опишу одну из задач, которую не удалось решить с помощью поиска по хабру, гитхабу и остальному интернету. Задача состояла в следующем: сделать скроллер для видео, да не простой, а чтобы был как в стандартной галерее iOS 7.

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

Локализация приложений для iPhone: как получить на 767% больше загрузок с помощью перевода ключевых слов

Время на прочтение11 мин
Охват и читатели26K
Все разработчики для iOS мечтают попасть в Топ-10 App Store. Профессиональная локализация — путь к успеху. Проблемы, которые могут повстречаться на пути, самые разнообразные — забытая на старте проекта локализуемость, плохой переводчик, “кривое" тестирование локализации.

Надеемся перевод этой статьи поможет оценить всю важность локализации, сделать ее правильно и достичь желаемого результата. Рассуждения, статистика и небольшой обзор инструментов — под катом.

Переведено в Alconost.


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

Кроссплатформенный канделябр

Время на прочтение9 мин
Охват и читатели14K
В статье GameDev и канделябр мы описали процесс портирования игры Марьяж под Android. Игра вышла достаточно успешной и практически сразу после релиза мы начали планировать кроссплатформенную версию с дальнейшим прицелом на онлайн. В качестве платформы была выбрана unity3d. Процесс разработки занял около шести месяцев.

Интересно? Заходите под кат!
Читать дальше →

Выполнение PhoneGap-приложений в десктопном браузере

Время на прочтение2 мин
Охват и читатели6.1K
Этим постом я хочу открыть серию небольших заметок об использовании PhoneGap в реальных проектах. Заметки о больших и не очень находках, которые нужно где-то фиксировать, чтобы потом не искать вновь. В конце поста — голосовалка о том, полезны ли здесь будут такие публикации.

Зачем открывать мобильные приложения в браузере?


Причин — две: 1) для отладки, 2) для демонстрации. Про первое понятно. Вторую возможность разработчики применяют не часто, но встретить можно.

Используя незначительно доработанное PhoneGap-приложение, можно демонстрировать на промо-сайте не просто скриншот, а реально работающую JS-динамику. То есть обернуть PhoneGap-исходник в iframe, поместить внутрь графического вида какого-нибудь очередного айфона и вуаля. Некоторый wow-фактор и копейка к конверсии гарантированы.
Читать дальше →

Социальная сеть без сервера. История разработки iOS-клиента и backend

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

Интро


Я хочу рассказать об опыте разработки iOS-клиента для социальной сети и бэкенда реализованного с помощью BaaS Parse.com Нижe приведена архитектура, которая у нас получилась, некоторые tips&tricks и размышления по поводу работы с parse.com.
Изначально клиент думал о сервере на RoR, но, видимо, они не рискнули вкладывать сразу много денег. Мы подписали строгое NDA, поэтому ссылку на Appstore я дать не могу. По доброй традиции всех IT книг, хочу выразить благодарность заказчику Х и компании Y за то что мне довелось поработать над этим проектом и подчерпнуть весь этот опыт. Также спасибо А. за то, что написал часть про модуль для встроеных покупок.
Читать дальше

Автоматическое тестирование iOS приложений

Время на прочтение6 мин
Охват и читатели30K
image
Бывает, наступает момент, когда нужно следить, не развалился ли лишний раз интерфейс мобильного приложения. Чтобы решить эту проблему используются автоматические тесты. Для веб страниц считается общепринятой практикой использовать Selenium Web driver, поэтому для мобильных приложений я искал похожие вещи. И, на счастье, таких нашлось немало, в них используется Selenium WebDriver JSON Wire Protocol.
Читать дальше →

Преодолеваем скрытые опасности KVO в Objective C

Время на прочтение21 мин
Охват и читатели27K
The major difference between a thing that might go wrong and a thing that cannot possibly go wrong is that when a thing that cannot possibly go wrong goes wrong it usually turns out to be impossible to get at or repair.
— Douglas Adams


Objective C существует уже с 1983 года и является ровесником C++. Однако, в отличие от последнего он начал приобретать популярность только в 2008 году, после выхода iOS 2.0 — новой версии операционной системы для революционного iPhone, включавшей приложение AppStore, позволяющее пользователям приобретать приложения, создаваемые сторонними разработчиками.
Дальнейший успех Objective C обеспечивался не только популярность устройств на базе iOS и относительной легкостью продаж через AppStore, но и значительными усилиями компании Apple по совершенствованию как стандартных библиотек, так и самого языка.
Согласно рейтингу TIOBE к началу 2013 года Objective C обогнал по популярности C++ и занял третье место, уступая только C и Java.

На сегодняшний день Objective C включает и такие относительно старые функции как KVC и KVO, существовавшие еще за 4 года до выхода первого iPhone, и такие новые возможности как блоки (blocks, появившиеся в Mac OS 10.6 и iOS 4) и автоматический подсчет ссылок (ARC, доступный в Mac OS 10.7 и iOS 5), которые позволяют с легкостью решать задачи, вызывавшие серьезные трудности ранее.

KVO — это технология, позволяющая незамедлительно реагировать в одном объекте (наблюдателе) на изменения состояния другого объекта (наблюдаемого), без внесения знаний о типе наблюдателя в реализации наблюдаемого объекта. В Objective C, наряду с KVO, существует несколько способов решения этой задачи:

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

XSS'им iOS устройства на примере софта от Facebook, Google, ВКонтакте

Время на прочтение4 мин
Охват и читатели19K
Данный фиче-баг схож с историй про отправку сообщения в Facebook от любого юзера — известен, но не получил широкую огласку. Получилось так, что нашел я его сам, а уже потом нашел информацию о нём в интернетах. Но обо всем по порядку...

# intro


Темной, холодной и дождливой Питерской ночью обнаружил я забавный баг, которому оказались подвержены приложения от Facebook, Google, ВКонтакте и скорее всего, от многих других производителей. Для его объяснения нам просто необходимо знать немного теории.
Читать дальше →

Ломаем iOS-приложение! Часть 2

Время на прочтение21 мин
Охват и читатели49K
В первой части мы изучили некоторые вопросы безопасности хранения и передачи данных. Теперь переходим к защите исполняемого кода. Мы будем модифицировать функционал iOS-приложения во время выполнения и проделаем реверс-инжиниринг. И снова, помните! Наша цель — не стать гадким взломщиком, а защитить ваше приложение и пользователей от злонамеренных действий. Для этого нужно понять, что может сделать взломщик.

Много текста и картинок

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

Как я делал свой фотошеринг с геолокацией и блэкджеком

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

Гонки на яхтах и пристрастие к наркотикам в долгосрочной перспективе обходятся дешевле, чем неконтролируемое создание программного обеспечения. (Алан Купер).

Привет, Хабр!

Хочу рассказать историю о том, как меня покусал стартапер и я тоже начал тратить деньги с непредсказуемыми последствиями. Виной всему, конечно, чтение Хабра, H&F, Цукерберга и прочих будоражащих воображение техносайтов. Черт возьми, пока я сижу в офисе и оцениваю стоимость какого-то безумного завода в Самаре, мимо проходит динамичная жизнь – интересные веб-технологии, мобильность, миллиардные сделки – загорание глаз было вопросом времени.

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

Multipeer connectivity framework в iOS7

Время на прочтение3 мин
Охват и читатели18K
Multipeer Connectivity Framework передает текстовые сообщения, потоки и файлы между iOS устройствами, находящимися рядом. Для этого используются WiFi сети, прямое WiFI соединение и Bluetooth. То есть интернет не требуется.

Фреймворк позволяет взаимодействовать устройствам из разных сетей, например у смартфона №2 включен только WiFi, а у №3 только Bluetooth. Если в радиусе доступности этих устройств будет третий смартфон с включенным Wifi и Bluetooth, смартфоны №2 и №3 смогут прозрачно обмениваться
данными.


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

О бедном Puzzle замолвите слово. Обзор представителей самой популярной категории детских приложений

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

Puzzle, наверное, самый популярный жанр приложений для детей. Такой проект есть почти у всех начинающих разработчиков. Логика проста — дети любят пазлы, техническая реализация сравнительно не сложная — почему бы и нет. К сожалению, в итоге, количество низкокачественных поделок на эту тему в AppStore зашкаливает и родителям очень сложно найти что-то достойное и полезное для своих детей.
Поэтому, заручившись поддержкой большинства читателей в первом обзоре полезных детских приложений, предлагаем вашем вниманию три наиболее привлекательные и эффективные в плане обучения игры-пазлы, выпущенные в 2013 году.
Читать обзор

Испытание прототипа Медиа-центра iLook

Время на прочтение3 мин
Охват и читатели5.3K
Несмотря на проблемы, трудности и всяческие злоключения, разработка нашего «больше чем ридера» продвинулась далеко вперед. Мы полностью завершили работы по созданию архитектуры проекта, доработали механизмы взаимодействия с платформой iLook и существенно продвинулись в разработке мобильных приложений. Но самое главное: мы завершили работы по созданию «сердца» нашего Медиа-центра — серверную часть ридера с открытым API. И сегодня мы приглашаем вас присоединиться к проверке работоспособности боевого API на стенде-прототипе.

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

Опыт создания кроссплатформенной игры (iOS/Android)

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

  Данный пост будет полезен разработчикам, которые только встали на радужный путь геймдева. В нашем недавнем посте уже было рассказано о первоначальных шагах нашей dream team в сфере игройстроя. Как и обещали, работаем в этом направлении дальше и решили попробовать себя в другом жанре игр. Далее будут кратко освещены некоторые моменты создания и публикации игры на двух платформах iOS и android.

Дать посту шанс...

Core Data для iOS. Глава №4. Теоретическая часть

Время на прочтение19 мин
Охват и читатели33K
Хабралюди, добрый день!
Сегодня хочу начать написание ряда лекций с практическими заданиями по книге Михаеля Привата и Роберта Варнера «Pro Core Data for iOS», которую можете купить по этой ссылке. Каждая глава будет содержать теоретическую и практическую часть.



Содержание:

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

Ломаем iOS-приложение. Часть 1

Время на прочтение13 мин
Охват и читатели75K
Вы хорошо поработали, и вот ваше приложение в App Store!

  • Храните учётные записи юзеров?
  • Используете встроенные покупки?
  • Не хотите показывать своё ноу-хау?

Повод задуматься о безопасности кода и данных! Мы будем искать уязвимости в тестовом приложении. В этой статье поговорим о безопасности данных, а в следующей — перейдём к коду.
Много текста и картинок