Escreva uma vez e execute em qualquer lugar.
Interfaces fora do padrão
Performance não nativa
Acesso a API’s limitados
"The biggest mistake we made as a company was betting too
much on HTML5 rather than native"
Image source huffingtonpost.in
"Webviews are the duct tape of the mobile world"
https://medium.com/bpxl-craft/apple-tv-a-world-without-webkit-5c428a64a6dd
Native AppsInterface de Usuário NativaApp’s são construídas utilizando interface e , controles padrão permitindo interações fáceis e familiares
High-fidelity API AccessApp’s têm acesso a toda a gama de funcionalidade exposta pela plataforma independente de dispositivo
Native PerformanceApp’s tiram vantagem de aceleração de hardware e recursos específicos da plataforma, e são compilados como binários nativos, não interpretadas em tempo de execução.
• Open source implementation of the CLR
• Execute .Net code across Linux, MacOS X, Solaris, BSD, Wii, PS3…
• Started in 2001 as Ximian, purchased by Novell in 2003, released in 2004;
• Mono “died" in April 2011 when Novel was acquired by Attachmate Group;
Mono
• 2009, Mono.Touch created (released in 2010);
• 2010: Mono.Droid created (release in 2011);
• May 2011 Xamarin was founded;
Mono
Xamarin Abordagem Tradicional
Shared C# Client/Server
Shared C# codebase • 100% native API access • High performance
Shared C# Mobile
iOS C# UI
Windows C# UIAndroid C# UI
C# Server
Linux/Mono CoreCLRAzure
Xamarin Forms
Shared C# Client/Server
Shared C# codebase • 100% native API access • High performance
Shared C# Mobile C# Server
Linux/Mono CoreCLRAzure
Xamarin é 100% Código Nativo
Debug de objetos Java e Objective C
Interoperabilidade com linguagem nativa
Utilizar bibliotecas Android e iOS de forma
nativa
Empacotar e disponibilizar uma
aplicação nativa única
Windows APIs
Microsoft.Phone Microsoft.Networking Windows.Storage Windows.Foundation Microsoft.Devices
System.Data System.Windows System.Numerics System.Core System.ServiceModel
System.Net System System.IO System.Linq System.Xml
C#
iOS – 100% API Coverage
MapKit UIKit iBeacon CoreGraphics CoreMotion
System.Data System.Windows System.Numerics System.Core System.ServiceModel
System.Net System System.IO System.Linq System.Xml
C#
Android – 100% API Coverage
Text-to-speech ActionBar Printing Framework Renderscript NFC
System.Data System.Windows System.Numerics System.Core System.ServiceModel
System.Net System System.IO System.Linq System.Xml
C#
Native Android packages
Xamarin.Android tira vantage da compilação Just In Time (JIT) nos dispositivos Android.
Compatibilidade e Atualizações
Única solução Cross-plataforma a suportar
Amazon Fire
Única solução Cross-plataforma a suportar Wearables e Nearables
100% de suporte Android M
100% de suporte ao iOS 8 (no mesmo dia)
Compartilhamento de Código
20%
C#
Client / Server
86%
C#
Android
75%
C#
iOS
85%
C#
Windows RT
http://icircuitapp.com/
Xamarin Android Designer
• Integração completa com Visual Studio;
• Drag and drop de componentes;
• Muilti edit.
Xamarin Android Player
Goole Nexus 4 Xamarin Android Player Google Emulator
65
1853
1565
GeekBench 3 Mult-core
Documentação
https://developer.android.com/guide/index.html
https://developer.xamarin.com/guides/android/
C#
• Suporte a Linq e Lambdas;
• Eventos e delegates;
• Paralelismo;
• Programação Assíncrona;
• Generics;
• Métodos anônimos;
var doc = Xdocument.Load(utl);
foreach(var item in doc.Root.Elements()) { var text = item.value; }
from p in Table<Pessoa>() where p.ID == id select p;
button.TouchUpInside += (s,o) => { message.Text = “Olá!”; }
from item in itens.AsParallel() let result = VaiDemorarUmPouco(item) select result;
var client = new HttpClient(); var getStringTask = await client.GetStringAsync(“http://28bytes.com.br”);
Para saber mais
• https://xamarin.com
• http://developer.xamarin.com/guides/android/
• https://www.facebook.com/MonkeyNightsDevs
• http://monobrasil.com