Date post: | 08-Jul-2015 |
Category: |
Technology |
Upload: | michael-ridland |
View: | 92 times |
Download: | 3 times |
@rid00z www.xamarinhackday.com www.michaelridland.com
Introduction to Xamarin
@rid00z www.xamarinhackday.com www.michaelridland.com
Michael Ridland
Mobile Developer
@rid00z
www.michaelridland.com
@rid00z www.xamarinhackday.com www.michaelridland.com
What is native?
@rid00z www.xamarinhackday.com www.michaelridland.com
The Anatomy of a Native App
Native User Interfaces Native API Access Native Performance
@rid00z www.xamarinhackday.com www.michaelridland.com
The Silo Approach
Build App
Multiple Times
@rid00z www.xamarinhackday.com www.michaelridland.com
Xamarin’s (Traditional) Approach
Native With
Code Sharing
@rid00z www.xamarinhackday.com www.michaelridland.com
Language Support
Functional Imperative
F#
C#
@rid00z www.xamarinhackday.com www.michaelridland.com
C# Language Features
C# 1 & 2 (2002-2006)
Statically Typed
C style language
Object Oriented
C# 3.0 (2007)
• Automatic Properties
• Collection Initialisers
• Type Inference
• LINQ
• Lamdba expression
• Anonymous Types
• … + more
C# 4 (2010)
dynamic types
named arguments
optional arguments
… + more
C# 5 (2013)
BuiltIn Async (async/await)
C# 6 (2013)
Null propagator
Expression-bodied members
… + more
@rid00z www.xamarinhackday.com www.michaelridland.com
F# Language Features (largely OSS community driven)
F# 1 (2005)
Functional programming
Discriminated unions
Records
Tuples
Pattern matching
Type abbreviations
Object programming
Structs
… + more
F# 2 (2010)
Active patterns
Units of measure
Sequence expressions
Asynchronous programming
Agent programming
Extension members
F# 3 (2012)
Type providers
LINQ query expressions
CLIMutable attribute
Triple-quoted strings
Auto-properties
… + more
F# 4 (2013)
Printf on unitized values
Extension property initializers
Non-null provided types
Class names as functions
Static parameters for provided methods
Printf interpolation
… + more
F# 5 (2015)
… + lots lots more
@rid00z www.xamarinhackday.com www.michaelridland.com
What is LINQ?
@rid00z www.xamarinhackday.com www.michaelridland.com
What is Language Level Async
@rid00z www.xamarinhackday.com www.michaelridland.com
Base Class Libraries
@rid00z www.xamarinhackday.com www.michaelridland.com
Windows APIs
@rid00z www.xamarinhackday.com www.michaelridland.com
iOS APIs | 100% Coverage
@rid00z www.xamarinhackday.com www.michaelridland.com
Android APIs | 100% Coverage
@rid00z www.xamarinhackday.com www.michaelridland.com
Anything you can do in Objective-C or Java
can be done in C# or F# with Xamarin
Pro Tip
@rid00z www.xamarinhackday.com www.michaelridland.com
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.
@rid00z www.xamarinhackday.com www.michaelridland.com
Demos
Demos
@rid00z www.xamarinhackday.com www.michaelridland.com
Always Up To Date
Same day support for
iOS 5, iOS 6, iOS 6.1,
iOS 7, iOS 7.1, iOS 8…
@rid00z www.xamarinhackday.com www.michaelridland.com
Future Proof
Always up-to-date with the latest APIs from
Apple and Google.
Full Support for Android TV, Fire TV, Android Wear, Google Glass, etc
@rid00z www.xamarinhackday.com www.michaelridland.com
Distribute Everywhere
A Xamarin app is an app, distribute it everywhere
@rid00z www.xamarinhackday.com www.michaelridland.com
Rich Library EcoSystem
Json.NET Rx
…and many more!
@rid00z www.xamarinhackday.com www.michaelridland.com
Development Environments
@rid00z www.xamarinhackday.com www.michaelridland.com
Development Environment
Xamarin Studio
PC or Mac
Visual Studio Plugin
VS 2010/2012/2013
@rid00z www.xamarinhackday.com www.michaelridland.com
Development Environment
or even?
@rid00z www.xamarinhackday.com www.michaelridland.com
Visual Studio Integration
@rid00z www.xamarinhackday.com www.michaelridland.com
Android Designer
@rid00z www.xamarinhackday.com www.michaelridland.com
iOS Designer
Fully integrated into Xamarin
Studio & Visual Studio
iOS 6 & 7 Storyboard support
Intuitive event handling
Support for auto-layout
Live preview of custom controls
@rid00z www.xamarinhackday.com www.michaelridland.com
Component Store
@rid00z www.xamarinhackday.com www.michaelridland.com
Xamarin.Forms
@rid00z www.xamarinhackday.com www.michaelridland.com
Xamarin.Forms
Xamarin.FormsTraditional Xamarin approach
Shared UI Code
@rid00z www.xamarinhackday.com www.michaelridland.com
Xamarin.Forms: What’s Included?
40+ Pages, Layouts, and Controls
Build from code or XAML
Two-way Data Binding
Navigation
Animation API
Dependency Service
Messaging Center
@rid00z www.xamarinhackday.com www.michaelridland.com
Xamarin.Forms: Pages
Content MasterDetail Navigation Tabbed Carousel
@rid00z www.xamarinhackday.com www.michaelridland.com
Xamarin.Forms: Layouts
Stack Absolute Relative Grid ContentView ScrollView Frame
@rid00z www.xamarinhackday.com www.michaelridland.com
Xamarin.Forms: Controls
ActivityIndicator BoxView Button DatePicker Editor
Entry Image Label ListView Map
OpenGLView Picker ProgressBar SearchBar Slider
Stepper TableView TimePicker WebView EntryCell
ImageCell SwitchCell TextCell ViewCell
@rid00z www.xamarinhackday.com www.michaelridland.com
Xamarin Forms Demo
@rid00z www.xamarinhackday.com www.michaelridland.com
Real Apps
@rid00z www.xamarinhackday.com www.michaelridland.com
Extended Product Line (Some Pre-Release)
@rid00z www.xamarinhackday.com www.michaelridland.com
Xamarin Test Cloud
@rid00z www.xamarinhackday.com www.michaelridland.com
Xamarin Test Cloud Customers
@rid00z www.xamarinhackday.com www.michaelridland.com
Xamarin Android Player
Super fast hardware accelerated
simulator
Available on Mac and PC
Free for Xamarin Customers
@rid00z www.xamarinhackday.com www.michaelridland.com
@rid00z www.xamarinhackday.com www.michaelridland.com
Exception Reporting
Custom Reporting
@rid00z www.xamarinhackday.com www.michaelridland.com
Event Tracking
Performance Tracking
@rid00z www.xamarinhackday.com www.michaelridland.com
Match exceptions
to users
@rid00z www.xamarinhackday.com www.michaelridland.com
Sketches
Live Coding Environment
@rid00z www.xamarinhackday.com www.michaelridland.com
Xamarin Profiler Preview
Analyse performance of your apps
@rid00z www.xamarinhackday.com www.michaelridland.com
Profitable Innovative Company
Yes, the platform does cost money but that’s
GREAT!
It gives them money to solve more problems!
It gives them money to build the ecosystem!
@rid00z www.xamarinhackday.com www.michaelridland.com
Moving from Obj-C to Xamarin
Special Guest David Dancy
@rid00z www.xamarinhackday.com www.michaelridland.com
Q & A
Michael Ridland
@rid00z
www.michaelridland.com