Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Por que você deve escolher o Xamarin para desenvolver o seu próximo app?

Por que você deve escolher o Xamarin para desenvolver o seu próximo app?

Ione Souza Junior

July 20, 2019
Tweet

More Decks by Ione Souza Junior

Other Decks in Technology

Transcript

  1. Por que você deve escolher
    o Xamarin para desenvolver
    o seu próximo app?

    View full-size slide

  2. Whois
    4 Ione Souza Junior
    4 Mobile Developer @
    4 ❤ Xamarin
    !
    4 Um bom Xamaritano
    "
    4 @ionixjunior
    4 [email protected]

    View full-size slide

  3. O que vamos ver...

    View full-size slide

  4. O que vamos ver...

    View full-size slide

  5. O que vamos ver...
    4 Entender como funciona o desenvolvimento mobile

    View full-size slide

  6. O que vamos ver...
    4 Entender como funciona o desenvolvimento mobile
    4 Entender o que é o Xamarin e como trabalhamos com
    ele

    View full-size slide

  7. O que vamos ver...
    4 Entender como funciona o desenvolvimento mobile
    4 Entender o que é o Xamarin e como trabalhamos com
    ele
    4 Sanar algumas dúvidas sobre a plataforma

    View full-size slide

  8. O que vamos ver...
    4 Entender como funciona o desenvolvimento mobile
    4 Entender o que é o Xamarin e como trabalhamos com
    ele
    4 Sanar algumas dúvidas sobre a plataforma
    4 Ver exemplos práticos

    View full-size slide

  9. O que vamos ver...
    4 Entender como funciona o desenvolvimento mobile
    4 Entender o que é o Xamarin e como trabalhamos com
    ele
    4 Sanar algumas dúvidas sobre a plataforma
    4 Ver exemplos práticos
    4 Ver alguns comparativos com as principais tecnologias
    multiplataformas

    View full-size slide


  10. Não se preocupe!
    Não vou ser aquele cara chato que só vai falar bem do Xamarin

    View full-size slide

  11. Antes de falar sobre
    Xamarin, vamos
    contextualizar...

    View full-size slide

  12. Como o desenvolvimento
    mobile se iniciou...

    View full-size slide

  13. Como o desenvolvimento
    mobile foi facilitado...

    View full-size slide

  14. E o Xamarin?
    Existem 2 abordagens de desenvolvimento com Xamarin: Xamarin Clássico e Xamarin.Forms

    View full-size slide

  15. Xamarin Clássico

    View full-size slide

  16. Xamarin.Forms

    View full-size slide

  17. Principais tecnologias
    multiplataformas

    View full-size slide

  18. Principais tecnologias multiplataformas
    4 Xamarin
    4 React Native
    4 Flutter
    4 Ionic
    4 PWA

    View full-size slide

  19. Mas essa evolução não
    aconteceu de forma linear...

    View full-size slide

  20. Linha do tempo

    View full-size slide

  21. Linha do tempo
    ‑ 2002: Release inicial do .NET Framework

    View full-size slide

  22. Linha do tempo
    ‑ 2002: Release inicial do .NET Framework
    ‑ 2004: Release inicial do Mono

    View full-size slide

  23. Linha do tempo
    ‑ 2002: Release inicial do .NET Framework
    ‑ 2004: Release inicial do Mono
    ‑ 2008: Surgimento das stores

    View full-size slide

  24. Linha do tempo
    ‑ 2002: Release inicial do .NET Framework
    ‑ 2004: Release inicial do Mono
    ‑ 2008: Surgimento das stores
    ‑ 2009: Release inicial do Cordova

    View full-size slide

  25. Linha do tempo
    ‑ 2002: Release inicial do .NET Framework
    ‑ 2004: Release inicial do Mono
    ‑ 2008: Surgimento das stores
    ‑ 2009: Release inicial do Cordova
    ‑ 2011: Xamarin foi fundado

    View full-size slide

  26. Linha do tempo
    ‑ 2002: Release inicial do .NET Framework
    ‑ 2004: Release inicial do Mono
    ‑ 2008: Surgimento das stores
    ‑ 2009: Release inicial do Cordova
    ‑ 2011: Xamarin foi fundado
    ‑ 2013: Release inicial do Ionic

    View full-size slide

  27. Linha do tempo
    ‑ 2002: Release inicial do .NET Framework
    ‑ 2004: Release inicial do Mono
    ‑ 2008: Surgimento das stores
    ‑ 2009: Release inicial do Cordova
    ‑ 2011: Xamarin foi fundado
    ‑ 2013: Release inicial do Ionic
    ‑ 2015: Release inicial do React Native

    View full-size slide

  28. Linha do tempo
    ‑ 2002: Release inicial do .NET Framework
    ‑ 2004: Release inicial do Mono
    ‑ 2008: Surgimento das stores
    ‑ 2009: Release inicial do Cordova
    ‑ 2011: Xamarin foi fundado
    ‑ 2013: Release inicial do Ionic
    ‑ 2015: Release inicial do React Native
    ‑ 2015: Flutter foi apresentado pelo Google

    View full-size slide

  29. Linha do tempo
    ‑ 2002: Release inicial do .NET Framework
    ‑ 2004: Release inicial do Mono
    ‑ 2008: Surgimento das stores
    ‑ 2009: Release inicial do Cordova
    ‑ 2011: Xamarin foi fundado
    ‑ 2013: Release inicial do Ionic
    ‑ 2015: Release inicial do React Native
    ‑ 2015: Flutter foi apresentado pelo Google
    ‑ 2015: Surgimento do termo PWA

    View full-size slide

  30. Linha do tempo
    ‑ 2002: Release inicial do .NET Framework
    ‑ 2004: Release inicial do Mono
    ‑ 2008: Surgimento das stores
    ‑ 2009: Release inicial do Cordova
    ‑ 2011: Xamarin foi fundado
    ‑ 2013: Release inicial do Ionic
    ‑ 2015: Release inicial do React Native
    ‑ 2015: Flutter foi apresentado pelo Google
    ‑ 2015: Surgimento do termo PWA
    ‑ 2016: Microsoft comprou o Xamarin

    View full-size slide

  31. Linha do tempo
    ‑ 2002: Release inicial do .NET Framework
    ‑ 2004: Release inicial do Mono
    ‑ 2008: Surgimento das stores
    ‑ 2009: Release inicial do Cordova
    ‑ 2011: Xamarin foi fundado
    ‑ 2013: Release inicial do Ionic
    ‑ 2015: Release inicial do React Native
    ‑ 2015: Flutter foi apresentado pelo Google
    ‑ 2015: Surgimento do termo PWA
    ‑ 2016: Microsoft comprou o Xamarin
    ‑ >= 2019: Qual será a nova plataforma?
    !

    View full-size slide

  32. Tá, mas... por que Xamarin?

    View full-size slide

  33. Tá, mas... por que Xamarin?

    View full-size slide

  34. Tá, mas... por que Xamarin?
    4 Interfaces feitas com XML (Android) ou Storyboard (iOS)
    podem ser utilizadas

    View full-size slide

  35. Tá, mas... por que Xamarin?
    4 Interfaces feitas com XML (Android) ou Storyboard (iOS)
    podem ser utilizadas
    4 Códigos Java / Kotlin e Objective-C / Swift podem ser
    facilmente adaptados para C#

    View full-size slide

  36. Tá, mas... por que Xamarin?
    4 Interfaces feitas com XML (Android) ou Storyboard (iOS)
    podem ser utilizadas
    4 Códigos Java / Kotlin e Objective-C / Swift podem ser
    facilmente adaptados para C#
    4 Paradigma de desenvolvimento praticamente igual ao nativo,
    mas com muitas vantagens

    View full-size slide

  37. Tá, mas... por que Xamarin?
    4 Interfaces feitas com XML (Android) ou Storyboard (iOS)
    podem ser utilizadas
    4 Códigos Java / Kotlin e Objective-C / Swift podem ser
    facilmente adaptados para C#
    4 Paradigma de desenvolvimento praticamente igual ao nativo,
    mas com muitas vantagens
    4 Desenvolvedores .NET estão praticamente em casa

    View full-size slide

  38. Tá, mas... por que Xamarin?
    4 Interfaces feitas com XML (Android) ou Storyboard (iOS)
    podem ser utilizadas
    4 Códigos Java / Kotlin e Objective-C / Swift podem ser
    facilmente adaptados para C#
    4 Paradigma de desenvolvimento praticamente igual ao nativo,
    mas com muitas vantagens
    4 Desenvolvedores .NET estão praticamente em casa
    4 Utiliza uma linguagem madura estabelecida no mercado

    View full-size slide

  39. Perguntas frequentes...

    View full-size slide

  40. 1. Xamarin é nativo?

    View full-size slide

  41. 1. Xamarin é nativo?

    View full-size slide

  42. 1. Xamarin é nativo?
    4 Sim! Inclusive, quem já desenvolve / conhece nativo
    pode facilmente iniciar com Xamarin

    View full-size slide

  43. 1. Xamarin é nativo?
    4 Sim! Inclusive, quem já desenvolve / conhece nativo
    pode facilmente iniciar com Xamarin
    4 Não tem "implementação do Xamarin" para as APIs,
    existem bindings nativos

    View full-size slide

  44. Show me the code!
    Vamos ver a abordagem com Xamarin Clássico

    View full-size slide

  45. 2. Xamarin é produtivo?

    View full-size slide

  46. 2. Xamarin é produtivo?

    View full-size slide

  47. 2. Xamarin é produtivo?
    4 O principal benefício é o reaproveitamento de código de regras de
    negócios com C#
    !

    View full-size slide

  48. 2. Xamarin é produtivo?
    4 O principal benefício é o reaproveitamento de código de regras de
    negócios com C#
    !
    4 Design pode ser feito com as ferramentas oficiais de cada
    plataforma (Xamarin Clássico)

    View full-size slide

  49. 2. Xamarin é produtivo?
    4 O principal benefício é o reaproveitamento de código de regras de
    negócios com C#
    !
    4 Design pode ser feito com as ferramentas oficiais de cada
    plataforma (Xamarin Clássico)
    4 Possui um framework de abstração de UI (Xamarin.Forms)

    View full-size slide

  50. 2. Xamarin é produtivo?
    4 O principal benefício é o reaproveitamento de código de regras de
    negócios com C#
    !
    4 Design pode ser feito com as ferramentas oficiais de cada
    plataforma (Xamarin Clássico)
    4 Possui um framework de abstração de UI (Xamarin.Forms)
    4 Ainda não possui um hot reload nativo mas está a caminho
    (Xamarin.Forms)

    View full-size slide

  51. 2. Xamarin é produtivo?
    4 O principal benefício é o reaproveitamento de código de regras de
    negócios com C#
    !
    4 Design pode ser feito com as ferramentas oficiais de cada
    plataforma (Xamarin Clássico)
    4 Possui um framework de abstração de UI (Xamarin.Forms)
    4 Ainda não possui um hot reload nativo mas está a caminho
    (Xamarin.Forms)
    4 Times com pessoas desenvolvedoras .NET podem facilmente
    trabalhar com Xamarin

    View full-size slide

  52. Show me the code!
    Vamos ver a abordagem com Xamarin.Forms

    View full-size slide

  53. 3. Fiz meu primeiro Hello
    World com Xamarin, já sou
    dev mobile?
    A resposta também vale para as outras tecnologias...

    View full-size slide

  54. 4. Xamarin é grátis?
    !

    View full-size slide

  55. Vamos ver alguns
    comparativos entre as
    plataformas

    View full-size slide

  56. Comparativo de características
    Xamarin Clássico Xamarin Forms React Native Flutter Ionic PWA
    Apps nativos ✅ ✅ ✅ ✅ ❌ ❌
    Controles nativos ✅ ✅ ✅ ❌ # ❌ ❌
    Multithread ✅ ✅ ⚠ ✅ ❌ ✅
    Polivalência ✅ ✅ ✅ ⚠ ✅ ✅
    UI ✅ ✅ ✅ ✅ ✅ ⚠
    UX ✅ ✅ ✅ ✅ ⚠ ⚠
    Open source ✅ ✅ ✅ ✅ ✅ -
    Free ⚠ ⚠ ✅ ✅ ✅ ✅
    Fácil para começar ❌ ❌ ⚠ ⚠ ✅ ✅
    Hot Reloader ❌ ⚠ ✅ ✅ ✅ ✅

    View full-size slide

  57. Comparativo de suporte as plataformas
    Xamarin
    Clássico
    Xamarin
    Forms
    React
    Native
    Flutter Ionic PWA
    Android ✅ ✅ ✅ ✅ ✅ ✅
    iOS ✅ ✅ ✅ ✅ ✅ ✅
    Windows ✅ ✅ ❌ ❌ ✅ ✅
    macOS ✅ ✅ ❌ ❌ ✅ ✅
    Linux ✅ ✅ ❌ ❌ ✅ ✅
    Tizen ✅ ✅ ❌ ❌ ❌ ?

    View full-size slide

  58. Comparativo 'onde consigo desenvolver'
    Xamarin
    Clássico
    Xamarin
    Forms
    React
    Native
    Flutter Ionic PWA
    macOS ✅ ✅ ✅ ✅ ✅ ✅
    Windows ✅ ✅ ✅ ✅ ✅ ✅
    Linux ❌ ❌ ✅ ✅ ✅ ✅

    View full-size slide

  59. Para refletir...

    View full-size slide

  60. Para refletir...

    View full-size slide

  61. Para refletir...
    4 As tecnologias citadas tem seus prós e contras; Analise sua
    necessidade para poder escolher a solução que mais se
    encaixa (custo, qualidade, experiência do usuário, tempo...)

    View full-size slide

  62. Para refletir...
    4 As tecnologias citadas tem seus prós e contras; Analise sua
    necessidade para poder escolher a solução que mais se
    encaixa (custo, qualidade, experiência do usuário, tempo...)
    4 Não tem bala de prata! Nem sempre Xamarin vai ser o
    melhor cenário, assim como os demais...

    View full-size slide

  63. Para refletir...
    4 As tecnologias citadas tem seus prós e contras; Analise sua
    necessidade para poder escolher a solução que mais se
    encaixa (custo, qualidade, experiência do usuário, tempo...)
    4 Não tem bala de prata! Nem sempre Xamarin vai ser o
    melhor cenário, assim como os demais...
    4 Considere o background de desenvolvimento do seu time

    View full-size slide

  64. Para refletir...
    4 As tecnologias citadas tem seus prós e contras; Analise sua
    necessidade para poder escolher a solução que mais se
    encaixa (custo, qualidade, experiência do usuário, tempo...)
    4 Não tem bala de prata! Nem sempre Xamarin vai ser o
    melhor cenário, assim como os demais...
    4 Considere o background de desenvolvimento do seu time
    4 Cuidado com as hypes
    !
    (é fácil gastar o dinheiro que não é
    seu)

    View full-size slide

  65. É hora das perguntas!

    View full-size slide

  66. Estes e outros exemplos
    estão no Github
    https://github.com/ionixjunior/MobileTests

    View full-size slide

  67. Ione Souza Junior
    Mobile Developer @ Mercos
    @ionixjunior
    [email protected]

    View full-size slide