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

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

Apr 12, 2017

Download

Technology

Provectus
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Андриан Буданцов (Readdle): Практический опыт подготовки productivity приложений для iOS 9

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

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

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

Readdle

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

iOS

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

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

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

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

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

• Хорошо:

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

• Отлично:

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

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

Xcode 7• Xcode 7

• новые warnings

• Objective-C

• nullables

• Generics

• Swift 2

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

• Build and Analyze

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

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

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

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

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

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

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

Deprecated in iOS 8

• Rotation / Orientation (View Controller)

• ~ UIAlertView / UIActionSheet

• NSOperation threadPriority

• NSData getBytes

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

Минимум• App Transport Security

• canOpenURL:

• Minor UI / API issues

• IPv6

• …

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

App Transport Security

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

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

• или

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

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

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

Info.plist

• Ключ в Info.plist

• LSApplicationQueriesSchemes

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

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

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

IPv6• WWDC 2015:

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

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

Productivity фичи iOS 9

• Multitasking • Search

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

Multi-Tasking• Slide-Over

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

• Split-Screen

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

• Picture in Picture

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

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

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

• Size Classes / UITrait* (iOS 8)

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

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

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

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

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

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

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

• applicationDidResignActive

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

• UITraitEnvironment

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

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

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

Search: User Activity

• App Activities and States (NSUserActivites)

• NSUserActivity.eligibleForSearch

• NSUserActivity.keywords

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

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

Search: Core Spotlight

• CSSearchableItem

• CSSearchableIndex

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

Search: Core Spotlight

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

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

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

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

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

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

App Thinning

• Slicing (Asset Catalog)

• On-Demand Resources

• Bitcode

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

Рекомендации• 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

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

к выходу iOS 10

• Отказ от NSURLConnection API

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

• Отказ от UIPopoverController

• …

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

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

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

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

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

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