XamarinDesenvolvendo aplicativos Android, iOS e Windows
Phone com C#
Rafael Moura @studyxnetDesenvolvedor Mobile e XSP LATAM Lead
Experiências
• Desenvolvedor Windows Phone na
PRODEMGE
• Desenvolvedor .NET na BHS – Pleno
• Desenvolvedor .NET na CAST - Estágio
• Monitor na Cotemig
Certificações
• Xamarin Certified Mobile Developer
Reconhecimentos
• Xamarin Student Partner LATAM Lead
• Xamarin Comunity Speaker
• Xamarin Developer Community Lead
Formação Acadêmica
• Bacharel Em Sistemas de Informação – Cotemig
• Xamarin University
• Técnico em informática - Cotemig
Histórico
• 2000 / Mono
• 2011 – Fundação da empresa Xamarin
• Miguel De Icaza – CTO
• Nat Friedman – CEO
Motivação
• O desenvolvimento Cross-plataforma possui alguns desafios:
• Variedade de dispositivos e plataformas
• Diferentes paradigmas de interação com o usuário
• Diferentes ambientes de desenvolvimento
• Diferentes linguagens de programação
• Mão de obra “multi-especializada”
Motivação
• As pessoas buscam aplicativos com ótima experiência
O que é o XamarinXamarin, Xamarin.Studio e Visual Studio
• Desenvolvimento Cross-plataform
• Utiliza o .Net Framework e todos os seus benefícios
• Desenvolvimento utilizando linguagens como C# ou F#
Abordagens de desenvolvimentoXamarin, Xamarin.Studio e Visual Studio
Traditional Xamarin Approach Xamarin.Forms
iOS C# UI Windows C# UIAndroid C# UI
Shared C# Backend
Shared UI Code
Shared C# Backend
Por onde começar?Xamarin, Xamarin.Studio e Visual Studio
• O Xamarin possui ferramentas de desenvolvimento robustas para permitir o
desenvolvimento de aplicações cross-plataform com qualidade.
• Criando uma conta de desenvolvedor
• Grátis por 30 dias ou
• Obtenção de uma licença de estudante
Visual Studio & Xamarin Studio
FerramentasXamarin, Xamarin.Studio e Visual Studio
• Visual Studio
• Somente Windows
• 2012+
• Possibilidade de criação das 3 soluções
• Integração com TFS e Azure
• Não há intellissense para XAML do Xamarin
• Modo Design um pouco diferente das IDE’s padrões
FerramentasXamarin, Xamarin Studio e Visual Studio
• Xamarin Studio
• MAC e Windows
• Não cria Projeto Windows Phone
• No Windows não suporta iOS
• Intellissense para XAML da plataforma
• Integração com serviços da Xamarin
• Modo Design parecido com o Android.Studio e XCode
Ambiente .Net
Suporte a todos os recursos mais recentes do framework:
• C# 6.0
• Linq
• Lambda Expression
• Generic
• Async/Await
Ambiente .Net
Sintaxe completamente adaptada com a experiência de desenvolvimento .Net
• Propriedades x Get/Set Methods
• Eventos x Listeners
NuGet
xamarin.com/student
✓Sempre Atualizado
Total Suporte:
• Google Glass
• Android Wear
• Amazon Fire TV
• Apple Watch
Já Suporta:
• iOS 5
• iOS 6
• iOS 7
• iOS 7.1
• iOS 8
• iOS 9
• Android 2.3+
EmuladorXamarin, Xamarin Studio e Visual Studio
• Xamarin Palyer
• Boot mais rápido
• Windows e Mac
• Drag and drop para instalar apps
• Aceleração gráfica
• ADB sync
• Multi touch
• Otimizado
FerramentasAzure, IBM, Oracle, AWS, Salesforce ….
Aprender
Testar
Monitorar (real-time)
Xamarin.Forms
Interface Nativa Acesso as Api’s Perfomace Nativa
MapKit UIKit iBeacon CoreGraphics CoreMotion
System.Data System.Windows System.Numerics System.Core System.ServiceModel
System.Net System System.IO System.Linq System.Xml
Suporte a 100% da API nativa
Como?
✓ 40+ Pages, layouts, e controls
(C# e/ou XAML)
✓ Two-way data binding
✓ Navigation
✓ Animation API
✓ Dependency Service
✓ Messaging Center
Shared C# Backend
Shared UI Code
Suporte a 100% da API nativa
Código!
<?xml version="1.0" encoding="UTF-8"?>
<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MyApp.MainPage">
<TabbedPage.Children>
<ContentPage Title="Profile" Icon="Profile.png">
<StackLayout Spacing="20" Padding="20"
VerticalOptions="Center">
<Entry Placeholder="Username"
Text="{Binding Username}"/>
<Entry Placeholder="Password"
Text="{Binding Password}"
IsPassword="true"/>
<Button Text="Login" TextColor="White"
BackgroundColor="#77D065"
Command="{Binding LoginCommand}"/>
</StackLayout>
</ContentPage>
<ContentPage Title="Settings" Icon="Settings.png">
<!-- Settings -->
</ContentPage>
</TabbedPage.Children>
Qual o melhor?
Xamarin.Forms : Xamarin.iOS / Xamarin.Android:
• Apps voltados para entrada de dados
• Protótipos e POC
• Apps que não tem muitos códigos de
plataforma específica
• Apps onde reutilização é mais importante
que UI customizadas
xamarin.com/forms xamarin.com/platform
• Interação especializada por plataforma
• Designs mais refinados
• Apps que utilizam muitas APIs específicas por
plataforma
• Apps onde UI customizada é mais importante
que reutilização.
O que posso usar?
Layouts
Pages
Stack Absolute Relative Grid ContentView ScrollView Frame
Content MasterDetail Navigation Tabbed Carousel
Controles (Views e Cells)
ActivityIndicator BoxView Button DatePicker
Entry Image Label ListView
OpenGLView Picker ProgressBar SearchBar
Stepper TableView TimePicker WebView
ImageCell SwitchCell TextCell ViewCell
Mercado
Códigos específicos
UI+APIs UI + APIsUI + APIs
Battery
GPS
Lights
Notifications
Settings
Text To Speech
Battery
GPS
Lights
Notifications
Settings
Text To Speech
Battery
GPS
Lights
Notifications
Settings
Text To Speech
TextToSpeech
Speak(“Olá”);
AVSpeechSynthesizer SpeechSynthesizer
Vamos falar de qualidade?
5
20
20
35
6
S.O.
Dispositivos
Línguas
Regiões
Tamanhos
de tela
9
24K+
39
57
27
1,294
6
S.O.
Dispositivos
Línguas
Regiões
Tamanhos de Tela
Marcas
Configurações de Tela
Tudo com Xamarin.Forms!
Centenas de APIs para iOS e Android
APIs na WEB
Integrações no Backend
Bibliotecas de terceiros - Third-Party
Memória, CPU e rede
RecursosXamarin, Xamarin.Studio e Visual Studio
• http://www.xamarin.com
• http://stx.blog.br
• http://developer.xamarin.com
• http://forumns.xamarin.com
• http://developer.xamarin.com/guides
• MVA- Cross-Plataform Development with Xamarin & Visual Studio
http://bit.ly/1KC3OLO
• MVA - Introdução ao Xamarin
http://bit.ly/1VbCPBW
?
XAMARIN.FormsDesenvolvendo aplicativos Android, iOS e Windows
Phone com C# e Xamarin
OBRIGADO!
Rafael Moura
contato@rm.eti.br
www.facebook.com/stxnet
stx.blog.br
www.meetup.com/xamarinmg

Xamarin - Dev Day 2015

  • 1.
  • 2.
    Rafael Moura @studyxnetDesenvolvedorMobile e XSP LATAM Lead Experiências • Desenvolvedor Windows Phone na PRODEMGE • Desenvolvedor .NET na BHS – Pleno • Desenvolvedor .NET na CAST - Estágio • Monitor na Cotemig Certificações • Xamarin Certified Mobile Developer Reconhecimentos • Xamarin Student Partner LATAM Lead • Xamarin Comunity Speaker • Xamarin Developer Community Lead Formação Acadêmica • Bacharel Em Sistemas de Informação – Cotemig • Xamarin University • Técnico em informática - Cotemig
  • 3.
    Histórico • 2000 /Mono • 2011 – Fundação da empresa Xamarin • Miguel De Icaza – CTO • Nat Friedman – CEO
  • 4.
    Motivação • O desenvolvimentoCross-plataforma possui alguns desafios: • Variedade de dispositivos e plataformas • Diferentes paradigmas de interação com o usuário • Diferentes ambientes de desenvolvimento • Diferentes linguagens de programação • Mão de obra “multi-especializada”
  • 5.
    Motivação • As pessoasbuscam aplicativos com ótima experiência
  • 6.
    O que éo XamarinXamarin, Xamarin.Studio e Visual Studio • Desenvolvimento Cross-plataform • Utiliza o .Net Framework e todos os seus benefícios • Desenvolvimento utilizando linguagens como C# ou F#
  • 7.
    Abordagens de desenvolvimentoXamarin,Xamarin.Studio e Visual Studio Traditional Xamarin Approach Xamarin.Forms iOS C# UI Windows C# UIAndroid C# UI Shared C# Backend Shared UI Code Shared C# Backend
  • 8.
    Por onde começar?Xamarin,Xamarin.Studio e Visual Studio • O Xamarin possui ferramentas de desenvolvimento robustas para permitir o desenvolvimento de aplicações cross-plataform com qualidade. • Criando uma conta de desenvolvedor • Grátis por 30 dias ou • Obtenção de uma licença de estudante
  • 9.
    Visual Studio &Xamarin Studio
  • 10.
    FerramentasXamarin, Xamarin.Studio eVisual Studio • Visual Studio • Somente Windows • 2012+ • Possibilidade de criação das 3 soluções • Integração com TFS e Azure • Não há intellissense para XAML do Xamarin • Modo Design um pouco diferente das IDE’s padrões
  • 11.
    FerramentasXamarin, Xamarin Studioe Visual Studio • Xamarin Studio • MAC e Windows • Não cria Projeto Windows Phone • No Windows não suporta iOS • Intellissense para XAML da plataforma • Integração com serviços da Xamarin • Modo Design parecido com o Android.Studio e XCode
  • 12.
    Ambiente .Net Suporte atodos os recursos mais recentes do framework: • C# 6.0 • Linq • Lambda Expression • Generic • Async/Await
  • 13.
    Ambiente .Net Sintaxe completamenteadaptada com a experiência de desenvolvimento .Net • Propriedades x Get/Set Methods • Eventos x Listeners
  • 14.
  • 15.
  • 16.
    ✓Sempre Atualizado Total Suporte: •Google Glass • Android Wear • Amazon Fire TV • Apple Watch Já Suporta: • iOS 5 • iOS 6 • iOS 7 • iOS 7.1 • iOS 8 • iOS 9 • Android 2.3+
  • 17.
    EmuladorXamarin, Xamarin Studioe Visual Studio • Xamarin Palyer • Boot mais rápido • Windows e Mac • Drag and drop para instalar apps • Aceleração gráfica • ADB sync • Multi touch • Otimizado
  • 18.
    FerramentasAzure, IBM, Oracle,AWS, Salesforce …. Aprender Testar Monitorar (real-time)
  • 19.
  • 20.
    Interface Nativa Acessoas Api’s Perfomace Nativa
  • 21.
    MapKit UIKit iBeaconCoreGraphics CoreMotion System.Data System.Windows System.Numerics System.Core System.ServiceModel System.Net System System.IO System.Linq System.Xml Suporte a 100% da API nativa
  • 22.
    Como? ✓ 40+ Pages,layouts, e controls (C# e/ou XAML) ✓ Two-way data binding ✓ Navigation ✓ Animation API ✓ Dependency Service ✓ Messaging Center Shared C# Backend Shared UI Code
  • 23.
    Suporte a 100%da API nativa
  • 24.
    Código! <?xml version="1.0" encoding="UTF-8"?> <TabbedPagexmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="MyApp.MainPage"> <TabbedPage.Children> <ContentPage Title="Profile" Icon="Profile.png"> <StackLayout Spacing="20" Padding="20" VerticalOptions="Center"> <Entry Placeholder="Username" Text="{Binding Username}"/> <Entry Placeholder="Password" Text="{Binding Password}" IsPassword="true"/> <Button Text="Login" TextColor="White" BackgroundColor="#77D065" Command="{Binding LoginCommand}"/> </StackLayout> </ContentPage> <ContentPage Title="Settings" Icon="Settings.png"> <!-- Settings --> </ContentPage> </TabbedPage.Children>
  • 25.
    Qual o melhor? Xamarin.Forms: Xamarin.iOS / Xamarin.Android: • Apps voltados para entrada de dados • Protótipos e POC • Apps que não tem muitos códigos de plataforma específica • Apps onde reutilização é mais importante que UI customizadas xamarin.com/forms xamarin.com/platform • Interação especializada por plataforma • Designs mais refinados • Apps que utilizam muitas APIs específicas por plataforma • Apps onde UI customizada é mais importante que reutilização.
  • 26.
    O que possousar? Layouts Pages Stack Absolute Relative Grid ContentView ScrollView Frame Content MasterDetail Navigation Tabbed Carousel
  • 27.
    Controles (Views eCells) ActivityIndicator BoxView Button DatePicker Entry Image Label ListView OpenGLView Picker ProgressBar SearchBar Stepper TableView TimePicker WebView ImageCell SwitchCell TextCell ViewCell
  • 28.
  • 29.
    Códigos específicos UI+APIs UI+ APIsUI + APIs Battery GPS Lights Notifications Settings Text To Speech Battery GPS Lights Notifications Settings Text To Speech Battery GPS Lights Notifications Settings Text To Speech
  • 30.
  • 31.
    Vamos falar dequalidade?
  • 32.
  • 34.
    Tudo com Xamarin.Forms! Centenasde APIs para iOS e Android APIs na WEB Integrações no Backend Bibliotecas de terceiros - Third-Party Memória, CPU e rede
  • 35.
    RecursosXamarin, Xamarin.Studio eVisual Studio • http://www.xamarin.com • http://stx.blog.br • http://developer.xamarin.com • http://forumns.xamarin.com • http://developer.xamarin.com/guides • MVA- Cross-Plataform Development with Xamarin & Visual Studio http://bit.ly/1KC3OLO • MVA - Introdução ao Xamarin http://bit.ly/1VbCPBW
  • 36.
    ? XAMARIN.FormsDesenvolvendo aplicativos Android,iOS e Windows Phone com C# e Xamarin OBRIGADO! Rafael Moura contato@rm.eti.br www.facebook.com/stxnet stx.blog.br www.meetup.com/xamarinmg