• Nenhum resultado encontrado

3.3 Tecnologias

3.3.1 Xamarin

A Xamarin é uma empresa de desenvolvimento de software fundada em 2011 e adquirida, recentemente, em 2016, pela Microsoft. Contando já, de acordo com estatísticas divulgadas no seu website, com mais de 15.000 entidades dependentes dos seus serviços como a Bosch e a Slack Technologies, o seu foco é o desenvolvimento de ferramentas para auxiliar a criação de aplicações móveis multiplataforma.

Neste momento, a sua oferta consiste em quatro produtos diferentes, mas complementares: a plataforma de desenvolvimento Xamarin, a Xamarin Test Cloud que visa automatizar o teste das aplicações desenvolvidas em mais de 2.000 dispositivos reais, o Xamarin Insights que visa facilitar a descoberta de problemas nas aplicações e oferece estatísticas de diagnóstico e, por fim, a Universidade Xamarin que visa dar formação e certificar qualquer pessoa interessada em utilizar o software.

No que diz respeito à sua framework de desenvolvimento, utilizada no âmbito desta disserta- ção, esta assenta em quatro pilares:

• Linguagem C#: A proposta da Xamarin baseia-se em dotar os programadores da capaci- dade de desenvolver aplicações móveis utilizando C# como linguagem base para o desen- volvimento em todas as plataformas- iOS, Android e Windows Universal. Além de exigir o domínio de uma única linguagem de programação, permite ainda extrair o máximo das funcionalidades disponíveis nas APIs de cada sistema operativo, bem como emular a usabi- lidade e performance das aplicações nativas.

• Framework Mono .NET: O projeto Mono1 consiste numa implementação Open Source da

frameworkda Microsoft, o .NET. Criado há mais de uma década, permite aos programado- res de C# desenvolver código multiplataforma para ambientes tão diferentes como Windows, Mac OS, Linux, ou Android e iOS. A solução de desenvolvimento da Xamarin é precisa- mente construída tendo como base esta framework.

• Abordagem Cross-Compiled: Tal como abordado anteriormente, o Xamarin é uma das fra- meworks multiplataforma que permite desenvolver aplicações compatíveis com múltiplos sistemas operativos através de uma abordagem denominada Cross-Compiled ou Gerada. Neste caso em particular, a base de código, desenvolvida em C#, é compilada de uma forma diferente para cada plataforma. No caso do iOS o código C# é compilado diretamente para código máquina que pode ser executado nativamente. A abordagem é ligeiramente diferente 1http://www.mono-project.com/

para o Android, existindo uma transformação intermédia para IL (Intermidiate Language) que é compilada para código máquina em tempo de execução (compilação Just-In-Time). A compilação para ambiente Windows segue um processo semelhante à supracitada, tendo igualmente o passo intermédio de transformação para IL, sendo posteriormente executada pelo runtime nativo da linguagem.

• IDE: O desenvolvimento de aplicações pode ser feito com o auxílio de duas ferramentas distintas, o Xamarin Studio, ou o conhecido IDE da Microsoft, o Visual Studio. Tal como demonstra a tabela3.1, o desenvolvimento para certas plataformas tem, contudo, algumas restrições que devemos ter em conta: a criação de aplicações Windows exige a utilização de Visual Studio para Windows, uma vez que estas apenas podem ser criadas neste Sistema Operativo; no que às aplicações iOS diz respeito, estas podem ser desenvolvidas em qual- quer ambiente, no entanto exigem a utilização de um computador da Apple com sistema operativo Mac OS X para proceder à sua compilação e respetivo licenciamento.

Tabela 3.1: Detalhes relativos ao desenvolvimento de aplicações recorrendo a Xamarin SO Desenvolvimento Mac OS X Windows

IDE Xamarin Studio Visual Studio

iOS Y Y

Android Y Y

Windows (incl. UWP) - Y

No que diz respeito ao caso particular do desenvolvimento da interface gráfica existem duas alternativas: o programador pode optar por utilizar diretamente os métodos nativos de cada pla- taforma para construir as diferentes vistas da sua aplicação - Xamarin.iOS e Xamarin.Android - implicando que deve replicar os seus esforços por cada sistema operativo que pretende incluir, ou optar pela utilização da API denominada Xamarin.Forms2. Dando sequência à premissa de reutilizar código compatível com todas as plataformas, a supramencionada permite desenvolver as vistas das aplicações utilizando código C# ou XAML. Os elementos criados utilizando esta abor- dagem são mapeados em runtime no código nativo respetivo. Informação retirada diretamente da documentação, sobre os elementos disponíveis sob esta framework, pode ser consultada na tabela 3.2.

A prova de conceito desenvolvida no âmbito desta dissertação recorreu à utilização de Xamarin e, mais concretamente, de Xamarin.Forms para o desenvolvimento das suas páginas. A escolha baseou-se em cinco fatores:

• O facto de se basear em código escrito em C#, uma vez que já é a base do Software de Gestão comercializado pela empresa;

• Trata-se de uma framework ágil e que facilita a criação de uma prova de conceito onde o importante é a manutenção e gestão de informação e não a criação de vistas personalizadas; 2https://www.xamarin.com/forms

• Apesar de simplificar o desenvolvimento de aplicações graças à sua abordagem multiplata- forma, permite utilizar um grande leque de funcionalidades nativas que permitem acrescen- tar valor à solução.

• O Xamarin depende do sistema Nuget para a distribuição das sua bibliotecas. Atualmente já existem centenas disponíveis ao programador que permitem estender funcionalidades nas suas aplicações.

• Por fim, numa perspetiva de futuro, o produto desenvolvido traria vantagens comerciais à empresa, uma vez que permitiria que o seu produto abarcasse mais do que um sistema operativo do mercado das aplicações móveis, sem que isso implicasse um esforço extra no que ao desenvolvimento diz respeito.

Tabela 3.2: Elementos utilizados para criar vistas em Xamarin.Forms

Nome Descrição

ActivityIndicator Fornece informação visual ao utilizador de que algo está a acontecer na aplicação. BoxView Vista com um tamanho default (40x40) utilizado para desenhar um retângulo colorido.

Button Um botão sensível ao toque.

DatePicker Uma vista que permite a escolha de uma data. Semelhante a uma entry, mas em vez de ser disponibilizado o teclado, aparece um controlador especial. Editor Utilizado para editar múltiplas linhas de texto.

Entry Utilizado para editar uma única linha de texto.Opção ideal para recolher input como nomes de utilizador ou passwords. Image Utilizado para mostrar uma imagem ao utilizador.

Label Tem como função disponibilizar entradas de texto, de uma ou várias linhas, sem possibilidade de edição. ListView Disponibiliza um conjunto de dados em formato de lista vertical.

OpenGLView Apenas funciona em iOS e Android, sendo utilizado para exibir conteúdo OpenGL. Picker Utilizado para escolher um elemento de uma listagem.

ProgressBar Indica o progresso até ao momento de alguma tarefa.

SearchBar Elemento que funciona como uma barra de pesquisa onde o utilizador pode inserir texto. Slider Elemento que permite a seleção de valores através de interação tátil no ecrã. Stepper Permite a seleção de um valor contido num intervalo.

Switch Permite a manipulação de uma variável com dois valores possíveis. TableView Vista que encapsula várias linhas com diferentes células.

TimePicker Elemento que permite a seleção de um valor temporal. Semelhante a uma entry mas com um controlador especial. WebView Uma vista que exibe conteúdo HTML.

Documentos relacionados