Category Archives: Xamarin

Xamarin.Forms – O que nós ganhamos!

A Saga

O que nós ganhamos!

2,6 bilhões de dispositivos, é isso mesmo, e a cada dia milhares de smartphones são despejados neste mercado em grande escalada. O mercado mobile é uma tendência irreversível.

Apostar no desenvolvimento Cross-Mobile ou Híbrido pode ser uma interessante “carta na manga” para quem deseja ingressar neste novo mundo, o mundo dos APPS.

Conheça agora, alguns conceitos sobre a plataforma de desenvolvimento Xamarin, a tecnologia para a criação de APPS multiplataforma.

O que é?

APPs Xamarin foram projetados para oferecer uma proposta multiplataforma e de reaproveitamento de código para Windows Phone, Android e iOS. Na sua essência, o Xamarin foi desenhada para utilizar C# e o .NET Framework como base para desenvolvimento, com código unificado.

IMG

Origem

A ideia foi desse carinha, o Miguel de Icaza, criador do Gnome e Mono. Ele foi Vice-presidente de produtos na Novell e após sair da Novell fundou a Xamarin e é um dos diretores do .NET Foundation.

O Miguel queria resolver um problema, como utilizar uma única linguagem apenas para as três principais plataformas de celulares.

Inicialmente, o Xamarin era apenas um Partner da Microsoft, mas recentemente ela foi adquirida pelo Bill Gates.

IMG

TimeLine

Segundo o Gartner, o Xamarin está no Visionary Quadrant, citando muitos pontos favoráveis para a utilização desta plataforma.

IMG

E segundo as previsões, a próxima onda serão os dispositivos wearables ou vestíveis, onde iremos nos conectar através de óculos, relógios, pulseiras e outros acessórios.

Por que Xamarin?

Desenvolver APPs sempre foi um desafio devido aos inúmeros dispositivos, SOs e versões. Ou seja, temos várias linguagens e ambientes de desenvolvimento MUITO diferentes.

Na primeira estratégia da imagem abaixo, temos o problema da plataforma mobile.

IMG

Desenvolver um APP que alcance todo o público é um problema a ser vencido, isto porque é preciso de um APP que, funcione no iOS, Android e Windows Phone. Para resolver isso precisamos programar em Java, ObjectiveC/Swift e C# e então o problema se agrava, porque precisamos de:

  • Desenvolvedores nas três linguagens. Porque o mesmo código terá que ser escrito em várias linguagens.
  • Corrigir bugs dos APPs devido às lógicas do sistema estarem implementadas de formas diferentes.

Mas, e ai? Como resolver esses problemas?

Agora o Xamarin entra na área, disponibiliza uma plataforma projetada nas implementações open source mono android e monotouch com o intuito de utilizar o C# e o máximo de recursos do .NET para desenvolver APPs nativas para Android e iOS reaproveitando o máximo da regra de negócio para as principais plataformas.

Na imagem acima podemos ver que o utilização do Xamarin sugere:

  • Menor Custo
  • Menor tempo de desenvolvimento
  • Maior curva de aprendizagem
  • Maior produtividade

Proposta Xamarin e Cenário Atual

No cenário atual no mercado de dispositivos móveis, exitem basicamente três SOs: Android, Windows Phone e iOs. Cada um com suas particularidades, linguagem e ambiente de desenvolvimento para a criação de APPs.

Nesse contexto, para atingir o maior número de usuários, temos que desenvolver para estes 3 SOs e isso pode ser uma complicação.

Neste contexto entra a plataforma Xamarin, uma solução para criar APPs nativas nas 3 plataformas utilizando apenas uma IDE, o Visual Studio ou Xamarin Studio, e uma linguagem, C# ou F#.

IMG

Nativo

Algumas vantagens da utilização da Xamarin:

Performance através do processo de compilação

O APP é compilado no iOS, no Android continua rodando numa VM .Net.

Ganhamos bibliotecas feitas em Objective-C e Java

Ganhamos acesso total as funcionalidades do dispositivo via chamadas, em C#, no SDK oficial de cada plataforma. Também podemos aproveitar bibliotecas em Objective-C no iOS e Java no Android.

Crie APPs nativos dos SOs, o que permite usar recursos próprios dos dispositivos.

Para desenvolver a UI para uma plataforma específica utilize: Xamarin.Android, Xamarin.iOS, e Windows Phone SDK.

Por que não Web? 

No mundo cross mobile com HTML e tecnologias WEB, teremos desvantagens além de fazer com que o usuário possa desistir de utilizar o APP, por não fluir como um APP nativo e a experiência visual ser, muitas vezes, extremamente diferente do esperado pelo usuário.

Reuso, Robusta e Madura

APPs multiplataforma nativos compartilhando 75% do código entre as 3 plataformas e escreve o código para a UI para cada plataforma usando o código nativo específico.

  • Reaproveitamento de código
  • Linguagem robusta e madura
  • Excelente suporte (lançamentos simultâneos)
  • Documentação

 

C# is Awesome

Oba! Ganhamos também a utilização de uma linguagem robusta e madura. Suportando todos os recursos mais recentes do Framework:

C# 7 e 6

Linq

var tasks = from t in list
	where t.completeBy >= DateTime.Now
	select t;

Async/Await

var client = new HttpClient();
var json = await client.GetStringAsync(url);
return JsonConvert.DeserializeObject<List<ToDoModel>>(json);

 

 

Ferramentas de Desenvolvimento

Crie APPs com o renomado Visual Studio (contando com integrações de serviços da Microsoft como Azure e TFS), mas também é possível utilizar a ferramenta FREE Xamarin Studio.

 

Abra a mão do Visual Studio, com o XamarinStudio!

Podemos deixar o VS de lado? O Xamarin Studio nos atende numa boa, incorporando muitos recursos  que nos permite abrir mão do VS (e seu reinado absoluto para desenvolvedores  .NET).

Além do mais, o XS implementa vários recursos do VS e a cada versão está incorporando muitas outras funcionalidades que hoje só são possíveis utilizando plugins como o ReSharper.

 

Uma das grande vantagem do Xamarin para os desenvolvedores .NET é a sua integração ao Visual Studio aproveitando assim muitos recursos.