São Paulo - SP--(
DINO - 23 mai, 2016) - Para quem não está familiarizado com o assunto, aplicativos móveis nativos são aqueles desenvolvidos utilizando-se os componentes gráficos de interface de usuário nativos do ambiente operacional do smartphone, tipicamente Android e iOS (iPhone). A alternativa aos aplicativos nativos são os chamados aplicativos híbridos, que são construídos utilizando-se interface Web. Naturalmente, os aplicativos nativos oferecem uma experiência de usuário superior, por serem naturalmente integrados ao ambiente operacional e oferecerem uma interface mais fluída e desempenho superior.
A maior questão associada ao desenvolvimento de aplicativos nativos é o fato de que os ambientes operacionais mais populares não são compatíveis entre si. Dessa maneira, para se construir um aplicativo móvel com funcionalidade idêntica para o Android e para o iOS é necessário desenvolver duas aplicações completamente distintas, inclusive em termos de linguagem de programação. A linguagem nativa do Android é Java, enquanto para o iOS utiliza-se Objective-C ou Swift. Portanto, o trabalho de construção de um aplicativo para os dois ambientes é dobrado, e isso impacta diretamente prazos e custos.
A Plataforma Xamarin
--------------------------------
A
Plataforma Xamarin oferece justamente uma ferramenta que visa amenizar essa necessidade de desenvolvimento em duplicidade, tornando possível desenvolver aplicativos móveis para Android e para iOS usando uma mesma linguagem de programação, C# (C-Sharp). Entretanto, a ferramenta não promete eliminar completamente a necessidade de esforço duplicado: para o desenvolvimento da porção do aplicativo referente ao tratamento da interface de usuário, continua sendo necessário desenvolver código específico para cada plataforma. Ao menos, é possível reaproveitar nos dois ambientes todo o código referente a regras de negócio, comunicação com o servidor e outros elementos que não dependam de interação com o usuário.
Como uma forma de tentar reduzir essa necessidade de desenvolvimento específico de interface de usuário para cada um dos ambientes operacionais, a plataforma oferece um framework, chamado
XamarinForms , que tenta isolar as diferenças e proporcionar uma biblioteca comum. Em tese, se o aplicativo se restringir aos recursos de interface (mais limitados) oferecidos pelo Xamarin.Forms, é possível sim reaproveitar a totalidade do código, permitindo uma única versão do aplicativo para os dois ambientes operacionais.
Na prática, entretanto, boa parte dos aplicativos móveis precisam recorrer a recursos específicos da interface de usuário de cada ambiente, sendo impossível implementá-lo na sua totalidade apenas usando recursos do Xamarin.Forms. Em muitos casos, o ideal é mesmo construir duas aplicações distintas, cada uma utilizando os recursos específicos de cada sistema operacional.
Em linhas gerais, é possível reaproveitar algo em torno de 40% a 60% do código do aplicativo quando ele é desenvolvido utilizando-se diretamente a interface nativa dos sistemas operacionais. Quando é possível utilizar o Xamarin.Forms, algo entre 70% e 90% do código pode ser comum entre as duas versões, sendo que apenas alguns recursos específicos precisam ser desenvolvidos em duplicidade.
A Experiência da Opus Software com Desenvolvimento em Xamarin
-------------------------------------------------------------------------------------------------
Ao longo de quase dois anos desenvolvendo aplicativos utilizando essa plataforma, a equipe da OPUS Software obteve diversos benefícios nos projetos em que realizou desenvolvimento em Xamarin:
Redução de prazos e orçamentos
----------------------------------------------------------------
Pela nossa experiência, no caso de aplicativos desenvolvidos utilizando-se a interface nativa dos ambientes operacionais alvo (Xamarin.Android e Xamarin.IOS) temos obtido, em média, algo como 40% de reaproveitamento de código, o que se reflete em redução de aproximadamente 20% nos prazos e diminuição equivalente nos custos da etapa de construção. Embora ainda não tenhamos muitos casos de utilização do framework Xamarin.Forms, nos projetos em que o utilizamos o reaproveitamento de código nunca foi inferior a 70%.
Qualidade dos aplicativos
----------------------------------------------------------------
Os aplicativos móveis desenvolvidos em Xamarin oferecem desempenho e usabilidade praticamente idênticos àqueles desenvolvidos utilizando-se as ferramentas nativas dos ambientes operacionais Android e iOS. No caso do Xamarin.Forms, o desempenho pode ser um pouco prejudicado, e é importante portanto avaliar com prudência o impacto de seu uso, considerando que o desempenho é um dos principais fatores de
avaliação de aplicativos móveis pelos usuários.
Unificação da linguagem de programação
----------------------------------------------------------------
Essa talvez seja a maior vantagem do desenvolvimento em Xamarin. Dominar realmente bem uma linguagem de programação em um ambiente operacional específico exige tempo e horas de voo. Imagine então ter que dominar profundamente pelo menos duas linguagens diferentes. Mesmo considerando que nossa equipe de desenvolvimento é formada por profissionais com sólida formação universitária nas áreas de Ciência e Engenharia de Computação ou Sistemas de Informação, o que proporciona uma ótima base conceitual para o rápido aprendizado de novas ferramentas e linguagens de programação, obviamente é mais custoso ganhar (e manter) proficiência em mais de um ambiente de desenvolvimento, acompanhando sua evolução ao longo das diferentes versões lançadas periodicamente.
Muitos membros do nosso time técnico têm muita experiência com a plataforma Java ? em função de nosso produto de automação bancária, o Opus iBank ? e sentem muito familiarizados com o ambiente nativo do Android. Além disso, vários outros desenvolvedores do time hoje dominam muito bem a linguagem Objective-C e o ambiente nativo do iOS, em função dos vários projetos de aplicativos móveis de que participaram nos últimos anos usando essa tecnologia. Entretanto, também temos um longo histórico de desenvolvimento no ambiente Microsoft/.NET e, portanto, nossa cultura favorece a utilização da linguagem C# como língua franca para os projetos de aplicativos móveis.
Utilização da linguagem C#
----------------------------------------------------------------
C# é uma linguagem expressiva e poderosa. Sendo uma linguagem orientada a objetos, também oferece recursos de suporte ao paradigma de programação funcional. Oferece
tipagem forte ,
programação assíncrona e
expressões lambda (v=vs.110).aspx , apresentando uma sintaxe simples e elegante. Possui os principais recursos que se espera de uma linguagem de programação moderna.
Uso do Visual Studio
----------------------------------------------------------------
Além de oferecer um ambiente integrado de desenvolvimento próprio (IDE), o Xamarin Studio, a plataforma também é plenamente integrada ao Visual Studio da Microsoft, que é uma das melhores ferramentas de desenvolvimento disponíveis no mercado. O Visual Studio oferece inúmeros recursos que proporcionam um sensível aumento de produtividade nas tarefas de codificação e depuração de aplicações. Claro que a experiência anterior do time usando o Visual Studio só colaborou para aumentar ainda mais o desempenho na construção de aplicativos móveis.
Plataforma .NET
----------------------------------------------------------------
Boa parte dos recursos, bibliotecas e frameworks do ambiente .NET original estão disponíveis na plataforma Xamarin, plenamente integrados à linguagem C#. Por exemplo,
LINQ ,
Generics (v=vs.80).aspx e Lists, que são grandes aceleradores para a construção de aplicações.
Documentação vasta
----------------------------------------------------------------
Um dos pontos positivos da plataforma é a quantidade e qualidade da documentação disponível. Remetendo às suas origens de projeto open source, uma vez que é um porte do
projeto Mono (software) para os ambientes Android e iOS, a plataforma oferece uma vasta gama de manuais, tutoriais, exemplos e bibliotecas de código aberto.
Ecossistema em crescimento
----------------------------------------------------------------
A plataforma Xamarin possui uma comunidade de desenvolvedores muito atuante, o que proporciona uma interação rica e a possibilidade de tirar dúvidas e trocar experiências nos vários fóruns de discussão disponíveis. Há também muitos exemplos e componentes de software abertos disponíveis na Internet, o que ajuda a acelerar e a tornar mais ágil o desenvolvimento.
Outras considerações sobre o desenvolvimento em Xamarin
-----------------------------------------------------------------------------------------
É importante observar que desenvolver utilizando a plataforma Xamarin não elimina a necessidade de conhecer muito bem o ambiente operacional e o modelo de interação e tratamento de eventos dos ambientes operacionais alvo. O ambiente não isola a aplicação, e é muito importante entender o que acontece no nível do sistema operacional, principalmente para evitar problemas com alocação de recursos (especialmente memória) e para identificar problemas de execução.
Em geral, quando se utilizam as bibliotecas para uso dos componentes nativos da interface gráfica, o modelo do aplicativo em Xamarin segue fielmente o modelo padrão dos ambientes operacionais, seja no Android ou no iOS. Portanto, o conhecimento genérico da estrutura de um aplicativo nesses dois ambientes é fundamental para se estruturar adequadamente o software escrito em C#.
Obviamente, nem tudo é perfeito no desenvolvimento em Xamarin. Assim como acontece com os frameworks nativos do Android e do iOS, é fato que a plataforma também tem seus próprios defeitos (embora a empresa tenha sido muito ágil em proporcionar correções para os erros identificados pela comunidade de desenvolvedores). Além disso, considerando que uma nova camada de software é introduzida entre o aplicativo e o ambiente nativo, às vezes fica mais difícil encontrar os problemas em um aplicativo. Há que se considerar também que os ambientes nativos possuem muito mais recursos publicados por suas grandes comunidades de desenvolvedores, incluindo artigos, bibliotecas e componentes. Nem sempre é fácil utilizar diretamente no aplicativo em Xamarin os componentes de software desenvolvidos nas linguagens nativas, uma vez que é necessário que exista uma interface específica para que se possa utilizá-los.
Somando prós e contras, a experiência da OPUS Software no uso do Xamarin tem sido amplamente positiva, e definitivamente recomendamos sua utilização.
[Dica: Construir um bom aplicativo móvel é só parte do processo necessário para torná-lo um sucesso. Por exemplo, um aplicativo móvel precisa de um
plano de engajamento. ]
Claro, continuamos desenvolvendo muitos projetos utilizando os ambientes nativos do Android e do iOS, especialmente em situações nas quais o cliente já possui essa cultura e prefere mantê-la, ou quando é necessário utilizar bibliotecas muito específicas (aplicativos para meios de pagamento eletrônico, por exemplo).
De maneira geral, durante a fase de seleção das tecnologias a serem utilizadas para um determinado projeto, nossa equipe procura avaliar as vantagens e desvantagens de utilizar o Xamarin (incluindo os eventuais riscos). Por exemplo, se uma determinada biblioteca específica está disponível para o ambiente nativo e não existe uma interface Xamarin disponível para ela, é feita uma avaliação do tempo necessário para construir essa interface, comparando-o com o prazo estimado para se construir a funcionalidade daquela biblioteca a partir do zero. Em algumas situações, pode ser mais econômico construir duas versões do aplicativo utilizando as ferramentas nativas, Java e Objective-C.
Finalmente, considerando que começamos a avaliar a plataforma Xamarin ainda quando ela era um projeto open source (Mono for Android e MonoTouch), um dos nossos pontos de avaliação sempre foi o risco de o produto "não dar certo". Apenas quando concluímos que a base instalada já era grande o suficiente para sustentar a empresa Xamarin é que adotamos definitivamente a plataforma. Segundo dados da própria Xamarin (maio de 2016), atualmente a empresa conta com mais de 15.000 clientes e mais de 1,4 milhão de desenvolvedores em 120 diferentes países. Recentemente, a aquisição da Xamarin pela Microsoft só reforçou a sustentabilidade da plataforma. A tendência agora é de que o produto melhore ainda mais e que sua evolução seja cada vez mais veloz, tornando- ainda mais interessante e poderosa para o desenvolvimento de aplicações móveis.
----------------------------------------------------------
A
OPUS Software é uma empresa de desenvolvimento de software com quase 30 anos de experiência na construção de sistemas complexos de missão crítica que processam grandes volumes de transações e apresentam alto grau de confiabilidade.
Tendo realizado cerca de 300 projetos de software ao longo de sua sólida trajetória, a OPUS Software tem foco na utilização de tecnologia como forma de ajudar seus clientes a atingirem seus objetivos de negócio.
Essa maneira de ser também é trazida para o mercado de desenvolvimento de aplicativos móveis e, portanto, nossos aplicativos não são voltados para ganhar prêmios em Cannes, mas para apoiar a estratégia de negócio de nossos clientes e gerar resultados mensuráveis.
Website:
http://www.opusmobile.com.br