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

Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
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
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 

Recently uploaded (20)

Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
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
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 

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