SlideShare a Scribd company logo
1 of 40
Download to read offline
iOS 8 Overview 
@mikebluestein 
September 11, 2014
Agenda 
▪ Alert Controller 
▪ Navigation Controller 
▪ Notification Settings 
▪ Notification Actions 
▪ Popover Presentation 
Controller 
▪ Search Controller 
▪ Split View Controller 
▪ Visual Effects 
▪ Collection Views 
▪ Document Picker 
▪ Health Kit 
▪ Core Image 
▪ Scene Kit 
▪ Photo Kit
Alert 
Controller 
▪ UIAlertViewController 
▪Replaces UIActionSheet and 
UIAlertView 
iOS 8 Major Features
Alert Controller
Alert Controller 
public static UIAlertController PresentOKAlert( 
string title, 
string description, 
UIViewController controller) { 
// No, inform the user that they must create a home first 
var alert = UIAlertController.Create (title, 
! description, UIAlertControllerStyle.Alert); // Configure the alert 
alert.AddAction(UIAlertAction.Create (“OK", 
! UIAlertActionStyle.Default,(action) => {})); // Display the alert 
! controller.PresentViewController (alert, true, null); // Return created controller 
return alert; 
}! .!.. // Display the Alert 
AlertView.PresentOKAlert ("OK Alert”, 
"This is a sample alert with an OK button.”, this);
Navigation 
Controller 
▪Change navigation bar size 
▪ Hide navigation bar with gestures 
iOS 8 Major Features
Navigation Controller 
public override void ViewWillAppear (bool animated) 
{ 
! base.ViewWillAppear (animated); 
// Set the default mode 
! NavigationController.HidesBarsOnTap = true; 
// Wireup segment controller 
NavBarMode.ValueChanged += (sender, e) => { 
// Take action based on the selected mode 
switch(NavBarMode.SelectedSegment) { 
case 0: 
NavigationController.HidesBarsOnTap = true; 
NavigationController.HidesBarsOnSwipe = false; 
break; 
case 1: 
NavigationController.HidesBarsOnTap = false; 
NavigationController.HidesBarsOnSwipe = true; 
break; 
} 
}; 
}
Notification 
Settings 
▪ UIUserNotificationSetting 
▪ Encapsulates notification types 
▪ UIUserNotifiationType – Alert, Badge, 
Sound 
iOS 8 Major Features
Notification Settings 
// Set the requested notification types 
UIUserNotificationType type = 
! UIUserNotificationType.Alert | UIUserNotificationType.Badge; 
// Create the setting for the given types 
UIUserNotificationSettings settings = 
! UIUserNotificationSettings.GetSettingsForTypes(type, categories); 
// Register the settings 
UIApplication.SharedApplication.RegisterUserNotificationSettings ( 
settings);
Notification 
Actions 
▪ UIMutableUserNotificationAction 
▪ Custom action in response 
to notification 
iOS 8 Major Features
Notification Actions 
var acceptAction = new UIMutableUserNotificationAction { 
Identifier = "ACCEPT_ID", 
Title = "Accept", 
ActivationMode = UIUserNotificationActivationMode.Background, 
Destructive = false, 
AuthenticationRequired = false 
}!; 
var trashAction = new UIMutableUserNotificationAction { 
Identifier = "TRASH_ID", 
Title = "Trash", 
ActivationMode = UIUserNotificationActivationMode.Background, 
Destructive = true, 
AuthenticationRequired = true 
};
Popover 
Presentation 
Controller 
▪ UIPopoverPresentationController 
▪ Manages popover content 
▪Modal view on iPhone 
iOS 8 Major Features
Popover Presentation Controller 
vc.ModalPresentationStyle = 
! UIModalPresentationStyle.Popover; 
.!.. 
P!resentViewController(vc, true, null); 
UIPopoverPresentationController popoverController = 
! vc.PopoverPresentationController; 
if (popoverController!=null) { 
popoverController.SourceView = View; 
popoverController.PermittedArrowDirections = 
UIPopoverArrowDirection.Up; 
popoverController.SourceRect = ShowButton.Frame; 
}
Search 
Controller 
▪ UISearchController 
▪ Replaces UISearchDisplayController 
▪ UISearchResultsUpdating updates results 
▪ Results can be displayed in any view 
as needed 
iOS 8 Major Features
Search Controller 
// Create search updater 
var searchUpdater = new SearchResultsUpdator (); 
searchUpdater.UpdateSearchResults += (searchText) => { 
// Perform search and reload search table 
searchSource.Search(searchText); 
searchResultsController.TableView.ReloadData(); 
}!; 
// Create a search controller 
SearchController = new UISearchController (searchResultsController); 
S!earchController.SearchResultsUpdater = searchUpdater; 
.!.. 
public class SearchResultsUpdator : UISearchResultsUpdating 
{ 
public override void UpdateSearchResultsForSearchController (UISearchController 
searchController) 
{ 
// Inform caller of the update event 
RaiseUpdateSearchResults (searchController.SearchBar.Text); 
} 
... 
}
Split View 
Controller 
▪ UISplitViewController 
▪ Now works on iPad and iPhone 
▪ PreferredDisplayMode 
• AllVisible, PrimaryHidden, PrimaryOverlay 
iOS 8 Major Features
Split View Features 
public class Controller : UISplitViewController 
{ 
public override void ViewDidLoad () 
{ 
! base.ViewDidLoad (); 
PreferredDisplayMode = 
UISplitViewControllerDisplayMode.AllVisible; 
} 
}
Visual Effects ▪ UIVisualEffect 
▪ Blur and Vibrancy 
• UIVibrancyEffect 
• UIBlurEffect 
iOS 8 Major Features
Visual Effects 
// blur view 
var blur = UIBlurEffect.FromStyle (UIBlurEffectStyle.Light); 
var blurView = new UIVisualEffectView (blur) { 
Frame = new RectangleF (0, 0, imageView.Frame.Width, 400) 
}!; 
V!iew.Add (blurView); 
// vibrancy view 
var frame = new Rectangle (10, 10, 100, 50); 
var vibrancy = UIVibrancyEffect.FromBlurEffect (blur); 
var vibrancyView = new UIVisualEffectView (vibrancy) { 
Frame = frame 
}!; 
vibrancyView.ContentView.Add (label); 
blurView.ContentView.Add (vibrancyView);
Collection 
Views 
▪ Self-sizing cells 
▪ UICollectionViewFlowLayout 
• EstimatedItemSize 
▪ UICollectionViewDelegateFlowLayout 
• SizeThatFits 
iOS 8 Major Features
Collection Views 
flowLayout = new UICollectionViewFlowLayout (){ 
EstimatedItemSize = new SizeF (44, 144) 
}!; 
.!.. 
public override SizeF SizeThatFits (SizeF size) 
{ 
label.Frame = new RectangleF (new PointF (0, 0), 
label.AttributedText.Size); 
return label.AttributedText.Size; 
}
Document 
Picker 
▪ UIDocumentPickerController 
▪ Select documents outside app sandbox 
▪ User can open and documents directly 
iOS 8 Major Features
Document Picker 
! 
var allowedUTIs = new string[] { 
UTType.PDF, UTType.Image, ... 
}!; 
var pickerMenu = new UIDocumentMenuViewController(allowedUTIs, 
! UIDocumentPickerMode.Open); 
p!ickerMenu.DidPickDocumentPicker += (sender, args) => { 
! args.DocumentPicker.DidPickDocument += (s, pArgs) => { 
var securityEnabled = 
! pArgs.Url.StartAccessingSecurityScopedResource(); 
! ThisApp.OpenDocument(pArgs.Url); 
pArgs.Url.StopAccessingSecurityScopedResource(); 
! }; 
// Display the document picker 
PresentViewController (args.DocumentPicker, true, null); 
};
Health 
Kit 
▪ Store and Share Health Data 
▪ Create Data 
▪ Save Data 
▪ Query Data 
iOS 8 Major Features
Health Kit Classes 
▪ HKUnit 
• represents a unit of measure 
▪ HKQuantity 
• double value relative to a unit 
• can be used for conversion 
▪ HKObjectType 
• represent different kinds of 
data that can be stored 
▪ HKObject 
• All data stored is a subclass of 
HKObject
Health Store 
▪ HKHealthStore - link to the health database 
▪ Check Health Kit availability on device 
▪ Authorize Health Kit 
▪ Save and Query data 
▪ Query via HKQuery
Authorize 
// authorization 
if (HKHealthStore.IsHealthDataAvailable) { 
var temperatureKey = 
HKQuantityTypeIdentifierKey.BodyTemperature; 
var tempQuantityType = 
HKObjectType.GetQuantityType ! (temperatureKey); 
! var healthStore = new HKHealthStore (); 
healthStore.RequestAuthorizationToShare ( 
new NSSet (new [] { tempQuantityType }), 
! new NSSet (), (success, error) => { 
}); 
}
Save 
// save data 
var temp = HKQuantity.FromQuantity ( 
HKUnit.DegreeFahrenheit, ! 99.9); 
var meta = NSDictionary.FromObjectAndKey ( 
new NSNumber (4), 
! HKMetadataKey.BodyTemperatureSensorLocation); 
var sample = HKQuantitySample.FromType ( 
tempQuantityType, 
temp, 
new NSDate (), 
new NSDate (), 
! meta); 
healthStore.SaveObject (sample, (success, err) => { ... });
Query 
// query data 
var temperatureType = 
HKObjectType.GetQuantityType (HKQuantityTypeIdentifierKey.BodyTemperature) ! as HKSampleType; 
//Sort descending, by end date (i.e., last sample) 
var sortDescriptor = new NSSortDescriptor (HKSample.SortIdentifierEndDate, false); 
n!ew HKSampleQuery (temperatureType, null, 1, new [] { sortDescriptor }, ResultsHandler); 
protected void ResultsHandler (HKSampleQuery query, HKSample[] results, NSError error) 
{ 
... 
}
Core Image 
▪ New QR code and Rectangle detectors 
▪ New Filters 
▪ Custom Filters 
▪ Feature detection in video 
iOS 8 Major Features
Core Image Detectors 
▪ Previously only facial detection 
▪ Now Rectangle and QR code detectors 
▪ CIDetector.CreateRectangleDetector 
▪ CIDetector.CreateQRDetector
Save 
var context = CIContext.FromOptions (null); 
var options = new CIDetectorOptions { 
Accuracy = FaceDetectorAccuracy.High 
}!; 
var detector = CIDetector.CreateRectangleDetector (context, options); 
var ciImage = CIImage.FromCGImage (imageIn.CGImage); 
v!ar features = detector.FeaturesInImage (ciImage); 
v!ar overlay = CIImage.ImageWithColor (CIColor.FromRgba (1.0f, 0.0f, 0.0f, 0.7f)); 
overlay = overlay.ImageByCroppingToRect (features [0].Bounds); 
var ciImageWithOverlay = overlay.CreateByCompositingOverImage (ciImage);
Scene 
Kit 
▪ 3D Scene Graph 
▪ Casual 3D Games 
▪ 3D Visualizations 
▪ Abstracts OpenGL ES 
iOS 8 Major Features
Scene Kit
Scene Kit 
// scene 
scene = SCNScene.Create (); 
sceneView = new SCNView (View.Frame); 
s!ceneView.Scene = scene; sphere = SCNSphere.Create (10.0f); 
sphereNode = SCNNode.FromGeometry (sphere); 
sphereNode.Position = new SCNVector3 (0, 0, 0); 
s!cene.RootNode.AddChildNode (sphereNode); // omni-directional light 
var light = SCNLight.Create (); 
var lightNode = SCNNode.Create (); 
light.LightType = SCNLightType.Omni; 
light.Color = UIColor.Blue; 
lightNode.Light = light; 
lightNode.Position = new SCNVector3 (-40, 40, 60); 
scene.RootNode.AddChildNode (lightNode); 
// ambient light 
ambientLight = SCNLight.Create (); 
ambientLightNode = SCNNode.Create (); 
ambientLight.LightType = SCNLightType.Ambient; 
ambientLight.Color = UIColor.Purple; 
ambientLightNode.Light = ambientLight; 
s!cene.RootNode.AddChildNode (ambientLightNode); 
// camera 
camera = new SCNCamera { 
XFov = 80, 
YFov = 80 
}; 
cameraNode = new SCNNode { 
Camera = camera, 
Position = new SCNVector3 (0, 0, 40) 
}; 
scene.RootNode.AddChildNode (cameraNode)
Photo 
Kit 
▪ Framework to work with 
photo and video assets 
▪ Fetch Results - 
PHAsset.FetchAssets 
▪ Write Changes - 
PhotoLibraryObserver 
iOS 8 Major Features
DEMO
Much More 
▪ Manual Camera Controls 
▪ Home Kit 
▪ Cloud Kit 
▪ Handoff 
▪ Touch ID Auth 
▪ App Extensions 
▪ Unified Storyboards 
▪ Sprite Kit 
▪ Metal 
▪ Apple Pay
Much More 
http://developer.xamarin.com/guides/ios/platform_features/introduction_to_ios_8/
Key Attendees

More Related Content

What's hot

Как приготовить std::system_error. Юрий Ефимочев. CoreHard Spring 2019
Как приготовить std::system_error. Юрий Ефимочев. CoreHard Spring 2019Как приготовить std::system_error. Юрий Ефимочев. CoreHard Spring 2019
Как приготовить std::system_error. Юрий Ефимочев. CoreHard Spring 2019corehard_by
 
Rushed to Victory Gardens' stage, An Issue of Blood is more effusion than play
Rushed to Victory Gardens' stage, An Issue of Blood is more effusion than playRushed to Victory Gardens' stage, An Issue of Blood is more effusion than play
Rushed to Victory Gardens' stage, An Issue of Blood is more effusion than playchicagonewsyesterday
 
Settings
SettingsSettings
Settingsyito24
 
The rise and fall of a techno DJ, plus more new reviews and notable screenings
The rise and fall of a techno DJ, plus more new reviews and notable screeningsThe rise and fall of a techno DJ, plus more new reviews and notable screenings
The rise and fall of a techno DJ, plus more new reviews and notable screeningschicagonewsyesterday
 
UITableView Pain Points
UITableView Pain PointsUITableView Pain Points
UITableView Pain PointsKen Auer
 
Oracle helpdesk database shema
Oracle helpdesk database shemaOracle helpdesk database shema
Oracle helpdesk database shemaMurat Gülci
 
Performance improvements tips and tricks
Performance improvements tips and tricksPerformance improvements tips and tricks
Performance improvements tips and tricksdiego bragato
 
The Human Linter
The Human LinterThe Human Linter
The Human LinterIlya Gelman
 
Achilles presentation
Achilles presentationAchilles presentation
Achilles presentationDuyhai Doan
 
Open Selector
Open SelectorOpen Selector
Open Selectorjjdelc
 
The Spirit of Testing
The Spirit of TestingThe Spirit of Testing
The Spirit of TestingMarco Cedaro
 
Coding for Scale and Sanity
Coding for Scale and SanityCoding for Scale and Sanity
Coding for Scale and SanityJimKellerES
 
Hacking Your Way to Better Security - PHP South Africa 2016
Hacking Your Way to Better Security - PHP South Africa 2016Hacking Your Way to Better Security - PHP South Africa 2016
Hacking Your Way to Better Security - PHP South Africa 2016Colin O'Dell
 
Hacking Your Way To Better Security
Hacking Your Way To Better SecurityHacking Your Way To Better Security
Hacking Your Way To Better SecurityColin O'Dell
 

What's hot (19)

Load1
Load1Load1
Load1
 
50 jquery
50 jquery50 jquery
50 jquery
 
Как приготовить std::system_error. Юрий Ефимочев. CoreHard Spring 2019
Как приготовить std::system_error. Юрий Ефимочев. CoreHard Spring 2019Как приготовить std::system_error. Юрий Ефимочев. CoreHard Spring 2019
Как приготовить std::system_error. Юрий Ефимочев. CoreHard Spring 2019
 
Rushed to Victory Gardens' stage, An Issue of Blood is more effusion than play
Rushed to Victory Gardens' stage, An Issue of Blood is more effusion than playRushed to Victory Gardens' stage, An Issue of Blood is more effusion than play
Rushed to Victory Gardens' stage, An Issue of Blood is more effusion than play
 
Settings
SettingsSettings
Settings
 
The rise and fall of a techno DJ, plus more new reviews and notable screenings
The rise and fall of a techno DJ, plus more new reviews and notable screeningsThe rise and fall of a techno DJ, plus more new reviews and notable screenings
The rise and fall of a techno DJ, plus more new reviews and notable screenings
 
UITableView Pain Points
UITableView Pain PointsUITableView Pain Points
UITableView Pain Points
 
10. view one record
10. view one record10. view one record
10. view one record
 
Oracle helpdesk database shema
Oracle helpdesk database shemaOracle helpdesk database shema
Oracle helpdesk database shema
 
11. delete record
11. delete record11. delete record
11. delete record
 
Performance improvements tips and tricks
Performance improvements tips and tricksPerformance improvements tips and tricks
Performance improvements tips and tricks
 
The Human Linter
The Human LinterThe Human Linter
The Human Linter
 
Achilles presentation
Achilles presentationAchilles presentation
Achilles presentation
 
Sbaw091117
Sbaw091117Sbaw091117
Sbaw091117
 
Open Selector
Open SelectorOpen Selector
Open Selector
 
The Spirit of Testing
The Spirit of TestingThe Spirit of Testing
The Spirit of Testing
 
Coding for Scale and Sanity
Coding for Scale and SanityCoding for Scale and Sanity
Coding for Scale and Sanity
 
Hacking Your Way to Better Security - PHP South Africa 2016
Hacking Your Way to Better Security - PHP South Africa 2016Hacking Your Way to Better Security - PHP South Africa 2016
Hacking Your Way to Better Security - PHP South Africa 2016
 
Hacking Your Way To Better Security
Hacking Your Way To Better SecurityHacking Your Way To Better Security
Hacking Your Way To Better Security
 

Viewers also liked

Accelerate Mobile Success with a Mobile Center of Excellence
Accelerate Mobile Success with a Mobile Center of ExcellenceAccelerate Mobile Success with a Mobile Center of Excellence
Accelerate Mobile Success with a Mobile Center of ExcellenceXamarin
 
Mobile Enterprise Success with Xamarin and IBM
Mobile Enterprise Success with Xamarin and IBMMobile Enterprise Success with Xamarin and IBM
Mobile Enterprise Success with Xamarin and IBMXamarin
 
Building Your First Android App with Xamarin
Building Your First Android App with XamarinBuilding Your First Android App with Xamarin
Building Your First Android App with XamarinXamarin
 
Building Your First Xamarin.Forms App
Building Your First Xamarin.Forms AppBuilding Your First Xamarin.Forms App
Building Your First Xamarin.Forms AppXamarin
 
Intro to Xamarin for Visual Studio: Native iOS, Android, and Windows Apps in C#
Intro to Xamarin for Visual Studio: Native iOS, Android, and Windows Apps in C#Intro to Xamarin for Visual Studio: Native iOS, Android, and Windows Apps in C#
Intro to Xamarin for Visual Studio: Native iOS, Android, and Windows Apps in C#Xamarin
 
Native i os, android, and windows development in c# with xamarin 4
Native i os, android, and windows development in c# with xamarin 4Native i os, android, and windows development in c# with xamarin 4
Native i os, android, and windows development in c# with xamarin 4Xamarin
 
Android L and So Much More Webinar Slides
Android L and So Much More Webinar SlidesAndroid L and So Much More Webinar Slides
Android L and So Much More Webinar SlidesXamarin
 
Native App Development for iOS, Android, and Windows with Visual Studio
Native App Development for iOS, Android, and Windows with Visual StudioNative App Development for iOS, Android, and Windows with Visual Studio
Native App Development for iOS, Android, and Windows with Visual StudioXamarin
 
Enterprise-grade mobile barcode scanning with Scandit and Xamarin
Enterprise-grade mobile barcode scanning with Scandit and XamarinEnterprise-grade mobile barcode scanning with Scandit and Xamarin
Enterprise-grade mobile barcode scanning with Scandit and XamarinXamarin
 
Developing and Designing Native Mobile Apps in Xamarin Studio
Developing and Designing Native Mobile Apps in Xamarin StudioDeveloping and Designing Native Mobile Apps in Xamarin Studio
Developing and Designing Native Mobile Apps in Xamarin StudioXamarin
 
Xamarin Mobile Leaders Summit: Business at the Point of Inspiration: Producti...
Xamarin Mobile Leaders Summit: Business at the Point of Inspiration: Producti...Xamarin Mobile Leaders Summit: Business at the Point of Inspiration: Producti...
Xamarin Mobile Leaders Summit: Business at the Point of Inspiration: Producti...Xamarin
 
Xamarin Mobile Leaders Summit: The Mobile Mind Shift: Opportunities, Challeng...
Xamarin Mobile Leaders Summit: The Mobile Mind Shift: Opportunities, Challeng...Xamarin Mobile Leaders Summit: The Mobile Mind Shift: Opportunities, Challeng...
Xamarin Mobile Leaders Summit: The Mobile Mind Shift: Opportunities, Challeng...Xamarin
 
Xamarin Mobile Leaders Summit | Solving the Unique Challenges in Mobile DevOps
Xamarin Mobile Leaders Summit | Solving the Unique Challenges in Mobile DevOpsXamarin Mobile Leaders Summit | Solving the Unique Challenges in Mobile DevOps
Xamarin Mobile Leaders Summit | Solving the Unique Challenges in Mobile DevOpsXamarin
 
Introduction to Xamarin for Visual Studio 2017
Introduction to Xamarin for Visual Studio 2017Introduction to Xamarin for Visual Studio 2017
Introduction to Xamarin for Visual Studio 2017Xamarin
 
Cross Platform Mobile Development with Xamarin
Cross Platform Mobile Development with XamarinCross Platform Mobile Development with Xamarin
Cross Platform Mobile Development with XamarinJoe Koletar
 

Viewers also liked (17)

Accelerate Mobile Success with a Mobile Center of Excellence
Accelerate Mobile Success with a Mobile Center of ExcellenceAccelerate Mobile Success with a Mobile Center of Excellence
Accelerate Mobile Success with a Mobile Center of Excellence
 
Mobile Enterprise Success with Xamarin and IBM
Mobile Enterprise Success with Xamarin and IBMMobile Enterprise Success with Xamarin and IBM
Mobile Enterprise Success with Xamarin and IBM
 
Building Your First Android App with Xamarin
Building Your First Android App with XamarinBuilding Your First Android App with Xamarin
Building Your First Android App with Xamarin
 
Building Your First Xamarin.Forms App
Building Your First Xamarin.Forms AppBuilding Your First Xamarin.Forms App
Building Your First Xamarin.Forms App
 
Intro to Xamarin for Visual Studio: Native iOS, Android, and Windows Apps in C#
Intro to Xamarin for Visual Studio: Native iOS, Android, and Windows Apps in C#Intro to Xamarin for Visual Studio: Native iOS, Android, and Windows Apps in C#
Intro to Xamarin for Visual Studio: Native iOS, Android, and Windows Apps in C#
 
Native i os, android, and windows development in c# with xamarin 4
Native i os, android, and windows development in c# with xamarin 4Native i os, android, and windows development in c# with xamarin 4
Native i os, android, and windows development in c# with xamarin 4
 
Introduction to xamarin
Introduction to xamarinIntroduction to xamarin
Introduction to xamarin
 
Android L and So Much More Webinar Slides
Android L and So Much More Webinar SlidesAndroid L and So Much More Webinar Slides
Android L and So Much More Webinar Slides
 
Native App Development for iOS, Android, and Windows with Visual Studio
Native App Development for iOS, Android, and Windows with Visual StudioNative App Development for iOS, Android, and Windows with Visual Studio
Native App Development for iOS, Android, and Windows with Visual Studio
 
Xamarin
XamarinXamarin
Xamarin
 
Enterprise-grade mobile barcode scanning with Scandit and Xamarin
Enterprise-grade mobile barcode scanning with Scandit and XamarinEnterprise-grade mobile barcode scanning with Scandit and Xamarin
Enterprise-grade mobile barcode scanning with Scandit and Xamarin
 
Developing and Designing Native Mobile Apps in Xamarin Studio
Developing and Designing Native Mobile Apps in Xamarin StudioDeveloping and Designing Native Mobile Apps in Xamarin Studio
Developing and Designing Native Mobile Apps in Xamarin Studio
 
Xamarin Mobile Leaders Summit: Business at the Point of Inspiration: Producti...
Xamarin Mobile Leaders Summit: Business at the Point of Inspiration: Producti...Xamarin Mobile Leaders Summit: Business at the Point of Inspiration: Producti...
Xamarin Mobile Leaders Summit: Business at the Point of Inspiration: Producti...
 
Xamarin Mobile Leaders Summit: The Mobile Mind Shift: Opportunities, Challeng...
Xamarin Mobile Leaders Summit: The Mobile Mind Shift: Opportunities, Challeng...Xamarin Mobile Leaders Summit: The Mobile Mind Shift: Opportunities, Challeng...
Xamarin Mobile Leaders Summit: The Mobile Mind Shift: Opportunities, Challeng...
 
Xamarin Mobile Leaders Summit | Solving the Unique Challenges in Mobile DevOps
Xamarin Mobile Leaders Summit | Solving the Unique Challenges in Mobile DevOpsXamarin Mobile Leaders Summit | Solving the Unique Challenges in Mobile DevOps
Xamarin Mobile Leaders Summit | Solving the Unique Challenges in Mobile DevOps
 
Introduction to Xamarin for Visual Studio 2017
Introduction to Xamarin for Visual Studio 2017Introduction to Xamarin for Visual Studio 2017
Introduction to Xamarin for Visual Studio 2017
 
Cross Platform Mobile Development with Xamarin
Cross Platform Mobile Development with XamarinCross Platform Mobile Development with Xamarin
Cross Platform Mobile Development with Xamarin
 

Similar to Xamarin: Introduction to iOS 8

Adopting 3D Touch in your apps
Adopting 3D Touch in your appsAdopting 3D Touch in your apps
Adopting 3D Touch in your appsJuan C Catalan
 
iOS for ERREST - alternative version
iOS for ERREST - alternative versioniOS for ERREST - alternative version
iOS for ERREST - alternative versionWO Community
 
Android Architecture Components
Android Architecture ComponentsAndroid Architecture Components
Android Architecture ComponentsBurhanuddinRashid
 
Swift ui userinput
Swift ui userinputSwift ui userinput
Swift ui userinputjoonjhokil
 
Swift Montevideo Meetup - iPhone, una herramienta medica
Swift Montevideo Meetup - iPhone, una herramienta medicaSwift Montevideo Meetup - iPhone, una herramienta medica
Swift Montevideo Meetup - iPhone, una herramienta medicaWashington Miranda
 
Swift Montevideo Meetup - iPhone, una herramienta medica
Swift Montevideo Meetup - iPhone, una herramienta medicaSwift Montevideo Meetup - iPhone, una herramienta medica
Swift Montevideo Meetup - iPhone, una herramienta medicaWashington Miranda
 
Leaving Interface Builder Behind
Leaving Interface Builder BehindLeaving Interface Builder Behind
Leaving Interface Builder BehindJohn Wilker
 
Advance UIAutomator : Documentaion
Advance UIAutomator : DocumentaionAdvance UIAutomator : Documentaion
Advance UIAutomator : DocumentaionRaman Gowda Hullur
 
Writing Mirror API and Native Apps for Google Glass
Writing Mirror API and Native Apps for Google GlassWriting Mirror API and Native Apps for Google Glass
Writing Mirror API and Native Apps for Google GlassJean-Luc David
 
3D Touch: Preparando sua app para o futuro do iOS
3D Touch: Preparando sua app para o futuro do iOS3D Touch: Preparando sua app para o futuro do iOS
3D Touch: Preparando sua app para o futuro do iOSRodrigo Borges
 
iOS Beginners Lesson 4
iOS Beginners Lesson 4iOS Beginners Lesson 4
iOS Beginners Lesson 4Calvin Cheng
 
Rambler.iOS #6: App delegate - разделяй и властвуй
Rambler.iOS #6: App delegate - разделяй и властвуйRambler.iOS #6: App delegate - разделяй и властвуй
Rambler.iOS #6: App delegate - разделяй и властвуйRAMBLER&Co
 
Cocoa coders 141113-watch
Cocoa coders 141113-watchCocoa coders 141113-watch
Cocoa coders 141113-watchCarl Brown
 
Quick Start to iOS Development
Quick Start to iOS DevelopmentQuick Start to iOS Development
Quick Start to iOS DevelopmentJussi Pohjolainen
 
Ionic bbl le 19 février 2015
Ionic bbl le 19 février 2015Ionic bbl le 19 février 2015
Ionic bbl le 19 février 2015Loïc Knuchel
 
MobileCity:Core Data
MobileCity:Core DataMobileCity:Core Data
MobileCity:Core DataAllan Davis
 
Apps development for Recon HUDs
Apps development for Recon HUDsApps development for Recon HUDs
Apps development for Recon HUDsXavier Hallade
 

Similar to Xamarin: Introduction to iOS 8 (20)

iOS
iOSiOS
iOS
 
Adopting 3D Touch in your apps
Adopting 3D Touch in your appsAdopting 3D Touch in your apps
Adopting 3D Touch in your apps
 
iOS for ERREST - alternative version
iOS for ERREST - alternative versioniOS for ERREST - alternative version
iOS for ERREST - alternative version
 
Android Architecture Components
Android Architecture ComponentsAndroid Architecture Components
Android Architecture Components
 
Swift ui userinput
Swift ui userinputSwift ui userinput
Swift ui userinput
 
Swift Montevideo Meetup - iPhone, una herramienta medica
Swift Montevideo Meetup - iPhone, una herramienta medicaSwift Montevideo Meetup - iPhone, una herramienta medica
Swift Montevideo Meetup - iPhone, una herramienta medica
 
Swift Montevideo Meetup - iPhone, una herramienta medica
Swift Montevideo Meetup - iPhone, una herramienta medicaSwift Montevideo Meetup - iPhone, una herramienta medica
Swift Montevideo Meetup - iPhone, una herramienta medica
 
Leaving Interface Builder Behind
Leaving Interface Builder BehindLeaving Interface Builder Behind
Leaving Interface Builder Behind
 
Package org dev
Package org devPackage org dev
Package org dev
 
Advance UIAutomator : Documentaion
Advance UIAutomator : DocumentaionAdvance UIAutomator : Documentaion
Advance UIAutomator : Documentaion
 
Writing Mirror API and Native Apps for Google Glass
Writing Mirror API and Native Apps for Google GlassWriting Mirror API and Native Apps for Google Glass
Writing Mirror API and Native Apps for Google Glass
 
3D Touch: Preparando sua app para o futuro do iOS
3D Touch: Preparando sua app para o futuro do iOS3D Touch: Preparando sua app para o futuro do iOS
3D Touch: Preparando sua app para o futuro do iOS
 
iOS Beginners Lesson 4
iOS Beginners Lesson 4iOS Beginners Lesson 4
iOS Beginners Lesson 4
 
Rambler.iOS #6: App delegate - разделяй и властвуй
Rambler.iOS #6: App delegate - разделяй и властвуйRambler.iOS #6: App delegate - разделяй и властвуй
Rambler.iOS #6: App delegate - разделяй и властвуй
 
I os 11
I os 11I os 11
I os 11
 
Cocoa coders 141113-watch
Cocoa coders 141113-watchCocoa coders 141113-watch
Cocoa coders 141113-watch
 
Quick Start to iOS Development
Quick Start to iOS DevelopmentQuick Start to iOS Development
Quick Start to iOS Development
 
Ionic bbl le 19 février 2015
Ionic bbl le 19 février 2015Ionic bbl le 19 février 2015
Ionic bbl le 19 février 2015
 
MobileCity:Core Data
MobileCity:Core DataMobileCity:Core Data
MobileCity:Core Data
 
Apps development for Recon HUDs
Apps development for Recon HUDsApps development for Recon HUDs
Apps development for Recon HUDs
 

More from Xamarin

Xamarin University Presents: Building Your First Intelligent App with Xamarin...
Xamarin University Presents: Building Your First Intelligent App with Xamarin...Xamarin University Presents: Building Your First Intelligent App with Xamarin...
Xamarin University Presents: Building Your First Intelligent App with Xamarin...Xamarin
 
Xamarin University Presents: Ship Better Apps with Visual Studio App Center
Xamarin University Presents: Ship Better Apps with Visual Studio App CenterXamarin University Presents: Ship Better Apps with Visual Studio App Center
Xamarin University Presents: Ship Better Apps with Visual Studio App CenterXamarin
 
Get the Most Out of iOS 11 with Visual Studio Tools for Xamarin
Get the Most Out of iOS 11 with Visual Studio Tools for XamarinGet the Most Out of iOS 11 with Visual Studio Tools for Xamarin
Get the Most Out of iOS 11 with Visual Studio Tools for XamarinXamarin
 
Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin
Get the Most out of Android 8 Oreo with Visual Studio Tools for XamarinGet the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin
Get the Most out of Android 8 Oreo with Visual Studio Tools for XamarinXamarin
 
Creative Hacking: Delivering React Native App A/B Testing Using CodePush
Creative Hacking: Delivering React Native App A/B Testing Using CodePushCreative Hacking: Delivering React Native App A/B Testing Using CodePush
Creative Hacking: Delivering React Native App A/B Testing Using CodePushXamarin
 
Build Better Games with Unity and Microsoft Azure
Build Better Games with Unity and Microsoft AzureBuild Better Games with Unity and Microsoft Azure
Build Better Games with Unity and Microsoft AzureXamarin
 
Exploring UrhoSharp 3D with Xamarin Workbooks
Exploring UrhoSharp 3D with Xamarin WorkbooksExploring UrhoSharp 3D with Xamarin Workbooks
Exploring UrhoSharp 3D with Xamarin WorkbooksXamarin
 
Desktop Developer’s Guide to Mobile with Visual Studio Tools for Xamarin
Desktop Developer’s Guide to Mobile with Visual Studio Tools for XamarinDesktop Developer’s Guide to Mobile with Visual Studio Tools for Xamarin
Desktop Developer’s Guide to Mobile with Visual Studio Tools for XamarinXamarin
 
Developer’s Intro to Azure Machine Learning
Developer’s Intro to Azure Machine LearningDeveloper’s Intro to Azure Machine Learning
Developer’s Intro to Azure Machine LearningXamarin
 
Customizing Xamarin.Forms UI
Customizing Xamarin.Forms UICustomizing Xamarin.Forms UI
Customizing Xamarin.Forms UIXamarin
 
Session 4 - Xamarin Partner Program, Events and Resources
Session 4 - Xamarin Partner Program, Events and ResourcesSession 4 - Xamarin Partner Program, Events and Resources
Session 4 - Xamarin Partner Program, Events and ResourcesXamarin
 
Session 3 - Driving Mobile Growth and Profitability
Session 3 - Driving Mobile Growth and ProfitabilitySession 3 - Driving Mobile Growth and Profitability
Session 3 - Driving Mobile Growth and ProfitabilityXamarin
 
Session 2 - Emerging Technologies in your Mobile Practice
Session 2 - Emerging Technologies in your Mobile PracticeSession 2 - Emerging Technologies in your Mobile Practice
Session 2 - Emerging Technologies in your Mobile PracticeXamarin
 
Session 1 - Transformative Opportunities in Mobile and Cloud
Session 1 - Transformative Opportunities in Mobile and Cloud Session 1 - Transformative Opportunities in Mobile and Cloud
Session 1 - Transformative Opportunities in Mobile and Cloud Xamarin
 
SkiaSharp Graphics for Xamarin.Forms
SkiaSharp Graphics for Xamarin.FormsSkiaSharp Graphics for Xamarin.Forms
SkiaSharp Graphics for Xamarin.FormsXamarin
 
Building Games for iOS, macOS, and tvOS with Visual Studio and Azure
Building Games for iOS, macOS, and tvOS with Visual Studio and AzureBuilding Games for iOS, macOS, and tvOS with Visual Studio and Azure
Building Games for iOS, macOS, and tvOS with Visual Studio and AzureXamarin
 
Intro to Xamarin.Forms for Visual Studio 2017
Intro to Xamarin.Forms for Visual Studio 2017Intro to Xamarin.Forms for Visual Studio 2017
Intro to Xamarin.Forms for Visual Studio 2017Xamarin
 
Connected Mobile Apps with Microsoft Azure
Connected Mobile Apps with Microsoft AzureConnected Mobile Apps with Microsoft Azure
Connected Mobile Apps with Microsoft AzureXamarin
 
Building Your First iOS App with Xamarin for Visual Studio
Building Your First iOS App with Xamarin for Visual StudioBuilding Your First iOS App with Xamarin for Visual Studio
Building Your First iOS App with Xamarin for Visual StudioXamarin
 
Enterprise Mobile Success with Oracle and Xamarin
Enterprise Mobile Success with Oracle and XamarinEnterprise Mobile Success with Oracle and Xamarin
Enterprise Mobile Success with Oracle and XamarinXamarin
 

More from Xamarin (20)

Xamarin University Presents: Building Your First Intelligent App with Xamarin...
Xamarin University Presents: Building Your First Intelligent App with Xamarin...Xamarin University Presents: Building Your First Intelligent App with Xamarin...
Xamarin University Presents: Building Your First Intelligent App with Xamarin...
 
Xamarin University Presents: Ship Better Apps with Visual Studio App Center
Xamarin University Presents: Ship Better Apps with Visual Studio App CenterXamarin University Presents: Ship Better Apps with Visual Studio App Center
Xamarin University Presents: Ship Better Apps with Visual Studio App Center
 
Get the Most Out of iOS 11 with Visual Studio Tools for Xamarin
Get the Most Out of iOS 11 with Visual Studio Tools for XamarinGet the Most Out of iOS 11 with Visual Studio Tools for Xamarin
Get the Most Out of iOS 11 with Visual Studio Tools for Xamarin
 
Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin
Get the Most out of Android 8 Oreo with Visual Studio Tools for XamarinGet the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin
Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin
 
Creative Hacking: Delivering React Native App A/B Testing Using CodePush
Creative Hacking: Delivering React Native App A/B Testing Using CodePushCreative Hacking: Delivering React Native App A/B Testing Using CodePush
Creative Hacking: Delivering React Native App A/B Testing Using CodePush
 
Build Better Games with Unity and Microsoft Azure
Build Better Games with Unity and Microsoft AzureBuild Better Games with Unity and Microsoft Azure
Build Better Games with Unity and Microsoft Azure
 
Exploring UrhoSharp 3D with Xamarin Workbooks
Exploring UrhoSharp 3D with Xamarin WorkbooksExploring UrhoSharp 3D with Xamarin Workbooks
Exploring UrhoSharp 3D with Xamarin Workbooks
 
Desktop Developer’s Guide to Mobile with Visual Studio Tools for Xamarin
Desktop Developer’s Guide to Mobile with Visual Studio Tools for XamarinDesktop Developer’s Guide to Mobile with Visual Studio Tools for Xamarin
Desktop Developer’s Guide to Mobile with Visual Studio Tools for Xamarin
 
Developer’s Intro to Azure Machine Learning
Developer’s Intro to Azure Machine LearningDeveloper’s Intro to Azure Machine Learning
Developer’s Intro to Azure Machine Learning
 
Customizing Xamarin.Forms UI
Customizing Xamarin.Forms UICustomizing Xamarin.Forms UI
Customizing Xamarin.Forms UI
 
Session 4 - Xamarin Partner Program, Events and Resources
Session 4 - Xamarin Partner Program, Events and ResourcesSession 4 - Xamarin Partner Program, Events and Resources
Session 4 - Xamarin Partner Program, Events and Resources
 
Session 3 - Driving Mobile Growth and Profitability
Session 3 - Driving Mobile Growth and ProfitabilitySession 3 - Driving Mobile Growth and Profitability
Session 3 - Driving Mobile Growth and Profitability
 
Session 2 - Emerging Technologies in your Mobile Practice
Session 2 - Emerging Technologies in your Mobile PracticeSession 2 - Emerging Technologies in your Mobile Practice
Session 2 - Emerging Technologies in your Mobile Practice
 
Session 1 - Transformative Opportunities in Mobile and Cloud
Session 1 - Transformative Opportunities in Mobile and Cloud Session 1 - Transformative Opportunities in Mobile and Cloud
Session 1 - Transformative Opportunities in Mobile and Cloud
 
SkiaSharp Graphics for Xamarin.Forms
SkiaSharp Graphics for Xamarin.FormsSkiaSharp Graphics for Xamarin.Forms
SkiaSharp Graphics for Xamarin.Forms
 
Building Games for iOS, macOS, and tvOS with Visual Studio and Azure
Building Games for iOS, macOS, and tvOS with Visual Studio and AzureBuilding Games for iOS, macOS, and tvOS with Visual Studio and Azure
Building Games for iOS, macOS, and tvOS with Visual Studio and Azure
 
Intro to Xamarin.Forms for Visual Studio 2017
Intro to Xamarin.Forms for Visual Studio 2017Intro to Xamarin.Forms for Visual Studio 2017
Intro to Xamarin.Forms for Visual Studio 2017
 
Connected Mobile Apps with Microsoft Azure
Connected Mobile Apps with Microsoft AzureConnected Mobile Apps with Microsoft Azure
Connected Mobile Apps with Microsoft Azure
 
Building Your First iOS App with Xamarin for Visual Studio
Building Your First iOS App with Xamarin for Visual StudioBuilding Your First iOS App with Xamarin for Visual Studio
Building Your First iOS App with Xamarin for Visual Studio
 
Enterprise Mobile Success with Oracle and Xamarin
Enterprise Mobile Success with Oracle and XamarinEnterprise Mobile Success with Oracle and Xamarin
Enterprise Mobile Success with Oracle and Xamarin
 

Recently uploaded

AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 

Recently uploaded (20)

AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 

Xamarin: Introduction to iOS 8

  • 1. iOS 8 Overview @mikebluestein September 11, 2014
  • 2. Agenda ▪ Alert Controller ▪ Navigation Controller ▪ Notification Settings ▪ Notification Actions ▪ Popover Presentation Controller ▪ Search Controller ▪ Split View Controller ▪ Visual Effects ▪ Collection Views ▪ Document Picker ▪ Health Kit ▪ Core Image ▪ Scene Kit ▪ Photo Kit
  • 3. Alert Controller ▪ UIAlertViewController ▪Replaces UIActionSheet and UIAlertView iOS 8 Major Features
  • 5. Alert Controller public static UIAlertController PresentOKAlert( string title, string description, UIViewController controller) { // No, inform the user that they must create a home first var alert = UIAlertController.Create (title, ! description, UIAlertControllerStyle.Alert); // Configure the alert alert.AddAction(UIAlertAction.Create (“OK", ! UIAlertActionStyle.Default,(action) => {})); // Display the alert ! controller.PresentViewController (alert, true, null); // Return created controller return alert; }! .!.. // Display the Alert AlertView.PresentOKAlert ("OK Alert”, "This is a sample alert with an OK button.”, this);
  • 6. Navigation Controller ▪Change navigation bar size ▪ Hide navigation bar with gestures iOS 8 Major Features
  • 7. Navigation Controller public override void ViewWillAppear (bool animated) { ! base.ViewWillAppear (animated); // Set the default mode ! NavigationController.HidesBarsOnTap = true; // Wireup segment controller NavBarMode.ValueChanged += (sender, e) => { // Take action based on the selected mode switch(NavBarMode.SelectedSegment) { case 0: NavigationController.HidesBarsOnTap = true; NavigationController.HidesBarsOnSwipe = false; break; case 1: NavigationController.HidesBarsOnTap = false; NavigationController.HidesBarsOnSwipe = true; break; } }; }
  • 8. Notification Settings ▪ UIUserNotificationSetting ▪ Encapsulates notification types ▪ UIUserNotifiationType – Alert, Badge, Sound iOS 8 Major Features
  • 9. Notification Settings // Set the requested notification types UIUserNotificationType type = ! UIUserNotificationType.Alert | UIUserNotificationType.Badge; // Create the setting for the given types UIUserNotificationSettings settings = ! UIUserNotificationSettings.GetSettingsForTypes(type, categories); // Register the settings UIApplication.SharedApplication.RegisterUserNotificationSettings ( settings);
  • 10. Notification Actions ▪ UIMutableUserNotificationAction ▪ Custom action in response to notification iOS 8 Major Features
  • 11. Notification Actions var acceptAction = new UIMutableUserNotificationAction { Identifier = "ACCEPT_ID", Title = "Accept", ActivationMode = UIUserNotificationActivationMode.Background, Destructive = false, AuthenticationRequired = false }!; var trashAction = new UIMutableUserNotificationAction { Identifier = "TRASH_ID", Title = "Trash", ActivationMode = UIUserNotificationActivationMode.Background, Destructive = true, AuthenticationRequired = true };
  • 12. Popover Presentation Controller ▪ UIPopoverPresentationController ▪ Manages popover content ▪Modal view on iPhone iOS 8 Major Features
  • 13. Popover Presentation Controller vc.ModalPresentationStyle = ! UIModalPresentationStyle.Popover; .!.. P!resentViewController(vc, true, null); UIPopoverPresentationController popoverController = ! vc.PopoverPresentationController; if (popoverController!=null) { popoverController.SourceView = View; popoverController.PermittedArrowDirections = UIPopoverArrowDirection.Up; popoverController.SourceRect = ShowButton.Frame; }
  • 14. Search Controller ▪ UISearchController ▪ Replaces UISearchDisplayController ▪ UISearchResultsUpdating updates results ▪ Results can be displayed in any view as needed iOS 8 Major Features
  • 15. Search Controller // Create search updater var searchUpdater = new SearchResultsUpdator (); searchUpdater.UpdateSearchResults += (searchText) => { // Perform search and reload search table searchSource.Search(searchText); searchResultsController.TableView.ReloadData(); }!; // Create a search controller SearchController = new UISearchController (searchResultsController); S!earchController.SearchResultsUpdater = searchUpdater; .!.. public class SearchResultsUpdator : UISearchResultsUpdating { public override void UpdateSearchResultsForSearchController (UISearchController searchController) { // Inform caller of the update event RaiseUpdateSearchResults (searchController.SearchBar.Text); } ... }
  • 16. Split View Controller ▪ UISplitViewController ▪ Now works on iPad and iPhone ▪ PreferredDisplayMode • AllVisible, PrimaryHidden, PrimaryOverlay iOS 8 Major Features
  • 17. Split View Features public class Controller : UISplitViewController { public override void ViewDidLoad () { ! base.ViewDidLoad (); PreferredDisplayMode = UISplitViewControllerDisplayMode.AllVisible; } }
  • 18. Visual Effects ▪ UIVisualEffect ▪ Blur and Vibrancy • UIVibrancyEffect • UIBlurEffect iOS 8 Major Features
  • 19. Visual Effects // blur view var blur = UIBlurEffect.FromStyle (UIBlurEffectStyle.Light); var blurView = new UIVisualEffectView (blur) { Frame = new RectangleF (0, 0, imageView.Frame.Width, 400) }!; V!iew.Add (blurView); // vibrancy view var frame = new Rectangle (10, 10, 100, 50); var vibrancy = UIVibrancyEffect.FromBlurEffect (blur); var vibrancyView = new UIVisualEffectView (vibrancy) { Frame = frame }!; vibrancyView.ContentView.Add (label); blurView.ContentView.Add (vibrancyView);
  • 20. Collection Views ▪ Self-sizing cells ▪ UICollectionViewFlowLayout • EstimatedItemSize ▪ UICollectionViewDelegateFlowLayout • SizeThatFits iOS 8 Major Features
  • 21. Collection Views flowLayout = new UICollectionViewFlowLayout (){ EstimatedItemSize = new SizeF (44, 144) }!; .!.. public override SizeF SizeThatFits (SizeF size) { label.Frame = new RectangleF (new PointF (0, 0), label.AttributedText.Size); return label.AttributedText.Size; }
  • 22. Document Picker ▪ UIDocumentPickerController ▪ Select documents outside app sandbox ▪ User can open and documents directly iOS 8 Major Features
  • 23. Document Picker ! var allowedUTIs = new string[] { UTType.PDF, UTType.Image, ... }!; var pickerMenu = new UIDocumentMenuViewController(allowedUTIs, ! UIDocumentPickerMode.Open); p!ickerMenu.DidPickDocumentPicker += (sender, args) => { ! args.DocumentPicker.DidPickDocument += (s, pArgs) => { var securityEnabled = ! pArgs.Url.StartAccessingSecurityScopedResource(); ! ThisApp.OpenDocument(pArgs.Url); pArgs.Url.StopAccessingSecurityScopedResource(); ! }; // Display the document picker PresentViewController (args.DocumentPicker, true, null); };
  • 24. Health Kit ▪ Store and Share Health Data ▪ Create Data ▪ Save Data ▪ Query Data iOS 8 Major Features
  • 25. Health Kit Classes ▪ HKUnit • represents a unit of measure ▪ HKQuantity • double value relative to a unit • can be used for conversion ▪ HKObjectType • represent different kinds of data that can be stored ▪ HKObject • All data stored is a subclass of HKObject
  • 26. Health Store ▪ HKHealthStore - link to the health database ▪ Check Health Kit availability on device ▪ Authorize Health Kit ▪ Save and Query data ▪ Query via HKQuery
  • 27. Authorize // authorization if (HKHealthStore.IsHealthDataAvailable) { var temperatureKey = HKQuantityTypeIdentifierKey.BodyTemperature; var tempQuantityType = HKObjectType.GetQuantityType ! (temperatureKey); ! var healthStore = new HKHealthStore (); healthStore.RequestAuthorizationToShare ( new NSSet (new [] { tempQuantityType }), ! new NSSet (), (success, error) => { }); }
  • 28. Save // save data var temp = HKQuantity.FromQuantity ( HKUnit.DegreeFahrenheit, ! 99.9); var meta = NSDictionary.FromObjectAndKey ( new NSNumber (4), ! HKMetadataKey.BodyTemperatureSensorLocation); var sample = HKQuantitySample.FromType ( tempQuantityType, temp, new NSDate (), new NSDate (), ! meta); healthStore.SaveObject (sample, (success, err) => { ... });
  • 29. Query // query data var temperatureType = HKObjectType.GetQuantityType (HKQuantityTypeIdentifierKey.BodyTemperature) ! as HKSampleType; //Sort descending, by end date (i.e., last sample) var sortDescriptor = new NSSortDescriptor (HKSample.SortIdentifierEndDate, false); n!ew HKSampleQuery (temperatureType, null, 1, new [] { sortDescriptor }, ResultsHandler); protected void ResultsHandler (HKSampleQuery query, HKSample[] results, NSError error) { ... }
  • 30. Core Image ▪ New QR code and Rectangle detectors ▪ New Filters ▪ Custom Filters ▪ Feature detection in video iOS 8 Major Features
  • 31. Core Image Detectors ▪ Previously only facial detection ▪ Now Rectangle and QR code detectors ▪ CIDetector.CreateRectangleDetector ▪ CIDetector.CreateQRDetector
  • 32. Save var context = CIContext.FromOptions (null); var options = new CIDetectorOptions { Accuracy = FaceDetectorAccuracy.High }!; var detector = CIDetector.CreateRectangleDetector (context, options); var ciImage = CIImage.FromCGImage (imageIn.CGImage); v!ar features = detector.FeaturesInImage (ciImage); v!ar overlay = CIImage.ImageWithColor (CIColor.FromRgba (1.0f, 0.0f, 0.0f, 0.7f)); overlay = overlay.ImageByCroppingToRect (features [0].Bounds); var ciImageWithOverlay = overlay.CreateByCompositingOverImage (ciImage);
  • 33. Scene Kit ▪ 3D Scene Graph ▪ Casual 3D Games ▪ 3D Visualizations ▪ Abstracts OpenGL ES iOS 8 Major Features
  • 35. Scene Kit // scene scene = SCNScene.Create (); sceneView = new SCNView (View.Frame); s!ceneView.Scene = scene; sphere = SCNSphere.Create (10.0f); sphereNode = SCNNode.FromGeometry (sphere); sphereNode.Position = new SCNVector3 (0, 0, 0); s!cene.RootNode.AddChildNode (sphereNode); // omni-directional light var light = SCNLight.Create (); var lightNode = SCNNode.Create (); light.LightType = SCNLightType.Omni; light.Color = UIColor.Blue; lightNode.Light = light; lightNode.Position = new SCNVector3 (-40, 40, 60); scene.RootNode.AddChildNode (lightNode); // ambient light ambientLight = SCNLight.Create (); ambientLightNode = SCNNode.Create (); ambientLight.LightType = SCNLightType.Ambient; ambientLight.Color = UIColor.Purple; ambientLightNode.Light = ambientLight; s!cene.RootNode.AddChildNode (ambientLightNode); // camera camera = new SCNCamera { XFov = 80, YFov = 80 }; cameraNode = new SCNNode { Camera = camera, Position = new SCNVector3 (0, 0, 40) }; scene.RootNode.AddChildNode (cameraNode)
  • 36. Photo Kit ▪ Framework to work with photo and video assets ▪ Fetch Results - PHAsset.FetchAssets ▪ Write Changes - PhotoLibraryObserver iOS 8 Major Features
  • 37. DEMO
  • 38. Much More ▪ Manual Camera Controls ▪ Home Kit ▪ Cloud Kit ▪ Handoff ▪ Touch ID Auth ▪ App Extensions ▪ Unified Storyboards ▪ Sprite Kit ▪ Metal ▪ Apple Pay