SlideShare a Scribd company logo
Introduction to Cross Platform
Development with Xamarin/
Visual Studio
Brad Pillow
PillowSoft LLC
Indianapolis Mobile .NET Developers Group
April 8, 2014
Who Am I
• Co-founder of one of the first video-graphics hardware/software companies in
Indianapolis, Truevision Inc. in 1987
• My 15 seconds of Wikipedia fame: creator of the TGA file format
• Originally developed in C, then we switched to C++ as it matured
• Joined Adobe Systems Inc. in 2002 as a developer on Adobe Premiere Pro
• Became tired of slow development in C++, left Adobe in 2012 and started my
consulting company going again, focusing on .NET C#/F#, web technologies
and machine learning
Why I Started This Group
• Cross-platform development with .NET is exciting and a lot is happening
• Help evangelize the available tools and the languages, in particular F#
• Xamarin promotes these meet ups (see freebies)
• Looking for a co-organizer
• Looking for corporate sponsors
• Network with others with similar interests
Visual Studio 2013
• Only works on Windows
• Allows a developer (without extensions) to build only
for Windows (8 and variants) and Windows Phone 8
• Great debugger
• Excellent profiling tools
• Fantastic add-ins like ReSharper
• Alas, no iOS, Android, no Mac, etc.
Typical iOS and Android
Development
• iOS: XCode and Objective-C
• Android: Eclipse and Google SDK
• Good news: free
• Bad news: nothing sharable, multiple languages to
learn, multiple API’s to learn, etc.
• Enter: Xamarin
How Xamarin Works
• Unify app development in C# for all
major device platforms
!
• Deliver fully native apps – UI & 

Performance
!
• Speed time-to-market through

code-sharing and re-use
!
• Businesses can leverage existing C# 

skills, tools, teams and code
!
• Achieve broad reach across device

platforms and escape the 

Objective-C and Java dead ends
*Slide credit:Xamarin, “Xamarin 2.0 Overview “
Native UI: No Compromises.
Cross-platform field
service app for iOS,
Android and
Windows 8
*Slide credit:Xamarin, “Xamarin 2.0 Overview “
Code Sharing Case Study: TouchDraw
Released early Sept 2012 Android – Oct 2012
*Slide credit:Xamarin, “Xamarin 2.0 Overview “
Tiny Cuts (early) That I Experienced (MonoTouch)
• Initially had issues with value type generics - no reactive extensions
• debugging unstable
• no F# support
• no portable class library support
• little refactoring for C#
• IDE was unstable and had weird UI issues due to GTK
• Amazing how much better tools can get when a company is well funded!
Also see: http://jonathanpeppers.com/Blog/xamarin's-tiny-cuts
Xamarin 2.0 Summary
• Xamarin Studio.  A new IDE that streamlines design, development, debugging and
deployment of native mobile apps.   
!
• Xamarin.iOS for Visual Studio.  Visual Studio users can build iOS, Android and Windows
apps in their favorite IDE.   
!
• The Xamarin Component Store.  An app store for code, where developers add third-
party libraries with a few lines of code, and also add beautiful native UI controls and
design themes.   
!
• Starter Edition.  A free tier that makes it easy for small businesses and individual
developers to get started and experience the power of the platform.
!
!
Rich IDE SupportIntroducing Xamarin Studio
Available on Mac and
Windows
Built from the ground up for
cross-platform mobile
development
*Slide credit:Xamarin, “Xamarin 2.0 Overview “
Rich IDE Support
Build iOS, Android and Windows apps in Visual
Studio
100% language unification
across platforms in C#
And with Xamarin 2.0
100% IDE unification 

across platforms
*Slide credit:Xamarin, “Xamarin 2.0 Overview “
Pre-built apps
Customize and deploy
!
Cut and paste useful snippets
!
Cross-platform best practices
!
Routing, Time recording
!
Camera capture of work
!
Signature capture
!
Uses MVVM
!
Uses Xamarin.Mobile
!
Uses Signature control
!
Backend integration ready
Field Service App
!
*Slide credit:Xamarin, “Xamarin 2.0 Overview “
Pre-built apps
Employee Directory
!
Customize and deploy
!
Cut and paste useful
snippets
!
Cross-platform best
practices
!iPhone, Android and
Windows
!
LDAP-ready
!
Gravatar integration
!
Uses MVVM
!
SQLite data store with a .NET
based SQLite ORM on all
platforms
*Slide credit:Xamarin, “Xamarin 2.0 Overview “
Xamarin Component Store• Many components already offer async APIs, e.g. Parse!
Powerful, easy to use components http://components.xamarin.com
Now Bundled with Mono
• Reactive Extensions
– Possible on iOS with new code gen changes
• F# everywhere
• Razor - html template engine
• Entity Framework
• ASP.NET WebStack
F# Support
• Functional Programming comes to iOS!
!
• The pitch is simple:
– Fewer bugs
– Focus on intent
– Reuse C# libraries, experience
– More features, less time
Razor Integration
• Sometimes you want to generate HTML
• Razor offers a full template system
– Blend HTML and C#
– Code completion in HTML
• Easily pass parameters from C# to Template
• “static” pre-rendered templates on iOS
New Devices
• Google Glasses (beta)
• Amazon fireTV
• Motorola and others Android watches (beta SDK now)
Xamarin: Per-developer, per platform pricing.
What is the difference between
Starter and Indie?
!
Xamarin Starter allows developers to
build and publish simple apps,
which contain no more than 64k of
compiled user code (IL), and which
do not call out to native third party
libraries (i.e., developers may not P/
Invoke into C/C++/Objective-C/Java.
See the full product comparison
chart.
*Slide credit:Xamarin, “Xamarin 2.0 Overview “
Rich IDE Support
Xamarin Component Store
High quality pre-built
components – UI controls,
themes & web services
Full IDE integration
*Slide credit:Xamarin, “Xamarin 2.0 Overview “
MonoDevelop / Xamarin Studio
MonoDevelop Xamarin Studio
MonoDevelop Core MonoDevelop Core
Android Mac iOS
Branding Add-In
Open source
Commercial
dtrace probes on MacOS
Major collections and minor collections pause times visualized
http://schani.wordpress.com/2012/11/02/sgen-and-dtrace/
Static Compilation
• For systems that don’t support JITing
– Apple’s iOS devices
– Consoles (PlayStation, Xbox)
– Security: when not shipping IL
!
• Limited generics support
– Static analysis limitations
– Some dynamisms in .NET idioms
• LINQ and Value Types
“Attempting to JIT compile method”
!
!
!
System.ExecutionEngineException: Attempting to JIT compile method
Foo[]:Bar`1
*Slide credit: miguel@gnome.org, “What is new in Mono? “
“Attempting to JIT compile method”
!
!
!
System.ExecutionEngineException: Attempting to JIT compile method
Foo[]:Bar`1
FIXED
*Slide credit: miguel@gnome.org, “What is new in Mono? “
Build Speed Improvements
Seconds
0
20
40
60
80
Hello World Large App
6.2 6.4
6.4+Incremental
*Slide credit: miguel@gnome.org, “What is new in Mono? “
Cocos2D XNA
• XNA port of the popular Cocos2D API
– Over 4,000 games built with this API
– Well documented, well known
!
• MonoGame brings it everywhere
– iOS, Android, Windows Phone (7 and 8)
– Mac
– Windows (GL, DX, , Windows Store)
– Xbox360, Amazon Fire, future Google TV Box
– Play Station Mobile (PS Vita + Sony Androids)
*Slide credit: miguel@gnome.org, “What is new in Mono? “
Using Cocos2D XNA Today
• Available as:
– NuGet Packages
– Templates for VS and Xamarin Studio
!
• Source code:
– http://github.com/mono/cocos2d-xna
!
• Getting Started:
– http://docs.xamarin.com/guides/cross-platform/cocos2d_xna
*Slide credit: miguel@gnome.org, “What is new in Mono? “
Angry Ninjas - Full Open Source Game
https://github.com/xamarin/AngryNinjas
*Slide credit: miguel@gnome.org, “What is new in Mono? “
Xamarin.Mobile
• Base class library 

for mobile services
!
• Mike Bluestein’s on
Slideshare
*Slide credit: miguel@gnome.org, “What is new in Mono? “
Xamarin.Auth
!
• Clients for OAuth 1 and OAuth 2
– Includes variations
• Stores user credentials
• Support non-standard auth schemes
• Cross Platform
Xamarin.Social
• Posts statuses, links, images/media to social networks
– Access social network APIs using authenticated requests.
– Automatically and securely store user credentials using Xamarin.Auth.
– Cross Platform
!
• Extensible, currently has support for:
– App.net
– Facebook
– Flickr
– Pinterest
– Twitter
Now all Open Source
• All frameworks:
– Cocos2D XNA
• http://github.com/mono/cocos2d-xna
– Xamarin.Auth
• http://github.com/xamarin/Xamarin.Auth
– Xamarin.Mobile
• http://github.com/xamarin/Xamarin.Mobile
– Xamarin.Social
• http://github.com/xamarin/Xamarin.Social
!
• Taking patches!
*Slide credit: miguel@gnome.org, “What is new in Mono? “
MVVMCross
• The Mvvm Platform for Xamarin.iOS,
Xamarin.Android, WindowsPhone, WindowsStore,
WPF and Mac. Includes databinding support for
Android XML, for iOS XIBs and for
MonoTouch.Dialog.
• http://vimeo.com/68375201
• Keep your models and “view models” as common
code, using device specific views per platform. Also
provides many abstractions for various platform
services.
Future topics
• F#: functional programming for mobile development
• Reactive Extensions using reactive programming in mobile
• Open source .NET libraries for use in mobile dev (JSON.NET, etc.)
• MonoTouch.Dialog and MonoDroid.Dialog
• Using PCL (Portable Class Libraries)
• C#/F# Async Deep dive
• MonoGame for easy cross-platform game development
• MVVMCross for easier cross-platform app development
• Cloud services - Parse, Azure, Firebase….
• Hackathon??
Why I Use It
• F# allow me to do very rapid development
• Allows me to use F# and C# libs
• PCL’s allow me to write core non-UI logic once and share
• Rapid turn around time (quick incremental compiles)
• Tons of open source libraries
• Lots of books and web sites on C#/F# and more on Xamarin every day
• With one too I can natively target almost anything out there…even the web
My Dev Environment
• I use Git for source control
• I use a Mac and run Xamarin Studio on it, as well as Visual Studio on
Windows 8 on a VM with Parallels
• I try to use on F# and fall back to using open source C# libraries
• I have a MacMini server that I use to push my Git commits to (supports a
Git server very easily!)
• I have the business editions, but will likely drop back to Indie when they
are up for renew. They seem to do all I need.
Free T-Shirt!!!!
http://xamarin.com/sharp-shirt
What Next?
• Meet every month?
• Is this day of the week/week of the month good?
• Anyone want to present next?
• What topics next?

More Related Content

What's hot

Delphi Prism for iPhone/iPad and Linux with Mono and Monotouch
Delphi Prism for iPhone/iPad and Linux with Mono and MonotouchDelphi Prism for iPhone/iPad and Linux with Mono and Monotouch
Delphi Prism for iPhone/iPad and Linux with Mono and Monotouch
Andreano Lanusse
 
Apache cordova
Apache cordovaApache cordova
Apache cordova
Carlo Bernaschina
 
Titanium: Native Mobile Apps with Javascript
Titanium: Native Mobile Apps with Javascript Titanium: Native Mobile Apps with Javascript
Titanium: Native Mobile Apps with Javascript
Leonardo Farias
 
Mobile Vue.js – From PWA to Native
Mobile Vue.js – From PWA to NativeMobile Vue.js – From PWA to Native
Mobile Vue.js – From PWA to Native
MartinSotirov
 
Phonegap/Cordova vs Native Application
Phonegap/Cordova vs Native ApplicationPhonegap/Cordova vs Native Application
Phonegap/Cordova vs Native Application
Muhammad Hakim A
 
[Srijan Wednesday Webinars] Building Full-Fledged Native Apps Using RubyMotion
[Srijan Wednesday Webinars] Building Full-Fledged Native Apps Using RubyMotion[Srijan Wednesday Webinars] Building Full-Fledged Native Apps Using RubyMotion
[Srijan Wednesday Webinars] Building Full-Fledged Native Apps Using RubyMotion
Srijan Technologies
 
Hybrid Apps with Angular & Ionic Framework
Hybrid Apps with Angular & Ionic FrameworkHybrid Apps with Angular & Ionic Framework
Hybrid Apps with Angular & Ionic Framework
Cihad Horuzoğlu
 
A Holistic Approach to HTML5 Game Design & Development
A Holistic Approach to HTML5 Game Design & DevelopmentA Holistic Approach to HTML5 Game Design & Development
A Holistic Approach to HTML5 Game Design & Development
Karl Bunyan
 
Titanium appcelerator kickstart
Titanium appcelerator kickstartTitanium appcelerator kickstart
Titanium appcelerator kickstart
Alessio Ricco
 
Cross-Platform Development using Angulr JS in Visual Studio
Cross-Platform Development using Angulr JS in Visual StudioCross-Platform Development using Angulr JS in Visual Studio
Cross-Platform Development using Angulr JS in Visual StudioMizanur Sarker
 
Introduction to Apache Cordova (Phonegap)
Introduction to Apache Cordova (Phonegap)Introduction to Apache Cordova (Phonegap)
Introduction to Apache Cordova (Phonegap)
ejlp12
 
Appcelerator Titanium Intro
Appcelerator Titanium IntroAppcelerator Titanium Intro
Appcelerator Titanium IntroNicholas Jansma
 
Wrapping with PhoneGap
Wrapping with PhoneGapWrapping with PhoneGap
Wrapping with PhoneGap
Karl Bunyan
 
Cross platform mobile application devlopment
Cross platform mobile application devlopmentCross platform mobile application devlopment
Cross platform mobile application devlopment
Prabhat gangwar
 
An overview of mobile html + java script frameworks
An overview of mobile html + java script frameworksAn overview of mobile html + java script frameworks
An overview of mobile html + java script frameworksSasha dos Santos
 
DNN Connect - Mobile Development With Xamarin
DNN Connect - Mobile Development With XamarinDNN Connect - Mobile Development With Xamarin
DNN Connect - Mobile Development With Xamarin
Mark Allan
 
Mono for .NET Developers
Mono for .NET DevelopersMono for .NET Developers
Mono for .NET Developersjeffz
 
New voice, new tone, new IA: Writing for the modern developer
New voice, new tone, new IA: Writing for the modern developerNew voice, new tone, new IA: Writing for the modern developer
New voice, new tone, new IA: Writing for the modern developer
Keith Boyd
 
Dr. Strangelove, or how I learned to love plugin development
Dr. Strangelove, or how I learned to love plugin developmentDr. Strangelove, or how I learned to love plugin development
Dr. Strangelove, or how I learned to love plugin development
Ulrich Krause
 

What's hot (20)

Delphi Prism for iPhone/iPad and Linux with Mono and Monotouch
Delphi Prism for iPhone/iPad and Linux with Mono and MonotouchDelphi Prism for iPhone/iPad and Linux with Mono and Monotouch
Delphi Prism for iPhone/iPad and Linux with Mono and Monotouch
 
Apache cordova
Apache cordovaApache cordova
Apache cordova
 
Titanium: Native Mobile Apps with Javascript
Titanium: Native Mobile Apps with Javascript Titanium: Native Mobile Apps with Javascript
Titanium: Native Mobile Apps with Javascript
 
Mobile Vue.js – From PWA to Native
Mobile Vue.js – From PWA to NativeMobile Vue.js – From PWA to Native
Mobile Vue.js – From PWA to Native
 
Phonegap/Cordova vs Native Application
Phonegap/Cordova vs Native ApplicationPhonegap/Cordova vs Native Application
Phonegap/Cordova vs Native Application
 
[Srijan Wednesday Webinars] Building Full-Fledged Native Apps Using RubyMotion
[Srijan Wednesday Webinars] Building Full-Fledged Native Apps Using RubyMotion[Srijan Wednesday Webinars] Building Full-Fledged Native Apps Using RubyMotion
[Srijan Wednesday Webinars] Building Full-Fledged Native Apps Using RubyMotion
 
Hybrid Apps with Angular & Ionic Framework
Hybrid Apps with Angular & Ionic FrameworkHybrid Apps with Angular & Ionic Framework
Hybrid Apps with Angular & Ionic Framework
 
A Holistic Approach to HTML5 Game Design & Development
A Holistic Approach to HTML5 Game Design & DevelopmentA Holistic Approach to HTML5 Game Design & Development
A Holistic Approach to HTML5 Game Design & Development
 
Titanium appcelerator kickstart
Titanium appcelerator kickstartTitanium appcelerator kickstart
Titanium appcelerator kickstart
 
Cross-Platform Development using Angulr JS in Visual Studio
Cross-Platform Development using Angulr JS in Visual StudioCross-Platform Development using Angulr JS in Visual Studio
Cross-Platform Development using Angulr JS in Visual Studio
 
Introduction to Apache Cordova (Phonegap)
Introduction to Apache Cordova (Phonegap)Introduction to Apache Cordova (Phonegap)
Introduction to Apache Cordova (Phonegap)
 
Appcelerator Titanium Intro
Appcelerator Titanium IntroAppcelerator Titanium Intro
Appcelerator Titanium Intro
 
Wrapping with PhoneGap
Wrapping with PhoneGapWrapping with PhoneGap
Wrapping with PhoneGap
 
Cross platform mobile application devlopment
Cross platform mobile application devlopmentCross platform mobile application devlopment
Cross platform mobile application devlopment
 
An overview of mobile html + java script frameworks
An overview of mobile html + java script frameworksAn overview of mobile html + java script frameworks
An overview of mobile html + java script frameworks
 
DNN Connect - Mobile Development With Xamarin
DNN Connect - Mobile Development With XamarinDNN Connect - Mobile Development With Xamarin
DNN Connect - Mobile Development With Xamarin
 
Mono for .NET Developers
Mono for .NET DevelopersMono for .NET Developers
Mono for .NET Developers
 
New voice, new tone, new IA: Writing for the modern developer
New voice, new tone, new IA: Writing for the modern developerNew voice, new tone, new IA: Writing for the modern developer
New voice, new tone, new IA: Writing for the modern developer
 
Introduction to android
Introduction to androidIntroduction to android
Introduction to android
 
Dr. Strangelove, or how I learned to love plugin development
Dr. Strangelove, or how I learned to love plugin developmentDr. Strangelove, or how I learned to love plugin development
Dr. Strangelove, or how I learned to love plugin development
 

Viewers also liked

[MobConf] Go mobile with C#, Visual Studio & Xamarin
[MobConf] Go mobile with C#, Visual Studio & Xamarin[MobConf] Go mobile with C#, Visual Studio & Xamarin
[MobConf] Go mobile with C#, Visual Studio & Xamarin
Nish Anil
 
Student managed fund final
Student managed fund finalStudent managed fund final
Student managed fund final
Maria Sanchez
 
Påske - Krim
Påske - KrimPåske - Krim
Påske - Krim
Evelyn Rivera
 
Washdc cto-0905-2003
Washdc cto-0905-2003Washdc cto-0905-2003
Washdc cto-0905-2003eaiti
 
3 lesiones deportivas
3 lesiones deportivas3 lesiones deportivas
3 lesiones deportivasangelamaria99
 
Personal development
Personal developmentPersonal development
Personal development
Notty Butt
 
Tempus PROMIS Work Plan (September 2014)
Tempus PROMIS Work Plan (September 2014)Tempus PROMIS Work Plan (September 2014)
Tempus PROMIS Work Plan (September 2014)
PROMISproject
 
Break Free with Managed Functional Programming: An Introduction to F#
Break Free with Managed Functional Programming: An Introduction to F#Break Free with Managed Functional Programming: An Introduction to F#
Break Free with Managed Functional Programming: An Introduction to F#
IndyMobileNetDev
 
Dions globalsoa web2presentation1_2006
Dions globalsoa web2presentation1_2006Dions globalsoa web2presentation1_2006
Dions globalsoa web2presentation1_2006eaiti
 
How To: Mobile "Hello World" With Xamarin and Visual Studio 2013
How To: Mobile "Hello World" With Xamarin and Visual Studio 2013How To: Mobile "Hello World" With Xamarin and Visual Studio 2013
How To: Mobile "Hello World" With Xamarin and Visual Studio 2013
IndyMobileNetDev
 
Autodesk inventor basic tools
Autodesk inventor basic toolsAutodesk inventor basic tools
Autodesk inventor basic tools
Ashutosh Gupta
 
Slide obseravasi pendidikan
Slide obseravasi pendidikanSlide obseravasi pendidikan
Slide obseravasi pendidikankikiregar
 
Using Hadoop
Using HadoopUsing Hadoop
Using Hadoopeaiti
 
Evaluation Part 1
Evaluation Part 1Evaluation Part 1
Evaluation Part 1SophieB23
 
Middleware 2002
Middleware 2002Middleware 2002
Middleware 2002eaiti
 
observasi psikologi pendidikan MAN 2 Model Medan
observasi psikologi pendidikan MAN 2 Model Medanobservasi psikologi pendidikan MAN 2 Model Medan
observasi psikologi pendidikan MAN 2 Model Medan251304
 
1 pigmentation
1 pigmentation1 pigmentation
1 pigmentationAhmed Amer
 
ERAMIS Tempus Project
ERAMIS Tempus ProjectERAMIS Tempus Project
ERAMIS Tempus Project
PROMISproject
 

Viewers also liked (19)

[MobConf] Go mobile with C#, Visual Studio & Xamarin
[MobConf] Go mobile with C#, Visual Studio & Xamarin[MobConf] Go mobile with C#, Visual Studio & Xamarin
[MobConf] Go mobile with C#, Visual Studio & Xamarin
 
Student managed fund final
Student managed fund finalStudent managed fund final
Student managed fund final
 
Påske - Krim
Påske - KrimPåske - Krim
Påske - Krim
 
Washdc cto-0905-2003
Washdc cto-0905-2003Washdc cto-0905-2003
Washdc cto-0905-2003
 
3 lesiones deportivas
3 lesiones deportivas3 lesiones deportivas
3 lesiones deportivas
 
Personal development
Personal developmentPersonal development
Personal development
 
Tempus PROMIS Work Plan (September 2014)
Tempus PROMIS Work Plan (September 2014)Tempus PROMIS Work Plan (September 2014)
Tempus PROMIS Work Plan (September 2014)
 
Break Free with Managed Functional Programming: An Introduction to F#
Break Free with Managed Functional Programming: An Introduction to F#Break Free with Managed Functional Programming: An Introduction to F#
Break Free with Managed Functional Programming: An Introduction to F#
 
Dions globalsoa web2presentation1_2006
Dions globalsoa web2presentation1_2006Dions globalsoa web2presentation1_2006
Dions globalsoa web2presentation1_2006
 
How To: Mobile "Hello World" With Xamarin and Visual Studio 2013
How To: Mobile "Hello World" With Xamarin and Visual Studio 2013How To: Mobile "Hello World" With Xamarin and Visual Studio 2013
How To: Mobile "Hello World" With Xamarin and Visual Studio 2013
 
Autodesk inventor basic tools
Autodesk inventor basic toolsAutodesk inventor basic tools
Autodesk inventor basic tools
 
Slide obseravasi pendidikan
Slide obseravasi pendidikanSlide obseravasi pendidikan
Slide obseravasi pendidikan
 
Using Hadoop
Using HadoopUsing Hadoop
Using Hadoop
 
Evaluation Part 1
Evaluation Part 1Evaluation Part 1
Evaluation Part 1
 
Middleware 2002
Middleware 2002Middleware 2002
Middleware 2002
 
Manisha Garg_Resume modified
Manisha Garg_Resume modifiedManisha Garg_Resume modified
Manisha Garg_Resume modified
 
observasi psikologi pendidikan MAN 2 Model Medan
observasi psikologi pendidikan MAN 2 Model Medanobservasi psikologi pendidikan MAN 2 Model Medan
observasi psikologi pendidikan MAN 2 Model Medan
 
1 pigmentation
1 pigmentation1 pigmentation
1 pigmentation
 
ERAMIS Tempus Project
ERAMIS Tempus ProjectERAMIS Tempus Project
ERAMIS Tempus Project
 

Similar to Introduction to Cross Platform Development with Xamarin/ Visual Studio

Mono for Android... for Google Devs
Mono for Android... for Google DevsMono for Android... for Google Devs
Mono for Android... for Google Devs
Craig Dunn
 
Introduction to Xamarin
Introduction to XamarinIntroduction to Xamarin
Introduction to Xamarin
Guy Barrette
 
Introduction to xamarin
Introduction to xamarinIntroduction to xamarin
Introduction to xamarin
Daniel Fikre
 
C# no bolso - desenvolvendo apps multiplataforma
C# no bolso - desenvolvendo apps multiplataformaC# no bolso - desenvolvendo apps multiplataforma
C# no bolso - desenvolvendo apps multiplataforma
Allan Cleysson
 
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
Nick Landry
 
Cross platform development with c# and xamarin
Cross platform development with c# and xamarinCross platform development with c# and xamarin
Cross platform development with c# and xamarin
Luca Zulian
 
Developing a native mobile apps using Ionic&Cordova
Developing a native mobile apps using Ionic&CordovaDeveloping a native mobile apps using Ionic&Cordova
Developing a native mobile apps using Ionic&Cordova
Damir Beylkhanov
 
Hybrid Mobile App Development - Xamarin
Hybrid Mobile App Development - XamarinHybrid Mobile App Development - Xamarin
Hybrid Mobile App Development - Xamarin
Deepu S Nath
 
Introduction to MonoTouch
Introduction to MonoTouchIntroduction to MonoTouch
Introduction to MonoTouchJonas Follesø
 
Introduction to Xamarin
Introduction to XamarinIntroduction to Xamarin
Introduction to Xamarin
Brian Anderson
 
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
Barcoding, Inc.
 
Cross-Platform Development
Cross-Platform DevelopmentCross-Platform Development
Cross-Platform Development
Syed Owais Ali Chishti
 
Visual studio + Xamarin == Love
Visual studio + Xamarin == LoveVisual studio + Xamarin == Love
Visual studio + Xamarin == Love
Adam Hill
 
Xamarin Tecnhologies
Xamarin TecnhologiesXamarin Tecnhologies
Xamarin Tecnhologies
Javier Cantón Ferrero
 
Bienvenido .Net MAUI - la evolución de Xamarin.Forms
Bienvenido .Net MAUI - la evolución de Xamarin.FormsBienvenido .Net MAUI - la evolución de Xamarin.Forms
Bienvenido .Net MAUI - la evolución de Xamarin.Forms
Vicente Gerardo Guzman Lucio
 
Visual studio + Xamarin equals love
Visual studio + Xamarin equals loveVisual studio + Xamarin equals love
Visual studio + Xamarin equals love
Adam Hill
 
What's New, Hot, & Awesome for Xamarin Developers!
What's New, Hot, & Awesome for Xamarin Developers!What's New, Hot, & Awesome for Xamarin Developers!
What's New, Hot, & Awesome for Xamarin Developers!
James Montemagno
 
C# on the iPhone with MonoTouch Glasgow
C# on the iPhone with MonoTouch GlasgowC# on the iPhone with MonoTouch Glasgow
C# on the iPhone with MonoTouch Glasgow
Chris Hardy
 
Building Mobile Cross-Platform Apps for iOS, Android & Windows in C# with Xam...
Building Mobile Cross-Platform Apps foriOS, Android & Windows in C# with Xam...Building Mobile Cross-Platform Apps foriOS, Android & Windows in C# with Xam...
Building Mobile Cross-Platform Apps for iOS, Android & Windows in C# with Xam...
Nick Landry
 

Similar to Introduction to Cross Platform Development with Xamarin/ Visual Studio (20)

Mono for Android... for Google Devs
Mono for Android... for Google DevsMono for Android... for Google Devs
Mono for Android... for Google Devs
 
Introduction to Xamarin
Introduction to XamarinIntroduction to Xamarin
Introduction to Xamarin
 
Introduction to xamarin
Introduction to xamarinIntroduction to xamarin
Introduction to xamarin
 
C# no bolso - desenvolvendo apps multiplataforma
C# no bolso - desenvolvendo apps multiplataformaC# no bolso - desenvolvendo apps multiplataforma
C# no bolso - desenvolvendo apps multiplataforma
 
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
 
Cross platform development with c# and xamarin
Cross platform development with c# and xamarinCross platform development with c# and xamarin
Cross platform development with c# and xamarin
 
Developing a native mobile apps using Ionic&Cordova
Developing a native mobile apps using Ionic&CordovaDeveloping a native mobile apps using Ionic&Cordova
Developing a native mobile apps using Ionic&Cordova
 
Hybrid Mobile App Development - Xamarin
Hybrid Mobile App Development - XamarinHybrid Mobile App Development - Xamarin
Hybrid Mobile App Development - Xamarin
 
Introduction to MonoTouch
Introduction to MonoTouchIntroduction to MonoTouch
Introduction to MonoTouch
 
Introduction to Xamarin
Introduction to XamarinIntroduction to Xamarin
Introduction to 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
 
Cross-Platform Development
Cross-Platform DevelopmentCross-Platform Development
Cross-Platform Development
 
Visual studio + Xamarin == Love
Visual studio + Xamarin == LoveVisual studio + Xamarin == Love
Visual studio + Xamarin == Love
 
Xamarin Tecnhologies
Xamarin TecnhologiesXamarin Tecnhologies
Xamarin Tecnhologies
 
Introduction to xamarin
Introduction to xamarinIntroduction to xamarin
Introduction to xamarin
 
Bienvenido .Net MAUI - la evolución de Xamarin.Forms
Bienvenido .Net MAUI - la evolución de Xamarin.FormsBienvenido .Net MAUI - la evolución de Xamarin.Forms
Bienvenido .Net MAUI - la evolución de Xamarin.Forms
 
Visual studio + Xamarin equals love
Visual studio + Xamarin equals loveVisual studio + Xamarin equals love
Visual studio + Xamarin equals love
 
What's New, Hot, & Awesome for Xamarin Developers!
What's New, Hot, & Awesome for Xamarin Developers!What's New, Hot, & Awesome for Xamarin Developers!
What's New, Hot, & Awesome for Xamarin Developers!
 
C# on the iPhone with MonoTouch Glasgow
C# on the iPhone with MonoTouch GlasgowC# on the iPhone with MonoTouch Glasgow
C# on the iPhone with MonoTouch Glasgow
 
Building Mobile Cross-Platform Apps for iOS, Android & Windows in C# with Xam...
Building Mobile Cross-Platform Apps foriOS, Android & Windows in C# with Xam...Building Mobile Cross-Platform Apps foriOS, Android & Windows in C# with Xam...
Building Mobile Cross-Platform Apps for iOS, Android & Windows in C# with Xam...
 

Recently uploaded

Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
Ayan Halder
 
Launch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in MinutesLaunch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in Minutes
Roshan Dwivedi
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
TheSMSPoint
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
Deuglo Infosystem Pvt Ltd
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 

Recently uploaded (20)

Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
 
Launch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in MinutesLaunch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in Minutes
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 

Introduction to Cross Platform Development with Xamarin/ Visual Studio

  • 1. Introduction to Cross Platform Development with Xamarin/ Visual Studio Brad Pillow PillowSoft LLC Indianapolis Mobile .NET Developers Group April 8, 2014
  • 2. Who Am I • Co-founder of one of the first video-graphics hardware/software companies in Indianapolis, Truevision Inc. in 1987 • My 15 seconds of Wikipedia fame: creator of the TGA file format • Originally developed in C, then we switched to C++ as it matured • Joined Adobe Systems Inc. in 2002 as a developer on Adobe Premiere Pro • Became tired of slow development in C++, left Adobe in 2012 and started my consulting company going again, focusing on .NET C#/F#, web technologies and machine learning
  • 3. Why I Started This Group • Cross-platform development with .NET is exciting and a lot is happening • Help evangelize the available tools and the languages, in particular F# • Xamarin promotes these meet ups (see freebies) • Looking for a co-organizer • Looking for corporate sponsors • Network with others with similar interests
  • 4. Visual Studio 2013 • Only works on Windows • Allows a developer (without extensions) to build only for Windows (8 and variants) and Windows Phone 8 • Great debugger • Excellent profiling tools • Fantastic add-ins like ReSharper • Alas, no iOS, Android, no Mac, etc.
  • 5. Typical iOS and Android Development • iOS: XCode and Objective-C • Android: Eclipse and Google SDK • Good news: free • Bad news: nothing sharable, multiple languages to learn, multiple API’s to learn, etc. • Enter: Xamarin
  • 6. How Xamarin Works • Unify app development in C# for all major device platforms ! • Deliver fully native apps – UI & 
 Performance ! • Speed time-to-market through
 code-sharing and re-use ! • Businesses can leverage existing C# 
 skills, tools, teams and code ! • Achieve broad reach across device
 platforms and escape the 
 Objective-C and Java dead ends *Slide credit:Xamarin, “Xamarin 2.0 Overview “
  • 7. Native UI: No Compromises. Cross-platform field service app for iOS, Android and Windows 8 *Slide credit:Xamarin, “Xamarin 2.0 Overview “
  • 8. Code Sharing Case Study: TouchDraw Released early Sept 2012 Android – Oct 2012 *Slide credit:Xamarin, “Xamarin 2.0 Overview “
  • 9. Tiny Cuts (early) That I Experienced (MonoTouch) • Initially had issues with value type generics - no reactive extensions • debugging unstable • no F# support • no portable class library support • little refactoring for C# • IDE was unstable and had weird UI issues due to GTK • Amazing how much better tools can get when a company is well funded! Also see: http://jonathanpeppers.com/Blog/xamarin's-tiny-cuts
  • 10. Xamarin 2.0 Summary • Xamarin Studio.  A new IDE that streamlines design, development, debugging and deployment of native mobile apps.    ! • Xamarin.iOS for Visual Studio.  Visual Studio users can build iOS, Android and Windows apps in their favorite IDE.    ! • The Xamarin Component Store.  An app store for code, where developers add third- party libraries with a few lines of code, and also add beautiful native UI controls and design themes.    ! • Starter Edition.  A free tier that makes it easy for small businesses and individual developers to get started and experience the power of the platform. ! !
  • 11. Rich IDE SupportIntroducing Xamarin Studio Available on Mac and Windows Built from the ground up for cross-platform mobile development *Slide credit:Xamarin, “Xamarin 2.0 Overview “
  • 12. Rich IDE Support Build iOS, Android and Windows apps in Visual Studio 100% language unification across platforms in C# And with Xamarin 2.0 100% IDE unification 
 across platforms *Slide credit:Xamarin, “Xamarin 2.0 Overview “
  • 13. Pre-built apps Customize and deploy ! Cut and paste useful snippets ! Cross-platform best practices ! Routing, Time recording ! Camera capture of work ! Signature capture ! Uses MVVM ! Uses Xamarin.Mobile ! Uses Signature control ! Backend integration ready Field Service App ! *Slide credit:Xamarin, “Xamarin 2.0 Overview “
  • 14. Pre-built apps Employee Directory ! Customize and deploy ! Cut and paste useful snippets ! Cross-platform best practices !iPhone, Android and Windows ! LDAP-ready ! Gravatar integration ! Uses MVVM ! SQLite data store with a .NET based SQLite ORM on all platforms *Slide credit:Xamarin, “Xamarin 2.0 Overview “
  • 15. Xamarin Component Store• Many components already offer async APIs, e.g. Parse! Powerful, easy to use components http://components.xamarin.com
  • 16. Now Bundled with Mono • Reactive Extensions – Possible on iOS with new code gen changes • F# everywhere • Razor - html template engine • Entity Framework • ASP.NET WebStack
  • 17. F# Support • Functional Programming comes to iOS! ! • The pitch is simple: – Fewer bugs – Focus on intent – Reuse C# libraries, experience – More features, less time
  • 18. Razor Integration • Sometimes you want to generate HTML • Razor offers a full template system – Blend HTML and C# – Code completion in HTML • Easily pass parameters from C# to Template • “static” pre-rendered templates on iOS
  • 19. New Devices • Google Glasses (beta) • Amazon fireTV • Motorola and others Android watches (beta SDK now)
  • 20. Xamarin: Per-developer, per platform pricing. What is the difference between Starter and Indie? ! Xamarin Starter allows developers to build and publish simple apps, which contain no more than 64k of compiled user code (IL), and which do not call out to native third party libraries (i.e., developers may not P/ Invoke into C/C++/Objective-C/Java. See the full product comparison chart. *Slide credit:Xamarin, “Xamarin 2.0 Overview “
  • 21. Rich IDE Support Xamarin Component Store High quality pre-built components – UI controls, themes & web services Full IDE integration *Slide credit:Xamarin, “Xamarin 2.0 Overview “
  • 22. MonoDevelop / Xamarin Studio MonoDevelop Xamarin Studio MonoDevelop Core MonoDevelop Core Android Mac iOS Branding Add-In Open source Commercial
  • 23. dtrace probes on MacOS Major collections and minor collections pause times visualized http://schani.wordpress.com/2012/11/02/sgen-and-dtrace/
  • 24. Static Compilation • For systems that don’t support JITing – Apple’s iOS devices – Consoles (PlayStation, Xbox) – Security: when not shipping IL ! • Limited generics support – Static analysis limitations – Some dynamisms in .NET idioms • LINQ and Value Types
  • 25. “Attempting to JIT compile method” ! ! ! System.ExecutionEngineException: Attempting to JIT compile method Foo[]:Bar`1 *Slide credit: miguel@gnome.org, “What is new in Mono? “
  • 26. “Attempting to JIT compile method” ! ! ! System.ExecutionEngineException: Attempting to JIT compile method Foo[]:Bar`1 FIXED *Slide credit: miguel@gnome.org, “What is new in Mono? “
  • 27. Build Speed Improvements Seconds 0 20 40 60 80 Hello World Large App 6.2 6.4 6.4+Incremental *Slide credit: miguel@gnome.org, “What is new in Mono? “
  • 28. Cocos2D XNA • XNA port of the popular Cocos2D API – Over 4,000 games built with this API – Well documented, well known ! • MonoGame brings it everywhere – iOS, Android, Windows Phone (7 and 8) – Mac – Windows (GL, DX, , Windows Store) – Xbox360, Amazon Fire, future Google TV Box – Play Station Mobile (PS Vita + Sony Androids) *Slide credit: miguel@gnome.org, “What is new in Mono? “
  • 29. Using Cocos2D XNA Today • Available as: – NuGet Packages – Templates for VS and Xamarin Studio ! • Source code: – http://github.com/mono/cocos2d-xna ! • Getting Started: – http://docs.xamarin.com/guides/cross-platform/cocos2d_xna *Slide credit: miguel@gnome.org, “What is new in Mono? “
  • 30. Angry Ninjas - Full Open Source Game https://github.com/xamarin/AngryNinjas *Slide credit: miguel@gnome.org, “What is new in Mono? “
  • 31. Xamarin.Mobile • Base class library 
 for mobile services ! • Mike Bluestein’s on Slideshare *Slide credit: miguel@gnome.org, “What is new in Mono? “
  • 32. Xamarin.Auth ! • Clients for OAuth 1 and OAuth 2 – Includes variations • Stores user credentials • Support non-standard auth schemes • Cross Platform
  • 33. Xamarin.Social • Posts statuses, links, images/media to social networks – Access social network APIs using authenticated requests. – Automatically and securely store user credentials using Xamarin.Auth. – Cross Platform ! • Extensible, currently has support for: – App.net – Facebook – Flickr – Pinterest – Twitter
  • 34. Now all Open Source • All frameworks: – Cocos2D XNA • http://github.com/mono/cocos2d-xna – Xamarin.Auth • http://github.com/xamarin/Xamarin.Auth – Xamarin.Mobile • http://github.com/xamarin/Xamarin.Mobile – Xamarin.Social • http://github.com/xamarin/Xamarin.Social ! • Taking patches! *Slide credit: miguel@gnome.org, “What is new in Mono? “
  • 35. MVVMCross • The Mvvm Platform for Xamarin.iOS, Xamarin.Android, WindowsPhone, WindowsStore, WPF and Mac. Includes databinding support for Android XML, for iOS XIBs and for MonoTouch.Dialog. • http://vimeo.com/68375201 • Keep your models and “view models” as common code, using device specific views per platform. Also provides many abstractions for various platform services.
  • 36. Future topics • F#: functional programming for mobile development • Reactive Extensions using reactive programming in mobile • Open source .NET libraries for use in mobile dev (JSON.NET, etc.) • MonoTouch.Dialog and MonoDroid.Dialog • Using PCL (Portable Class Libraries) • C#/F# Async Deep dive • MonoGame for easy cross-platform game development • MVVMCross for easier cross-platform app development • Cloud services - Parse, Azure, Firebase…. • Hackathon??
  • 37. Why I Use It • F# allow me to do very rapid development • Allows me to use F# and C# libs • PCL’s allow me to write core non-UI logic once and share • Rapid turn around time (quick incremental compiles) • Tons of open source libraries • Lots of books and web sites on C#/F# and more on Xamarin every day • With one too I can natively target almost anything out there…even the web
  • 38. My Dev Environment • I use Git for source control • I use a Mac and run Xamarin Studio on it, as well as Visual Studio on Windows 8 on a VM with Parallels • I try to use on F# and fall back to using open source C# libraries • I have a MacMini server that I use to push my Git commits to (supports a Git server very easily!) • I have the business editions, but will likely drop back to Indie when they are up for renew. They seem to do all I need.
  • 40. What Next? • Meet every month? • Is this day of the week/week of the month good? • Anyone want to present next? • What topics next?