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.