Uma abordagem sustentável à mobilidade com Xamarin

É inquestionável, nos dias que correm, a importância de ter uma estratégia multicanal. Se, ao longo dos anos, a presença web se foi tornando cada vez mais um dado adquirido e uma parte natural das plataformas oferecidas pelas empresas aos clientes, a interacção entre estes e as marcas está hoje assente num outro pilar de referência: os dispositivos móveis. A relevância que os equipamentos que trazemos no bolso todos os dias ganharam em poucos anos criou oportunidades e desafios aos quais as empresas tiveram de reagir de forma célere. Parece que já foi há muito tempo, mas a Apple lançou o primeiro iPhone em 2007, a Google iniciou o seu projecto Android em 2008 e a Microsoft, apesar de uma entrada mais tardia, continua no encalço de ambas, após se ter destacado como terceiro grande player no mercado da mobilidade. A verdade é que hoje em dia a forma como nos relacionamos com esta tecnologia, com as empresas e uns com os outros mudou radicalmente, e a estratégia mobile é olhada pelas empresas hoje como obrigatória – embora, claro, algumas empresas estejam mais avançadas que outras neste aspecto. Para uma primeira análise sobre este tema recomendo este eBook que elaborei há uns meses e que está focado na definição da estratégia mobile das empresas. Este artigo irá abordar a tecnologia da Xamarin, uma empresa dedicada a endereçar os desafios do desenvolvimento multi-plataforma.

A presença em plataformas móveis implica desde logo algumas escolhas: que sistemas operativos suportar, como fazer o desenvolvimento, como garantir uma elevada qualidade dos entregáveis, entre outras. É sobre estas escolhas que vou falar em seguida, com o objectivo de partilhar a minha visão pessoal sobre o problema mas, acima de tudo, sobre aquela que estou certo ser uma solução bastante válida para resolver os problemas do desenvolvimento multiplataforma.

Que plataformas suportar?

A decisão de que plataformas suportar, quando desenvolvemos uma app, nem sempre é linear e deverão ser consideradas várias variáveis. Quota de mercado é um dos vectores que alimenta esta análise e que deve ter sido em consideração, principalmente quando se desenvolvem apps B2C, ou seja, direccionadas para o consumidor final. A dominância da plataforma Android é sobejamente conhecida, bem como a presença de dispositivos Apple. No entanto, é necessário considerar nesta análise também a geografia: será que uma empresa portuguesa está disposta a correr o risco de ignorar 15% do mercado (que já utiliza plataformas Windows) num mercado como o nosso, cuja média de dispositivos por cidadão é das maiores da Europa? E se formos para uma estratégia que abranja diferentes países, como por exemplo Itália e outros países Europeus, onde a presença das plataformas Windows chega a ser maior do que iOS? Além disso, num cenário empresarial, as quotas de mercado pouco interessam porque, no fim do dia, o que importa são os dispositivos utilizados pelos clientes da empresa (que podem diferir das tendências globais) ou os que foram escolhidos para equipar as suas forças de trabalho. Todas estas variáveis deverão ser tidas em conta para no final se tomar uma decisão consciente do caminho a tomar.

Que escolhas existem para o desenvolvimento?

O desenvolvimento das apps é o passo seguinte, e aqui levanta-se um problema provavelmente conhecido da maior parte dos leitores: o esforço associado ao desenvolvimento. Na grande maioria das vezes as empresas começaram por seguir uma estratégia de desenvolvimentos por silos, ou seja, uma app feita com as linguagens nativas de cada plataforma. Isto significa que se quero suportar iOS e Android terei de investir em dois desenvolvimentos paralelos e distintos. Na prática, o esforço e o investimento nas apps será directamente proporcional ao número de plataformas a suportar – e isto aplica-se não só ao investimento inicial mas também à manutenção, tornando esta questão relevante para o TCO (Total Cost of Ownership da solução). Mais tarde começaram também ser seguidas algumas estratégias de desenvolvimento híbridas, cuja proposta de valor assentava em tirar partidos de competências familiares para desenvolvimento web que seriam alavancadas no desenvolvimento de apps mobile – e que, por sua vez, correriam em cima de frameworks específicas. Embora fosse uma proposta de valor interessante, a verdade é que o esforço de adaptação da solução para vários browsers pode ser significativo e muitas vezes esta abordagem peca por questões de compatibilidade, performance, entre outras.

A busca por uma solução que permita optimizar o esforço e o investimento na criação e manutenção de apps tem sido uma constante ao longo dos últimos anos e à data de hoje estou certo de ter encontrado uma abordagem que permite lidar com este tema de uma forma extremamente vantajosa através da utilização das soluções de uma empresa denominada Xamarin.

A Xamarin é uma empresa que nasceu da vontade de melhorar a experiência de desenvolvimentos de apps. Tem por base tecnologia com provas dadas e que há mais de uma década permite correr tecnologia Microsoft em ambientes não Microsoft, neste caso iOS e Android. Permite tirar partido de economias de escala, criando uma camada de lógica de negócio partilhada pelas várias aplicações e sendo apenas necessário criar a implementação de interface específica para cada uma delas. Em termos de desenvolvimento permite, com o investimento em desenvolvimento nativo para 2 plataformas criar para 3. Em termos de manutenção permite poupanças mínimas que rondam os 50% para apps que apelido de “equilibradas”, ou seja, que tenham pelo menos uma complexidade média em termos de interface e de lógica de negócio. Deverá ser claro que o Time-to-Market das soluções também é menor visto que uma vez que existe uma base partilhada pelas várias apps, essa estará testada após a primeira app estar pronta, sendo que as restantes terão apenas de ser validadas ao nível na interface. Para uma informação mais detalhada recomendo este Whitepaper que escrevi recentemente sobre desenvolvimento multiplataforma com Xamarin.

A tecnologia da Xamarin tem permitido abordagens muito interessantes a alguns projectos e a empresa está continuamente focada em resolver os problemas associados ao desenvolvimento multi-plataforma. Neste artigo foquei apenas a vertente de desenvolvimento mas no próximo falarei do desafio associado à garantia de qualidade das apps e aos processos de monitorização e melhoria contínuas.

Convido-vos desde já a exporem as vossas dúvidas, questões ou comentários em baixo.

Até breve!

 

[tmm name=”sergio-viana”]

Leia mais artigos deste autor.