RELATÓRIO DE DESENVOLVIMENTO – THAT IS MINE
Todos os dias, milhares de coisas são emprestadas à amigos, colegas e familiares para
nunca mais serem devolvidos, muitas vezes o motivo de não serem devolvidos é que são
esquecidos ou quem pegou emprestado acha erroneamente que já devolveu o item. Buscando
solucionar esse problema, foi desenvolvido o aplicativo “That is mine!”, que permite ao usuário
gerenciar seus empréstimos, listando quais itens, quando e para quem foram emprestados, além
de permitir que o usuário tire uma foto da outra pessoa com o iten para usar como prova em
um possível processo.
O desenvolvimento iniciou-se com a estruturação da interface, usando a biblioteca
JQuery mobile, que permite criar páginas responsivas e visualmente agradáveis de maneira
fácil e rápida, como ponto negativo, pode-se citar o fato de que diferentes interfaces criadas
usando Jquery Mobile acabam obtendo um visual muito parecido, requerendo uma grande
quantidade de trabalho extra caso seja necessário diferencia-la das demais.
Utilizou-se o AngularJS para a estruturação da arquitetura MVC e para a exibição de
alguns elementos da interface. Ambas as bibliotecas possuem ferramentas para navegação entre
páginas em “One Page Applications”, porém, para evitar conflitos, o Jquery Mobile foi
utilizado para essa tarefa. Essa escolha se deu ao fato de que a implementação com JQuery
Mobile se dá de forma mais transparente e direta, enquanto no Angular é necessário o uso das
Partials.
Para o armazenamento dos dados, foi usado o único banco de dados suportado por todas
as versões do Firefox OS, o IndexedDB, que é um banco de dados não relacional, ou seja, não
faz uso de tabelas, ao invés disso ele faz uso de “Data Stores”, onde são armazenados objetos
inteiros. As conexões e chamadas com o banco são feitas de maneira relativamente complexas
à primeira vista, e de forma assíncrona. Esses fatores, juntamente com a falta de conhecimento
prévio sobre a ferramenta fizeram com que o processo de inserção e acesso aos dados tomassem
a maior parte do tempo de desenvolvimento
Para a conclusão de um dos requisitos iniciais do trabalho, que era a opção de tirar fotos
dos itens que fossem emprestados, foi iniciada uma pesquisa sobre como acessar a câmera de
um dispositivo com Firefox OS, mas haviam diversas informações conflitantes sobre como
acessa-la e sobre as permissões necessárias para tal. Por fim foi verificado que nas novas
versões do sistema operacional, o acesso direto à câmera só era possível para desenvolvedores
“autenticados”, porém há uma série de elementos dos dispositivos como câmeras e
acelerômetros que podem ser acessados através das “Activities”. Essas Activities buscam
fornecer aos usuários uma interface que seja consistente entre diferentes aplicações.
Testes automatizados não foram utilizados porque com exceção ao CRUD, a
manipulação de dados é praticamente nula
Por último foi constatado que o suporte à datas do javascript que inicialmente parece
ser alto, na verdade é bastante limitado, requerendo o uso de outras bibliotecas para sua
manipulação de forma prática. Como o Jquery também não oferece suporte a datas, decidiu-se
por utilizar a biblioteca Date.JS.
A aplicação possui uma interface funcional, bonita, simples, touch e mobile friendly.
Diversas novas opções poderiam ser adicionadas, mas devido a limitações de tempo isso não
foi possível.
Download

relatório de desenvolvimento – that is mine