Upload
william-s-rodriguez
View
178
Download
1
Tags:
Embed Size (px)
Citation preview
Monkey Nights Devs
Co founder
fb.com/MonkeyNightsDevs
@MonkeyNightsDevs
William S. Rodriguez
Arquiteto de Soluções Moveis
williamsrz.com.br
@WilliamSRodz
dos brasileiros possuem dois
ou mais Smartphones.
Fontes: Insights Globais Sobre Smartphones da Nielsen, primeiro semestre de 2012; Insights Sobre Telefonia Móvel da Nielsen, 2012
48% dos colaboradores de uma
organização dependem de
tecnologia e dispositivos
móveis para realizar o seu
trabalho.
25%
Maior tempo para
lançamento de novas
funcionalidades e
dificuldades para
execução de teste
Sobrecarga na gestão Investimento em
hardware diferentes
Perfis diferentes de
profissionais e
linguagens
incompatíveis entre si
(JAVA, Objective C, C#)
“Mesmo se você tiver o mesmo esforço de desenvolvimento para todas as trêsplataformas ainda terá três meses de projeto”
+ =
API’s mais complexas
(difíceis de utilizar)
Aplicativos Android
custam de 2 a 3 vezes
mais para desenvolver
do que Aplicativos iOS
Fragmentação de
ambiente (8 versões do
OS e mais de 7mil
dispositivos diferentes)
Baixa produtividade
(emulador e ambientes)
Mais fácil... Mesmo?
"The biggest mistake we
made as a company was
betting too much on
HTML5 rather than native"
Image source huffingtonpost.in
Altas taxas de abandono e desperdício de investimento
Apresenta problemas de
compatibilidade e
performance (não
nativa)
Experiência do usuário
pobre e Interfaces fora
do padrão;
Difícil manutenção e
debug
Não utiliza toda a
capacidade de recursos
das plataformas de
forma homogenia e tem
acesso limitados a API’s
Aplicações Nativas
Interface de Usuário Nativa
High-fidelity API Access
Native Performance
App’s são construídas utilizando interface e ,
controles padrão permitindo interações fáceis e
familiares
App’s têm acesso a toda a gama de funcionalidade
exposta pela plataforma independente de
dispositivo
App’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.
Experiências nativas
acesso a GPU, Stylus,
GPS, Acelerômetro e
ficar aberto a
tendências e novas
tecnologias.
Produtividade e
reaproveitar o código
Suporte ALM e TFS,
evolução continua e
interação com
componentes e
bibliotecas de terceiros
Aproveitar intelecto
(programadores C#)
Xamarin Abordagem Tradicional
Shared C# codebase • 100% native API access • High performance
iOS C# UI Windows C# UIAndroid C# UI
Shared C# Mobile C# Server
Linux/Mono
CoreCLRAzure
Shared C# Client/Server
Xamarin.Forms
Shared C# codebase • 100% native API access • High performance
Shared C# Mobile
Shared C# Client/Server
C# Server
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#
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#
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#
Por que Xamarin?
Compartilhe o código que faz sentido, tire
vantagem da UX nativa de cada plataforma.
Debug de objetos Java
e Objective C
Interoperabilidade com
qualquer linguagem
Utilizar bibliotecas
Android e iOS de forma
nativa
Empacotar e
disponibilizar uma
aplicação nativa única
Nearables
Xamarin.Robotics
Wearables
http://bit.ly/xamarin-nearables
http://bit.ly/xamarin-robotics
http://bit.ly/xamarin-wearables
Xamarin.iOS executa compilação Ahead Of
Time (AOT) produzindo o binário (.app) ARM
para Apple App Store.
Xamarin.Android tira vantage da compilação
Just In Time (JIT) nos dispositivos Android.
var doc = Xdocument.Load(utl);
foreach(var item in doc.Root.Elements()) {var text = item.value;
}
from p in Table<Pessoa>()where p.ID == idselect p;
button.TouchUpInside += (s,o) => {message.Text = “Olá!”;
}
from item in itens.AsParallel()let result = VaiDemorarUmPouco(item)select result;
var client = new HttpClient();
Task<string> getStringTask = client.GetStringAsync(“http://williamsrz.com.br”);
E por ai vai...
Qualquer coisa que você conseguir fazer utilizando
Objective-C, Swift, ou Java! Pode ser feita com
C# e Xamarin no Visual Studio
Visual Studio como IDE
Desenho de telas
integrado (iOS, Android
e Windows Phone)
Suporte a PCL
DLL portáveis
Uso de uma única
linguagem de
desenvolvimento
Team Foundation Server
(TFS), NuGet e
ReSharper
› Código reutilizável;
› 1 Assembly = Multiplas Plataformas;
› Core, LINQ, HTTPClient
› NuGet
› Refactoring
File > New > Portable Class Library
Portable Class Libray
want most of our code here
Portable Class Libray
PCL é “amarrado” a um profile específico que define APIs específicas que podem ser
usadas em cada plataforma.
“Rdio’s mobile app is also the best looking and best
implemented of the three [music streaming apps reviewed]”
– Wired
Única solução Cross-
plataforma a suportar
Amazon Fire
Única solução Cross-
plataforma a suportar
Wearables e Nearables
100% de suporte
Android L
100% de suporte ao iOS
8 (no mesmo dia)
Azure Mobile Apps
Sincronização de dados
offline para criar
aplicativos dinâmicos
Conexões Híbridas e
VPN para conectar
aplicativos aos dados
locais
Notificações
personalizadas por push
Dimensionamento
automático interno de
acordo com as
necessidades dos
aplicativos
Backend para aplicações móveis
Conectar-se a recursos
locais como SAP, Oracle
e SQL Server e
SharePoint
Autenticação e
Autorização com
integrado ao Active
Directory
SSO utilizando conta
Microsoft ou de redes
sociais(Twitter, Facebook, Google)
Conectar-se a
aplicações SaaS
(Sales Force, Office 365)
Data & Synchronizing Data
Sincronização baseada
em nuvem para criar
aplicativos que
funcionam off-line
Sincronização entre
múltiplos dispositivos
Armazenamento de
dados em SQL,
Armazenamento de
Tabela e MongoDB
Capacidade Cross
platforma
Monkey Nights Devs
Co founder
fb.com/MonkeyNightsDevs
@MonkeyNightsDevs
William S. Rodriguez
Arquiteto de Soluções Moveis
williamsrz.com.br
@WilliamSRodz
ExtrasCamiseta Xamarin (de graça) https://xamarin.com/c-sharp-shirt
Azure Free Trial http://azure.microsoft.com/pt-br/pricing/free-trial/
Visual Studio Communityhttps://www.visualstudio.com/en-us/products/visual-studio-
community-vs.aspx
HBO Silicon Valley http://imdb.com/title/tt2575988/
The Sopranoshttp://imdb.com/title/tt0141842/
Cartons by fb.com/cartoonistforhire