SlideShare a Scribd company logo
1 of 41
Download to read offline
iOS Development
Survival Guide for
the .NET Guy (Gal)
Nick Landry
Microsoft Senior Technical Evangelist
Nokia Developer Ambassador
nick.landry@microsoft.com
www.AgeofMobility.com
@ActiveNick



 http://www.bigbaldapps.com







 www.AgeofMobility.com
 @ActiveNick
2005-2014
Disclaimers & Assumptions
• You know little to nothing about iOS development
• You’re a .NET developer: C# (or VB.NET), Visual Studio, XAML, ASP.NET,
Windows Forms, etc.
• You know some basics of Microsoft device development: Windows 8/RT
or Windows Phone
• You have access to a Mac, and preferably an iPad or iPhone too
• You want to learn the “native” iOS dev basics: Xcode & Objective C
– I am NOT covering mobile design considerations
– I am NOT covering Xamarin.iOS / MonoTouch, Appcelerator,
or Hybrid HTML5 App Development with PhoneGap
Agenda
• Overview of the Apple World
• How to Get Started with iOS Development
• Side-by-Side Comparisons: iOS vs. .NET
• Developing in Xcode vs. Visual Studio
• Simple Demo App + Sample Code
• iOS Frameworks
• Calling Cloud Services from iOS Apps
• iOS Developer Toolbox Recommendations
• iOS App Deployment
• Quick Tour of iOS 7 and Xcode 5
Smartphone Platform Options
Overview of the Apple World
Recent Timeline
iPhone
iPod Touch
iPad
iPad Mini
Apple TV (2nd generation)
iOS 5.1.1 (Spring 2012)
iOS 6.0 (September 2012)
iOS 6.1 (January 2013)
iOS 7.0 (September 2013)
iOS 7.1
iOS Devices Latest iOS Versions
Jan 2007 – iPhone OS
Announcement
June 2007 – iPhone v1
Mar 2008 – App Store Beta
July 2008 – App Store
Launch
April 2010 – iPad v1
June 2010 – iPhone OS
renamed to iOS
October 2012 – iPad Mini
About Mac OS X
Cheetah Snow Leopard Lion Mountain Lion
Version 10.6
• Intel CPUs only
• Better performance
• New Finder
• Faster Safari Web
Browser
• Mac App Store
Version 10.7
• 64-bit CPUs only
• No more Rosetta
• More multi-touch
gestures
• Application resume
• Auto-save docs
• Launchpad
• Mission Control
Version 10.8
• Game Center
• iMessage
• Notification Center
• iWorks documents
in iCloud
Version 10.0
• Original release
• New Mac OS
• PowerPC CPUs only
• Slow & incomplete
• Transition to Intel
CPUs followed in
“Tiger” & “Leopard”
2001 2009 2011 2012
iOS is loosely based on Mac OS X
OS X: based on UNIX & NeXT tech
2013
i.e. How to compete with 1,000,000 apps
iOS Development for iPhone & iPad
Getting Started with Native iOS Development
Get a Mac. iOS device
recommended too
• 2.5GHz Intel Core i5 Mac
Mini from $599 (new)
• 11-inch Intel Core i5 64GB
MacBook Air from $999
(new)
• Look for eBay Deals
Install Xcode
• Free download in the Mac
App Store
• Register an account at
developer.apple.com
• $99 / year to deploy to
actual devices & publish to
the App Store
Install Xamarin.iOS
• Aka “MonoTouch”
• Yes, you still need a Mac to
build iOS apps
• Free Starter Edition at
Xamarin.com
• $299 for Indie Edition: no
size limit + components
Install Other Tools
• UI Controls
• SDKs & Frameworks
• Dev Tools & IDEs
• Prototyping Tools
• Deployment Tools
• Start Learning!
Getting Started: .NET  iOS
MICROSOFT .NET DEVELOPER APPLE IOS DEVELOPER
Computer Any Windows PC/laptop Mac
Dev Operating System Windows 8.1 Mac OS X
Official Resources MSDN Apple Developer Center
Development IDE Visual Studio Xcode
Development Languages C#, VB.NET, F#, etc. Objective-C
Primary SDK .NET Framework + WP SDK,
Windows 8.x SDK
iOS SDK
Code Compilation Managed Code Native Code
Runtime .NET CLR / WinRT No*
SDK Libraries .NET Assemblies Frameworks
User Interface XAML Controls Cocoa Touch Controls
Operating System Targets Win 8, Windows Phone iOS
Developer Program $19 per year $99 per year
Target Devices Lots of Diversity Few Options
Xcode – New Project
Demo
iOS Development
with Objective C and Xcode
Development IDE Comparison
MICROSOFT .NET DEVELOPER APPLE IOS DEVELOPER
IDE Visual Studio 2013 Xcode 5.x
Templates Yes Yes
Top Level of Hierarchy Solution Workspace
Application Projects Projects Projects
Class Files .cs .h, .m
Design Patterns Any / All MVC
Prevent Naming Collision Namespaces Prefixes
Device Emulation Emulator Simulator
Application Package .appx, .xap (package) .app (bundle)
Rearrange IDE Layout Yes No
Source Control TFS, Git, SVN, VSS, etc. Git, SVN
Objective C vs. C# - Sample Code
MICROSOFT .NET / C# DEVELOPER APPLE IOS OBJECTIVE-C DEVELOPER
ArrayList myList;
myList = new ArrayList();
myList.Add("Welcome! ");
int currentIndex = 0;
string message = myList.Item[currentIndex];
TextBox1.Text = message;
NSMutableArray *myList;
myList = [[NSMutableArray alloc] init];
[myList addObject:@"Welcome!"];
int currentIndex = 0;
NSString *message = [myList
objectAtIndex:currentIndex];
[textField setText:message];
iOS & the Model View Controller
• Using the MVC pattern is mandatory in Xcode for iOS projects based on UIKit
– No code behind. All code goes in Controller
– Apple decided for you. Don’t fight it
• Facilitates the development of Universal iOS apps for iPhone and iPad
• UIKit provides a system for navigating between Views and Controllers
– Includes Visual Transition
• Xcode provides drag & drop interactions
to connect Views and Controllers
– Actions and Outlets
iOS Frameworks & PrefixesCocoaTouchLayer(8frameworks)
• UIKit (UI)
• MapKit (MK)
• EventKitUI (EK)
• GameKit (GK)
• iAd (AD)
• MessageUI (MF)
• AddressBookUI
(AB)
• Twitter (TW)
MediaLayer(16frameworks)
• CoreGraphics
(CG)
• CoreAudio (AC)
• CoreImage (CI)
• CoreVideo (CV)
• GLKit (GLK) /
OpenGL ES (GL)
• MediaPlayer (MP)
CoreServicesLayer(17frameworks)
• Accounts (AC)
• CFNetwork,
CoreFoundation
(CF)
• CoreMotion (CM)
• System
Configuration
(SN)
CoreOSLayer(5frameworks)
• CoreBluetooth
(CB)
• External
Accessory (EA)
• Security, System,
Accelerate
Foundation (NS)
CoreData (NS)
NS
Compilation & Memory Management
• Programming language (C#, VB.NET,
F#, etc.) compiled into Intermediate
Language (IL)
• IL compiled into native machine code
(x86 / x64) by the CLR
• Garbage Collection built-in and
automatically managed by the CLR
.NET iOS & Xcode
• Objective C compiled straight to native
machine code
• Previous version of Xcode used to give
developers compiler warnings about
refs
• Automatic Reference Counting (ARC)
provides a mechanism to help prevent
orphan objects & leaks
• ARC works at compile time, inserts the
Retain & Release code for you
Other Comparisons
MICROSOFT .NET DEVELOPER APPLE IOS DEVELOPER
Object Variables References Pointers
Object Creation new alloc and init
Object Initialization Constructors Initializers
Method Invocation Method Calling Message Passing
Relational Storage SQL CE, SQL Lite SQL Lite
Cloud Storage Azure Storage,
SQL Azure
iCloud Storage
Mobile Deployment
Microsoft .NET Developer Apple iOS Developer
Operating System Targets Windows 8.x, Windows Phone 8.x iOS
Developer Program $19 / year $99 / year
Target Devices Lots of Diversity Few Options
Deployment: Official Store Windows (Phone) Store App Store
Developer Unlock Device-level App-level
Deployment Package .appx, .xap (package) .app (bundle)
Deployment: Side-Loading Win7 / Win8.x Desktop only No
Enterprise Deployment Yes Yes
iOS Development: Default UIKit
• Push Buttons: Gradient, Rounded Rect, Textured, Recessed, Square, Round, Bevel, Pop Up, Inline
• Fields: Text, Search, Token, Secure, Masked, Wrapping
• Sliders: Horizontal, Vertical, Circular
• Progress Indicators: Indeterminate, Circular
• Formatters: Date, Number, Custom
• Label, Wrapping Label, Text View
• Combo Box, Date Picker, Check Box,
Radio Group
• Segmented, Image Well, Color Well,
Stepper, Level Indicator, Path Control
• Disclosure Triangle & Button,
Help Button
iOS Dev Toolbox – UI Controls
• Cocoa Controls (OSS & Commercial)
– www.cocoacontrols.com
• Maps
– Google Maps SDK for iOS
• http://developers.google.com/maps/documentation/ios
– Esri ArcGIS Map Control for iOS
• http://developers.arcgis.com/en/ios
– Bing Maps Controls for iOS
• www.microsoft.com/en-us/download/details.aspx?id=1112
• NucliOS – Commercial iOS Controls by Infragistics
– www.infragistics.com/ios
• Shinobi Controls – Commercial iOS Controls by VisiBlox
– www.shinobicontrols.com/ios
• Telerik – UI for iOS
– www.telerik.com/ios-ui
Popular Cocoa Controls
iCarousel ProgressView PDF Viewer Center Button DragKeyboard
AutoScroll Tab Bar Pull-to-Refresh Text Field Cell Alert Overlay
Popular Cocoa Controls
CorePlot GradientButton Calendar Coverflow Graph
Circular Progress Gallery Progress HUD Grid View Modal Panel
iOS Dev Toolbox – Tools & IDEs
• JetBrains AppCode
– www.jetbrains.com/objc
• CodeRunner
– http://krillapps.com/coderunner
• App Annie Analytics
– www.appannie.com
• Reflector App for Mac
– www.airsquirrels.com/reflector
• Windows Azure Mobile Services
– www.windowsazure.com/en-us/develop/mobile
What is Azure Mobile Services?
Demo
Calling Cloud Services from iOS Apps
iOS Push Notifications
• Push (aka remote) notifications
– Introduced in iOS 3.0 & OS X version 10.7 (“Lion”)
– Apps must register to receive push notifications
– Apple Push Notification service (APNs) is required
– Require an SSL certificate per app from Dev Center
– Max size for notification payload is 256 bytes
• Local Notifications
– Introduced in iOS 4.0; not available in OS X
– Local notifications are scheduled by an app
• Local and push notifications look &
sound the same when shown
iOS Push: from Provider to Device
• Providers push to many devices
• Devices can receive push notifications from many providers
• APN Service includes
a default Quality of
Service (QoS)
component that
performs a
store-and-forward
function
• Hugely scalable push notifications
• Cross platform (including iOS & Android)
• Independent of storing data in cloud
• Push to a single user or millions
• Client and server registration
• Watch “Push Notifications to Any Client
with Notification Hubs”
– http://channel9.msdn.com/Events/Build/2014/2-616
Microsoft Azure Notification Hubs
APNs WNS
Notification Hub
App back-end
iOS app Windows app
MPNS
GCM
ADM
iOS Dev Toolbox – Prototyping
• UI Stencils
– www.uistencils.com
• AppCooker
– www.appcooker.com
• Balsamiq
– http://balsamiq.com
• Indigo Studio by Infragistics
– www.infragistics.com/products/indigo-studio
• Proto.io
– http://proto.io
• xScope
– http://xscopeapp.com
iOS Dev Toolbox – Deployment
• Use TestFlight as an alternative to enterprise deployment
• Free solution for prototype deployment & beta-testing
– Ideal when you don’t have an enterprise account
• Not a replacement for the App Store
• Simple Steps
– Sign-up & create a team
– Invite team members
– Testers accept email on their iOS device,
which leads them to register, install TestFlight app
– Upload your app to TestFlight
• Notifies users when a new build is up
• www.testflightapp.com
iOS Deployment with TestFlight
• Over-the-air
• Team Management
• Reports
• Crash Reports
• Feedback
What’s New in iOS v7
Consumer Features (available now)
• New Control Center (à la Android)
• Notification Center (new Today summary)
• New scheduled updates in apps
• New shooting formats and filters
• AirDrop sharing (to other iOS devices only)
• Safari – New gestures, full-screen mode, unified
search field, tab view, shared links, reading list
• iCloud Keychain
• iTunes Radio
• New Siri – Male / Female (even pulls from Bing!)
Developer Features (available now)
• Support for A7 and 64-bit
• OpenGL ES 3
• M7 and Core Motion
• New Metro-inspired User Interface
• New APIs for AirDrop, Scheduled Tasks,
camera, video capture, Map Kit (directions API,
3D, etc.)
• Game Dev: New SpriteKit framework, new
Game Center, support for game controllers
• iBeacon accessories & Bluetooth LE
• New Inter-App (shareable) Audio
Announced June 2013 at WWDC: developer.apple.com/wwdc/videos
What’s New in Xcode 5
• Automatic Configuration: enable Apple
services in your app, from within the IDE
• Test Navigator: helps you create, edit,
and run your unit tests (TDD)
• Bots for Continuous Integration
• Auto Layout: Create a single user
interface which automatically adjusts to
screen size, orientation, and localization
• Asset Management
• Debug Gauges: show app resource
consumption data at a glance, including
CPU, memory, energy use, iCloud, and
OpenGL ES
• Xcode Visual Debugger
• New Top-Level Source Control Menu
Summary and Next Steps…
Getting Started as an iOS Developer
Register for a free account at developer.apple.com
Get/buy a Mac and install Xcode for free from the Apple Mac Store
Learn More About iOS Development via Official Apple Videos
Official Getting Started Videos: developer.apple.com/videos/ios
WWDC Videos: developer.apple.com/wwdc/videos
Check Out Additional Learning Resources
Pluralsight iOS Training: www.pluralsight.com/training/Courses#ios
Twitter List of iOS Experts: twitter.com/ActiveNick/ios-dev-bloggers
Download Additional Resources & Become an Expert
Explore Free Open Source Controls: www.cocoacontrols.com
Leverage Azure Mobile Services in your Apps: http://bit.ly/mswams
Try the many developer toolbox products I covered, and more!
46
1
2
3
4
iOS Technical Resources
• Age of Mobility Blog
– www.AgeofMobility.com
• Official Getting Started Videos
– developer.apple.com/videos/ios
• WWDC Videos
– developer.apple.com/wwdc/videos
• Pluralsight iOS Training
– www.pluralsight.com/training/Courses#ios
• Subscribe to Dave Verwer’s iOS Dev Weekly Newsletter
– http://iosdevweekly.com
• Code by SteveZ
– www.infragistics.com/community/blogs/stevez
• Torrey’s Blog
– www.infragistics.com/community/blogs/torrey-betts
• Twitter List
– twitter.com/ActiveNick/ios-dev-bloggers
Recommended iOS Books
iOS Programming for .NET Developers
(Josh Smith)
http://iosfordotnetdevs.com
Programming iOS 7, 4th Edition
(Neuburg, O’Reilly)
http://amzn.to/1el9Z7L
iOS Programming: The Big Nerd Ranch Guide
4th Edition(Conway, Hillegass, Keur)
http://amzn.to/1dIM999
Objective-C Programming: The Big Nerd Ranch Guide
2nd Edition (Hillegass, Ward)
http://amzn.to/1kHJQaB
Free iBooks
These iBooks are not very recent, dating back
to 2010 and iOS version 4
But free is free!
Use them as a starting point but make sure to
stay current with references on programming
for iOS 5 and 6
Additional iOS Programming books are available for free from Apple via the iBooks Store on
your iOS device, including Objective C, Cocoa Fundamentals, iOS, OS X, Deployment &
more.
Available on iPad and iPhone
Thank You!
Slides will be posted on my Slideshare account.
Please fill out an evaluation. Your feedback is important and appreciated.
Slideshare: www.slideshare.net/ActiveNick
Blog: www.AgeofMobility.com
Twitter: @ActiveNick
Mobile Apps: www.bigbaldapps.com
LinkedIn: www.linkedin.com/in/activenick
Website: www.AgeofMobility.com
Email: nick.landry@microsoft.com

More Related Content

What's hot

Building Universal Windows Apps for Smartphones and Tablets with XAML & C#
Building Universal Windows Apps for Smartphones and Tablets with XAML & C#Building Universal Windows Apps for Smartphones and Tablets with XAML & C#
Building Universal Windows Apps for Smartphones and Tablets with XAML & C#Nick Landry
 
Cordova + Ionic + MobileFirst
Cordova + Ionic + MobileFirstCordova + Ionic + MobileFirst
Cordova + Ionic + MobileFirstRaymond Camden
 
Xcode, Basics and Beyond
Xcode, Basics and BeyondXcode, Basics and Beyond
Xcode, Basics and Beyondrsebbe
 
Cordova / PhoneGap, mobile apps development with HTML5/JS/CSS
Cordova / PhoneGap, mobile apps development with HTML5/JS/CSSCordova / PhoneGap, mobile apps development with HTML5/JS/CSS
Cordova / PhoneGap, mobile apps development with HTML5/JS/CSSGabriel Huecas
 
Xamarin.Forms Bootcamp
Xamarin.Forms BootcampXamarin.Forms Bootcamp
Xamarin.Forms BootcampMike Melusky
 
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGap
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGapBuilding Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGap
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGapNick Landry
 
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)Ryan Cuprak
 
iTunes App Store Submission Process
iTunes App Store Submission ProcessiTunes App Store Submission Process
iTunes App Store Submission ProcessAnscamobile
 
打造你的第一個iPhone APP
打造你的第一個iPhone APP打造你的第一個iPhone APP
打造你的第一個iPhone APP彼得潘 Pan
 
NCDevCon 2017 - Cross Platform Mobile Apps
NCDevCon 2017 - Cross Platform Mobile AppsNCDevCon 2017 - Cross Platform Mobile Apps
NCDevCon 2017 - Cross Platform Mobile AppsJohn M. Wargo
 
Intro to Ionic for Building Hybrid Mobile Applications
Intro to Ionic for Building Hybrid Mobile ApplicationsIntro to Ionic for Building Hybrid Mobile Applications
Intro to Ionic for Building Hybrid Mobile ApplicationsSasha dos Santos
 
Iphone client-server app with Rails backend (v3)
Iphone client-server app with Rails backend (v3)Iphone client-server app with Rails backend (v3)
Iphone client-server app with Rails backend (v3)Sujee Maniyam
 
AFNetworking
AFNetworking AFNetworking
AFNetworking joaopmaia
 
Cordova: APIs and instruments
Cordova: APIs and instrumentsCordova: APIs and instruments
Cordova: APIs and instrumentsIvano Malavolta
 

What's hot (20)

Building Universal Windows Apps for Smartphones and Tablets with XAML & C#
Building Universal Windows Apps for Smartphones and Tablets with XAML & C#Building Universal Windows Apps for Smartphones and Tablets with XAML & C#
Building Universal Windows Apps for Smartphones and Tablets with XAML & C#
 
Cordova + Ionic + MobileFirst
Cordova + Ionic + MobileFirstCordova + Ionic + MobileFirst
Cordova + Ionic + MobileFirst
 
Xcode, Basics and Beyond
Xcode, Basics and BeyondXcode, Basics and Beyond
Xcode, Basics and Beyond
 
Architecting iOS Project
Architecting iOS ProjectArchitecting iOS Project
Architecting iOS Project
 
Cordova / PhoneGap, mobile apps development with HTML5/JS/CSS
Cordova / PhoneGap, mobile apps development with HTML5/JS/CSSCordova / PhoneGap, mobile apps development with HTML5/JS/CSS
Cordova / PhoneGap, mobile apps development with HTML5/JS/CSS
 
Intro to iOS Development
Intro to iOS DevelopmentIntro to iOS Development
Intro to iOS Development
 
ios basics
ios basicsios basics
ios basics
 
Xamarin.Forms Bootcamp
Xamarin.Forms BootcampXamarin.Forms Bootcamp
Xamarin.Forms Bootcamp
 
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGap
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGapBuilding Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGap
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGap
 
Presentation1
Presentation1Presentation1
Presentation1
 
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
 
iTunes App Store Submission Process
iTunes App Store Submission ProcessiTunes App Store Submission Process
iTunes App Store Submission Process
 
打造你的第一個iPhone APP
打造你的第一個iPhone APP打造你的第一個iPhone APP
打造你的第一個iPhone APP
 
NCDevCon 2017 - Cross Platform Mobile Apps
NCDevCon 2017 - Cross Platform Mobile AppsNCDevCon 2017 - Cross Platform Mobile Apps
NCDevCon 2017 - Cross Platform Mobile Apps
 
Android - Anroid Pproject
Android - Anroid PprojectAndroid - Anroid Pproject
Android - Anroid Pproject
 
Cross-Platform Development
Cross-Platform DevelopmentCross-Platform Development
Cross-Platform Development
 
Intro to Ionic for Building Hybrid Mobile Applications
Intro to Ionic for Building Hybrid Mobile ApplicationsIntro to Ionic for Building Hybrid Mobile Applications
Intro to Ionic for Building Hybrid Mobile Applications
 
Iphone client-server app with Rails backend (v3)
Iphone client-server app with Rails backend (v3)Iphone client-server app with Rails backend (v3)
Iphone client-server app with Rails backend (v3)
 
AFNetworking
AFNetworking AFNetworking
AFNetworking
 
Cordova: APIs and instruments
Cordova: APIs and instrumentsCordova: APIs and instruments
Cordova: APIs and instruments
 

Similar to iOS Development Survival Guide for the .NET Guy

The Great Mobile Debate: Native vs. Hybrid App Development
The Great Mobile Debate: Native vs. Hybrid App DevelopmentThe Great Mobile Debate: Native vs. Hybrid App Development
The Great Mobile Debate: Native vs. Hybrid App DevelopmentNick Landry
 
Build Your First iPhone or Android App with Telerik AppBuilder
Build Your First iPhone or Android App with Telerik AppBuilderBuild Your First iPhone or Android App with Telerik AppBuilder
Build Your First iPhone or Android App with Telerik AppBuilderJeffrey T. Fritz
 
Introduction to iOS Development
Introduction to iOS DevelopmentIntroduction to iOS Development
Introduction to iOS DevelopmentAsim Rais Siddiqui
 
NativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
NativeScript: Cross-Platform Mobile Apps with JavaScript and AngularNativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
NativeScript: Cross-Platform Mobile Apps with JavaScript and AngularTodd Anglin
 
Developing Applications on iOS
Developing Applications on iOSDeveloping Applications on iOS
Developing Applications on iOSFrancisco Ramos
 
How to Choose the Best Platform for iOS App Development?
How to Choose the Best Platform for iOS App Development?How to Choose the Best Platform for iOS App Development?
How to Choose the Best Platform for iOS App Development?SemaphoreSoftware1
 
Visual Studio 2017 Launch Event
Visual Studio 2017 Launch EventVisual Studio 2017 Launch Event
Visual Studio 2017 Launch EventJames Montemagno
 
How Do I Pick the Best Platform for an iOS App?
How Do I Pick the Best Platform for an iOS App?How Do I Pick the Best Platform for an iOS App?
How Do I Pick the Best Platform for an iOS App?SemaphoreSoftware1
 
Building your Own Mobile Enterprise Application: It’s Not as Hard as You Migh...
Building your Own Mobile Enterprise Application: It’s Not as Hard as You Migh...Building your Own Mobile Enterprise Application: It’s Not as Hard as You Migh...
Building your Own Mobile Enterprise Application: It’s Not as Hard as You Migh...Jason Conger
 
iOS Development - Offline Class for Jasakomer
iOS Development - Offline Class for JasakomeriOS Development - Offline Class for Jasakomer
iOS Development - Offline Class for JasakomerAndri Yadi
 
ID-ObjectiveConference 2012 - Introduction to iOS Development
ID-ObjectiveConference 2012 - Introduction to iOS DevelopmentID-ObjectiveConference 2012 - Introduction to iOS Development
ID-ObjectiveConference 2012 - Introduction to iOS DevelopmentAndri Yadi
 
What's new in Visual Studio for Mac for .NET Developers
What's new in Visual Studio for Mac for .NET DevelopersWhat's new in Visual Studio for Mac for .NET Developers
What's new in Visual Studio for Mac for .NET DevelopersJon Galloway
 
Hybrid Mobile App Development - Xamarin
Hybrid Mobile App Development - XamarinHybrid Mobile App Development - Xamarin
Hybrid Mobile App Development - XamarinDeepu S Nath
 
Post Windows Mobile: New Application Development Platforms
Post Windows Mobile: New Application Development PlatformsPost Windows Mobile: New Application Development Platforms
Post Windows Mobile: New Application Development PlatformsBarcoding, Inc.
 
Android Application Development Using Java
Android Application Development Using JavaAndroid Application Development Using Java
Android Application Development Using Javaamaankhan
 
Mobile Web Apps and the Intel® XDK
Mobile Web Apps and the Intel® XDKMobile Web Apps and the Intel® XDK
Mobile Web Apps and the Intel® XDKIntel® Software
 
Introduction to MonoTouch
Introduction to MonoTouchIntroduction to MonoTouch
Introduction to MonoTouchJonas Follesø
 

Similar to iOS Development Survival Guide for the .NET Guy (20)

C# everywhere
C# everywhereC# everywhere
C# everywhere
 
The Great Mobile Debate: Native vs. Hybrid App Development
The Great Mobile Debate: Native vs. Hybrid App DevelopmentThe Great Mobile Debate: Native vs. Hybrid App Development
The Great Mobile Debate: Native vs. Hybrid App Development
 
Build Your First iPhone or Android App with Telerik AppBuilder
Build Your First iPhone or Android App with Telerik AppBuilderBuild Your First iPhone or Android App with Telerik AppBuilder
Build Your First iPhone or Android App with Telerik AppBuilder
 
Introduction to iOS Development
Introduction to iOS DevelopmentIntroduction to iOS Development
Introduction to iOS Development
 
NativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
NativeScript: Cross-Platform Mobile Apps with JavaScript and AngularNativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
NativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
 
Developing Applications on iOS
Developing Applications on iOSDeveloping Applications on iOS
Developing Applications on iOS
 
How to Choose the Best Platform for iOS App Development?
How to Choose the Best Platform for iOS App Development?How to Choose the Best Platform for iOS App Development?
How to Choose the Best Platform for iOS App Development?
 
Visual Studio 2017 Launch Event
Visual Studio 2017 Launch EventVisual Studio 2017 Launch Event
Visual Studio 2017 Launch Event
 
How Do I Pick the Best Platform for an iOS App?
How Do I Pick the Best Platform for an iOS App?How Do I Pick the Best Platform for an iOS App?
How Do I Pick the Best Platform for an iOS App?
 
Building your Own Mobile Enterprise Application: It’s Not as Hard as You Migh...
Building your Own Mobile Enterprise Application: It’s Not as Hard as You Migh...Building your Own Mobile Enterprise Application: It’s Not as Hard as You Migh...
Building your Own Mobile Enterprise Application: It’s Not as Hard as You Migh...
 
iOS Development - Offline Class for Jasakomer
iOS Development - Offline Class for JasakomeriOS Development - Offline Class for Jasakomer
iOS Development - Offline Class for Jasakomer
 
ID-ObjectiveConference 2012 - Introduction to iOS Development
ID-ObjectiveConference 2012 - Introduction to iOS DevelopmentID-ObjectiveConference 2012 - Introduction to iOS Development
ID-ObjectiveConference 2012 - Introduction to iOS Development
 
Hybrid app development with ionic
Hybrid app development with ionicHybrid app development with ionic
Hybrid app development with ionic
 
IOS ecosystem
IOS ecosystemIOS ecosystem
IOS ecosystem
 
What's new in Visual Studio for Mac for .NET Developers
What's new in Visual Studio for Mac for .NET DevelopersWhat's new in Visual Studio for Mac for .NET Developers
What's new in Visual Studio for Mac for .NET Developers
 
Hybrid Mobile App Development - Xamarin
Hybrid Mobile App Development - XamarinHybrid Mobile App Development - Xamarin
Hybrid Mobile App Development - Xamarin
 
Post Windows Mobile: New Application Development Platforms
Post Windows Mobile: New Application Development PlatformsPost Windows Mobile: New Application Development Platforms
Post Windows Mobile: New Application Development Platforms
 
Android Application Development Using Java
Android Application Development Using JavaAndroid Application Development Using Java
Android Application Development Using Java
 
Mobile Web Apps and the Intel® XDK
Mobile Web Apps and the Intel® XDKMobile Web Apps and the Intel® XDK
Mobile Web Apps and the Intel® XDK
 
Introduction to MonoTouch
Introduction to MonoTouchIntroduction to MonoTouch
Introduction to MonoTouch
 

More from Nick Landry

Designing XR Experiences with Speech & Natural Language Understanding in Unity
Designing XR Experiences with Speech & Natural Language Understandingin UnityDesigning XR Experiences with Speech & Natural Language Understandingin Unity
Designing XR Experiences with Speech & Natural Language Understanding in UnityNick Landry
 
MR + AI: Machine Learning for Language in HoloLens & VR Apps
MR + AI: Machine Learning for Language in HoloLens & VR AppsMR + AI: Machine Learning for Language in HoloLens & VR Apps
MR + AI: Machine Learning for Language in HoloLens & VR AppsNick Landry
 
Building Holographic & VR Experiences Using the Mixed Reality Toolkit for Unity
Building Holographic & VR Experiences Using the Mixed Reality Toolkit for UnityBuilding Holographic & VR Experiences Using the Mixed Reality Toolkit for Unity
Building Holographic & VR Experiences Using the Mixed Reality Toolkit for UnityNick Landry
 
Developing for Xbox as an Indie in 2018
Developing for Xbox as an Indie in 2018Developing for Xbox as an Indie in 2018
Developing for Xbox as an Indie in 2018Nick Landry
 
Mixed Reality Development Overview
Mixed Reality Development OverviewMixed Reality Development Overview
Mixed Reality Development OverviewNick Landry
 
Bots are the New Apps: Building Bots with ASP.NET WebAPI & Language Understan...
Bots are the New Apps: Building Bots with ASP.NET WebAPI & Language Understan...Bots are the New Apps: Building Bots with ASP.NET WebAPI & Language Understan...
Bots are the New Apps: Building Bots with ASP.NET WebAPI & Language Understan...Nick Landry
 
Mobilizing your Existing Enterprise Applications
Mobilizing your Existing Enterprise ApplicationsMobilizing your Existing Enterprise Applications
Mobilizing your Existing Enterprise ApplicationsNick Landry
 
Lessons Learned from Real World Xamarin.Forms Projects
Lessons Learned from Real World Xamarin.Forms ProjectsLessons Learned from Real World Xamarin.Forms Projects
Lessons Learned from Real World Xamarin.Forms ProjectsNick Landry
 
Building Mixed Reality Experiences with the HoloToolkit for Unity
Building Mixed Reality Experiences with the HoloToolkit for UnityBuilding Mixed Reality Experiences with the HoloToolkit for Unity
Building Mixed Reality Experiences with the HoloToolkit for UnityNick Landry
 
Microsoft Speech Technologies for Developers
Microsoft Speech Technologies for DevelopersMicrosoft Speech Technologies for Developers
Microsoft Speech Technologies for DevelopersNick Landry
 
Building Mixed Reality Experiences for Microsoft HoloLens
Building Mixed Reality Experiences for Microsoft HoloLensBuilding Mixed Reality Experiences for Microsoft HoloLens
Building Mixed Reality Experiences for Microsoft HoloLensNick Landry
 
Building a Cross-Platform Mobile App Backend in the Cloud with Node.js
Building a Cross-Platform Mobile App Backend in the Cloud with Node.jsBuilding a Cross-Platform Mobile App Backend in the Cloud with Node.js
Building a Cross-Platform Mobile App Backend in the Cloud with Node.jsNick Landry
 
Scaling IoT: Telemetry, Command & Control, Analytics and the Cloud
Scaling IoT: Telemetry, Command & Control, Analytics and the CloudScaling IoT: Telemetry, Command & Control, Analytics and the Cloud
Scaling IoT: Telemetry, Command & Control, Analytics and the CloudNick Landry
 
Building Mixed Reality Experiences for Microsoft HoloLens in Unity
Building Mixed Reality Experiences for Microsoft HoloLens in UnityBuilding Mixed Reality Experiences for Microsoft HoloLens in Unity
Building Mixed Reality Experiences for Microsoft HoloLens in UnityNick Landry
 
State of Union: Xamarin & Cross-Platform .NET in 2016 and Beyond
State of Union: Xamarin & Cross-Platform .NET in 2016 and BeyondState of Union: Xamarin & Cross-Platform .NET in 2016 and Beyond
State of Union: Xamarin & Cross-Platform .NET in 2016 and BeyondNick Landry
 
Cognitive Services: Building Smart Apps with Speech, NLP & Vision
Cognitive Services: Building Smart Apps with Speech, NLP & VisionCognitive Services: Building Smart Apps with Speech, NLP & Vision
Cognitive Services: Building Smart Apps with Speech, NLP & VisionNick Landry
 
Bots are the New Apps: Building with the Bot Framework & Language Understanding
Bots are the New Apps: Building with the Bot Framework & Language UnderstandingBots are the New Apps: Building with the Bot Framework & Language Understanding
Bots are the New Apps: Building with the Bot Framework & Language UnderstandingNick Landry
 
From Oculus to HoloLens: Building Virtual & Mixed Reality Apps & Games
From Oculus to HoloLens: Building Virtual & Mixed Reality Apps & GamesFrom Oculus to HoloLens: Building Virtual & Mixed Reality Apps & Games
From Oculus to HoloLens: Building Virtual & Mixed Reality Apps & GamesNick Landry
 
Building a Windows 10 Game with C#, XAML and Win2D
Building a Windows 10 Game with C#, XAML and Win2DBuilding a Windows 10 Game with C#, XAML and Win2D
Building a Windows 10 Game with C#, XAML and Win2DNick Landry
 
Hacking with the Raspberry Pi and Windows 10 IoT Core
Hacking with the Raspberry Pi and Windows 10 IoT CoreHacking with the Raspberry Pi and Windows 10 IoT Core
Hacking with the Raspberry Pi and Windows 10 IoT CoreNick Landry
 

More from Nick Landry (20)

Designing XR Experiences with Speech & Natural Language Understanding in Unity
Designing XR Experiences with Speech & Natural Language Understandingin UnityDesigning XR Experiences with Speech & Natural Language Understandingin Unity
Designing XR Experiences with Speech & Natural Language Understanding in Unity
 
MR + AI: Machine Learning for Language in HoloLens & VR Apps
MR + AI: Machine Learning for Language in HoloLens & VR AppsMR + AI: Machine Learning for Language in HoloLens & VR Apps
MR + AI: Machine Learning for Language in HoloLens & VR Apps
 
Building Holographic & VR Experiences Using the Mixed Reality Toolkit for Unity
Building Holographic & VR Experiences Using the Mixed Reality Toolkit for UnityBuilding Holographic & VR Experiences Using the Mixed Reality Toolkit for Unity
Building Holographic & VR Experiences Using the Mixed Reality Toolkit for Unity
 
Developing for Xbox as an Indie in 2018
Developing for Xbox as an Indie in 2018Developing for Xbox as an Indie in 2018
Developing for Xbox as an Indie in 2018
 
Mixed Reality Development Overview
Mixed Reality Development OverviewMixed Reality Development Overview
Mixed Reality Development Overview
 
Bots are the New Apps: Building Bots with ASP.NET WebAPI & Language Understan...
Bots are the New Apps: Building Bots with ASP.NET WebAPI & Language Understan...Bots are the New Apps: Building Bots with ASP.NET WebAPI & Language Understan...
Bots are the New Apps: Building Bots with ASP.NET WebAPI & Language Understan...
 
Mobilizing your Existing Enterprise Applications
Mobilizing your Existing Enterprise ApplicationsMobilizing your Existing Enterprise Applications
Mobilizing your Existing Enterprise Applications
 
Lessons Learned from Real World Xamarin.Forms Projects
Lessons Learned from Real World Xamarin.Forms ProjectsLessons Learned from Real World Xamarin.Forms Projects
Lessons Learned from Real World Xamarin.Forms Projects
 
Building Mixed Reality Experiences with the HoloToolkit for Unity
Building Mixed Reality Experiences with the HoloToolkit for UnityBuilding Mixed Reality Experiences with the HoloToolkit for Unity
Building Mixed Reality Experiences with the HoloToolkit for Unity
 
Microsoft Speech Technologies for Developers
Microsoft Speech Technologies for DevelopersMicrosoft Speech Technologies for Developers
Microsoft Speech Technologies for Developers
 
Building Mixed Reality Experiences for Microsoft HoloLens
Building Mixed Reality Experiences for Microsoft HoloLensBuilding Mixed Reality Experiences for Microsoft HoloLens
Building Mixed Reality Experiences for Microsoft HoloLens
 
Building a Cross-Platform Mobile App Backend in the Cloud with Node.js
Building a Cross-Platform Mobile App Backend in the Cloud with Node.jsBuilding a Cross-Platform Mobile App Backend in the Cloud with Node.js
Building a Cross-Platform Mobile App Backend in the Cloud with Node.js
 
Scaling IoT: Telemetry, Command & Control, Analytics and the Cloud
Scaling IoT: Telemetry, Command & Control, Analytics and the CloudScaling IoT: Telemetry, Command & Control, Analytics and the Cloud
Scaling IoT: Telemetry, Command & Control, Analytics and the Cloud
 
Building Mixed Reality Experiences for Microsoft HoloLens in Unity
Building Mixed Reality Experiences for Microsoft HoloLens in UnityBuilding Mixed Reality Experiences for Microsoft HoloLens in Unity
Building Mixed Reality Experiences for Microsoft HoloLens in Unity
 
State of Union: Xamarin & Cross-Platform .NET in 2016 and Beyond
State of Union: Xamarin & Cross-Platform .NET in 2016 and BeyondState of Union: Xamarin & Cross-Platform .NET in 2016 and Beyond
State of Union: Xamarin & Cross-Platform .NET in 2016 and Beyond
 
Cognitive Services: Building Smart Apps with Speech, NLP & Vision
Cognitive Services: Building Smart Apps with Speech, NLP & VisionCognitive Services: Building Smart Apps with Speech, NLP & Vision
Cognitive Services: Building Smart Apps with Speech, NLP & Vision
 
Bots are the New Apps: Building with the Bot Framework & Language Understanding
Bots are the New Apps: Building with the Bot Framework & Language UnderstandingBots are the New Apps: Building with the Bot Framework & Language Understanding
Bots are the New Apps: Building with the Bot Framework & Language Understanding
 
From Oculus to HoloLens: Building Virtual & Mixed Reality Apps & Games
From Oculus to HoloLens: Building Virtual & Mixed Reality Apps & GamesFrom Oculus to HoloLens: Building Virtual & Mixed Reality Apps & Games
From Oculus to HoloLens: Building Virtual & Mixed Reality Apps & Games
 
Building a Windows 10 Game with C#, XAML and Win2D
Building a Windows 10 Game with C#, XAML and Win2DBuilding a Windows 10 Game with C#, XAML and Win2D
Building a Windows 10 Game with C#, XAML and Win2D
 
Hacking with the Raspberry Pi and Windows 10 IoT Core
Hacking with the Raspberry Pi and Windows 10 IoT CoreHacking with the Raspberry Pi and Windows 10 IoT Core
Hacking with the Raspberry Pi and Windows 10 IoT Core
 

Recently uploaded

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
 
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
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
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
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
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
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

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
 
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
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
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
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
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
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 

iOS Development Survival Guide for the .NET Guy

  • 1. iOS Development Survival Guide for the .NET Guy (Gal) Nick Landry Microsoft Senior Technical Evangelist Nokia Developer Ambassador nick.landry@microsoft.com www.AgeofMobility.com @ActiveNick
  • 3. Disclaimers & Assumptions • You know little to nothing about iOS development • You’re a .NET developer: C# (or VB.NET), Visual Studio, XAML, ASP.NET, Windows Forms, etc. • You know some basics of Microsoft device development: Windows 8/RT or Windows Phone • You have access to a Mac, and preferably an iPad or iPhone too • You want to learn the “native” iOS dev basics: Xcode & Objective C – I am NOT covering mobile design considerations – I am NOT covering Xamarin.iOS / MonoTouch, Appcelerator, or Hybrid HTML5 App Development with PhoneGap
  • 4. Agenda • Overview of the Apple World • How to Get Started with iOS Development • Side-by-Side Comparisons: iOS vs. .NET • Developing in Xcode vs. Visual Studio • Simple Demo App + Sample Code • iOS Frameworks • Calling Cloud Services from iOS Apps • iOS Developer Toolbox Recommendations • iOS App Deployment • Quick Tour of iOS 7 and Xcode 5
  • 6. Overview of the Apple World Recent Timeline iPhone iPod Touch iPad iPad Mini Apple TV (2nd generation) iOS 5.1.1 (Spring 2012) iOS 6.0 (September 2012) iOS 6.1 (January 2013) iOS 7.0 (September 2013) iOS 7.1 iOS Devices Latest iOS Versions Jan 2007 – iPhone OS Announcement June 2007 – iPhone v1 Mar 2008 – App Store Beta July 2008 – App Store Launch April 2010 – iPad v1 June 2010 – iPhone OS renamed to iOS October 2012 – iPad Mini
  • 7. About Mac OS X Cheetah Snow Leopard Lion Mountain Lion Version 10.6 • Intel CPUs only • Better performance • New Finder • Faster Safari Web Browser • Mac App Store Version 10.7 • 64-bit CPUs only • No more Rosetta • More multi-touch gestures • Application resume • Auto-save docs • Launchpad • Mission Control Version 10.8 • Game Center • iMessage • Notification Center • iWorks documents in iCloud Version 10.0 • Original release • New Mac OS • PowerPC CPUs only • Slow & incomplete • Transition to Intel CPUs followed in “Tiger” & “Leopard” 2001 2009 2011 2012 iOS is loosely based on Mac OS X OS X: based on UNIX & NeXT tech
  • 9. i.e. How to compete with 1,000,000 apps iOS Development for iPhone & iPad
  • 10. Getting Started with Native iOS Development Get a Mac. iOS device recommended too • 2.5GHz Intel Core i5 Mac Mini from $599 (new) • 11-inch Intel Core i5 64GB MacBook Air from $999 (new) • Look for eBay Deals Install Xcode • Free download in the Mac App Store • Register an account at developer.apple.com • $99 / year to deploy to actual devices & publish to the App Store Install Xamarin.iOS • Aka “MonoTouch” • Yes, you still need a Mac to build iOS apps • Free Starter Edition at Xamarin.com • $299 for Indie Edition: no size limit + components Install Other Tools • UI Controls • SDKs & Frameworks • Dev Tools & IDEs • Prototyping Tools • Deployment Tools • Start Learning!
  • 11. Getting Started: .NET  iOS MICROSOFT .NET DEVELOPER APPLE IOS DEVELOPER Computer Any Windows PC/laptop Mac Dev Operating System Windows 8.1 Mac OS X Official Resources MSDN Apple Developer Center Development IDE Visual Studio Xcode Development Languages C#, VB.NET, F#, etc. Objective-C Primary SDK .NET Framework + WP SDK, Windows 8.x SDK iOS SDK Code Compilation Managed Code Native Code Runtime .NET CLR / WinRT No* SDK Libraries .NET Assemblies Frameworks User Interface XAML Controls Cocoa Touch Controls Operating System Targets Win 8, Windows Phone iOS Developer Program $19 per year $99 per year Target Devices Lots of Diversity Few Options
  • 12. Xcode – New Project
  • 14. Development IDE Comparison MICROSOFT .NET DEVELOPER APPLE IOS DEVELOPER IDE Visual Studio 2013 Xcode 5.x Templates Yes Yes Top Level of Hierarchy Solution Workspace Application Projects Projects Projects Class Files .cs .h, .m Design Patterns Any / All MVC Prevent Naming Collision Namespaces Prefixes Device Emulation Emulator Simulator Application Package .appx, .xap (package) .app (bundle) Rearrange IDE Layout Yes No Source Control TFS, Git, SVN, VSS, etc. Git, SVN
  • 15. Objective C vs. C# - Sample Code MICROSOFT .NET / C# DEVELOPER APPLE IOS OBJECTIVE-C DEVELOPER ArrayList myList; myList = new ArrayList(); myList.Add("Welcome! "); int currentIndex = 0; string message = myList.Item[currentIndex]; TextBox1.Text = message; NSMutableArray *myList; myList = [[NSMutableArray alloc] init]; [myList addObject:@"Welcome!"]; int currentIndex = 0; NSString *message = [myList objectAtIndex:currentIndex]; [textField setText:message];
  • 16. iOS & the Model View Controller • Using the MVC pattern is mandatory in Xcode for iOS projects based on UIKit – No code behind. All code goes in Controller – Apple decided for you. Don’t fight it • Facilitates the development of Universal iOS apps for iPhone and iPad • UIKit provides a system for navigating between Views and Controllers – Includes Visual Transition • Xcode provides drag & drop interactions to connect Views and Controllers – Actions and Outlets
  • 17. iOS Frameworks & PrefixesCocoaTouchLayer(8frameworks) • UIKit (UI) • MapKit (MK) • EventKitUI (EK) • GameKit (GK) • iAd (AD) • MessageUI (MF) • AddressBookUI (AB) • Twitter (TW) MediaLayer(16frameworks) • CoreGraphics (CG) • CoreAudio (AC) • CoreImage (CI) • CoreVideo (CV) • GLKit (GLK) / OpenGL ES (GL) • MediaPlayer (MP) CoreServicesLayer(17frameworks) • Accounts (AC) • CFNetwork, CoreFoundation (CF) • CoreMotion (CM) • System Configuration (SN) CoreOSLayer(5frameworks) • CoreBluetooth (CB) • External Accessory (EA) • Security, System, Accelerate Foundation (NS) CoreData (NS) NS
  • 18. Compilation & Memory Management • Programming language (C#, VB.NET, F#, etc.) compiled into Intermediate Language (IL) • IL compiled into native machine code (x86 / x64) by the CLR • Garbage Collection built-in and automatically managed by the CLR .NET iOS & Xcode • Objective C compiled straight to native machine code • Previous version of Xcode used to give developers compiler warnings about refs • Automatic Reference Counting (ARC) provides a mechanism to help prevent orphan objects & leaks • ARC works at compile time, inserts the Retain & Release code for you
  • 19. Other Comparisons MICROSOFT .NET DEVELOPER APPLE IOS DEVELOPER Object Variables References Pointers Object Creation new alloc and init Object Initialization Constructors Initializers Method Invocation Method Calling Message Passing Relational Storage SQL CE, SQL Lite SQL Lite Cloud Storage Azure Storage, SQL Azure iCloud Storage
  • 20. Mobile Deployment Microsoft .NET Developer Apple iOS Developer Operating System Targets Windows 8.x, Windows Phone 8.x iOS Developer Program $19 / year $99 / year Target Devices Lots of Diversity Few Options Deployment: Official Store Windows (Phone) Store App Store Developer Unlock Device-level App-level Deployment Package .appx, .xap (package) .app (bundle) Deployment: Side-Loading Win7 / Win8.x Desktop only No Enterprise Deployment Yes Yes
  • 21. iOS Development: Default UIKit • Push Buttons: Gradient, Rounded Rect, Textured, Recessed, Square, Round, Bevel, Pop Up, Inline • Fields: Text, Search, Token, Secure, Masked, Wrapping • Sliders: Horizontal, Vertical, Circular • Progress Indicators: Indeterminate, Circular • Formatters: Date, Number, Custom • Label, Wrapping Label, Text View • Combo Box, Date Picker, Check Box, Radio Group • Segmented, Image Well, Color Well, Stepper, Level Indicator, Path Control • Disclosure Triangle & Button, Help Button
  • 22. iOS Dev Toolbox – UI Controls • Cocoa Controls (OSS & Commercial) – www.cocoacontrols.com • Maps – Google Maps SDK for iOS • http://developers.google.com/maps/documentation/ios – Esri ArcGIS Map Control for iOS • http://developers.arcgis.com/en/ios – Bing Maps Controls for iOS • www.microsoft.com/en-us/download/details.aspx?id=1112 • NucliOS – Commercial iOS Controls by Infragistics – www.infragistics.com/ios • Shinobi Controls – Commercial iOS Controls by VisiBlox – www.shinobicontrols.com/ios • Telerik – UI for iOS – www.telerik.com/ios-ui
  • 23. Popular Cocoa Controls iCarousel ProgressView PDF Viewer Center Button DragKeyboard AutoScroll Tab Bar Pull-to-Refresh Text Field Cell Alert Overlay
  • 24. Popular Cocoa Controls CorePlot GradientButton Calendar Coverflow Graph Circular Progress Gallery Progress HUD Grid View Modal Panel
  • 25. iOS Dev Toolbox – Tools & IDEs • JetBrains AppCode – www.jetbrains.com/objc • CodeRunner – http://krillapps.com/coderunner • App Annie Analytics – www.appannie.com • Reflector App for Mac – www.airsquirrels.com/reflector • Windows Azure Mobile Services – www.windowsazure.com/en-us/develop/mobile
  • 26.
  • 27. What is Azure Mobile Services?
  • 29. iOS Push Notifications • Push (aka remote) notifications – Introduced in iOS 3.0 & OS X version 10.7 (“Lion”) – Apps must register to receive push notifications – Apple Push Notification service (APNs) is required – Require an SSL certificate per app from Dev Center – Max size for notification payload is 256 bytes • Local Notifications – Introduced in iOS 4.0; not available in OS X – Local notifications are scheduled by an app • Local and push notifications look & sound the same when shown
  • 30. iOS Push: from Provider to Device • Providers push to many devices • Devices can receive push notifications from many providers • APN Service includes a default Quality of Service (QoS) component that performs a store-and-forward function
  • 31. • Hugely scalable push notifications • Cross platform (including iOS & Android) • Independent of storing data in cloud • Push to a single user or millions • Client and server registration • Watch “Push Notifications to Any Client with Notification Hubs” – http://channel9.msdn.com/Events/Build/2014/2-616 Microsoft Azure Notification Hubs APNs WNS Notification Hub App back-end iOS app Windows app MPNS GCM ADM
  • 32. iOS Dev Toolbox – Prototyping • UI Stencils – www.uistencils.com • AppCooker – www.appcooker.com • Balsamiq – http://balsamiq.com • Indigo Studio by Infragistics – www.infragistics.com/products/indigo-studio • Proto.io – http://proto.io • xScope – http://xscopeapp.com
  • 33. iOS Dev Toolbox – Deployment • Use TestFlight as an alternative to enterprise deployment • Free solution for prototype deployment & beta-testing – Ideal when you don’t have an enterprise account • Not a replacement for the App Store • Simple Steps – Sign-up & create a team – Invite team members – Testers accept email on their iOS device, which leads them to register, install TestFlight app – Upload your app to TestFlight • Notifies users when a new build is up • www.testflightapp.com
  • 34. iOS Deployment with TestFlight • Over-the-air • Team Management • Reports • Crash Reports • Feedback
  • 35. What’s New in iOS v7 Consumer Features (available now) • New Control Center (à la Android) • Notification Center (new Today summary) • New scheduled updates in apps • New shooting formats and filters • AirDrop sharing (to other iOS devices only) • Safari – New gestures, full-screen mode, unified search field, tab view, shared links, reading list • iCloud Keychain • iTunes Radio • New Siri – Male / Female (even pulls from Bing!) Developer Features (available now) • Support for A7 and 64-bit • OpenGL ES 3 • M7 and Core Motion • New Metro-inspired User Interface • New APIs for AirDrop, Scheduled Tasks, camera, video capture, Map Kit (directions API, 3D, etc.) • Game Dev: New SpriteKit framework, new Game Center, support for game controllers • iBeacon accessories & Bluetooth LE • New Inter-App (shareable) Audio Announced June 2013 at WWDC: developer.apple.com/wwdc/videos
  • 36. What’s New in Xcode 5 • Automatic Configuration: enable Apple services in your app, from within the IDE • Test Navigator: helps you create, edit, and run your unit tests (TDD) • Bots for Continuous Integration • Auto Layout: Create a single user interface which automatically adjusts to screen size, orientation, and localization • Asset Management • Debug Gauges: show app resource consumption data at a glance, including CPU, memory, energy use, iCloud, and OpenGL ES • Xcode Visual Debugger • New Top-Level Source Control Menu
  • 37. Summary and Next Steps… Getting Started as an iOS Developer Register for a free account at developer.apple.com Get/buy a Mac and install Xcode for free from the Apple Mac Store Learn More About iOS Development via Official Apple Videos Official Getting Started Videos: developer.apple.com/videos/ios WWDC Videos: developer.apple.com/wwdc/videos Check Out Additional Learning Resources Pluralsight iOS Training: www.pluralsight.com/training/Courses#ios Twitter List of iOS Experts: twitter.com/ActiveNick/ios-dev-bloggers Download Additional Resources & Become an Expert Explore Free Open Source Controls: www.cocoacontrols.com Leverage Azure Mobile Services in your Apps: http://bit.ly/mswams Try the many developer toolbox products I covered, and more! 46 1 2 3 4
  • 38. iOS Technical Resources • Age of Mobility Blog – www.AgeofMobility.com • Official Getting Started Videos – developer.apple.com/videos/ios • WWDC Videos – developer.apple.com/wwdc/videos • Pluralsight iOS Training – www.pluralsight.com/training/Courses#ios • Subscribe to Dave Verwer’s iOS Dev Weekly Newsletter – http://iosdevweekly.com • Code by SteveZ – www.infragistics.com/community/blogs/stevez • Torrey’s Blog – www.infragistics.com/community/blogs/torrey-betts • Twitter List – twitter.com/ActiveNick/ios-dev-bloggers
  • 39. Recommended iOS Books iOS Programming for .NET Developers (Josh Smith) http://iosfordotnetdevs.com Programming iOS 7, 4th Edition (Neuburg, O’Reilly) http://amzn.to/1el9Z7L iOS Programming: The Big Nerd Ranch Guide 4th Edition(Conway, Hillegass, Keur) http://amzn.to/1dIM999 Objective-C Programming: The Big Nerd Ranch Guide 2nd Edition (Hillegass, Ward) http://amzn.to/1kHJQaB
  • 40. Free iBooks These iBooks are not very recent, dating back to 2010 and iOS version 4 But free is free! Use them as a starting point but make sure to stay current with references on programming for iOS 5 and 6 Additional iOS Programming books are available for free from Apple via the iBooks Store on your iOS device, including Objective C, Cocoa Fundamentals, iOS, OS X, Deployment & more. Available on iPad and iPhone
  • 41. Thank You! Slides will be posted on my Slideshare account. Please fill out an evaluation. Your feedback is important and appreciated. Slideshare: www.slideshare.net/ActiveNick Blog: www.AgeofMobility.com Twitter: @ActiveNick Mobile Apps: www.bigbaldapps.com LinkedIn: www.linkedin.com/in/activenick Website: www.AgeofMobility.com Email: nick.landry@microsoft.com

Editor's Notes

  1. Simulator: Runs on desktop CPU, faster, more RAM, no camera APIs, no push notifications. However, it can simulate low-memory conditions, slow down animations, simulate multiple device types
  2. http://www.doncaprio.com/2013/09/top-4-tools-for-ios-developers.htmlhttp://www.infragistics.com/community/blogs/torrey-betts/archive/2013/05/20/top-10-tools-for-mac-and-ios-development.aspxhttp://dailytekk.com/2012/04/02/100-tools-to-develop-a-killer-ios-or-android-app/