SlideShare ist ein Scribd-Unternehmen logo
1 von 40
Downloaden Sie, um offline zu lesen
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?

Weitere ähnliche Inhalte

Was ist angesagt?

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 MonotouchAndreano Lanusse
 
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 NativeMartinSotirov
 
Phonegap/Cordova vs Native Application
Phonegap/Cordova vs Native ApplicationPhonegap/Cordova vs Native Application
Phonegap/Cordova vs Native ApplicationMuhammad 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 RubyMotionSrijan Technologies
 
Hybrid Apps with Angular & Ionic Framework
Hybrid Apps with Angular & Ionic FrameworkHybrid Apps with Angular & Ionic Framework
Hybrid Apps with Angular & Ionic FrameworkCihad 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 & DevelopmentKarl Bunyan
 
Titanium appcelerator kickstart
Titanium appcelerator kickstartTitanium appcelerator kickstart
Titanium appcelerator kickstartAlessio 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 PhoneGapKarl Bunyan
 
Cross platform mobile application devlopment
Cross platform mobile application devlopmentCross platform mobile application devlopment
Cross platform mobile application devlopmentPrabhat 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 XamarinMark 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 developerKeith 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 developmentUlrich Krause
 

Was ist angesagt? (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
 

Andere mochten auch

[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 & XamarinNish Anil
 
Student managed fund final
Student managed fund finalStudent managed fund final
Student managed fund finalMaria Sanchez
 
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 developmentNotty 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 2013IndyMobileNetDev
 
Autodesk inventor basic tools
Autodesk inventor basic toolsAutodesk inventor basic tools
Autodesk inventor basic toolsAshutosh 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 ProjectPROMISproject
 

Andere mochten auch (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
 

Ähnlich wie Introduction to Cross Platform Development with Xamarin and Visual Studio

Mono for Android... for Google Devs
Mono for Android... for Google DevsMono for Android... for Google Devs
Mono for Android... for Google DevsCraig Dunn
 
Introduction to Xamarin
Introduction to XamarinIntroduction to Xamarin
Introduction to XamarinGuy Barrette
 
Introduction to xamarin
Introduction to xamarinIntroduction to xamarin
Introduction to xamarinDaniel Fikre
 
C# no bolso - desenvolvendo apps multiplataforma
C# no bolso - desenvolvendo apps multiplataformaC# no bolso - desenvolvendo apps multiplataforma
C# no bolso - desenvolvendo apps multiplataformaAllan 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 DevelopmentNick 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 xamarinLuca 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&CordovaDamir Beylkhanov
 
Hybrid Mobile App Development - Xamarin
Hybrid Mobile App Development - XamarinHybrid Mobile App Development - Xamarin
Hybrid Mobile App Development - XamarinDeepu S Nath
 
Introduction to MonoTouch
Introduction to MonoTouchIntroduction to MonoTouch
Introduction to MonoTouchJonas Follesø
 
Introduction to Xamarin
Introduction to XamarinIntroduction to Xamarin
Introduction to XamarinBrian 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 PlatformsBarcoding, Inc.
 
Visual studio + Xamarin == Love
Visual studio + Xamarin == LoveVisual studio + Xamarin == Love
Visual studio + Xamarin == LoveAdam Hill
 
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.FormsVicente Gerardo Guzman Lucio
 
Visual studio + Xamarin equals love
Visual studio + Xamarin equals loveVisual studio + Xamarin equals love
Visual studio + Xamarin equals loveAdam 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 GlasgowChris 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
 

Ähnlich wie Introduction to Cross Platform Development with Xamarin and 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...
 

Kürzlich hochgeladen

Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 

Kürzlich hochgeladen (20)

Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 

Introduction to Cross Platform Development with Xamarin and 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?