Обновить
65.49

iOS *

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

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

ADCSpb #11. Встреча iOS-разработчиков в Петербурге

Время на прочтение1 мин
Охват и читатели2.3K
27 февраля в 18:30 в Санкт-Петербурге состоится одиннадцатая встреча Apple Developers Community.
Как и последние несколько встреч, организуем мы ее вместе с нашими друзьями из JetBrains.

Если обычно мы делаем доклады для массового мобильного разработчика, то в этот раз решили организовать встречу для профессионалов с серьезным контентом.

image

В программе:

  • «ReactiveCocoa и MVVM» — Юрий Буянов, e-Legion
  • «iOS Development Gems in AppCode» — Алексей Ушаков, JetBrains
  • «Отладка приложений с помощью dtrace» — Станислав Краснояров, Redsteep
  • «Objective-C Runtime в примерах» — Алексей Сторожев, e-Legion

Как всегда, участие бесплатное, необходима лишь регистрация на странице мероприятия.

Четвертая бесплатная iOS-школа в Петербурге

Время на прочтение1 мин
Охват и читатели9.4K
12 марта стартует 4-ая бесплатная школа iOS-разработчиков. Курс предназначен для программистов, имеющих базовые знания ООП и языка С. Всего будет набрано 15 человек. Занятия будут проходить в нашем офисе, наличие Mac'a (или Win+vmware) обязательно.

image

Для обучения необходимо на странице школы выполнить тестовое задание и прислать его вместе с заполненной анкетой до 10:00 24 февраля. До 7 марта придет ответ, прошли ли вы отбор.

Занятия будут проходить 2 раза в неделю, вечером в среду и в субботу. Преподавателями будут наши гуру iOS-разработки — Юра digal Буянов и Алексей storoj Сторожев.

Дополнительная информация доступна на официальной странице.

Xcode и Travis: запуск тестов на множестве конфигураций

Время на прочтение7 мин
Охват и читатели8.5K
Основную идею данной заметки в принципе можно уместить в одном предложении: «раз уж вы пишете тесты, то неплохо было бы прогонять их на всех возможных конфигурациях, а не на одной единственной». Но поскольку формат однострочных статей на хабре не принят, а информация усваивается пропорционально логарифму количества слов в объяснении, то раскрою мысль подробнее.

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

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

Время на прочтение22 мин
Охват и читатели20K
Обычно, делая фотографии, вы не задумываетесь, как оформите их потом. Вы фотографируете просто потому, что хотите поймать момент. Скажем, одну из фотографий вы затем распечатали, потом решили поместить в рамку с необычным стеклом. Но позже вы могли бы поместить ту же фотографию в другую рамку, если бы захотели. Даже несмотря на то, что вы изменили рамку, картинка осталась той же, потому что вы просто что-то добавляли к ней, но не изменяли ее при этом.

В объектно-ориентированном программировании заимствовали похожую идею добавления поведения к другим объектам без потери их исходных особенностей, т. е. расширенный объект будет улучшенной версией того же самого класса (фото в рамке). Любое «улучшение» (рамка) может быть наложено и снято динамически. Мы называем этот паттерн проектирования Декоратором, так как декоратор может добавляться к другому декоратору или исходному объекту для расширения его свойств, оставив исходное поведение нетронутым.

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

Как я FOV измерил без циркуля и линейки

Время на прочтение2 мин
Охват и читатели41K
image
Во дворе мы играли в войнушку. Слабые и толстые были фашистами, остальные их побеждали. Двор и детство исчезли, а воевать хочется.

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

Стоп! А как привязать врагов к окружающей действительности?

Я сделал это очень просто.
Читать дальше →

Разработка мобильных приложений. Зачем это бизнесу?

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

Разработка мобильных приложений для бизнеса. Нужно ли бизнесу мобильное приложение?


Я бы очень хотел ответить на этот вопрос и помочь небольшим фирмам, которые всё ещё в процессе нахождения ответа. В большинстве случаев, когда я общался с коллегами по цеху (разработка мобильных приложений), я всегда спрашивал у них — А зачем эта компания заказала у Вас мобильное приложение? — потому что я и вправду не понимал, зачем тратить такие деньги?



В 90% случаях нашего общения, ответы был такой:
Повысить лояльность и имидж для компании, у других компаний таких приложений нет и т.д.
Мне стало достаточно интересно, потому что какие бы инструменты в бизнесе не были, всё надо делать для того, чтобы они повышали продажи. Звучит достаточно грубовато, но я говорю немного про другое. Хороший качественный продукт тоже повышает продажи (сарафан), а не только скрипты и опыт продажника. Если у Вас хорошо покупают, значит и делаете Вы всё круто и правильно (если только это, конечно, не полный развод, запрещённые сферы деятельности и т.п.).
Читать дальше →

Как я написал и выпустил книгу по разработке игр под iOS

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


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

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

Collapsar — лайфхак для пользователей Twitter

Время на прочтение2 мин
Охват и читатели6K
Всем привет, это снова мы — команда HackStore. Мы продолжает вести активную разработку новой версии нашего магазина, но сегодня речь пойдёт о другом нашем продукте, который мы выпустили буквально на днях, и это новый Twitter-клиент — Collapsar.


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

Создаем клон игры Flappy Bird, используя движок физики iOS7

Время на прочтение2 мин
Охват и читатели53K
#FlappyBird — И этим все сказано!



Эта игрушка невероятно проста, но в тоже время содержит добротную смесь развлечения и негодования присущее играм 90-х, таким как Double Dragon 3, и Teenage Mutant Ninja Turtles. После того как Dong Nguyen объявил о том, что собирается убрать игру из app store, мне стало интересно насколько сложно воссоздать физику и взаимодействие с помощью нового физического движка iOS7. Я написал эту статью потому, что многие разработчики даже не знают, что IOS 7 имеет встроенный физический движок — UIKit Dynamics.
Читать дальше →

Как написать свой компонент для iOS

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

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

Newsstand app. Создание iOS журнала

Время на прочтение9 мин
Охват и читатели9K
Последнее время я занимался разработкой iOS версии одного бумажного журнала. Собственно, это и есть попытка раскрыть сию тему.

Начну со вступления. Что же такое Newsstand? Откуда возникла такая сущность и во что она превратилась? Размышляя, пришел к следующему: это версия журнала, обернутая в iOS программу, отличается от pdf просто невменяемым размером. Одна из причин — огромная куча картинок. Однако, эта куча и создает глянец iOS журнала. Причиной же появления идеи Newsstand, я так понимаю, была позиция Apple, относительно прав собственности на некий контент. Т.е. была задача честно (часто платно) распространять периодику, да так, чтоб ее было трудно копипастить. Эти ребята с задачей справились — полагаю нету электронного издательства с большим денежным оборотом, чем Newsstand (если так можно сказать).
Читать дальше →

С любовью к дизайнерам: внедряем веб-формы в мобильное приложение

Время на прочтение5 мин
Охват и читатели13K
При разработке мобильного приложения для проекта, которому приходится работать с большим количеством внешних систем, неизбежно возникают ситуации, в которых приходится проявлять находчивость и смекалку. Особенно часто такие ситуации возникают при попытках реализовать программно полет мысли дизайнера с учетом технических особенностей таких систем. О том, как мы решаем такие задачи при работе над мобильным приложением Денег Mail.Ru, мы расскажем в этой статье.


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

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

Эволюция HeadHunter на iOS

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

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

С самого рождения в феврале 2012 года приложение переживало трудное детство.
Первую версию приложения разрабатывали внешние подрядчики. Однако, отношения с ними у нас не сложились, и какое-то время приложение жило своей самостоятельной жизнью. А в феврале 2013 года за него взялась наша команда мобильной разработки, которая к этому времени уже активно занималась разработкой приложения HeadHunter для Android.

Первая версия приложения имела:
  • около 16 тысяч пользователей (судя по загрузкам);
  • невероятное число падений;
  • неизвестное количество реальных пользователей и их проблем.

Как вы понимаете, пользоваться таким приложением могли очень лояльные к сервису hh.ru люди, поэтому было принято решение выходить на новый качественный уровень.
Читать дальше

Из App Store удаляют приложения, использующие IDFA, но не показывающие рекламу

Время на прочтение2 мин
Охват и читатели30K
Вчера Хабр писал о том, что Google Play стал удалять приложения за альтернативные способы приёма платежей, а сегодня стало известно, что Apple на минувшей неделе также начала вычищать App Store. Удалению подверглись приложения, которые получали IDFA (Identifier for Advertisers) пользователей, но не показывали ему никакой рекламы. IDFA сейчас самый популярный способ отслеживания пользователей на платформе, идентификатор пришел на смену UDID.

Весь 2013 год прошел для Apple под знаком перевода разработчиков на его использование – компания запрещала приложения с куки, получение MAC адресов устройств и т.п. Сейчас, когда большинство приложений перешли на него, Apple идет дальше и начинает учить разработчиков правильному его использованию.

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

UICollectionView или танцы с волками

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

The dream


UICollectionView — класс UIKit, появившийся в iOS 6. Строго говоря, это класс, позволяющий показывать на экране коллекцию айтемов. Структура коллекции — абсолютно произвольная, но обычно UICollectionView используется для всяких сетко-подобных контролов с ячейками, хедерами и футерами. Понимая, насколько абстрактен данный класс, разработчики Apple создали мощный механизм для создания любых лейаутов. По большому счету, даже UITableView это конкретная реализация UICollectionView. Возможности данного класса, в каком-то смысле, фантастические. Но в данной статье речь пойдет не об этом.

Ахиллесова пята разработчиков Apple — постоянное стремление делать СДК, которое будет работать «автомагически». Просто сделайте то-то и то-то, и класс «will do the right thing». К сожалению это работает далеко не всегда. И UICollectionView — яркий пример. Начиная с релиза в iOS 6 и по сегодняшний день (iOS 7.0.4) класс содержит довольно большое количество багов, с которыми очень трудно и неприятно иметь дело. Приходится угадывать, что же происходит «под капотом», и методом тыка заставлять UICollectionView работать как надо. Количество приобретенных костылей уже достигло таких размеров, что я решил поделиться известными багами и найденными решениями.

Кому интересно — милости просим под кат.
Читать дальше →

История собаченьки. Создание персонажа для новой игры «Эволюция: Битва за Утопию»

Время на прочтение6 мин
Охват и читатели25K
Каждая игра, будь то маленький инди-проект или глобальная игра ААА класса, начинается с предпродакшена. Это, если вы не знали, смутное время, когда разработчики пытаются понять, что за игру, собственно, они собираются делать. Будучи художником, я очень люблю этот этап разработки, поскольку именно в этот период процесс еще не встал на отлаженную колею, нет выматывающей рутины и можно креативить от души.

Большая часть предпродкашен идей отправляется в корзину, но и среди этого потока иногда можно выловить нечто ценное, что в итоге попадает в проект и оживает в игре. Собственно, именно о таком случае и пойдет речь в этой статье. Я разделил ее на несколько хронологических этапов, чтобы вы поняли, что процесс разработки «размазан» по времени и у некоторых заданий нет четких временных рамок.


Итак…
Читать дальше →

«Эволюция: Битва за Утопию»: от идеи до релиза

Время на прочтение8 мин
Охват и читатели42K
В январе мы запустили новый проект — игру для iOS-устройств «Эволюция: Битва за Утопию». Это вторая мобильная игра студии ITT после «Джаггернаута: Месть Соверинга». На этот раз мы ушли от фэнтези и сделали проект с сеттингом в жанре постапокалиптического sci-fi.

«Эволюция» уже появилась в App Store (пока только для игроков в России и СНГ), и я хочу поделиться с сообществом историей создания этой необычной игры.

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

10 малоизвестных возможностей Objective-C

Время на прочтение7 мин
Охват и читатели46K
Приветствую уважаемых хабражителей!

Objective-C — язык с богатым рантаймом, но в данной статье речь пойдёт не о содержимом хедера <objc/runtime.h>, а о некоторых возможностях самого языка, о которых многие разработчики и не догадываются. Да, на них натыкаешься, читая документацию, отмечаешь про себя «хм, интересно, надо как-нибудь копнуть», но они обычно быстро вылетают из головы. А начинающие разработчики часто вообще читают документацию наискосок.

В этой статье я собрал 10 удивительных на мой взгляд свойств языка Objective-C. Некоторые свойства самоочевидны, некоторые далеко не таковы. За использование некоторых в боевом коде надо бить по рукам, другие же способны помочь в оптимизации критических мест кода и в отладке. В конце статьи имеется ссылка на исходник, показывающий на примере все эти фичи.

Итак, начну с самого «вкусного» на мой взгляд: безымянные методы.

1. Безымянные методы


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

Создание твика на примере приложения Телефон. Да будет плюс!

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

Предыстория


После выхода iOS 7 некоторые пользователи начали жаловаться на проблемы с приложением Телефон. Суть проблемы в том, что при наборе номера в международном формате +375 (код) xxx-xx-xx не удается набрать '+'. Если удерживать '0', то вместо плюса получаем комбинацию из трех пальцев '0+'. Проблема скорее всего локальна, так как кроме пользователей из Беларуси больше никто свое недовольство не высказывал.

По разным причинам я долго не обновлялся до iOS 7. Но обновившись был неприятно удивлен. Проблема осталась, несмотря на выход нескольких минорных обновлений. Почитав форумы, нашел следующие варианты решения этой проблемы:
  1. использовать 8 при наборе номера
  2. использовать 00
  3. удерживая '0', нажать кнопку удалить до появления плюса

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

И тогда я решил исправить это маленькое недоразумение с помощью твика.
Читать дальше →