27
Adapting iOS 8 Aviel Lazar @aviellazar TLV iOS Developers Meetup

Adapting iOS 8 in iOS 7 Apps

Embed Size (px)

DESCRIPTION

Guidelines, gotchas and some cool stuff to consider when making your app ready for iOS8.

Citation preview

Page 1: Adapting iOS 8 in iOS 7 Apps

Adapting iOS 8

Aviel Lazar @aviellazar  

TLV iOS Developers Meetup

Page 2: Adapting iOS 8 in iOS 7 Apps

Your iOS7 apps

•  Work!

•  Don’t look deprecated

•  And yet…

Page 3: Adapting iOS 8 in iOS 7 Apps

Privacy Permissions Attack

Page 4: Adapting iOS 8 in iOS 7 Apps

Permissions Attack #1 Camera

Page 5: Adapting iOS 8 in iOS 7 Apps

Always vs. While in Use

Permissions Attack #2 Location

Page 6: Adapting iOS 8 in iOS 7 Apps

Permissions Attack #3

•  Permission Required – NEW: Local Notifications – Push Notifications

•  No Permission Needed: – Silent Push Notifications

•  Gotcha: New API! registerUserNotificationSettings:notificationSettings  

Page 7: Adapting iOS 8 in iOS 7 Apps

Best Practices

•  Prompt in context

•  Specify the purpose •  NEW: Privacy settings link !UIApplicationOpenSettingsURLString""http://techcrunch.com/2014/04/04/the-right-way-to-ask-users-for-ios-permissions/

Page 8: Adapting iOS 8 in iOS 7 Apps

Push Notifications

Page 9: Adapting iOS 8 in iOS 7 Apps

In App Purchases

•  Ask to Buy feature of Family Sharing – New transaction state – Deferred

Page 10: Adapting iOS 8 in iOS 7 Apps

•  Payment is neither purchased or failed – Further update will be received –  Indeterminate time

•  Meanwhile – Allow the user to use the app – Repurchase allowed

Deferred Transaction

Page 11: Adapting iOS 8 in iOS 7 Apps

Keyboard Height

Accessory View Displayed Above that

Page 12: Adapting iOS 8 in iOS 7 Apps

Condensing Bars

Page 13: Adapting iOS 8 in iOS 7 Apps

UI Adaptivity

•  Canvas Space vs. Orientation •  Regular vs. Compact

Page 14: Adapting iOS 8 in iOS 7 Apps

UI Adaptivity

Page 15: Adapting iOS 8 in iOS 7 Apps

UI Adaptivity

•  UITraitsCollection – horizontalSizeClass – verticalSizeClass – displayScale – userInterfaceIdiom

Page 16: Adapting iOS 8 in iOS 7 Apps

UI Adaptivity •  Adaptive View Controller - UITrairtsEnviorment

–  UIPresentationController •  Popover •  AlertsView,ActionSheet •  Search •  Custom

–  UISplitViewController

•  Adaptive Image Assets "[UIImage named: ”Cart” "inBundle: nil "compatibleWithTraitCollection: self.traitCollection] "

Page 17: Adapting iOS 8 in iOS 7 Apps

UI Adaptivity Gotcha

•  [[UIScreen mainScreen] bounds] –  Is now orientation aware!

Page 18: Adapting iOS 8 in iOS 7 Apps

UITableView Dynamic Text Support

Page 19: Adapting iOS 8 in iOS 7 Apps

UITableView Cells

•  rowHeight •  Delegate •  Self Sizing Cells (Dynamic Type)

– Auto Layout – sizeThatFits: is height for width –  table.View.rowHeight =44 (gotcha) –  tableView.estimatedRowHeight = 44

Page 20: Adapting iOS 8 in iOS 7 Apps

WKWebView

•  It’s the Safari WebView –  Multi Process , Gestures, Fast JavaScript

•  Powerful integration for Hybrid Apps: •  Navigation Delegate •  User scripts •  Script Messages

–  JSON "–  window.webkit.messageHandlers.<name>.postMessage(); "

Page 21: Adapting iOS 8 in iOS 7 Apps

WKWebView

Page 22: Adapting iOS 8 in iOS 7 Apps

Modern Objective - C

•  instanacetype –  (instancetype)initWithFrame:(CGRect)frame; "

•  Properties vs. method notations ! !"

Page 23: Adapting iOS 8 in iOS 7 Apps

iTunes Connect

•  iTunes Connect Analytics –  App Page Views –  Website Links –  Campaign Links

•  App Bundles –  Only for paid apps –  Complete my bundle

Page 24: Adapting iOS 8 in iOS 7 Apps

App Previews

•  30 Seconds •  Shows UI/Functionality •  Easily Capture

- OS X Yosemite and iOS 8 •  Can Do:

– Narrations •  Don’t Do:

– Hands – Prices – Copyright infringement

Page 25: Adapting iOS 8 in iOS 7 Apps

Hidden Gems & More…

•  Localization –  XCode will Import/Export XLIFF files –  Previews (RTL support)

•  Instruments –  Network profiling

Page 26: Adapting iOS 8 in iOS 7 Apps

Thank You

We’re Hiring! [email protected]

Page 27: Adapting iOS 8 in iOS 7 Apps

Questions ?