SlideShare a Scribd company logo
Mobile Dev 
FocusDay – Alessandro Graps – 14/09/2014 
Sviluppo mobile e possibili alternative .NET 
(Xamarin)
Alessandro Graps 
Dynamics CRM Specialist | Solutions Architect | Senior .Net Specialist 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
2 
Em@il: alessandro.graps@gmail.com 
Blog: http://nothingnessit.wordpress.com 
Twitter:@algraps 
Skype: algraps
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
3
Agenda 
• Parte prima: 
– Mercato 
– Native Plattform 
• IOS 
• Android 
• Windows Phone 
– Le tre tecnologie a confronto 
– Microsoft e Nokia 
– Qual’é la migliore per le mie esigenze? 
• Quale Scegliere: Da quale partiamo. 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
4
Agenda 
• Parte seconda: 
– Xamarin: Riutilizzare il codice 
• Xamarin 
– Introduzione 
– Monodroid : .Net per Android 
– Monotouch : .Net per IPhone 
• Perchè utilizzare Xamarin 
– Sviluppatori di codice nativo sono scarsi e costosi 
– Riutilizzo del codice 
– Espansione del nostro businness 
– Microsoft support 
– Risparmio 
– Esempio pratico: Tasky 
– Conclusioni. 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
5
Cosa sara’ 
• Discussione tra amici ed esperti IT 
• Quattro chiacchere in compagnia 
• Focus sulle tecnologie disponibili 
• Come scegliere… 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
6
Cosa NON sara’ 
• NON E’ UN CORSO! 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
7
IL MERCATO 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
8
Evoluzione del mercato 1/3 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
9 
13% 28.7%
Evoluzione del mercato 2/3 
• 2014 
– Windows Phone è ora la seconda installata in 
Italia, dopo Android. 
– Dati Kantar Worldpanel 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
10
Evoluzione del mercato 2/2 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
11 
Android domina il mercato italiano, e Windows Phone vince anche su iOS
Mercato Italia Confronto 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
12
Mercato USA Confronto 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
13
Mercato China Confronto 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
14
LE TRE TECNOLOGIE 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
15
Android 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
16
Android 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
17
Android 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
18 
Eclipse IDE 
Android 
SDK 
Android 
Emulator 
Android 
Mobile 
Device
Android 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
19 
Android 
Manifest 
Resource 
XML 
Java Source 
Generated 
Class 
Java 
Compiler 
Android 
Libraries 
.dex 
File 
Dalvik 
VM
Android – Activity Life Cycle 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
20
Android – Emulator 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin)
Source 
code 
Auto-generated 
code 
UI 
layout 
Android – 
Solution 
Tree 
String 
constants 
Configuration
HelloAndroid.java 
1 public class HelloAndroid extends Activity { 
2 /** Called when the activity is first created. */ 
3 @Override 
4 public void onCreate(Bundle savedInstanceState) 
5 { 
6 super.onCreate(savedInstanceState); 
7 setContentView(R.layout.main); 
8 } 
9 } 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin)
main.xml 
1 <?xml version="1.0" encoding="utf-8"?> 
2 <LinearLayout 
3 xmlns:android="http://schemas.android.com/apk/res/android" 
4 android:orientation="vertical" 
5 android:layout_width="fill_parent" 
6 android:layout_height="fill_parent" 
7 > 
8 <TextView 
9 android:layout_width="fill_parent" 
10 android:layout_height="wrap_content" 
11 android:text="@string/hello " 
12 /> 
13 </LinearLayout> 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin)
strings.xml 
1 <?xml version="1.0" encoding="utf-8"?> 
2 <resources> 
3 <string name="hello">Hello World, HelloAndroid! 
4 </string> 
5 <string name="app_name">Hello, Android</string> 
6 </resources> 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin)
AndroidManifest.xml 
1 <?xml version="1.0" encoding="utf-8"?> 
2 <manifest 
3 xmlns:android="http://schemas.android.com/apk/res/android" 
4 package="edu.upenn.cis542" 
5 android:versionCode="1" 
6 android:versionName="1.0"> 
7 <application android:icon="@drawable/icon" 
8 android:label="@string/app_name"> 
9 <activity android:name=".HelloAndroid" 
10 android:label="@string/app_name"> 
11 <intent-filter> 
12 <action 
13 android:name="android.intent.action.MAIN" /> 
14 <category 
15 android:name="android.intent.category.LAUNCHER"/> 
16 </intent-filter> 
17 </activity> 
18 </application> 
19 </manifest> 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin)
IOS 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
27
iOS 
iPhone iPad 
Mini 
iPad 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin)
Installing development kit 
Install Xcode IDE – newest version 4.6.1 
Installing Xcode automatically installs iOS SDK 
Xcode is free to download from Mac App store 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin)
Apple developer program 
Apple developer account is free 
Apple developer program is not free – 99$/year 
Registration done from 
https://developer.apple.com/programs/ios/ 
Registration process takes 3-5 days 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin)
iOS development 
Develop 
No cost 
Debug 
Potential cost 
Deploy 
Requires Developer 
Program 
Test 
Requires Developer 
Program 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin)
iOS debugging 
Develop 
Simulator does not require 
a developer program 
Debug 
Device requires a Developer 
Provisioning Profile – 99$/year 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin)
Objective C 
Objective-C is an object oriented language 
Follows ANSI C style coding with methods from Smalltalk 
Flexible because almost everything is done at runtime: 
•Dynamic Binding 
•Dynamic Typing 
•Dynamic Linking 
Has protocols, which work like interfaces in Java they 
specify a number of methods a class must implement 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin)
C++ vs. Objective-C 
C++ Objective C 
Adds OOP, metaprogramming 
and generic programming to C 
Only adds OOP to C 
Comes with a std library Has no standard library; is 
dependant on other libraries 
Has numerous uses Mostly used for application 
building 
Large and complex code for OOP Simpler way of handling classes 
and objects 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin)
iOS Application Development 
XCODE IDE 
iOS 
SDK 
iOS 
Simulator 
iOS 
Mobile 
Device 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin)
iOS development 
Objective C 
Source 
.xib file Objective C 
Compiler 
Foundation 
Framework 
Cocoa Libraries 
. Simulator 
or Device 
Xcode 
Interface 
Builder 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin)
Window Phone 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
37
Two WP dev frameworks 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin)
Silverlight and XNA 
 framework for creating Rich Internet Application style 
UI 
 with emphasis on multimedia, animations, graphics, 
with features and purposes similar to those of Adobe 
Flash 
 Hardware accelerated by DX 
 Started on mobile with WP7 and Symbian (series 60) 
FOR: 
 XAML based, event driven application framework 
 rapid creation of a Rich Internet Application-style user 
interface 
 use Windows Phone controls 
 embed video inside your application 
 use an HTML web browser control 
 Framework is focused on enabling 
game developers to be successful 
developing on Microsoft gaming 
platforms 
 provides a complete set of managed 
APIs for game development 
 platforms WP, Xbox 360, Zune HD, 
Windows OS 
FOR: 
 high performance game 
 rapid creation of multi-screen 2D and 
3D games 
 manage art assets such as models, 
meshes, sprites, textures, effects, 
terrains, or animations in the XNA 
Content Pipeline 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin)
Developing 
 .NET 
 XNA 4.0, Silverlight 
 Microsoft Visual Studio 2010 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin)
Developing 
 Microsoft Expression Blend, UI desing tool (vector-based 
2D widgets, and 3D widgets with hardware 
acceleration via DirectX), XAML-based 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin)
Confronto 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
42
App Store / Marketplace 
summary 
iOS Android Windows Phone 
Approval Process Yes No Yes 
Distribution outside the store No Yes No 
Fragmentation Very Little Yes Yes 
Multiple stores / Marketplaces No Yes No 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin)
Cosa e’ successo? Microsoft e Xamarin 
• 27/11/2013 partnership ufficiale da Microsoft e Xamarin 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
44
Cosa e’ successo? Microsoft e Nokia 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
45
Quindi… come vedo il future… 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
46
Quale scegliere 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
47
Ho una domanda: Quale device hai? 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
48
XAMARIN 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
49
Un metodo alternativo:Xamarin 
• Xamarin consente a tutti di sviluppare con tutte le maggiori piattaforme! 
– Native User Interface 
– Native Performance 
– Shared Code Across Platforms 
– C# & .NET Framework 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
50
Storia Xamarin 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
51 
2000 
Ximian 
Founded 
2001 
Mono 
Started 
2003 
Ximian 
Acquired 
by Novell 
2009 
First iOS 
product (now 
Xamarin.iOS) 
launches 
2011 
Xamarin 
Founded 
First 
Release of 
Xamarin.Android 
2012 
First 
release of 
Xamarin.Mac 
Launch 
Partner 
Program 
2013 
Xamarin 2.0 
Component 
Store 
Evolve 2013 
Xamarin Test 
Cloud 
Microsoft 
Partnership 
Reach 200,000 
Developer 
Mark 
500,000+ 
Developers 
100+ Partners 
100+ Components
Ogni cosa in C# 
• IOS, Android, Windows, Windows Phone, Mac 
• 2.5+ Billion Device !!!! 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
52
100% Copertura API 
• Anything you can do in Objective-C or Java can be done in C# and Visual 
Studio with Xamarin! 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
53
Un metodo alternativo: Problema 
• Build Apps Multiple Times 
– Multiple Teams 
– Multiple Code Bases 
– Different toolsets 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
54
Un metodo alternativo: Un solo codice 
• Least common denominator 
• Browser fragmentation 
• Developing & designing for 1 platform, happen 
to get other platforms 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
55
Xamarin: Il nostro obbiettivo 
• Native User Interface 
• Native Performance 
• Shared code across platforms 
• C# & .NET Framework 
• Full API Coverage 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
56
PERCHE’ C# 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
57
C# Is Awesome 
14/09/2014 
 LINQ Support 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
58 
 Work with XML Easily XDocument 
 Event Handling & Delegates
C# Is Awesome – JSON Made Easy 
• Json.NET offers simple conversions to and from JSON strings and .NET objects, with 
SerializeObject and DeserializeObject methods. 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
59
Probing for properties on an AudioFile 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
60 
 C  C#
See the Different – Android ItemClick 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
61 
 JAVA  C# with XAMARIN
Async/Await 
• Write a beautiful & Maintainable 
Code 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
62
Sviluppatori di codice nativo sono scarsi e costosi 
• Xamarin allows businesses to leverage existing teams, skills & tools 
• “Xamarin’s platform enabled our engineering team to become native 
mobile developers almost overnight, eliminating the expense of hiring 
scarce, expensive platform-specific developers.” 
David Fuller, Vice President of Software R&D 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
63
PERCHE’ XAMARIN 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
64
Riutilizzo del codice 
• Be on the devices your app end users expect 
• Speed time-to-market with up to 90% code sharing 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
65
Espansione del 
nostro businness 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
66 
Convert XNA 
developers to 
Windows 8 
Entice iOS 
& Android 
developers 
Stop .NET 
developer 
attrition to 
Objective-C 
Convert 
Silverlight 
& ASP.NET 
developers to 
mobile
Microsoft Support 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
67 
Give-away 
Licenses 
for Events 
Free 
Evangelist 
licenses
Risparmio 
• Xamarin allows businesses to leverage existing teams, skills & 
tools 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
68
PRODOTTI 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
69
I Prodotti 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
70 
Xamarin.Mac 
Xamarin 
Studio 
Xamarin 
Test Cloud 
Component 
Store 
Xamarin.iOS 
Xamarin. 
Android 
Xamarin for 
Visual Studio 
.NET Mobility 
Scanner
Visual Studio Integration 
• A single solution: 
– iOS 
– Android 
– Windows Phone 
– Windows Store 
• Leverage the entire Microsoft 
ecosystem: 
– ReSharper 
– Team Foundation Server 
– Your favorite code coverage and 
profiling tools 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
71
Visual Studio Integration 
• Debug to: 
– Emulators 
– Devices 
• Integrated into toolbar 
– Status 
– Logs 
– List of devices 
• Just Click Start Debugging! 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
72
Xamarin Studio 
• Optimized for cross-platform mobile 
development 
• Explore native APIs with code completion 
• World class Android and iOS designers 
• Powerful debugging on simulator or 
device 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
73
Android Designer 
• Worlds best Android designer 
• Available in: 
– Xamarin Studio 
– Visual Studio 
• Create UI with drag & drop simplicity 
• Target multiple screen sizes, resolutions and 
Android versions 
• Layouts saved in standard Android XML files 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
74
iOS Designer 
• World’s first iOS Designer available in 
Xamarin Studio (and soon Visual Studio) 
• Follows familiar Visual Studio designer 
idioms 
• Supports all UIKit elements 
• Edit custom and 3rd party components 
• Live preview of changes to properties 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
75
Xamarin Component Store 
• Build Apps Faster 
– Add high quality pre-built app 
components directly from Visual 
Studio and Xamarin Studio 
– Beautiful cross-platform UI controls, 
cloud services and enterprise 
backend integrations are just a few 
clicks away 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
76
.Net Mobility Scanner 
• How mobile is your 
.NET? 
• scan.xamarin.com 
• Scan .exe or .dll to 
determine 
compatibility 
• Generates full report: 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
77 
Generates a full report of all method calls to determine compatibility with Xamarin.Android, Xamarin.iOS, Windows 
Phone, and Windows 8.
Prebuilt Field Service App 
• App Features: 
– Location-based assignments / routing 
– Time recording 
– Camera capture of work 
– Signature capture 
• Cross-Platform Techniques 
– MVVM pattern 
– Xamarin.Mobile 
– Signature control from Component Store 
– SQLite for storage on all 3 platforms 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
78
Xamarin Test Cloud 
• Test app at UI level 
• Takes minutes, not days to get 
started 
• Test on hundreds of real devices 
• Is resilient to visual changes in UI 
• Has a delightful user interface 
• App Explorer & Custom Tests 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
79
Mono for Android 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
80 
• Commercial Product from Novell 
$399 individual / ~$999 enterprise 
/ ~$99 student 
• Windows and Mac OS X 
• Open preview 
DOWNLOAD AND TRY IT! 
• Project is getting really close to 1.0 
No “Go Live” license yet 
Not done with optimizations 
Still changing the API
Mono for Android: Architettura 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
81
Licenze 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
82
Xamarin University 
• Go Mobile Program 
– Live online training from 
Xamarin experts 
– Lectures and labs 
– One-on-one with expert 
Xamarin mobile developers 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
83 
 What You’ll Learn 
 iOS and Android Fundamentals 
 Mobile App Lifecycle 
 Native UI and Controls 
 Cross-platform Architecture
Xamarin Developer Certifications 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
84
DEMO 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
85
Conclusioni 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
86
Domande 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
87
Alessandro Graps 
Dynamics CRM Specialist | Solutions Architect | Senior .Net Specialist 
14/09/2014 
Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile 
e Possibili Alternative .Net (Xamarin) 
88 
Em@il: alessandro.graps@gmail.com 
Blog: http://nothingnessit.wordpress.com 
Twitter:@algraps 
Skype: algraps
Contatti 
OverNet Education 
 www.OverNetEducation.it 
 info@OverNetEducation.it 
 +39 02 365738 
@OverNetE 
#Focusday

More Related Content

What's hot

Ehab Mohamed Ashraf - CV
Ehab Mohamed Ashraf - CVEhab Mohamed Ashraf - CV
Ehab Mohamed Ashraf - CV
E_BOB
 
Mobile next 2013 petru jucovschi
Mobile next 2013   petru jucovschiMobile next 2013   petru jucovschi
Mobile next 2013 petru jucovschi
mpgco
 
iOS & Android Application Development - Pee Dee User Group Meeting
iOS & Android Application Development - Pee Dee User Group MeetingiOS & Android Application Development - Pee Dee User Group Meeting
iOS & Android Application Development - Pee Dee User Group Meeting
Jim Tochterman
 

What's hot (20)

Cross platform app development a complete guide
Cross platform app development a complete guideCross platform app development a complete guide
Cross platform app development a complete guide
 
Phone gap
Phone gapPhone gap
Phone gap
 
Introduction to PhoneGap
Introduction to PhoneGapIntroduction to PhoneGap
Introduction to PhoneGap
 
Cross Platform Mobile App Development
Cross Platform Mobile App DevelopmentCross Platform Mobile App Development
Cross Platform Mobile App Development
 
Hybrid mobile apps
Hybrid mobile appsHybrid mobile apps
Hybrid mobile apps
 
Cross Platform Development with Xamarin
Cross Platform Development with XamarinCross Platform Development with Xamarin
Cross Platform Development with Xamarin
 
Mobility testing day_1_ppt
Mobility testing day_1_pptMobility testing day_1_ppt
Mobility testing day_1_ppt
 
Building a New Generation of Mobile Games with Speech
Building a New Generation of Mobile Games with SpeechBuilding a New Generation of Mobile Games with Speech
Building a New Generation of Mobile Games with Speech
 
Hybrid Application Development documentation report (MCA Project)
Hybrid Application Development documentation report (MCA Project)Hybrid Application Development documentation report (MCA Project)
Hybrid Application Development documentation report (MCA Project)
 
Ehab Mohamed Ashraf - CV
Ehab Mohamed Ashraf - CVEhab Mohamed Ashraf - CV
Ehab Mohamed Ashraf - CV
 
Native vs. Hybrid Apps
Native vs. Hybrid AppsNative vs. Hybrid Apps
Native vs. Hybrid Apps
 
All About Phonegap
All About Phonegap All About Phonegap
All About Phonegap
 
The state-of-the-art in Mobile apps
The state-of-the-art in Mobile appsThe state-of-the-art in Mobile apps
The state-of-the-art in Mobile apps
 
Mobile next 2013 petru jucovschi
Mobile next 2013   petru jucovschiMobile next 2013   petru jucovschi
Mobile next 2013 petru jucovschi
 
iOS & Android Application Development - Pee Dee User Group Meeting
iOS & Android Application Development - Pee Dee User Group MeetingiOS & Android Application Development - Pee Dee User Group Meeting
iOS & Android Application Development - Pee Dee User Group Meeting
 
Cordova / PhoneGap, mobile apps development with HTML5/JS/CSS
Cordova / PhoneGap, mobile apps development with HTML5/JS/CSSCordova / PhoneGap, mobile apps development with HTML5/JS/CSS
Cordova / PhoneGap, mobile apps development with HTML5/JS/CSS
 
Xamarin Platform
Xamarin PlatformXamarin Platform
Xamarin Platform
 
Hybrid mobile app development
Hybrid mobile app developmentHybrid mobile app development
Hybrid mobile app development
 
Hybrid Mobile App
Hybrid Mobile AppHybrid Mobile App
Hybrid Mobile App
 
Building Hybrid Applications using PhoneGap
Building Hybrid Applications using PhoneGapBuilding Hybrid Applications using PhoneGap
Building Hybrid Applications using PhoneGap
 

Similar to MobileDev: panoramica sullo sviluppo Mobile e sulle possibili alternative .Net

How to-choose-the-right-technology-architecture-for-your-mobile-application
How to-choose-the-right-technology-architecture-for-your-mobile-applicationHow to-choose-the-right-technology-architecture-for-your-mobile-application
How to-choose-the-right-technology-architecture-for-your-mobile-application
lverb
 
Rapidvalue whitepaper-howtochoosetherightarchitectureforyourmobileapplication...
Rapidvalue whitepaper-howtochoosetherightarchitectureforyourmobileapplication...Rapidvalue whitepaper-howtochoosetherightarchitectureforyourmobileapplication...
Rapidvalue whitepaper-howtochoosetherightarchitectureforyourmobileapplication...
hpcmitresearch
 
Rhodes Ruby Nation
Rhodes Ruby NationRhodes Ruby Nation
Rhodes Ruby Nation
Adam Blum
 

Similar to MobileDev: panoramica sullo sviluppo Mobile e sulle possibili alternative .Net (20)

Cross Platform Mobile Development with Xamarin
Cross Platform Mobile Development with XamarinCross Platform Mobile Development with Xamarin
Cross Platform Mobile Development with Xamarin
 
Top 8 Alternatives Of Xamarin.pdf
Top 8 Alternatives Of Xamarin.pdfTop 8 Alternatives Of Xamarin.pdf
Top 8 Alternatives Of Xamarin.pdf
 
Xamarin vs. native script which one is the ideal cross-platform framework fo...
Xamarin vs. native script  which one is the ideal cross-platform framework fo...Xamarin vs. native script  which one is the ideal cross-platform framework fo...
Xamarin vs. native script which one is the ideal cross-platform framework fo...
 
Xamarin vs. native script which one is the ideal cross-platform framework fo...
Xamarin vs. native script  which one is the ideal cross-platform framework fo...Xamarin vs. native script  which one is the ideal cross-platform framework fo...
Xamarin vs. native script which one is the ideal cross-platform framework fo...
 
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
 
Journey into cross mobile apps development - Xamarin Forms case study
Journey into cross mobile apps development - Xamarin Forms case studyJourney into cross mobile apps development - Xamarin Forms case study
Journey into cross mobile apps development - Xamarin Forms case study
 
Why is xamarin the most popular framework for business app development
Why is xamarin the most popular framework for business app developmentWhy is xamarin the most popular framework for business app development
Why is xamarin the most popular framework for business app development
 
Building Cross Platform Mobile Applications
Building Cross Platform Mobile ApplicationsBuilding Cross Platform Mobile Applications
Building Cross Platform Mobile Applications
 
App forum2015 London - RhoMobile Update
App forum2015 London - RhoMobile UpdateApp forum2015 London - RhoMobile Update
App forum2015 London - RhoMobile Update
 
HTML5 Can't Do That
HTML5 Can't Do ThatHTML5 Can't Do That
HTML5 Can't Do That
 
How to-choose-the-right-technology-architecture-for-your-mobile-application
How to-choose-the-right-technology-architecture-for-your-mobile-applicationHow to-choose-the-right-technology-architecture-for-your-mobile-application
How to-choose-the-right-technology-architecture-for-your-mobile-application
 
Rapidvalue whitepaper-howtochoosetherightarchitectureforyourmobileapplication...
Rapidvalue whitepaper-howtochoosetherightarchitectureforyourmobileapplication...Rapidvalue whitepaper-howtochoosetherightarchitectureforyourmobileapplication...
Rapidvalue whitepaper-howtochoosetherightarchitectureforyourmobileapplication...
 
Xamarin Mobile App Development Features & Benefits.pdf
Xamarin Mobile App Development Features & Benefits.pdfXamarin Mobile App Development Features & Benefits.pdf
Xamarin Mobile App Development Features & Benefits.pdf
 
Different Types of Websites _ XcelTec .pdf
Different Types of Websites _ XcelTec .pdfDifferent Types of Websites _ XcelTec .pdf
Different Types of Websites _ XcelTec .pdf
 
Mobile Developer's Guide To The Galaxy Vol.7
Mobile Developer's Guide To The Galaxy Vol.7Mobile Developer's Guide To The Galaxy Vol.7
Mobile Developer's Guide To The Galaxy Vol.7
 
Mobility today & what's next. Application ecosystems.
Mobility today & what's next.Application ecosystems.Mobility today & what's next.Application ecosystems.
Mobility today & what's next. Application ecosystems.
 
ImranBaigCV
ImranBaigCVImranBaigCV
ImranBaigCV
 
Rhodes Ruby Nation
Rhodes Ruby NationRhodes Ruby Nation
Rhodes Ruby Nation
 
Top reasons why to choose xamarin for mobile app development
Top reasons why to choose xamarin for mobile app developmentTop reasons why to choose xamarin for mobile app development
Top reasons why to choose xamarin for mobile app development
 
Tcdnug xamarin
Tcdnug xamarinTcdnug xamarin
Tcdnug xamarin
 

More from JOULEHUB GMBH

More from JOULEHUB GMBH (16)

JOULEHUB: TRANSFORM YOUR PROJECTS INTO SUCCESS
JOULEHUB: TRANSFORM YOUR PROJECTS INTO SUCCESSJOULEHUB: TRANSFORM YOUR PROJECTS INTO SUCCESS
JOULEHUB: TRANSFORM YOUR PROJECTS INTO SUCCESS
 
SMART CITIES: DIGITAL TRANSFORMATION HELPS PEOPLE
SMART CITIES: DIGITAL TRANSFORMATION HELPS PEOPLE SMART CITIES: DIGITAL TRANSFORMATION HELPS PEOPLE
SMART CITIES: DIGITAL TRANSFORMATION HELPS PEOPLE
 
PowerBI: Real Time streaming information from Sensors
PowerBI: Real Time streaming information from SensorsPowerBI: Real Time streaming information from Sensors
PowerBI: Real Time streaming information from Sensors
 
DIGITAL TRANSFORMATION IN MINING
DIGITAL TRANSFORMATION IN MININGDIGITAL TRANSFORMATION IN MINING
DIGITAL TRANSFORMATION IN MINING
 
AI AND ROBOTICS TO ASSIST WITH DIGITAL TRANSFORMATION
AI AND ROBOTICS TO ASSIST WITH DIGITAL TRANSFORMATIONAI AND ROBOTICS TO ASSIST WITH DIGITAL TRANSFORMATION
AI AND ROBOTICS TO ASSIST WITH DIGITAL TRANSFORMATION
 
JOULEHUB ELECTRONICS
JOULEHUB  ELECTRONICSJOULEHUB  ELECTRONICS
JOULEHUB ELECTRONICS
 
PROTOTYPPROZESSE IN JOULEHUB
PROTOTYPPROZESSE IN JOULEHUBPROTOTYPPROZESSE IN JOULEHUB
PROTOTYPPROZESSE IN JOULEHUB
 
PREDICTIVE MAINTENANCE AND REMOTE ASSISTANCE: JOULEHUB DIGITAL TRANSFORMATION
PREDICTIVE MAINTENANCE AND REMOTE ASSISTANCE: JOULEHUB DIGITAL TRANSFORMATIONPREDICTIVE MAINTENANCE AND REMOTE ASSISTANCE: JOULEHUB DIGITAL TRANSFORMATION
PREDICTIVE MAINTENANCE AND REMOTE ASSISTANCE: JOULEHUB DIGITAL TRANSFORMATION
 
FARMING: JOULEHUB DIGITAL TRANSFORMATION
FARMING: JOULEHUB DIGITAL TRANSFORMATIONFARMING: JOULEHUB DIGITAL TRANSFORMATION
FARMING: JOULEHUB DIGITAL TRANSFORMATION
 
SMARTCITY: JOULEHUB DIGITAL TRANSFORMATION
SMARTCITY: JOULEHUB DIGITAL TRANSFORMATIONSMARTCITY: JOULEHUB DIGITAL TRANSFORMATION
SMARTCITY: JOULEHUB DIGITAL TRANSFORMATION
 
MINING - SMART HELMET: JOULEHUB:DIGITAL TRANSFORMATION
MINING - SMART HELMET: JOULEHUB:DIGITAL TRANSFORMATIONMINING - SMART HELMET: JOULEHUB:DIGITAL TRANSFORMATION
MINING - SMART HELMET: JOULEHUB:DIGITAL TRANSFORMATION
 
Refactoring Smell Code
Refactoring Smell CodeRefactoring Smell Code
Refactoring Smell Code
 
Agile methodologies
Agile methodologiesAgile methodologies
Agile methodologies
 
Lego – agile prototyping 2
Lego – agile prototyping 2Lego – agile prototyping 2
Lego – agile prototyping 2
 
Frankenstein Garage
Frankenstein GarageFrankenstein Garage
Frankenstein Garage
 
Monodroid – Sviluppare in C# su ANDROID
Monodroid – Sviluppare in C# su ANDROIDMonodroid – Sviluppare in C# su ANDROID
Monodroid – Sviluppare in C# su ANDROID
 

MobileDev: panoramica sullo sviluppo Mobile e sulle possibili alternative .Net

  • 1. Mobile Dev FocusDay – Alessandro Graps – 14/09/2014 Sviluppo mobile e possibili alternative .NET (Xamarin)
  • 2. Alessandro Graps Dynamics CRM Specialist | Solutions Architect | Senior .Net Specialist 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 2 Em@il: alessandro.graps@gmail.com Blog: http://nothingnessit.wordpress.com Twitter:@algraps Skype: algraps
  • 3. 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 3
  • 4. Agenda • Parte prima: – Mercato – Native Plattform • IOS • Android • Windows Phone – Le tre tecnologie a confronto – Microsoft e Nokia – Qual’é la migliore per le mie esigenze? • Quale Scegliere: Da quale partiamo. 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 4
  • 5. Agenda • Parte seconda: – Xamarin: Riutilizzare il codice • Xamarin – Introduzione – Monodroid : .Net per Android – Monotouch : .Net per IPhone • Perchè utilizzare Xamarin – Sviluppatori di codice nativo sono scarsi e costosi – Riutilizzo del codice – Espansione del nostro businness – Microsoft support – Risparmio – Esempio pratico: Tasky – Conclusioni. 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 5
  • 6. Cosa sara’ • Discussione tra amici ed esperti IT • Quattro chiacchere in compagnia • Focus sulle tecnologie disponibili • Come scegliere… 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 6
  • 7. Cosa NON sara’ • NON E’ UN CORSO! 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 7
  • 8. IL MERCATO 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 8
  • 9. Evoluzione del mercato 1/3 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 9 13% 28.7%
  • 10. Evoluzione del mercato 2/3 • 2014 – Windows Phone è ora la seconda installata in Italia, dopo Android. – Dati Kantar Worldpanel 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 10
  • 11. Evoluzione del mercato 2/2 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 11 Android domina il mercato italiano, e Windows Phone vince anche su iOS
  • 12. Mercato Italia Confronto 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 12
  • 13. Mercato USA Confronto 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 13
  • 14. Mercato China Confronto 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 14
  • 15. LE TRE TECNOLOGIE 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 15
  • 16. Android 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 16
  • 17. Android 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 17
  • 18. Android 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 18 Eclipse IDE Android SDK Android Emulator Android Mobile Device
  • 19. Android 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 19 Android Manifest Resource XML Java Source Generated Class Java Compiler Android Libraries .dex File Dalvik VM
  • 20. Android – Activity Life Cycle 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 20
  • 21. Android – Emulator Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin)
  • 22. Source code Auto-generated code UI layout Android – Solution Tree String constants Configuration
  • 23. HelloAndroid.java 1 public class HelloAndroid extends Activity { 2 /** Called when the activity is first created. */ 3 @Override 4 public void onCreate(Bundle savedInstanceState) 5 { 6 super.onCreate(savedInstanceState); 7 setContentView(R.layout.main); 8 } 9 } Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin)
  • 24. main.xml 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout 3 xmlns:android="http://schemas.android.com/apk/res/android" 4 android:orientation="vertical" 5 android:layout_width="fill_parent" 6 android:layout_height="fill_parent" 7 > 8 <TextView 9 android:layout_width="fill_parent" 10 android:layout_height="wrap_content" 11 android:text="@string/hello " 12 /> 13 </LinearLayout> Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin)
  • 25. strings.xml 1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 <string name="hello">Hello World, HelloAndroid! 4 </string> 5 <string name="app_name">Hello, Android</string> 6 </resources> Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin)
  • 26. AndroidManifest.xml 1 <?xml version="1.0" encoding="utf-8"?> 2 <manifest 3 xmlns:android="http://schemas.android.com/apk/res/android" 4 package="edu.upenn.cis542" 5 android:versionCode="1" 6 android:versionName="1.0"> 7 <application android:icon="@drawable/icon" 8 android:label="@string/app_name"> 9 <activity android:name=".HelloAndroid" 10 android:label="@string/app_name"> 11 <intent-filter> 12 <action 13 android:name="android.intent.action.MAIN" /> 14 <category 15 android:name="android.intent.category.LAUNCHER"/> 16 </intent-filter> 17 </activity> 18 </application> 19 </manifest> Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin)
  • 27. IOS 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 27
  • 28. iOS iPhone iPad Mini iPad Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin)
  • 29. Installing development kit Install Xcode IDE – newest version 4.6.1 Installing Xcode automatically installs iOS SDK Xcode is free to download from Mac App store Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin)
  • 30. Apple developer program Apple developer account is free Apple developer program is not free – 99$/year Registration done from https://developer.apple.com/programs/ios/ Registration process takes 3-5 days Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin)
  • 31. iOS development Develop No cost Debug Potential cost Deploy Requires Developer Program Test Requires Developer Program Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin)
  • 32. iOS debugging Develop Simulator does not require a developer program Debug Device requires a Developer Provisioning Profile – 99$/year Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin)
  • 33. Objective C Objective-C is an object oriented language Follows ANSI C style coding with methods from Smalltalk Flexible because almost everything is done at runtime: •Dynamic Binding •Dynamic Typing •Dynamic Linking Has protocols, which work like interfaces in Java they specify a number of methods a class must implement Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin)
  • 34. C++ vs. Objective-C C++ Objective C Adds OOP, metaprogramming and generic programming to C Only adds OOP to C Comes with a std library Has no standard library; is dependant on other libraries Has numerous uses Mostly used for application building Large and complex code for OOP Simpler way of handling classes and objects Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin)
  • 35. iOS Application Development XCODE IDE iOS SDK iOS Simulator iOS Mobile Device Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin)
  • 36. iOS development Objective C Source .xib file Objective C Compiler Foundation Framework Cocoa Libraries . Simulator or Device Xcode Interface Builder Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin)
  • 37. Window Phone 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 37
  • 38. Two WP dev frameworks Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin)
  • 39. Silverlight and XNA  framework for creating Rich Internet Application style UI  with emphasis on multimedia, animations, graphics, with features and purposes similar to those of Adobe Flash  Hardware accelerated by DX  Started on mobile with WP7 and Symbian (series 60) FOR:  XAML based, event driven application framework  rapid creation of a Rich Internet Application-style user interface  use Windows Phone controls  embed video inside your application  use an HTML web browser control  Framework is focused on enabling game developers to be successful developing on Microsoft gaming platforms  provides a complete set of managed APIs for game development  platforms WP, Xbox 360, Zune HD, Windows OS FOR:  high performance game  rapid creation of multi-screen 2D and 3D games  manage art assets such as models, meshes, sprites, textures, effects, terrains, or animations in the XNA Content Pipeline Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin)
  • 40. Developing  .NET  XNA 4.0, Silverlight  Microsoft Visual Studio 2010 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin)
  • 41. Developing  Microsoft Expression Blend, UI desing tool (vector-based 2D widgets, and 3D widgets with hardware acceleration via DirectX), XAML-based Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin)
  • 42. Confronto 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 42
  • 43. App Store / Marketplace summary iOS Android Windows Phone Approval Process Yes No Yes Distribution outside the store No Yes No Fragmentation Very Little Yes Yes Multiple stores / Marketplaces No Yes No Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin)
  • 44. Cosa e’ successo? Microsoft e Xamarin • 27/11/2013 partnership ufficiale da Microsoft e Xamarin 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 44
  • 45. Cosa e’ successo? Microsoft e Nokia 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 45
  • 46. Quindi… come vedo il future… 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 46
  • 47. Quale scegliere 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 47
  • 48. Ho una domanda: Quale device hai? 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 48
  • 49. XAMARIN 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 49
  • 50. Un metodo alternativo:Xamarin • Xamarin consente a tutti di sviluppare con tutte le maggiori piattaforme! – Native User Interface – Native Performance – Shared Code Across Platforms – C# & .NET Framework 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 50
  • 51. Storia Xamarin 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 51 2000 Ximian Founded 2001 Mono Started 2003 Ximian Acquired by Novell 2009 First iOS product (now Xamarin.iOS) launches 2011 Xamarin Founded First Release of Xamarin.Android 2012 First release of Xamarin.Mac Launch Partner Program 2013 Xamarin 2.0 Component Store Evolve 2013 Xamarin Test Cloud Microsoft Partnership Reach 200,000 Developer Mark 500,000+ Developers 100+ Partners 100+ Components
  • 52. Ogni cosa in C# • IOS, Android, Windows, Windows Phone, Mac • 2.5+ Billion Device !!!! 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 52
  • 53. 100% Copertura API • Anything you can do in Objective-C or Java can be done in C# and Visual Studio with Xamarin! 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 53
  • 54. Un metodo alternativo: Problema • Build Apps Multiple Times – Multiple Teams – Multiple Code Bases – Different toolsets 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 54
  • 55. Un metodo alternativo: Un solo codice • Least common denominator • Browser fragmentation • Developing & designing for 1 platform, happen to get other platforms 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 55
  • 56. Xamarin: Il nostro obbiettivo • Native User Interface • Native Performance • Shared code across platforms • C# & .NET Framework • Full API Coverage 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 56
  • 57. PERCHE’ C# 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 57
  • 58. C# Is Awesome 14/09/2014  LINQ Support Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 58  Work with XML Easily XDocument  Event Handling & Delegates
  • 59. C# Is Awesome – JSON Made Easy • Json.NET offers simple conversions to and from JSON strings and .NET objects, with SerializeObject and DeserializeObject methods. 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 59
  • 60. Probing for properties on an AudioFile 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 60  C  C#
  • 61. See the Different – Android ItemClick 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 61  JAVA  C# with XAMARIN
  • 62. Async/Await • Write a beautiful & Maintainable Code 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 62
  • 63. Sviluppatori di codice nativo sono scarsi e costosi • Xamarin allows businesses to leverage existing teams, skills & tools • “Xamarin’s platform enabled our engineering team to become native mobile developers almost overnight, eliminating the expense of hiring scarce, expensive platform-specific developers.” David Fuller, Vice President of Software R&D 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 63
  • 64. PERCHE’ XAMARIN 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 64
  • 65. Riutilizzo del codice • Be on the devices your app end users expect • Speed time-to-market with up to 90% code sharing 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 65
  • 66. Espansione del nostro businness 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 66 Convert XNA developers to Windows 8 Entice iOS & Android developers Stop .NET developer attrition to Objective-C Convert Silverlight & ASP.NET developers to mobile
  • 67. Microsoft Support 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 67 Give-away Licenses for Events Free Evangelist licenses
  • 68. Risparmio • Xamarin allows businesses to leverage existing teams, skills & tools 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 68
  • 69. PRODOTTI 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 69
  • 70. I Prodotti 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 70 Xamarin.Mac Xamarin Studio Xamarin Test Cloud Component Store Xamarin.iOS Xamarin. Android Xamarin for Visual Studio .NET Mobility Scanner
  • 71. Visual Studio Integration • A single solution: – iOS – Android – Windows Phone – Windows Store • Leverage the entire Microsoft ecosystem: – ReSharper – Team Foundation Server – Your favorite code coverage and profiling tools 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 71
  • 72. Visual Studio Integration • Debug to: – Emulators – Devices • Integrated into toolbar – Status – Logs – List of devices • Just Click Start Debugging! 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 72
  • 73. Xamarin Studio • Optimized for cross-platform mobile development • Explore native APIs with code completion • World class Android and iOS designers • Powerful debugging on simulator or device 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 73
  • 74. Android Designer • Worlds best Android designer • Available in: – Xamarin Studio – Visual Studio • Create UI with drag & drop simplicity • Target multiple screen sizes, resolutions and Android versions • Layouts saved in standard Android XML files 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 74
  • 75. iOS Designer • World’s first iOS Designer available in Xamarin Studio (and soon Visual Studio) • Follows familiar Visual Studio designer idioms • Supports all UIKit elements • Edit custom and 3rd party components • Live preview of changes to properties 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 75
  • 76. Xamarin Component Store • Build Apps Faster – Add high quality pre-built app components directly from Visual Studio and Xamarin Studio – Beautiful cross-platform UI controls, cloud services and enterprise backend integrations are just a few clicks away 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 76
  • 77. .Net Mobility Scanner • How mobile is your .NET? • scan.xamarin.com • Scan .exe or .dll to determine compatibility • Generates full report: 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 77 Generates a full report of all method calls to determine compatibility with Xamarin.Android, Xamarin.iOS, Windows Phone, and Windows 8.
  • 78. Prebuilt Field Service App • App Features: – Location-based assignments / routing – Time recording – Camera capture of work – Signature capture • Cross-Platform Techniques – MVVM pattern – Xamarin.Mobile – Signature control from Component Store – SQLite for storage on all 3 platforms 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 78
  • 79. Xamarin Test Cloud • Test app at UI level • Takes minutes, not days to get started • Test on hundreds of real devices • Is resilient to visual changes in UI • Has a delightful user interface • App Explorer & Custom Tests 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 79
  • 80. Mono for Android 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 80 • Commercial Product from Novell $399 individual / ~$999 enterprise / ~$99 student • Windows and Mac OS X • Open preview DOWNLOAD AND TRY IT! • Project is getting really close to 1.0 No “Go Live” license yet Not done with optimizations Still changing the API
  • 81. Mono for Android: Architettura 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 81
  • 82. Licenze 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 82
  • 83. Xamarin University • Go Mobile Program – Live online training from Xamarin experts – Lectures and labs – One-on-one with expert Xamarin mobile developers 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 83  What You’ll Learn  iOS and Android Fundamentals  Mobile App Lifecycle  Native UI and Controls  Cross-platform Architecture
  • 84. Xamarin Developer Certifications 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 84
  • 85. DEMO 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 85
  • 86. Conclusioni 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 86
  • 87. Domande 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 87
  • 88. Alessandro Graps Dynamics CRM Specialist | Solutions Architect | Senior .Net Specialist 14/09/2014 Alessandro Graps - FocusDay - Mobile Dev: Sviluppo Mobile e Possibili Alternative .Net (Xamarin) 88 Em@il: alessandro.graps@gmail.com Blog: http://nothingnessit.wordpress.com Twitter:@algraps Skype: algraps
  • 89. Contatti OverNet Education  www.OverNetEducation.it  info@OverNetEducation.it  +39 02 365738 @OverNetE #Focusday