iOS7

До релиза iOS 7 осталось совсем чуть-чуть! Это самое крупное обновление мобильной яблочной операционки за всю историю её существования. Для пользователя сей факт означает лишь одно — придётся привыкать к новому внешнему виду и незначительным изменениям во внутренней работе системы, а вот разработчикам скорый релиз светит проблемами, причём очень серьёзными.

Принципиально новый дизайн, куча оригинальных киллер-фич, более 1500 новых API — всё это нужно освоить и научиться применять в своём приложении. Фактически, каждый разработчик, рассчитывающий в приемлемые сроки выпустить обновлённое приложение под обновлённую ОСь, вынужден сейчас отложить всё и пилить свой продукт под семёрку. Но стоит ли оно того? Предлагаем вам мысли 7 успешных разработчиков о плюсах и минусах перехода в полностью обновлённую систему.

Разработчик №0: создатель нескольких популярных фотоприложений

Минусы: Переход на новую версию iOS — это всегда вызов. Не потому, что новые API трудны для понимания, а потому, что как разработчик ты настолько увлечён новыми возможностями, что почти забываешь о необходимости поддержки предыдущей версии. Все эти новые крутые средства разработки не будут доступны тем, кто ещё не обновился (или не собирается обновляется вообще). К сожалению, при наличии серьёзной пользовательской аудитории вы не можете просто взять и заставить всех единовременно обновиться.

Ещё одним минусом транзита приложения на iOS 7 является необходимость переосмысления самого подхода к анимации и обработке изображений. Многие вещи становятся проще с новыми API, особенно если вы разрабатываете приложения для работы с изображениями. С выходом iOS 7 твоё детище может взять на вооружение эту новую крутую анимацию и другие твики, и как разработчик ты не хочешь упустить ни единой новой возможности, которую можно интегрировать в приложение. Однако, на этот раз встаёт вопрос обучения — с таким объёмом нововведений учиться придётся долго. Конечно, ты можешь оставить интерфейс без изменений, но кто-то другой изучит всё новое и покажет это в своих продуктах, сделав более привлекательными свои приложения.

Плюсы: Из положительных моментов стоит выделить увеличившийся простор для креатива, как с позиции стиля, так и с позиции разработки и, опять же, простота — в стиле и разработке. Apple предложили решения для борьбы с самыми распространёнными проблемами, с которыми мы, разработчики, сталкиваемся каждый день. Это не просто +1 в порядковом номере версии системы — Apple очень детально разбирались с проблемными местами, пытаясь упростить всё, что только можно. В результате мы получаем чудесные новые инструменты для разработки, а Apple — стабильность, высокую производительность и притягательность как в своей операционной системе, так и в продуктах в целом.

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

Разработчик №1: создатель нескольких безумно популярных приложений для фитнеса

Минусы: Поддержка iOS 7 — это безусловно серьёзное вложение сил и средств. Мы работали над адаптацией наших приложений под iOS 7 ещё с WWDC. Из-за этого нам пришлось отложить множество запланированных улучшений, но мы верим в целесообразность приведения дизайна наших продуктов в соответствие с принципами iOS 7.

От некоторых разработчиков мы слышали вещи наподобие «приложения должны поддерживать только iOS 7», и нам кажется, что это большая ошибка. Мы тратим время и силы для обеспечения корректной работы наших продуктов на iOS с 5 по 7, причём в рамках одного приложения. Сохранение лояльности пользователей, когда-либо установивших наши приложения — это чрезвычайно важно. Большинство наших пользователей наверняка мигрируют на iOS 7 за несколько месяцев, но кому-то потребуется больше времени, и мы не хотим, чтобы для них это вылилось в проблему дальнейшего использования наших продуктов.

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

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

Разработчик №2: создатель медицинского программного обеспечения, появлявшегося ранее в рекламных кампаниях Apple

Говоря о транзите приложений в новую ОС мы затрагиваем два момента: написание новых приложений и адаптация текущих iOS 6 приложений под новую версию системы. В случае с переносом существующих приложений вопрос о плюсах и минусах не встаёт вообще — вы просто должны это сделать. Пользователь обновился и у него больше не работает ваше приложение? Это большая проблема для вас. Если же речь идёт о создании приложения с функциями, появившимися в iOS 7, то здесь можно говорить о плюсах и минусах.

Минусы: Формально iOS 7 совместима с iPhone 4, но на практике тормозит на нём. Это означает неминуемую потерю части аудитории. Пользователи этих устройств знают о возможных проблемах и вряд ли будут переходить на iOS 7. Игнорировать тех, кто останется на iOS 6 — значит потерять их. В случае с пользователями iPhone 3GS и аналогичных iPod возможность перехода вообще исключена, и делать приложение, ориентированное только на iOS 7, означает гарантированную потерю этих пользователей.

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

Некоторые из новых фишек будут работать лишь на определённых (самых свежих) устройствах. Даже если устройство официально поддерживает iOS 7, оно может не поддерживать некоторые из функций iOS 7. Предположим, что AirDrop несовместим с iPad 2 и 3, iPhone 4 и 4S, а также аналогичными iPod. Если ваше приложение использует AirDrop SDK, то вам нужно позаботиться о том, чтобы пользователи как-то узнали об ограничениях в работе приложения на их устройствах. А ещё ваше приложение не должно вылетать при обращении к этой функции в случае, если на самом устройстве она не поддерживается.

Плюсы: В целом всё новое так или иначе разрушает что-то существующее и устоявшееся. Это естественный порядок вещей. Из привлекательных нововведений iOS 7 можно назвать AirDrop и запись видео с частотой 60 FPS. Мультитаскинг позволит реализовать более грамотное использование ресурсов процессора. Приложения станут более независимыми и смогут делать что-то нужное и полезное в неактивном режиме. И, конечно же, новый уровень поддержки социальных сетей означает большие возможности для приложения в этом важном сегменте.

Разработчик №3: создатель одного из самых популярных сканеров/OCR приложений

Наша команда — это 4 независимых разработчика. Мы делаем высококачественные приложения для визуализации, а также для увеличения продуктивности. Как следствие, для нас крайне важно двигаться навстречу новому дизайну iOS. В данный момент мы сосредоточились на одном достаточно молодом приложении, которое адаптируется под новую iOS.

Минусы: На самом деле, переход на iOS 7 стал для нас неожиданностью. По крайней мере, мы не ожидали, что это потребует таких усилий для уже существующих приложений (нам кажется, что в случае с новыми приложениями всё будет проще). Нам пришлось полностью изменить календарь планируемых задач и релизов. Трудно сказать, как это отразится на бизнесе, но мы уверены, что бездействие на в данной ситуации гарантированно сыграло бы не в нашу пользу. Гармония операционной системы и приложения определённо понравится нашим пользователям, и поэтому сейчас мы работаем в этом направлении.

Трудно принимать решения в плане дизайна, когда у тебя так мало знаний и примеров из грядущего обновления. Мы много экспериментируем. нам хотелось бы увидеть больше из iOS 7. На самом деле, официальные приложения Apple не всегда хорошо выглядят и работают в бетах, а иногда и совершенно не к месту в них (бумажные текстуры Reminders и Notes в новом плоском мире?).

Кроме того, некоторые API не задокументированы и трудны для понимания. Работа некоторых функций в сторонних приложений не ясна, и Apple не даёт каких-либо пояснений. Быть в авангарде разработки трудно.

Плюсы: Мы начали разработку под iOS 7 с плохим настроением. Нам не нравились многие решения, использованные Apple, но с течением времени мы с удивлением обнаружили, что эти изменения нравятся нам всё больше и больше (хотя некоторые вещи нам неприятны до сих пор).

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

Одновременная поддержка iOS 6 и 7 показалась нам очень сложной, поэтому было принято решение сфокусироваться только на iOS 7. Благодаря этому нам также гораздо проще применять новые функции и возможности iOS 7.

Разработчик №4: создатель популярного приложения для «умного дома»

Минусы: Их не так уж много, хотя затраты на переработку графического пользовательского интерфейса оказались выше, чем ожидалось. Ну а выслушивание издёвок от пользователей Android вообще нельзя назвать приятным.

Плюсы: Нам кажется, что iOS 7 выглядит современно, а это значит, что разработчики, следуя новой парадигме iOS, будут выпускать соответствующие приложения. Кроме того, мы ожидаем увидеть новый всплеск загрузок из App Store, так как пользователи начнут искать практические реализации новых функций iOS 7. Что касается, разработки, то возможность выполнять действия в приложении даже тогда, когда оно в фоне, хоть и ограничена, но представляется очень перспективной. Также радует рост возможностей в создании пользовательских интерфейсов, усовершенствованная работа с данными в iCloud, AirDrop для обмена документами с другими устройствами, а также усовершенствованные возможности OpenGL. Теперь отрисовка графических объектов станет быстрее.

Разработчик №5: создатель одного из самых популярных списков задач

Минусы: Когда мы впервые запустили наше приложение на iOS 7, нам не потребовалось много времени для осознания того, что работы у нас впереди куда больше, чем мы предполагали. Приложение выглядело неуместным и ощущалось неуместным в новой среде. Как и многие разработчики, мы тут же начали работу по обновлению приложения для iOS 7.

Много было написано о том, что iOS 7 ориентирована на контент, и в этом есть правда. Хром и лишние элементы здесь неуместны. Наше перегруженное дизайном приложение смотрелось как чужеродный объект, запущенный в симуляторе на другой системе. Даже переход к Helvetica и тотальное облегчение в дизайне и иконках в совокупности с акцентом на контент не очень сильно исправили ситуацию.

Самым большим испытанием для нас стала попытка следовать новому дизайну, не становясь при этом пустым клоном других приложений. От этого будут страдать все ранние разработки под iOS 7 — они будут одинаковыми.

Уместный выход за рамки правил станет ключом к успеху продукта.

Что касается кода, то тут всё не так страшно, даже несмотря на незадокументированные API, меняющие принцип работы между релизами очередных бета-версий.

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

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

Разработчик №6: опытный iOS и Android разработчик, автор руководств и учебников по программированию

Минусы: iOS 7 безусловно является наиболее кардинальным обновлением от Apple. До последнего момента процесс миграции приложения со старой версии ОС на более новую был практически безболезненным. В большинстве случаев приложение «просто работало» в обновлённой системе. Однако, с iOS 7 Apple наконец-то приняли решение порвать с прошлым и двигать свою платформу вперёд. Это определённо победа для Apple, и это будет победой для разработчиков, но не без страданий.

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

Лучший способ размышления над новым дизайном и внешним видом — представить, что прошлых версий iOS вообще не было, и Apple только что выпустила свою мобильную ОС.

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

В частности, Apple изменила то, как статус-бар взаимодействует с приложениями, и это доставит приличную головную боль. Раньше эта область была вне компетенции разработчиков (хотя вы и могли при желании спрятать её), но теперь приложения должны использовать статус-бар для отображения информации, и это само по себе серьёзное изменение.

Плюсы: В iOS 7 есть действительно классные вещи, такие как задачи в фоне и p2p функционал для Bluetooth. Peer-to-peer очень интересен, поскольку открывает большие возможности для реализации взаимодействия между устройствами при их непосредственной близости. Ранее для реализации подобных вещей приходилось прилично изворачиваться. Работа в фоне — это очень здорово. Таким образом iOS выравнивается в этом плане с Android. Разработчики смогут использовать эти возможности для более эффективной работы приложений. Единственное, что заботит меня здесь — время работы аккумулятора, и будет особенно актуально для пользователей не совсем новых устройств с уже успевшими выработать часть ресурса батареями. Изначально Apple запрещали подобные вольности для приложений, но теперь всё меняется. Уместность такого решения покажет лишь время.

Говоря коротко, я рекомендую разработчикам как можно скорее включиться в поддержку iOS 7. Оставаться только на iOS 6 — абсолютно не вариант, равно как и сохранять старый дизайн своих приложений. Apple будет переводить средства разработки на Xcode 5, и как только это произойдёт, одновременная работа в двух средах тут же даст о себе знать. Я считаю, что лучшим из вариантов был и остаётся скорейший переход на новейшие инструменты, которые Apple предоставляет в пользование разработчикам. Также я рекомендую полностью отказаться от поддержки iOS 4 и 5 — затраты на эти устаревшие платформы просто не окупятся, либо окупятся с минимальной выгодой. Я предполагаю, что iOS 7 приживётся довольно быстро, и оптимальным временем для прекращения поддержки iOS 6 видится уже начало следующего года.

(via)