Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Adapting iOS8

Adapting iOS8

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

Aviel Lazar

July 15, 2014
Tweet

Other Decks in Technology

Transcript

  1. Adapting iOS 8
    Aviel Lazar
    @aviellazar  
    TLV iOS Developers Meetup

    View Slide

  2. Your iOS7 apps
    •  Work!
    •  Don’t look deprecated
    •  And yet…

    View Slide

  3. Privacy Permissions Attack

    View Slide

  4. Permissions Attack #1
    Camera

    View Slide

  5. Always
    vs.
    While in Use
    Permissions Attack #2
    Location

    View Slide

  6. Permissions Attack #3
    •  Permission Required
    – NEW: Local Notifications
    – Push Notifications
    •  No Permission Needed:
    – Silent Push Notifications
    •  Gotcha: New API!
    registerUserNotificationSettings:notificationSettings  

    View Slide

  7. 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/

    View Slide

  8. Push Notifications

    View Slide

  9. In App Purchases
    •  Ask to Buy feature of Family Sharing
    – New transaction state – Deferred

    View Slide

  10. •  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

    View Slide

  11. Keyboard
    Height
    Accessory View Displayed
    Above that

    View Slide

  12. Condensing Bars

    View Slide

  13. UI Adaptivity
    •  Canvas Space vs. Orientation
    •  Regular vs. Compact

    View Slide

  14. UI Adaptivity

    View Slide

  15. UI Adaptivity
    •  UITraitsCollection
    – horizontalSizeClass
    – verticalSizeClass
    – displayScale
    – userInterfaceIdiom

    View Slide

  16. UI Adaptivity
    •  Adaptive View Controller - UITrairtsEnviorment
    –  UIPresentationController
    •  Popover
    •  AlertsView,ActionSheet
    •  Search
    •  Custom
    –  UISplitViewController
    •  Adaptive Image Assets
    "
    [UIImage named: ”Cart” "
    inBundle: nil "
    compatibleWithTraitCollection: self.traitCollection]"

    View Slide

  17. UI Adaptivity Gotcha
    •  [[UIScreen mainScreen] bounds]
    – Is now orientation aware!

    View Slide

  18. UITableView
    Dynamic Text Support

    View Slide

  19. UITableView Cells
    •  rowHeight
    •  Delegate
    •  Self Sizing Cells (Dynamic Type)
    – Auto Layout
    – sizeThatFits: is height for width
    – table.View.rowHeight =44 (gotcha)
    – tableView.estimatedRowHeight = 44

    View Slide

  20. 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..postMessage();"

    View Slide

  21. WKWebView

    View Slide

  22. Modern Objective - C
    •  instanacetype
    –  (instancetype)initWithFrame:(CGRect)frame; "
    •  Properties vs. method notations
    ! !"

    View Slide

  23. iTunes Connect
    •  iTunes Connect Analytics
    –  App Page Views
    –  Website Links
    –  Campaign Links
    •  App Bundles
    –  Only for paid apps
    –  Complete my bundle

    View Slide

  24. 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

    View Slide

  25. Hidden Gems & More…
    •  Localization
    –  XCode will Import/Export XLIFF files
    –  Previews (RTL support)
    •  Instruments
    –  Network profiling

    View Slide

  26. Thank You
    We’re Hiring!
    [email protected]

    View Slide