Building native applications across multiple platforms is hard. iOS requires knowledge of Xcode, the iOS SDK and Objective-C or Swift. Android requires Eclipse (or Android Studio), the Android SDK and Java. The Windows 10 Universal Windows Platform requires Visual Studio, C# and the WinRT SDK. Are we really expected to learn all of this? You can take the HTML5 & Cordova route, but not all apps should be built using a hybrid approach. If you want to create a truly competitive app with a premium experience, you’ll need to go native. Fortunately, there is a way you can share a lot of your code across mobile platforms and do so using the C# language you already know and love. Xamarin is a powerful toolset that allows developers to write native Android and iOS apps using C#, thanks to the Mono framework – an Open Source project that brings the C# language and .NET to other platforms. This session explores how you can build cross-platform applications for iOS, Android, and Windows using C#. You’ll learn how to get started with a sample cross-platform solution, which tools you can use, how to design a proper user interface for each platform and how to structure your projects for maximum code reuse. We’ll also look at how you can share UI code with Xamarin.Forms. Native mobile development doesn’t have to be so hard. Come learn how your .NET skills can be transformed for true cross-platform development.
A Beginners Guide to Building a RAG App Using Open Source Milvus
Mobile Cross-Platform App Development in C# with Xamarin
1. Nick Landry
Microsoft Senior Technical Evangelist
nick.landry@microsoft.com
Blog: AgeofMobility.com
@ActiveNick
Building Mobile Cross-Platform
Apps for iOS, Android &
Windows Devices with C#
(and Xamarin & Visual Studio)
13. Xamarin History
Over a Decade of Enterprise Production Use
2000
Ximian
Founded
2001
Mono
Started
2003
Ximian
Acquired
by Novell
2009
First iOS
product (now
Xamarin.iOS)
launches
2011
Xamarin
Founded
First
Release of
Xamarin.Android
2012
First
release of
Xamarin.Mac
Launch
Partner
Program
2013
Xamarin 2.0
Component
Store
Evolve 2013
Xamarin Test
Cloud
Microsoft
Partnership
Reach 200,000
Developer
Mark
500,000+
Developers
100+ Partners
100+ Components
19. All 3 characteristics are required for a truly native app
Xamarin is native in all 3 ways
Native User Interface
Apps are built with standard, native
user interface controls for easy and
familiar interactions
Apps have access to the full spectrum of
functionality exposed by the underlying
platform and device
Apps leverage platform-specific hardware
acceleration, and are compiled as native
binaries, not interpreted at runtime.
High-fidelity API Access
Native Performance
21. Anything you can do in Objective-C or Java
can be done in C# with Xamarin using Visual Studio
22. Native Performance
Xamarin.iOS does full Ahead Of
Time (AOT) compilation to
produce an ARM binary for
Apple’s App Store.
Xamarin.Android takes advantage of
Just In Time (JIT) compilation on the
Android device.
25. Xamarin: How much?
Starter Edition
(free)
Indie Edition
($299)
Business
Edition ($999)
Enterprise
Edition ($1899)
Integration with Visual Studio in Business Edition & above
38. How Xamarin.Forms works
Shared App Logic in C#
At runtime, each Xamarin.Forms page and its
controls are mapped to platform-specific native
user interface elements
iOS C# UI Android C# UI
Shared App Logic
Windows C# UI
Use a single API to generate native, platform-
specific user interfaces
39. Xamarin.Forms:
Build Native User Interfaces
Using Shared Code
Shared App Logic in C#
Xamarin.Forms comes with over 40
common controls, pages and layouts to
make app UI creation fast and easy
Even basic animations are supported
Xamarin.Forms is Fully Extensible:
• Subclass included controls and
customize behavior
• Define and add your own controls,
layouts, pages and cells
• Expose your own platform-specific
controls in Xamarin.Forms pages
41. Use Decide Screen-by-Screen
Xamarin.Forms is great for forms-based
screens. You can mix Xamarin.Forms with
the full power of Xamarin.iOS and
Xamarin.Android in the same app for
complete control over your app’s look and
feel.
Xamarin.Forms: Mix-and-Match Screen-by-Screen, Element-by-Element
Call Platform APIs via Shared Services
Need platform-specifc functionality within a
Xamarin.Forms page, such as querying the
accelerometer? We’ve included services that
quickly and easily abstract platform-specific
API calls to keep you writing as much shared
code as possible.
Embed Custom Views Anywhere
Not only are Xamarin.Forms pages
mixable with custom screens, you can
embed custom views built directly
against Xamarin.iOS and
Xamarin.Android into Xamarin.Forms
pages.
48. Component
Store
• Over 150
curated mobile
components
• Android
• iOS
• Windows
• Free & Paid
• Full IDE Integration
• Xamarin Studio
• Visual Studio
51. Native Dev: Platform Tools or Xamarin?
Platform Tools (Windows, iOS, Android)
• Default native method to build apps
• Free development tools & SDKs
• Requires learning at least one language &
SDK per platform (C#, Java, Objective-C)
• Design, develop & maintain completely
separate apps for each platform
• More learning resources available
• Books, web sites, blogs, training,
StackOverflow, videos, larger
community, etc.
• Yet, iOS developers are (kinda) starting all
over with Swift
Xamarin / Mono
• Reuse existing C# skills & source code (but
you have to know C#)
• Need to buy an additional tool: extra cost
• Need to learn new tools & techniques
• Still need to learn the specifics of each
platform SDK, app architecture & lifecycle
• Fewer third-party libraries available
• Built-in GUI designer for iOS and Android
• Xamarin.Forms provides native shared Uis,
but there is no XAML designer (yet)
• Vendor lock-in / dependency
52. Mobile Strategy Considerations
Audience
• General Consumer
Market
• Niche Consumer
Market
• Enterprise Users
• BYOD
Objectives
• Marketing “Checklist”
Apps
• Brand “Reach” Apps
• Weekend Warrior Apps
• Apps for Profit
• Mobile Revolution
Apps
Other Considerations
• Mobile Population
Coverage Target &
Desired Reach
• Expertise
• Resources
• Timeframe
58. Xamarin Developer Certifications:
Be part of an Elite Developer Community
Students have the option to take a certification test and become Xamarin certified.
Xamarin skills are increasingly in demand – certifications let the market know you
represent top talent.
59. Online Microsoft training delivered by experts to
help technologists continually learn
Hundreds of courses for developers, IT Pros,
students, entrepreneurs and enthusiasts
11 different languages
More than 3M students registered
Build your own Learning Plan
All free!
Cross-Platform Development with
Xamarin & Visual Studio
aka.ms/MVAxamarin
http://www.microsoftvirtualacademy.com
60. Recommended Xamarin Books
http://aka.ms/Xs5v48
Xamarin Mobile Application Development for Android
(Mark Reynolds)
http://aka.ms/Ndl0jn
iOS Development with Xamarin Cookbook
(Dimitris Tavlikos)
http://aka.ms/S8akz1
Xamarin Cross-Platform Application Development
(Jonathan Peppers)
http://aka.ms/Sl5aj9
61. Recommended iOS Books
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
62. Recommended Android Books
Android Programming: The Big Nerd Ranch Guide
(Bill Phillips, Brian Hardy)
http://amzn.to/1k7jeuK
Programming Android: Java Programming for the New
Generation of Mobile Devices (Mednieks, Dornin, et al.)
http://amzn.to/1bdHA4W
63. Thank You!
Slides are posted on Slideshare. Demos are on GitHub.
Slideshare: www.slideshare.net/ActiveNick
Blog: www.AgeofMobility.com
Twitter: @ActiveNick
Mobile Apps: www.bigbaldapps.com
LinkedIn: www.linkedin.com/in/activenick
GitHub: github.com/ActiveNick
Email: nick.landry@microsoft.com