25
Практический опыт подготовки productivity приложений для iOS 9 Андриан Буданцов

Андриан Буданцов (Readdle): Практический опыт подготовки productivity приложений для iOS 9

Embed Size (px)

Citation preview

Практический опыт подготовки productivity приложений для iOS 9

Андриан Буданцов

Readdle

iOS

• Сейчас — бета 5

• ~ третья среда сентября, 16.09.2015

• по релизам iOS 6,7,8

Цели для разработчиков• Минимум: не хуже чем на iOS 8

• Хорошо:

• реализованы новые возможности заметные пользователю

• Отлично:

• использованы новые технологии делающие лучше приложение или код

Xcode 7• Xcode 7

• новые warnings

• Objective-C

• nullables

• Generics

• Swift 2

• Включите Treat Warnings as Errors

• Build and Analyze

Drop iOS 7• Поддерживаем One Release Back

• от сентября до июня

• июнь-сентябрь: только текущий

• Пользователи не обновляющие iOS не покупают приложения

• Поддержка старой iOS = Технологический долг

Deprecated in iOS 8

• Rotation / Orientation (View Controller)

• ~ UIAlertView / UIActionSheet

• NSOperation threadPriority

• NSData getBytes

Минимум• App Transport Security

• canOpenURL:

• Minor UI / API issues

• IPv6

• …

App Transport Security

• Ограничения для NSURLSession

• endpoints должны быть https:// с хорошо настроенным TLS

• или

• ключи в Info.plist должны отключать проверки

canOpenURL:• В iOS 9 запрещен, без указания whitelist в

Info.plist

• Ключ в Info.plist

• LSApplicationQueriesSchemes

• Отключить / обновить системы статистики, многократно вызывающие canOpenURL:

• не пускают в App Store уже сейчас

IPv6• WWDC 2015:

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

Productivity фичи iOS 9

• Multitasking • Search

Multi-Tasking• Slide-Over

• iPad Air / Mini 2 и новее

• Split-Screen

• iPad Air 2 и наверное новые

• Picture in Picture

• iPad Air / Mini 2 и новее

Split-Screen / Slide-Over: основная идея

• Size Classes / UITrait* (iOS 8)

Split-Screen / Slide-Over: приготовление

• базовые требования: LaunchScreen в xib, поддержка всех ориентаций, etc

• прекратить проверять userInterfaceIdiom в UI

• проверка trait collection вместо него

Split-Screen / Slide-Over: реализация

• applicationDidResignActive

• вызывается при изменении размера

• UITraitEnvironment

• подход 1: UIViewController / UIView

• подход 2: UIWindows -> пересоздание UIViewControllers, восстановление состояние

Search: User Activity

• App Activities and States (NSUserActivites)

• NSUserActivity.eligibleForSearch

• NSUserActivity.keywords

• NSUserActivity должен продолжать жить после becomeCurrent

Search: Core Spotlight

• CSSearchableItem

• CSSearchableIndex

Search: Core Spotlight

• Синхронизации Core Spotlight и индекса приложения:

• количество элементов

• последняя запись в индексе

iOS 9, Nice to Have• Open In in Place

• App Thinning

• Coalesced Touches / Predicted Touches

• New Extensions

• Web Markup

• Universal Links

• Support for Right-to-Left languages

App Thinning

• Slicing (Asset Catalog)

• On-Demand Resources

• Bitcode

Рекомендации• developer.apple.com/wwdc

• asciiwwdc.com

• 205 Getting Started with Multitasking on iPad in iOS 9

• 212 Optimizing Your App for Multitasking on iPad in iOS 9

• 709 Introducing App Search

• 703 Privacy and Your App

• 404 App Thinning in Xcode

• Objective-C in 2015: http://bit.ly/1KUJwm1

к выходу iOS 10

• Отказ от NSURLConnection API

• Переход на новый Contacts API вместо Address Book

• Отказ от UIPopoverController

• …

Вопросы? Комментарии?

Андриан Буданцов @andrianbdn [email protected]

Андриан Буданцов @andrianbdn

Спасибо за внимание!