10 motivos para utilizar o Xamarin

10 motivos para começar a utilizar o Xamarin

Desenvolver para dispositivos móveis é um grande desafio no nosso cotidiano já que temos inúmeros dispositivos, sistemas operacionais e suas versões. Com isso temos linguagens e ambientes de desenvolvimento diferentes (muito diferentes mesmo).

Apostar no desenvolvimento Cross-Mobile ou Híbrido tem sido uma tática promissora e que tem ajudado inúmeras empresas e pessoas a tirar suas ideias do papel e ingressar no mundo dos aplicativos móveis. Para dar início a essa estratégia, precisamos escolher uma abordagem e uma ferramenta, e então começa os problemas. Hoje temos Xamarin, Phonegap, Ionic, RubyMotion, Appcelerator e outras. E agora o que fazer?A solução é usar uma plataforma que alie a portabilidade do código-fonte e o todo o desempenho proporcionado por uma aplicação nativa. Isso é possível com a plataforma de desenvolvimento Xamarin.

 

O problema da plataforma mobile

Desenvolver um aplicativo que alcance todo o público é o maior problema enfrentando hoje, pois precisamos de um app que, no mínimo, funcione no iOS e Android (as vezes também no Windows Phone dependendo do seu mercado). Para isso precisamos desenvolver em Java, ObjectiveC/Swift e C# e então o problema se agrava porque:

  1. É necessário um desenvolvedor que saiba tudo.
  2. Uma equipe de desenvolvedores especializados.
  3. O mesmo código terá que ser desenvolvido em várias linguagens
  4. Passaremos por bugs entre as aplicações já que as lógicas do sistema podem estar implementadas de forma diferentes

Como podemos escapar desses problemas?

A solução: Desenvolvimento multi-plataforma

Desenvolver um aplicativo multi-plataformas traz o benefício de ter um único App funcionando em vários Sistemas Operacionais e Smartphones. Para isso precisamos escolher entre as várias plataformas de desenvolvimento, algumas pagas e gratuitas, e isso gera muitas dúvidas. Ao escolher uma plataforma que utilize HTML, CSS e Javascript para desenvolvimento da aplicação, perco os componentes nativos do smartphone e ganho lentidão. Se escolho um conversor de código, como o Java2Objc, perco performance e ganho um código de máquina confuso e com processos desnecessários. Mas e quando a plataforma não se encaixa em nenhum desses perfis? Esse é o caso do Xamarin! Uma plataforma onde você desenvolve com apenas uma linguagem, mas a comunicação com o sistema operacional não é feita a partir de conversões de código, mas sim de forma nativa já que os métodos implementados na plataforma se comunicam diretamente com o sistema do smartphone.

Por que utilizar o Xamarin

Listamos abaixo 10 motivos para que você decida utilizar o Xamarin o mais rápido possível:

  1. Programar apenas uma única vez: Mesmo que você desenvolva o seu aplicativo com as Interfaces nativas (Activity, Storyboard e Xaml) você tem a possibilidade de compartilhar códigos de acesso ao servidor ou banco de dados, lógica e validações já que está sendo utilizada apenas uma linguagem e as Portable Class Library ou os Shared Projects.
  2. MVVM: Utilizando o Xamarin.Forms ou o MVVMCross você pode aproveitar todo o potencial do partner MVVM para desenvolver seu aplicativo, utilizando os padrões e facilitadores do MVVM como Bindings, Commands e passar a ter maior desempenho e uma divisão de camadas mais correta e com baixo acoplamento e alta coesão.
  3. API’s nativas: Utilizando essa plataforma, independentemente de você utilizar o Forms ou não, você tem acesso a 100% das API’s da SDK do Android, iOS, Windows Phone e Universal Windows Plataforms. Isso significa que você pode acessar Camera, NFC, GPS e qualquer outro componente do dispositivo de forma nativa.
  4. Visual Studio: Com a licença Business você pode utilizar o Visual Studio para desenvolver sua aplicação Android e iOS no Windows, e ninguém pode negar que o Visual Studio é a mais completa IDE do mercado contando com integrações de serviços da Microsoft como Azure e TFS.
  5. Wearable: Isso mesmo, além de desenvolver para o Smartphone você ainda consegue criar um aplicativo integrando com o widget wearable do S.O em foco. Com isso você terá acesso a informações como temperatura, BPM do coração do usuário, localização, comandos de voz e tantas outras funcionalidades que um dispositivo desse comporta.
    Wearable
  6. Facilidades: O Xamarin traz inúmeros serviços para facilitar o desenvolvimento, teste e portabilidade da sua aplicação, desde a tomada de decisão sobre o que utilizar, até os testes e distribuição da aplicação.
  7. Fácil de aprender: A melhor IDE do mercado, duas linguagens a sua escolha, C# e F#muito material e suporte da comunidade Microsoft além da Xamarin ter uma comunidade enorme, material oficial e a Xamarin University.
  8. Enterprise: Suporte instantâneo para empresa além de conteúdo exclusivo e de qualidade disponibilizam serviços preparados para o ambiente empresarial, como hotfixes, auxilio ao código e kickoff técnico para a equipe.
  9. A Gartner aprova: Gartner, uma das empresas mais renomadas quando se trata de consultoria e auxilio a tomada de decisões, tem colocado a Xamarin no Visionary Quadrant e tem citado vários outros pontos positivos para a utilização da plataforma.
  10. Xamarin.Forms: Uma biblioteca com inúmeros componentes compartilhados para a criação de um único código de Interface (UI) que é compartilhado entre as plataformas de forma nativa e fluída. Na sua versão 1.5 temos bastante suporte para desenvolvimento de aplicações de forma rápida e com muito reuso de código.

E então…

Ao utilizar o Xamarin nós ultrapassamos vários problemas do desenvolvimento multi-plataforma e assim conseguimos desenvolver um app de forma rápida e nativa. Se você busca ter um desenvolvimento mais rápido, com possibilidade de compartilhamento e reaproveitamento de código, uma equipe que trabalhe em uma única solução e projeto, necessidade de acessar componentes do dispositivo e mantendo a coerência com a experiência do usuário, Xamarin é a sua escolha. Desenvolvendo cross mobile com HTML e com tecnologias WEB, você terá várias desvantagens além de fazer com que o usuário possa desistir de utilizar sua aplicação, por não fluir como uma aplicação nativa e a experiência visual ser, muitas vezes, extremamente diferente do esperado pelo usuário.

De todas as vantagens que falamos sobre o resultado final do aplicativo mobile, você deve avaliar também qual linguagem você domina mais, qual a curva de aprendizado que você terá e se é necessário um aplicativo que possua a experiência nativa para usuário ou não. Caso trabalhe em equipe, deve ser avaliado também se existem pessoas especializadas na linguagem que será utilizada.

Mas e você caro leitor, já utiliza o Xamarin? Quais motivos te fizeram escolher a plataforma? E se não utilizou, qual foi o motivo? Você ainda ficou com alguma dúvida? Deixe o seu comentário abaixo =D

Não esqueça de curtir nossa página do Facebook e assinar nossa newsletter no topo do site.

10 motivos para começar a utilizar o Xamarin
4.5 (90%) 8 votos

Rafael Moura

Desenvolvedor .NET, mais de 5 anos de experiência, apaixonado por tecnologia, Xamarin Student Partner Regional Lead Central/South America, Xamarin Comunity Speaker, Xamarin Certified Mobile Developer e Windows Phone Developer.

20 comentários em “10 motivos para começar a utilizar o Xamarin

  1. Olá, eu sou novo em programação essas coisas. Mas vamos ao foco! Podemos dizer que O Xamarin é excelente para Aparelhos móveis, mas isso afeta de algum modo nos aparelhos não móveis? A experiência que o usuário vai ter será a Mesma?

  2. Nossa !!! Perfeito !! Visual Studio é o mais completo IDE.

    Então pelo que eu li tudo o que preciso saber para desenvolver app mobile é saber c# ?
    Se sim, já vo começar a desenvolver meus app mobile rss
    Ótimo Post.

  3. Oi Rafael,

    Dei uma estudada em um livro sobre Xamarin.Forms e achei interessante ao primeiro momento. Entretanto, quando comecei a tentar implementar alguns padrões do Material Design não achei o que precisava, ou era mais complicado de implementar do que fazer em Android puro. Por exemplo:
    1) Menu lateral sobrepondo a barra de status;
    2) Abas com gesto de swipe
    3) Scroll paralax (CoordinatorLayout)
    4) FloatActionButton, CardView, transições/animações, …
    Vale a pena realmente utilizar o Xamarin.Forms em aplicações profissionais? Ou é melhor fazer uma aplicação para cada plataforma (usando Xamarin)?

    []’s
    Glauber

    1. Olá Nelson, tudo bem com você?

      Então, o Xamarin.Forms é uma ótima biblioteca de componentes para o desenvolvimento Mobile, mas ele não é uma bala de prata. Certas coisas quem você mencionou são ESPECIFICAS do Android, e o Xamarin.Forms busca trazer componentes que são compartilhados entre o iOS, Android e Windows Phone. É possível SIM implementar algumas pequenas coisas do Material Design utilizando o AppCompact, você pode ver como aqui nesse tutorial oficial da xamarin. No mais, estamos aqui para ajudar!

      Abraços e não esqueça de curtir nossa fanpage e assinar nosso canal no youtube, esse ano vamos ter muitas coisas novas, começando por uma Hackathon em Belo Horizonte nos dias 30 e 31 de Janeiro.

      1. Oi Rafael, tudo jóia!
        Como a ideia do Material Design é ser independente de plataforma, então deveríamos poder implementar uma mesma aplicação seguindo esse padrão e que funcionasse no iOS e no Android sem problema. Entretanto não vi como (com o meu limitado conhecimento sobre Xamarin) seguir alguns desses padrões com o Xamarin.Forms.
        O link que você mencionou mostra como fazer com a API do Android, só que com o Xamarin. Nesse caso não vejo muito ganho, pois teria que codificar a app iOS do mesmo jeito. Aí meu benefício ficaria apenas em relação a usar o C# ao invés do Java e Obj-C/Swift.
        O que você acha?
        P.S.: Gostaria muito de ir para o evento e conhecer mais sobre o Xamarin, mas a grana tá curta :)

        1. Bom Dia Glauber. Cara, o Material Design é um elemento criado e padronizado pela google para a plataforma Android. O iOS possui algumas bibliotecas que permitem que alguns itens sejam feitos nele também, mas não é um padrão da plataforma.

          Aconselho você a seguir os padrões :)

          Outra estratégia, caso queira o Material Design em ambas, é o usar o framework do material design para web juntamente com uma web app.

          Obrigado por manter contanto. Dúvidas e sugestões estamos aqui.

          1. Oi Rafael. O Material Design é padronizado pelo Google sim, mas não é exclusivo para Android. Se você der uma olhadinha no site (https://www.google.com/design) isso é bem claro:
            “Develop a single underlying system that allows for a unified experience *across platforms and device sizes*.”. E esse vídeo também deixa claro que não é só para mobile, mas também para desktop, TV e wearables (https://www.youtube.com/watch?v=p4gmvHyuZzw).

            Meu objetivo estudando Xamarin é avaliar a possibilidade de adotá-lo em um projeto profissional. Obviamente eu sei que seguir os padrões de cada plataforma é importante, por isso que se for realmente para fazer a UI de cada plataforma, não vejo muito ganho em usa-lo, uma vez que teríamos em comum entre os dois apps seria apenas a linguagem e as “classes de negócio”.
            E… web app? Really? :)

            Obrigado pela discussão 😉
            []’s

          2. Glauber, novamente dizendo sobre o Xamarin.Forms: Ele irá criar as telas baseadas no design nativo de cada plataforma. Ou seja, botao vai ser A, I e W e isso serve para todos os componentes.

            Você pode customizar para que tido fiquem iguais? Sim. Pode tentar seguir o material design em alguns aspectos? Sim. Mas o ideal é que não o faça para não quebrar a usabilidade de cada uma das plataformas. Pensa só um usuário de Windows Phone dando de cara com uma interface diferente de todo âmbito dele :)

            Aconselho que você teste o Xamarin University por 30 dias, basta criar sua conta lá. Possui bastante aulas lá e alguns conteúdos de design. Vale a pena ver todas de Xamarin.Forms para entender a Biblioteca.

            De uma olhada também no Blog do Adan Wolf, ele mostra muito conteúdo de design utilizando Xamarin.Forms.

            Agradeço o contato.

            Qualquer dúvida, entre em contato.

            Att

            Equipe Stx

  4. realmente é muito bom o xamarin, para comprovar o que estou falando baixem o app DS KIDS É UM EXEMPLO DE SUCESSO É E FEITO TOTALMENTE EM XAMARIN….

  5. Pelo post! eu estou “namorando” o xamarin a meses e decidi que irei investir tempo de estudo nela. Você conhece algum livro sobre?

    Abs!

  6. Parabens pelo Artigo RAFAEL MOURA,
    Sou dev .net, atualmente estou envolvido em um projeto mobile, por enquanto apenas com foco na API que é em node + mongo.
    O APP não é tão simples, login via oauth, api de mapa, uploads de fotos, preciso de uma designer legal e etc.
    Minha duvida é a seguinte: seria mais recomendável criar um projeto para android e um para o ios ou vc acha que xamarim forms poderia me atender?

    O que poderia me sugerir?

    Muito obrigado

  7. Boa noite,

    Tenho um cliente que esta me “forçando” a trocar o phonegap para xamarin, eu não vi muita vantagem até agora (Porque para se ter uma idéia, com o que desenvolvemos até agora em xamarin, já estaria pronto o nosso aplicativo em phonegap).

    Eu achei muito lento os testes na plataforma do Android, quando eu mexia com phonegap, basta eu subir a versão no meu aplicativo móvel e debuggar direto da minha máquina.

    É normal o desenvolvimento/depuração em Android ser lento?

    Me falaram que no IOS com uma máquina é mais rápido ver o desenvolvimento do projeto em si.

    Estou utilizando o Xamarin 4.2.1, me parece que estou com a última versão.

    1. Boa Noite!

      Caro Daniel, poderia explicar melhor o que seriam estes TESTES? São manuais ou automatizados?

      O desenvolvimento com Xamarin tende a ser mais rápido do que com a plataforma em JAVA, mas claro que isto dependerá dos frameworks que você ira utilizar para desenvolver o aplicativo (MVVMx, Xamarin.Forms e etc…), quando ao ato de DEBUG, ele é será bem mais lento que o do PHONEGAP mas bem mais acertivo (uma vez que o código é compilado e não interpretado).

      O Desenvolvimento para iOS é mais ágil e a plataformas MACOS auxilia bastante para isso sim.

      Espero ter ajudado, estamos a disposição!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

%d blogueiros gostam disto: