• Nenhum resultado encontrado

5.2 Implementação

5.2.2 Tecnologias e APIs

As tecnologias eAPIutilizadas para a implementação do novo protótipo são na sua grande maioria aquelas que haviam sido utilizadas até então. O foco do trabalho consistiu na uti- lização mais otimizada e completa dos recursos fornecidos pelas mesmas. Ainda assim, no domínio dasAPI, destaca-se a introdução de uma nova na reta final, desenvolvida durante o decorrer da presente dissertação pela Critical Software, empresa de desenvolvimento desoftwares contratada pela Marinha Portuguesa para o efeito. EstaAPI surgiu com o objetivo de permitir a integração da aplicação móvel com o modelo de dadosJC3IEDM. 5.2.2.1 Android Studio

O Android Studio é oIDEmais comummente utilizado na construção de aplicações para dispositivos Android. Grande parte do trabalho de implementação utilizou este ambiente.

Na sua génese tem uma estrutura assente em páginas XML, que permitem o desenho doslayouts da aplicação, mas também classes Java, onde é edificada toda a parte lógica. O Android Studio inclui também o Android Plugin For Gradle2, umkit de ferramentas de compilação avançado, específico para aplicações Android, onde pode ser configurado o processo de compilação e definidos os diversos recursos externos a serem utilizados pelo programa.

5.2.2.2 Wikitude

A Wikitude3corresponde ao conjunto de tecnologias de realidade aumentada fornecidas pela companhia de mesmo nome. Os seus produtos e serviços concedem uma grande diversidade de recursos capazes de responder às diferentes necessidades inerentes a cada contexto de uso.

O WikitudeSDKcorresponde ao principal produto da companhia e é disponibilizado através de várias API e extensões que lhe conferem a sua utilização multiplataforma. Deste modo, encontra-se disponível para Android, iOS e Windows, bem como para inte- gração com outras tecnologias, incluindo aquela que é utilizada no desenvolvimento de certos óculos inteligentes (SMART GLASSES)4.

No projetoTHEMISfoi incorporada a JavaScriptAPIdo WikitudeSDK, que disponibi- liza os principais recursos destekit de desenvolvimento. A compatibilidade destaAPIcom código JavaScript eHTMLfaz com que seja simples integrá-la com quaisquer aplicações móveis, independentemente do sistema operativo em que forem concebidas. A versão grátis do WikitudeSDKé utilizada pelo protótipo funcional da aplicação móvelTHEMIS, e embora contenha uma marca de água que impossibilita a comercialização das aplicações que lhe façam uso, disponibiliza um conjunto de ferramentas bastante satisfatório para aplicações em fase de desenvolvimento:

• Reconhecimento de objetos, que possibilita a experiência de realidade aumentada a partir do reconhecimento de objetos predefinidos pelo programador, e reconheci- mento de cenas, que permite o reconhecimento de salas ou objetos de maior dimen- são. Estas funcionalidades são baseadasSimultaneous Location and Mapping (SLAM) que é uma tecnologia que interpreta o mundo real através de pontos.

• Serviços baseados na localização, que permitem a criação de objetos de acordo com a sua posição geográfica.

• Rastreamento instantâneo, que interpreta o mundo real de forma instantânea, e permite a sobreposição de objetos virtuais com superfícies físicas, sem ser necessário o uso de reconhecimento baseado em marcadores.

2https://developer.android.com/studio/releases/gradle-plugin 3https://www.wikitude.com/about/

• TecnologiaSeamless AR Tracking with ARCore and ARKit (SMART), que permite a utilização de tecnologias de realidade aumentada da Google, Google’s ARCore, ou da Apple, Apple’s ARKit, caso os dispositivos as suportem. Caso contrário, faz uso da tecnologia da Wikitude. Esta tecnologia permite o desenvolvimento multiplata- forma, em JavaScript, Unit ou Xamarin, entre outras.

• Licença para Android, iOS, Dispositivos Windows e Óculos inteligentes.

Durante o desenvolvimento da nova versão funcional do projetoTHEMIScontinuou- se com a utilização dos serviços baseados na localização, tendo ocorrido uma exploração mais detalhada dos mesmos, assim como, novas formas de lhes fazer uso.

5.2.2.3 Sqlite

O SQLite consiste numa biblioteca que implementa bases de dados SQLembutidas. A sua facilidade de uso em qualquer plataforma e a possibilidade de leitura e escrita da base de dados diretamente num único arquivo, sem ser necessário executar um sistema de gestão de base de dados separado, fazem com que seja vantajosa em situações de teste que não necessitem de lidar com grandes quantidades de dados.

No dia a dia recorreu-se a uma base de dados SQLite presente localmente, enquanto para realização dos testes de usabilidade, foi utilizada uma base de dados alocada numa máquina virtual pertencente à FCT-UNL.

Esta biblioteca foi também introduzida para persistir dados ao nível da própria aplica- ção móvel, tal como é referido em5.2.7, não tendo este processo sido concluído em tempo útil.

5.2.2.4 Spring

O Spring Framework foi oframework utilizado para fazer a comunicação entre a aplicação móvel e a base de dados provisória. Este framework foi utilizado por via do STS IDE, permitindo a criação de um servidor que faculta dados à aplicação provenientes da base de dados, através de trocas de pedidos HTTP. Durante a grande maioria do processo de desenvolvimento da solução recorreu-se a esteframework sendo que, na fase final, se iniciou a comunicação com um servidor que permite a troca de dados com uma base de dados assentes no modeloJC3IEDM.

5.2.2.5 Google Play Services

A Google, através deAPI, disponibiliza várias ferramentas para o desenvolvimento de dispositivos Android, a partir da biblioteca do Google Play Services. No projetoTHEMIS

foram utilizadas duas destas ferramentas:

• Google LocationServices API - esta API faz uso da FusedLocationProvider API

FusedLocationProviderAPIpermite obter a localização atual de forma simples e com gastos eficientes de bateria. Proporciona igualmente métodos para definir o nível de precisão de localização pretendidos, podendo aAPIrecorrer a três fontes de informação diferentes: localização de GPS, conexão do telemóvel e a rede Wifi ao qual este está conectado.

• Google Maps API - estaAPIdisponibilizada para Android, permite a adição e cus- tomização de mapas baseados no Google Maps. Nolayout principal do protótipo desenvolvido, correspondente à vista de mapa, recorreu-se a esta APIpara obter acesso aos mapas do Google Maps, assim como para introduzir e visualizar marca- dores associados a localizações específicas do mapa.

5.2.2.6 THEMIS Client API

EstaAPIfoi disponibilizada numa fase avançada da implementação, com o objetivo de per- mitir a comunicação com uma nova base de dados, assente no modeloJC3IEDM. AAPIfor- nece, através de uma lógica de pedidos assente emREpresentational State Transfer (REST)5 com chamadasHTTPdevidamente encriptadas, acesso a um servidor que comunica com a base de dados proposta. O mesmo será acedido pela aplicaçãodesktop do projetoTHE- MIS, garantindo que ambas façam uso da mesma base de dados e assim se alcance a interoperabilidade entre sistemas.