SlideShare a Scribd company logo
Adapting iOS 8 
Aviel Lazar 
@aviellazar 
TLV iOS Developers Meetup
Your iOS7 apps 
• Work! 
• Don’t look deprecated 
• And yet…
Privacy Permissions Attack
Permissions Attack #1 
Camera
Permissions Attack #2 
Loca tion 
Always 
vs. 
While in Use
Permissions Attack #3 
• Permission Required 
– NEW: Local Notifications 
– Push Notifications 
• No Permission Needed: 
– Silent Push Notifications 
• Gotcha: New API! 
registerUserNotificationSettings:notificationSettings
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/
Push Notifications
In App Purchases 
• Ask to Buy feature of Family Sharing 
– New transaction state – Deferred
Deferred Transaction 
• Payment is neither purchased or failed 
– Further update will be received 
– Indeterminate time 
• Meanwhile 
– Allow the user to use the app 
– Repurchase allowed
Keyboard 
Height 
Accessory View Displayed 
Above that
Condensing Bars
UI Adaptivity 
• Canvas Space vs. Orientation 
• Regular vs. Compact
UI Adaptivity
UI Adaptivity 
• UITraitsCollection 
– horizontalSizeClass 
– verticalSizeClass 
– displayScale 
– userInterfaceIdiom
UI Adaptivity 
• Adaptive View Controller - UITrairtsEnviorment 
– UIPresentationController 
• Popover 
• AlertsView,ActionSheet 
• Search 
• Custom 
– UISplitViewController 
• Adaptive Image Assets 
"[ 
UIImage named: ”Cart” " 
inBundle: nil " 
compatibleWithTraitCollection: self.traitCollection]"
UI Adaptivity Gotcha 
• [[UIScreen mainScreen] bounds] 
– Is now orientation aware!
UITableView 
Dynamic Text Support
UITableView Cells 
• rowHeight 
• Delegate 
• Self Sizing Cells (Dynamic Type) 
– Auto Layout 
– sizeThatFits: is height for width 
– table.View.rowHeight =44 (gotcha) 
– tableView.estimatedRowHeight = 44
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();"
WKWebView
Modern Objective - C 
• instanacetype 
– (instancetype)initWithFrame:(CGRect)frame; " 
• Properties vs. method notations 
! !"
iTunes Connect 
• iTunes Connect Analytics 
– App Page Views 
– Website Links 
– Campaign Links 
• App Bundles 
– Only for paid apps 
– Complete my bundle
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
Hidden Gems & More… 
• Localization 
– XCode will Import/Export XLIFF files 
– Previews (RTL support) 
• Instruments 
– Network profiling
Thank You 
We’re Hiring! 
aviel@chegg.com
Questions ?

More Related Content

What's hot

KKBOX WWDC17 Notification and Autolayout - Jefferey
KKBOX WWDC17 Notification and Autolayout - JeffereyKKBOX WWDC17 Notification and Autolayout - Jefferey
KKBOX WWDC17 Notification and Autolayout - Jefferey
Liyao Chen
 
iOS Coding Best Practices
iOS Coding Best PracticesiOS Coding Best Practices
iOS Coding Best Practices
Jean-Luc David
 
Introduction to Salesforce UI API
Introduction to Salesforce UI APIIntroduction to Salesforce UI API
Introduction to Salesforce UI API
Atul Gupta(8X)
 
ASP.NET MVC - Latest & Greatest So Far
ASP.NET MVC - Latest & Greatest So FarASP.NET MVC - Latest & Greatest So Far
ASP.NET MVC - Latest & Greatest So Far
Lohith Goudagere Nagaraj
 
Building iOS app using meteor
Building iOS app using meteorBuilding iOS app using meteor
Building iOS app using meteor
Entrepreneur / Startup
 
Building mobile apps using meteorJS
Building mobile apps using meteorJSBuilding mobile apps using meteorJS
Building mobile apps using meteorJS
Entrepreneur / Startup
 
Build a REST API for your Mobile Apps using Node.js
Build a REST API for your Mobile Apps using Node.jsBuild a REST API for your Mobile Apps using Node.js
Build a REST API for your Mobile Apps using Node.js
Stormpath
 
Salesforce1 for Visualforce Developers
Salesforce1 for Visualforce DevelopersSalesforce1 for Visualforce Developers
Salesforce1 for Visualforce Developers
Keir Bowden
 
Ng-init
Ng-init Ng-init
Ng-init
Hamdi Hmidi
 
Ng-init
Ng-init Ng-init
Ng-init
Hamdi Hmidi
 
Défragmentez vos apps avec Mortar !
Défragmentez vos apps avec Mortar !Défragmentez vos apps avec Mortar !
Défragmentez vos apps avec Mortar !
Pierre-Yves Ricau
 
WSO2 Product Release Webinar: WSO2 App Manager 1.1
WSO2 Product Release Webinar: WSO2 App Manager 1.1WSO2 Product Release Webinar: WSO2 App Manager 1.1
WSO2 Product Release Webinar: WSO2 App Manager 1.1
WSO2
 
Rails course day 6
Rails course day 6Rails course day 6
Rails course day 6
Al Sayed Gamal
 

What's hot (14)

KKBOX WWDC17 Notification and Autolayout - Jefferey
KKBOX WWDC17 Notification and Autolayout - JeffereyKKBOX WWDC17 Notification and Autolayout - Jefferey
KKBOX WWDC17 Notification and Autolayout - Jefferey
 
iOS Coding Best Practices
iOS Coding Best PracticesiOS Coding Best Practices
iOS Coding Best Practices
 
Introduction to Salesforce UI API
Introduction to Salesforce UI APIIntroduction to Salesforce UI API
Introduction to Salesforce UI API
 
Firefox OS Weekend
Firefox OS WeekendFirefox OS Weekend
Firefox OS Weekend
 
ASP.NET MVC - Latest & Greatest So Far
ASP.NET MVC - Latest & Greatest So FarASP.NET MVC - Latest & Greatest So Far
ASP.NET MVC - Latest & Greatest So Far
 
Building iOS app using meteor
Building iOS app using meteorBuilding iOS app using meteor
Building iOS app using meteor
 
Building mobile apps using meteorJS
Building mobile apps using meteorJSBuilding mobile apps using meteorJS
Building mobile apps using meteorJS
 
Build a REST API for your Mobile Apps using Node.js
Build a REST API for your Mobile Apps using Node.jsBuild a REST API for your Mobile Apps using Node.js
Build a REST API for your Mobile Apps using Node.js
 
Salesforce1 for Visualforce Developers
Salesforce1 for Visualforce DevelopersSalesforce1 for Visualforce Developers
Salesforce1 for Visualforce Developers
 
Ng-init
Ng-init Ng-init
Ng-init
 
Ng-init
Ng-init Ng-init
Ng-init
 
Défragmentez vos apps avec Mortar !
Défragmentez vos apps avec Mortar !Défragmentez vos apps avec Mortar !
Défragmentez vos apps avec Mortar !
 
WSO2 Product Release Webinar: WSO2 App Manager 1.1
WSO2 Product Release Webinar: WSO2 App Manager 1.1WSO2 Product Release Webinar: WSO2 App Manager 1.1
WSO2 Product Release Webinar: WSO2 App Manager 1.1
 
Rails course day 6
Rails course day 6Rails course day 6
Rails course day 6
 

Similar to Adapting iOS 8 in iOS 7 Apps

Revue des annonces WWDC2015
Revue des annonces WWDC2015Revue des annonces WWDC2015
Revue des annonces WWDC2015
CocoaHeads France
 
AppNotch
AppNotchAppNotch
AppNotch
appnotch
 
AppNotch 2.0
AppNotch 2.0AppNotch 2.0
AppNotch 2.0
appnotch
 
Developing an Accessible Web
Developing an Accessible WebDeveloping an Accessible Web
Developing an Accessible Web
greenideas
 
Multi screen HTML5
Multi screen HTML5Multi screen HTML5
Multi screen HTML5
Ron Reiter
 
Power Mobile Apps with Sitecore
Power Mobile Apps with SitecorePower Mobile Apps with Sitecore
Power Mobile Apps with Sitecore
Catapult New Business
 
Mobile web or native app
Mobile web or native appMobile web or native app
Mobile web or native app
Mike Takahashi
 
AppNotch Enterprise
AppNotch EnterpriseAppNotch Enterprise
AppNotch Enterprise
appnotch
 
A year with progressive web apps! #DevConMU
A year with progressive web apps! #DevConMUA year with progressive web apps! #DevConMU
A year with progressive web apps! #DevConMU
Antonio Peric-Mazar
 
From Ruby on Rails to RubyMotion - Writing your First iOS App with RubyMotion
From Ruby on Rails to RubyMotion - Writing your First iOS App with RubyMotionFrom Ruby on Rails to RubyMotion - Writing your First iOS App with RubyMotion
From Ruby on Rails to RubyMotion - Writing your First iOS App with RubyMotion
Michael Denomy
 
Beginning jQuery Mobile
Beginning jQuery MobileBeginning jQuery Mobile
Beginning jQuery Mobile
Troy Miles
 
ADF Mobile: 10 Things you don't get from the developers guide - Luc Bors
ADF Mobile: 10 Things you don't get from the developers guide - Luc BorsADF Mobile: 10 Things you don't get from the developers guide - Luc Bors
ADF Mobile: 10 Things you don't get from the developers guide - Luc Bors
Getting value from IoT, Integration and Data Analytics
 
ADF Mobile: 10 Things you don't get from the developers guide
ADF Mobile: 10 Things you don't get from the developers guideADF Mobile: 10 Things you don't get from the developers guide
ADF Mobile: 10 Things you don't get from the developers guide
Luc Bors
 
Xamarin.Forms Bootcamp
Xamarin.Forms BootcampXamarin.Forms Bootcamp
Xamarin.Forms Bootcamp
Mike Melusky
 
Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011Nuxeo
 
Eclipse E4 Open Social Gadgetsvrs3
Eclipse E4 Open Social Gadgetsvrs3Eclipse E4 Open Social Gadgetsvrs3
Eclipse E4 Open Social Gadgetsvrs3Lars Vogel
 
Service workers are your best friends
Service workers are your best friendsService workers are your best friends
Service workers are your best friends
Antonio Peric-Mazar
 
Picnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable applicationPicnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable application
Nick Josevski
 
The Mobile Web Revealed For The Java Developer
The Mobile Web Revealed For The Java DeveloperThe Mobile Web Revealed For The Java Developer
The Mobile Web Revealed For The Java Developer
balunasj
 
Automating Mobile Applications
Automating Mobile ApplicationsAutomating Mobile Applications
Automating Mobile Applications
April Luk
 

Similar to Adapting iOS 8 in iOS 7 Apps (20)

Revue des annonces WWDC2015
Revue des annonces WWDC2015Revue des annonces WWDC2015
Revue des annonces WWDC2015
 
AppNotch
AppNotchAppNotch
AppNotch
 
AppNotch 2.0
AppNotch 2.0AppNotch 2.0
AppNotch 2.0
 
Developing an Accessible Web
Developing an Accessible WebDeveloping an Accessible Web
Developing an Accessible Web
 
Multi screen HTML5
Multi screen HTML5Multi screen HTML5
Multi screen HTML5
 
Power Mobile Apps with Sitecore
Power Mobile Apps with SitecorePower Mobile Apps with Sitecore
Power Mobile Apps with Sitecore
 
Mobile web or native app
Mobile web or native appMobile web or native app
Mobile web or native app
 
AppNotch Enterprise
AppNotch EnterpriseAppNotch Enterprise
AppNotch Enterprise
 
A year with progressive web apps! #DevConMU
A year with progressive web apps! #DevConMUA year with progressive web apps! #DevConMU
A year with progressive web apps! #DevConMU
 
From Ruby on Rails to RubyMotion - Writing your First iOS App with RubyMotion
From Ruby on Rails to RubyMotion - Writing your First iOS App with RubyMotionFrom Ruby on Rails to RubyMotion - Writing your First iOS App with RubyMotion
From Ruby on Rails to RubyMotion - Writing your First iOS App with RubyMotion
 
Beginning jQuery Mobile
Beginning jQuery MobileBeginning jQuery Mobile
Beginning jQuery Mobile
 
ADF Mobile: 10 Things you don't get from the developers guide - Luc Bors
ADF Mobile: 10 Things you don't get from the developers guide - Luc BorsADF Mobile: 10 Things you don't get from the developers guide - Luc Bors
ADF Mobile: 10 Things you don't get from the developers guide - Luc Bors
 
ADF Mobile: 10 Things you don't get from the developers guide
ADF Mobile: 10 Things you don't get from the developers guideADF Mobile: 10 Things you don't get from the developers guide
ADF Mobile: 10 Things you don't get from the developers guide
 
Xamarin.Forms Bootcamp
Xamarin.Forms BootcampXamarin.Forms Bootcamp
Xamarin.Forms Bootcamp
 
Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011
 
Eclipse E4 Open Social Gadgetsvrs3
Eclipse E4 Open Social Gadgetsvrs3Eclipse E4 Open Social Gadgetsvrs3
Eclipse E4 Open Social Gadgetsvrs3
 
Service workers are your best friends
Service workers are your best friendsService workers are your best friends
Service workers are your best friends
 
Picnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable applicationPicnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable application
 
The Mobile Web Revealed For The Java Developer
The Mobile Web Revealed For The Java DeveloperThe Mobile Web Revealed For The Java Developer
The Mobile Web Revealed For The Java Developer
 
Automating Mobile Applications
Automating Mobile ApplicationsAutomating Mobile Applications
Automating Mobile Applications
 

Recently uploaded

Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 

Recently uploaded (20)

Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 

Adapting iOS 8 in iOS 7 Apps

  • 1. Adapting iOS 8 Aviel Lazar @aviellazar TLV iOS Developers Meetup
  • 2. Your iOS7 apps • Work! • Don’t look deprecated • And yet…
  • 5. Permissions Attack #2 Loca tion Always vs. While in Use
  • 6. Permissions Attack #3 • Permission Required – NEW: Local Notifications – Push Notifications • No Permission Needed: – Silent Push Notifications • Gotcha: New API! registerUserNotificationSettings:notificationSettings
  • 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/
  • 9. In App Purchases • Ask to Buy feature of Family Sharing – New transaction state – Deferred
  • 10. Deferred Transaction • Payment is neither purchased or failed – Further update will be received – Indeterminate time • Meanwhile – Allow the user to use the app – Repurchase allowed
  • 11. Keyboard Height Accessory View Displayed Above that
  • 13. UI Adaptivity • Canvas Space vs. Orientation • Regular vs. Compact
  • 15. UI Adaptivity • UITraitsCollection – horizontalSizeClass – verticalSizeClass – displayScale – userInterfaceIdiom
  • 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]"
  • 17. UI Adaptivity Gotcha • [[UIScreen mainScreen] bounds] – Is now orientation aware!
  • 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
  • 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.<name>.postMessage();"
  • 22. Modern Objective - C • instanacetype – (instancetype)initWithFrame:(CGRect)frame; " • Properties vs. method notations ! !"
  • 23. iTunes Connect • iTunes Connect Analytics – App Page Views – Website Links – Campaign Links • App Bundles – Only for paid apps – Complete my bundle
  • 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
  • 25. Hidden Gems & More… • Localization – XCode will Import/Export XLIFF files – Previews (RTL support) • Instruments – Network profiling
  • 26. Thank You We’re Hiring! aviel@chegg.com