Informações Principais
     Resumo
     Abstract
     Introdução
     Conclusão
     Download
  
  
  
 
Conclusão
 
 
Acadêmico(a): Leonard William de Azevedo Pegler
Título: GOOD-BUY: um protótipo para compartilhamento de ofertas ou produtos
 
Conclusão:
Este trabalho apresentou o desenvolvimento de uma aplicação móvel colaborativa que visa auxiliar o usuário na elaboração de listas de compras e na disseminação de promoções em estabelecimentos através do compartilhamento de ofertas utilizando produtos cadastrados pelos próprios usuários do aplicativo. Para este trabalho haviam dois objetivos específicos, o primeiro era utilizar uma base de dados hospedada na nuvem para realizar a sincronização de forma constante dos dados mais recentes compartilhados entre os usuários. Já o segundo objeto era disponibilizar um mecanismo para validação da integridade dos preços atribuídos pelos usuários da aplicação. O primeiro objetivo que era hospedar e utilizar serviços por uma plataforma na nuvem foi atendido através do Microsoft Windows Azure. O Azure forneceu toda a infraestrutura necessária para o desenvolvimento da aplicação na parte servidor. Foi disponibilizado o SQL Server para utilização do banco de dados e um serviço de aplicação móvel em Node.js pré- configurado com o framework Express, Babel e outras bibliotecas para comunicação com serviços da própria plataforma, como o acesso autenticado ao servidor e o hub de notificações. Uma das dificuldades encontradas durante o desenvolvimento do servidor foi realizar o broadcast de uma oferta para todos os participantes de um grupo. Para que todos os participantes de um determinado grupo recebam uma notificação, cada um dos participantes deveria possuir uma tag com o identificador deste grupo vinculado ao seu usuário de instalação no hub de notificações. As tags desta instalação expiravam em um determinado tempo, fazendo que os usuários parassem de receber notificações do respectivo grupo. Para resolver este problema, cada vez que o usuário abrir a aplicação será feita uma requisição ao servidor para que estas tags sejam atualizadas. A sincronização de dados no servidor de forma constante ainda no primeiro objetivo específico também foi atendido. Desenvolvendo o aplicativo móvel com o Xamarin Forms da Microsoft e utilizando as bibliotecas do Azure para a parte cliente da aplicação, a sincronização dos dados foram realizadas sem muitos problemas. A persistência é realizada primeiramente no dispositivo local, através do banco de dados relacional SQLite. Após a persistência local os dados são enviados ao servidor em um determinado tempo ou ao concluir determinadas operações. O segundo objetivo também foi atendido. Alguns mecanismos de integridade e confiabilidade foram utilizados. Para autenticar-se na aplicação, é identificado o número do dispositivo para que seja utilizado como identificador da tabela de usuário. Ainda no processo de login, o usuário pode optar por autenticar-se com o Facebook ou com as informações do seu dispositivo local. Independentemente da opção selecionada, será obtido um perfil do usuário logado com informações básicas como número do telefone, nome completo, e-mail e município. Dentro da aplicação, para controlar a integridade da oferta cadastrada por estes usuários é possível avaliar cada oferta informada, alertando os demais usuários a respeito da confiabilidade das ofertas. O desenvolvimento da aplicação móvel foi feito utilizado o framework Xamarin Forms, desenvolvido pela Microsoft. Em geral, o uso do framework se mostrou bastante satisfatório, pois com esta tecnologia é possível escrever de forma isolada a regra de negócio e lógica da aplicação, sendo possível compilar o aplicativo de forma nativa no Android, Windows Phone, iOS e Tizen. O framework conta ainda com um recurso de padronização de codificação de interfaces gráficas, escrevendo o código apenas uma vez e renderizando de forma nativa em cada plataforma. Outro recurso utilizado no desenvolvimento do trabalho foi o Xamarin.Forms Previewer, uma ferramenta de visualização gráfica da qual é possível manipular as telas do aplicativo sem a necessidade de compilar a aplicação novamente. O framework conta também com um recurso para a conversão de bibliotecas nativas do iOS em Objetive C (.a) e o Java Archive (.jar) do Android para utilização em uma aplicação .NET através de uma Dynamic Link Library (.dll). A aplicação apresentou um comportamento satisfatório visto que seus principais objetivos foram atingidos. O usuário consegue acessar o aplicativo de forma autenticada, cadastrar ofertas, avaliar as últimas ofertas, interagir com diversos grupos, obter o melhor custo-benefício de acordo com uma lista de compras e compartilhar ofertas entre os demais usuários do aplicativo. Apesar de atender o que foi proposto, a aplicação possui alguns pontos que precisam ser melhorados. A aparência das telas do dispositivo precisa ser elaborada de acordo com a avaliação de alguns usuários. Para uma melhor interação com os usuários, também se faz necessário uma população inicial na base de dados com diversas marcas, produtos e estabelecimentos. Também pode-se melhorar a inteligência da simulação de compras, fazendo otimizações nas buscas e a realização de um mapeamento de equivalências entre unidade de medidas, pois atualmente a busca é feita através de uma comparação exata. De modo geral o trabalho desenvolvido torna-se relevante principalmente no âmbito acadêmico e tecnológico pois aborda o uso das mais recentes tecnologias de codificação nativa em multiplataformas que podem ainda ser mais exploradas no desenvolvimento de aplicativos móveis tanto no meio comercial quanto na área científica. O Xamarin.Forms torna-se uma alternativa ao uso de outros frameworks de desenvolvimento híbrido como o caso do React Native, o NativeScript ou o Phonegap. Além disso, o compartilhamento de ofertas e a elaboração de listas de compras não se limita apenas a supermercados, a ideia pode ser estendida e melhor explorada em diversas outras áreas