SlideShare a Scribd company logo
1 of 17
Cross platform mobile apps
with Xamarin
Simone Basso
Head of Engineering @justeat_tech
@smnbss
Who am I
Simone Basso
Head of Engineering @justeat_tech
http://smnbss.com/
@smnbss
Questions:
- How many of you are mobile developers?
- How many of you are Cross Platform mobile developers?
How do I know about mobile
In 2011 some friends on mine won the Italian 'Global Game
Jam' (GGJ), with a game called “Smashing Planets” developed
using Microsoft XNA for the PC.
Back then I was one of the few people owning a Windows
Phone and an XBOX, so I asked them for the source code and I
made the first port to XBOX and Windows Phone.
Then I got excited and discovered a project called MonoGame,
that is an Open Source implementation of Microsoft XNA.
In a matter of a few weeks we were able to port the game to
Android and iOS
http://bit.ly/android_smashing, http://bit.ly/apple_smashing
http://bit.ly/windows_smashing
What is MonoGame
MonoGame (http://www.monogame.net/) is a cross platform
“Write once, play everywhere” (iOS, Android, MacOS, Linux,
Windows, Windows Store, Windows Phone, and PlayStation 4)
framework built on top of Xamarin.
It allows you to write a game once and get it to work pretty much
everywhere.
FEZ (http://fezgame.com/) is probably
the most famous game written
with MonoGame
Start
Calculate Element Position
Render Elements
What is Xamarin
Xamarin is a company based in San Francisco, born as a spin off from Novell when Novel decided
not to support Mono anymore.
Xamarin.iOS and Xamarin.Android are a Cross Platform implementation of the .NET Framework
based on Mono.
It’s the only framework that allows you to write NATIVE cross platform mobile apps using the
same language and sharing up to 100%* of the code.
Microsoft recently open sourced (https://github.com/Microsoft/dotnet) all the core components
of .NET and created the .NET Foundation, and made Xamarin life a lot easier, as there’ll be more
and more support for running .NET on Unix based operative systems (OSX / Linux) and mobile
operative systems (iOS / Android).
* Only with Xamarin.Forms
What can you build with Xamarin
Anything. Really.
- Google Watch
- Apple Watch
- Rich UI apps
Anything you can do in ObjectiveC for iOS, Java
for Android and C# for Windows (Phone, Tablets
etc come out of the box with .NET) you can do it
with Xamarin.
Xamarin Architecture
Xamarin Architecture
MVVM is the recommended pattern when building X Platform mobile apps.
It allows to decouple the UI (View) from the Business Logic (Model/ViewModel).
MVVM is the pattern used by Angular JS when you use 2-way binding.
It’s probably the only good thing left after the death of Silverlight 
Is it really Native in iOS?
Yes 
C# is compiled to CIL (common intermediate language), and
then (since Xamarin.iOS 4.0) transcompiled to LLVM.
Xamarin is basically as fast as Swift 1.2* and almost 3 times
faster than Swift 1.1, using a similar amount of memory
* https://medium.com/@harrycheung/cross-platform-
mobile-performance-testing-d0454f5cd4e9
Is it really Native in Android
Kind of , but it’s even better.
C# is compiled to CIL (common intermediate language), and
then run on a MonoVM on Android.
It does not touch the DalvikVM unless it’s calling some
native library
Xamarin is basically as fast as Java * and using a very similar
amount of memory
* https://medium.com/@harrycheung/cross-platform-
mobile-performance-testing-d0454f5cd4e9
Xamarin.Forms
If all you want to build is a very simple data driven app, you
now have a new option.
It’s called Xamarin.Forms.
You can build your UI once, using XAML (the eXtensible
Application Markup Language) and Xamarin.Forms will take
care of rendering it with a native look and feel on every
platform.
You can still override how every component is rendered and
how they behave on each platform using OnPlatform and
custom renderers.
You can reach 100% code reusability for very simple apps.
Ideal for prototyping.
Xamarin vs Xamarin.Forms
I want to see some code
Go to http://propertycross.com/ and
https://github.com/tastejs/PropertyCross/, this is the most
comprehensive comparison of cross platform mobile
framework.
Or go and checkout this repo
https://github.com/jamesmontemagno/Hanselman.Forms.
James is one of the top Xamarin Evangelist and has built a
sample app to showcase all the best Xamarin.Forms
practices.
What Else - Xamarin Test Cloud
Built on Calabash, you can
test your app on hundreds
of REAL devices with a click
of a button.
You can use this, NOW, even
if you are building Native
apps without using Xamarin.
What Else - Xamarin Insight
Comprehensive Crash Reports and Analytics for
your App.
Step by step tracking of user activity.
The End
This was a very high level overview of how you can use Xamarin and all of their products to build,
test and support cross platform native apps.
Any question?
Simone Basso
Head of Engineering @justeat_tech
http://smnbss.com/
@smnbss

More Related Content

Viewers also liked

Madrid .NET Meetup: Microsoft open sources .NET!
Madrid .NET Meetup: Microsoft open sources .NET!Madrid .NET Meetup: Microsoft open sources .NET!
Madrid .NET Meetup: Microsoft open sources .NET!
Alfonso Garcia-Caro
 

Viewers also liked (18)

Flappy - Paris 2015
Flappy -  Paris 2015Flappy -  Paris 2015
Flappy - Paris 2015
 
.NET? MonoDroid Does
.NET? MonoDroid Does.NET? MonoDroid Does
.NET? MonoDroid Does
 
Madrid .NET Meetup: Microsoft open sources .NET!
Madrid .NET Meetup: Microsoft open sources .NET!Madrid .NET Meetup: Microsoft open sources .NET!
Madrid .NET Meetup: Microsoft open sources .NET!
 
Cross-platform Game Dev w/ CocosSharp
Cross-platform Game Dev w/ CocosSharpCross-platform Game Dev w/ CocosSharp
Cross-platform Game Dev w/ CocosSharp
 
Introduction to CocosSharp
Introduction to CocosSharpIntroduction to CocosSharp
Introduction to CocosSharp
 
Gaming in Csharp
Gaming in CsharpGaming in Csharp
Gaming in Csharp
 
Generative Art Hands On with F#
Generative Art Hands On with F#Generative Art Hands On with F#
Generative Art Hands On with F#
 
Monogame and xna
Monogame and xnaMonogame and xna
Monogame and xna
 
Intro to Gaming- MonoGame/CocosSharp/UrhoSharp
Intro to Gaming- MonoGame/CocosSharp/UrhoSharpIntro to Gaming- MonoGame/CocosSharp/UrhoSharp
Intro to Gaming- MonoGame/CocosSharp/UrhoSharp
 
Tips & Tricks that every game developer should know
Tips & Tricks that every game developer should knowTips & Tricks that every game developer should know
Tips & Tricks that every game developer should know
 
Flappy bird game in c#
Flappy bird game in c#Flappy bird game in c#
Flappy bird game in c#
 
Ready, steady, cross platform games - ProgNet 2015
Ready, steady, cross platform games - ProgNet 2015Ready, steady, cross platform games - ProgNet 2015
Ready, steady, cross platform games - ProgNet 2015
 
Building a game in a day
Building a game in a dayBuilding a game in a day
Building a game in a day
 
Mobile F#un
Mobile F#unMobile F#un
Mobile F#un
 
UniteKorea2014 - Making flappy bird workshop
UniteKorea2014 - Making flappy bird workshopUniteKorea2014 - Making flappy bird workshop
UniteKorea2014 - Making flappy bird workshop
 
Mobile Enterprise Success with Xamarin and IBM
Mobile Enterprise Success with Xamarin and IBMMobile Enterprise Success with Xamarin and IBM
Mobile Enterprise Success with Xamarin and IBM
 
Smyowl - desenvolvimento games win8
Smyowl - desenvolvimento games win8Smyowl - desenvolvimento games win8
Smyowl - desenvolvimento games win8
 
Desenvolvendo Jogos 2D em HTML5 - Cocos2d-x
Desenvolvendo Jogos 2D em HTML5 - Cocos2d-xDesenvolvendo Jogos 2D em HTML5 - Cocos2d-x
Desenvolvendo Jogos 2D em HTML5 - Cocos2d-x
 

Recently uploaded

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Recently uploaded (20)

Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 

e-ZUKA Tech Night vol.29 - Cross platform mobile apps with Xamarin

  • 1. Cross platform mobile apps with Xamarin Simone Basso Head of Engineering @justeat_tech @smnbss
  • 2. Who am I Simone Basso Head of Engineering @justeat_tech http://smnbss.com/ @smnbss
  • 3. Questions: - How many of you are mobile developers? - How many of you are Cross Platform mobile developers?
  • 4. How do I know about mobile In 2011 some friends on mine won the Italian 'Global Game Jam' (GGJ), with a game called “Smashing Planets” developed using Microsoft XNA for the PC. Back then I was one of the few people owning a Windows Phone and an XBOX, so I asked them for the source code and I made the first port to XBOX and Windows Phone. Then I got excited and discovered a project called MonoGame, that is an Open Source implementation of Microsoft XNA. In a matter of a few weeks we were able to port the game to Android and iOS http://bit.ly/android_smashing, http://bit.ly/apple_smashing http://bit.ly/windows_smashing
  • 5. What is MonoGame MonoGame (http://www.monogame.net/) is a cross platform “Write once, play everywhere” (iOS, Android, MacOS, Linux, Windows, Windows Store, Windows Phone, and PlayStation 4) framework built on top of Xamarin. It allows you to write a game once and get it to work pretty much everywhere. FEZ (http://fezgame.com/) is probably the most famous game written with MonoGame Start Calculate Element Position Render Elements
  • 6. What is Xamarin Xamarin is a company based in San Francisco, born as a spin off from Novell when Novel decided not to support Mono anymore. Xamarin.iOS and Xamarin.Android are a Cross Platform implementation of the .NET Framework based on Mono. It’s the only framework that allows you to write NATIVE cross platform mobile apps using the same language and sharing up to 100%* of the code. Microsoft recently open sourced (https://github.com/Microsoft/dotnet) all the core components of .NET and created the .NET Foundation, and made Xamarin life a lot easier, as there’ll be more and more support for running .NET on Unix based operative systems (OSX / Linux) and mobile operative systems (iOS / Android). * Only with Xamarin.Forms
  • 7. What can you build with Xamarin Anything. Really. - Google Watch - Apple Watch - Rich UI apps Anything you can do in ObjectiveC for iOS, Java for Android and C# for Windows (Phone, Tablets etc come out of the box with .NET) you can do it with Xamarin.
  • 9. Xamarin Architecture MVVM is the recommended pattern when building X Platform mobile apps. It allows to decouple the UI (View) from the Business Logic (Model/ViewModel). MVVM is the pattern used by Angular JS when you use 2-way binding. It’s probably the only good thing left after the death of Silverlight 
  • 10. Is it really Native in iOS? Yes  C# is compiled to CIL (common intermediate language), and then (since Xamarin.iOS 4.0) transcompiled to LLVM. Xamarin is basically as fast as Swift 1.2* and almost 3 times faster than Swift 1.1, using a similar amount of memory * https://medium.com/@harrycheung/cross-platform- mobile-performance-testing-d0454f5cd4e9
  • 11. Is it really Native in Android Kind of , but it’s even better. C# is compiled to CIL (common intermediate language), and then run on a MonoVM on Android. It does not touch the DalvikVM unless it’s calling some native library Xamarin is basically as fast as Java * and using a very similar amount of memory * https://medium.com/@harrycheung/cross-platform- mobile-performance-testing-d0454f5cd4e9
  • 12. Xamarin.Forms If all you want to build is a very simple data driven app, you now have a new option. It’s called Xamarin.Forms. You can build your UI once, using XAML (the eXtensible Application Markup Language) and Xamarin.Forms will take care of rendering it with a native look and feel on every platform. You can still override how every component is rendered and how they behave on each platform using OnPlatform and custom renderers. You can reach 100% code reusability for very simple apps. Ideal for prototyping.
  • 14. I want to see some code Go to http://propertycross.com/ and https://github.com/tastejs/PropertyCross/, this is the most comprehensive comparison of cross platform mobile framework. Or go and checkout this repo https://github.com/jamesmontemagno/Hanselman.Forms. James is one of the top Xamarin Evangelist and has built a sample app to showcase all the best Xamarin.Forms practices.
  • 15. What Else - Xamarin Test Cloud Built on Calabash, you can test your app on hundreds of REAL devices with a click of a button. You can use this, NOW, even if you are building Native apps without using Xamarin.
  • 16. What Else - Xamarin Insight Comprehensive Crash Reports and Analytics for your App. Step by step tracking of user activity.
  • 17. The End This was a very high level overview of how you can use Xamarin and all of their products to build, test and support cross platform native apps. Any question? Simone Basso Head of Engineering @justeat_tech http://smnbss.com/ @smnbss

Editor's Notes

  1. Microsoft XNA (a recursive acronym for XNA's Not Acronymed[2]) is a freeware set of tools with a managed runtime environment provided by Microsoft that facilitates video game development and management.
  2. https://github.com/calabash Calabash is an automated testing technology for Android and iOS native and hybrid applications.