domingo, 11 de maio de 2014

Alteracao no banco de dados

Uma atualização foi feita na estrutura do banco de dados a partir da reunião, segue o diagrama de banco:


sábado, 10 de maio de 2014

Reunião do dia 11 de maio de 2014

Estamos fazendo conferências esporádicas semanais para dar segmento aos trabalhos com compartilhamento de telas. Esta é a melhor forma encontrada pelo grupo devido ao fato de que não temos horários nem locais para nos encontrar pessoalmente para realizar os trabalhos. Além disso cada um está usando seu próprio computador pessoal e isso facilita em muito o trabalho. Segue um print do dia 11 de maio de 2014:



Precisamos pesquisar, além de outras coisas como implementar os seguintes aspéctos:
  1. Sequência telas do programa e a interação com o usuário:
    1. Fazer um protótipo funcional das telas do programa com o mínimo de funcionalidades do projeto (para a primeira entrega)
      1. A funcionalidade minima é um jogo sem interação com o servidor e sem sistema de pagamento.
      2. mesmo sem esses aspectos implementados nosso protótipo deve ser pensado de modo permitir a inclusão das telas (que devem ser criadas)
    2. Pesquisas necessárias:
      1. Como fazer os menus?
      2. Como fazer transições de tela?
      3. Como tocar mp3
      4. Como mostrar imagens no android? (para o caso de alguma tela mostrando os detalhes do ponto turístico, para que seja possível usar imagens para outros fins)
        1. podemos carregar uma imagem no banco de dados?
        2. podemos carregar uma imagem da internet?
      5. Como mostrar imagens no mapa?

sexta-feira, 2 de maio de 2014

Pesquisa sobre como vender moeda no android

Os seguintes links tratam de venda de itens consumíveis dentro das aplicações no Android, e podem ser usados como referência na criação de um pacote de moedas para a venda interna, usando o serviço do google:


Para testar a venda de componentes internos no android é necessário fazer um cadastro no "Google Play Developer Console" e no "Google Wallet", o cadastro requer um numero de cartão de credito ou debito: https://play.google.com/apps/publish/signup/

Os produtos são cadastrados em painel do google play, onde o desenvolvedor pode citar o GUID e valor venda dos produtos. Sua aplicação envia mensagens para a aplicação do google play instalado no dispositivo e o google play faz todo o processo de venda, sendo que sua aplicação tem como obter a informação de que o produto foi vendido depois. Existe a possibilidade de "consumir" o produto, fazendo com que ele possa ser comprado mais de uma vez.

OBS: Eu só não me inscrevi no Google Wallet porque tem um único campo para cartão de crédito ou debito, e o meu cartão é crédito a partir do primeiro uso dele como crédito: eu não quero abrir o serviço "por acidente" e pagar anuidade no cartão. O melhor jeito é usar um cartão pré-pago ou desabilitar de vez a função credito do cartão. O custo da licença em maio de 2014 fica em torno de 60 reais (considerando os 3% da taxa de cambio).

terça-feira, 29 de abril de 2014

Print da reunião do dia 30 de abril de 2014

Estamos fazendo conferências esporádicas semanais para dar segmento aos trabalhos com compartilhamento de telas. Esta é a melhor forma encontrada pelo grupo devido ao fato de que não temos horários nem locais para nos encontrar pessoalmente para realizar os trabalhos. Além disso cada um está usando seu próprio computador pessoal e isso facilita em muito o trabalho. Segue um print do dia 30 de abril de 2014:



segunda-feira, 28 de abril de 2014

Diagrama de banco do sistema

Abaixo apresentamos um diagrama de banco do sistema feito em uma reunião da equipe que aconteceu hoje (28/04/2014), este banco deve ser executado nos clientes Android, ainda não temos banco de dados para replicação no servidor, mas provavelmente a tabela rank fará parde de um banco de dados no servidor.




Entendendo "Fragments" no android

Os "Fragments" servem para criar um design responsivo no Android, bem como para criar paginação. Um "Fragment" pode ser usado em diversas "Activities" permitindo a reutilização de código. Estes vídeos trazem um padrão de projetos usando "Fragments" no Android criando 2 "Activities": uma para o dispositivo na horizontal e outra para o dispositivo na vertical, é bem interessante.

Parte 1


Parte 2


Parte 3

Artigo sobre como usar o Sqlite no Android

Nesse projeto o Sqlite pode ser usado tanto para a venda interna de "componentes" quanto para o armazenamento da latitude e longitude dos pontos turísticos, segue um tutorial de como usar o SQLite no android.

É necessário criar uma classe que herda android.database.sqlite.SQLiteOpenHelper (essa classe é usada para criar o banco ou atualizar o banco, através de um controle de versão), uma classe para representar cada tabela do banco e diversas classes para consultas: "xxxDataSource".

As consultas retornam uma instancia da classe android.database.Cursor que é usada para fazer a iteração entre os elementos.

O banco de dados pode ser modelado no sqlitestudio, de onde podem ser extraídos os códigos para gerar o banco, isso facilita muito o processo.

Segue um link para o tutorial completo:

http://www.vogella.com/tutorials/AndroidSQLite/article.html.

quarta-feira, 16 de abril de 2014

hello maps

Olá, estamos disponibilizando um exemplo hello maps baseado neste video:



Este tutorial foi executado e a fonte pode ser encontrada aqui, também está disponível um "apk" compilado na pasta bin que pode ser executado no seu dispositivo Android. Quem quiser clonar o repositório vai ter que gerar sua própria chave de desenvolvedor GRATUITA PARA TESTES. As instruções no para gerar uma chave de testes podem ser encontradas no video, ou no endereço: https://developers.google.com/maps/documentation/android/

terça-feira, 8 de abril de 2014

Nome: Let’s Find

Descrição: Este jogo será desenvolvido para dispositivos móveis. É direcionado ao entretenimento dos usuários através do teste de conhecimentos sobre os pontos turísticos em determinada região. O objetivo do jogo consiste em o usuário a partir de uma determinada localização geográfica descubra os pontos turísticos existentes no  lugar. Quando este é encontrado são exibidas informações como: fundação, visitas, valor do acesso, entre outros.

Funcionamento: Ao instalar o jogo o usuário informa seu país de origem, e recebe uma cota com 30 zohan’s ( moeda do jogo ), quando clica em iniciar é exibido o mapa do mundo, ocorre um zoom para o país do usuário, um nome de ponto turístico é exibido na tela e o usuário começa a tentar acertar onde fica, cada tentativa lhe custará 3 zohan’s, e de acordo com os acertos dos pontos turísticos, vai aumentando a dificuldade e passam a ser sorteados nomes de pontos turísticos de todo mundo. O ganho será através da compra de zohan’s pelo usuário.
Em determinado tempo é recarregado automaticamente o valor inicial de 30 zohan’s, é uma forma de tornar o jogo acessível para todos, e visando também a idéia de que os brasileiros não estão acostumados a pagar por aplicativos e jogos. O usuário receberá duas notificações todas as vezes que acabarem seus zohan’s, uma delas será para votar na aplicação na Google Play e ganhará zohan’s de acordo com a pontuação dada, e a segunda notificação será para o usuário parear o jogo com as contas do twitter, facebook e instagram, ao fazer isto ele também ganhará zohan’s ( essas notificações só são exibidas enquanto o usuário não aceita e não concorda com os termos, após concordar o usuário deixa de visualizar essas notificações ), após isso toda vez que acessar o jogo pela primeira vez no dia são exibidas na timeline do usuário uma postagem sobre o jogo.

Abaixo segue um protótipo do jogo:







Logo abaixo podemos visualizar no mapa conceitual a representação gráfica das definições do nosso conceito:


domingo, 30 de março de 2014

Design Thinking

Design Thinking é um processo que reúne pessoas de diversas areas e com níveis de conhecimento diferentes, como forma de propor soluções para um determinado produto ou serviço.




De acordo com o vídeo, o processo ocorre da seguinte forma:

A partir de uma comunidade heterogênea de profissionais de diversas áreas, são geradas várias idéias diversas de produtos e/ou serviços para atender a um público alvo.

Ex: uma empresa que quer conquistar consumidores para vôos nacionais, através de serviços agregados.

As idéias são transformadas em produtos ou serviços que são levadas a uma “comunidade” de consumidores onde sua aceitação pode ser testada.

Uma vez que o processo é centrado no usuário, as opiniões sobre os produtos além de novas idéias emergentes no processo podem servir de base para que uma idéia inicial possa ser descartada ou evoluir gerando produtos ou serviços com um diferencial no mercado.

Os usuários são instigados por meio de perguntas não convencionais a trazerem respostas “inesperadas” que podem ser exatamente a respostas necessárias para um negócio bem sucedido.

Os custos do processo são geralmente menores em comparação com a contratação de profissionais especializados no mercado consumidor.

Trazendo para o contexto de desenvolvimento de jogos em Android, de acordo com essa proposta, é necessário testar cada uma das idéias dos membros do grupo responsável pela elaboração do jogo pela aceitação do cliente, instigando os clientes em potencial a comentarem.

No caso do nosso grupo de desenvolvimento, isso tem dois objetivos, o primeiro é a melhoria do produto, trazendo algo inovador na medida do possível fazendo com que o produto ganhe maior visibilidade no mercado, e o segundo é que o produto ganhe uma maior visibilidade pela quantidade de comentários, fazendo com que ele ganhe uma posição de destaque na loja do Google.

O ADB Driver não estava funcionando: como eu resolvi


Depois de ter instalado e desinstalado o Driver várias vezes sem sucesso, eu li isto aqui e percebi:

http://stackoverflow.com/questions/6469646/adb-devices-cant-find-my-phone

Eu instalei tanto o Adroid SDK quando o Adroid Studio (que vem com o sdk),
No meu caso foram criadas as seguintes pastas no sistema:

"...\ans\sdk\platform-tools"  e "...\adt\sdk\platform-tools"

Ambos possuem um programa chamado adb.exe, para isso eu executei exatamente o que está dito no post acima. No caso eu criei dois arquivos .bat em cada pasta e executei:

adb.exe kill-server

nas duas pastas e:

adb.exe start-server

em somente uma das pastas, para que o "serviço" fosse iniciado apenas uma vez.

Além disso é interessante olhar esta postagem: http://stackoverflow.com/questions/15721778/adb-no-devices-found, pois existe um arquivo de texto que precisa ser editado para que o driver funcione corretamente. este tutorial mostra como obter algumas informações e adicionar no arquivo manualmente. Existe uma ferramenta chamada USB Driver Tool que faz o mesmo processo de forma mais fácil.


sábado, 29 de março de 2014

Video Aula sobre o AndEngine (em inglês):

Este tutorial pode servir de base para a configuração do ambiente:




Estas fontes podem ser usadas para fazer este tutorial:

https://github.com/search?p=2&q=%40nicolasgramlich+AndEngine&type=Repositories



Códigos compilados:


https://drive.google.com/folderview?id=0B1V0PBgnh-yHaHNQdjc1TjJTekk&usp=sharing



Bugs:

Soluções encontradas no forum do Andengine:  www.andengine.org/forums



Em:

org.andengine.examples.HullAlgorithmExample

Na linha 11:

"import org.andengine.entity.primitive.vbo.DrawMode;"

Foi substituído por:

"import org.andengine.entity.primitive.DrawMode;"



Em:

org.andengine.examples.TextBreakExample

Na linha 106:

this.mText = new Text(50, 40, this.mFont, "", 1000, new TextOptions(AutoWrap.LETTERS, AUTOWRAP_WIDTH, Text.LEADING_DEFAULT, HorizontalAlign.CENTER), vertexBufferObjectManager);

Foi substituído por:

this.mText = new Text(50, 40, this.mFont, "", 1000, new TextOptions(AutoWrap.LETTERS, AUTOWRAP_WIDTH,  HorizontalAlign.CENTER, Text.LEADING_DEFAULT), vertexBufferObjectManager);



Em:

org.andengine.examples.BoundCameraExample

Na linha 220:

final AnimatedSprite face = new AnimatedSprite(pX, pY, this.mBoxFaceTextureRegion, this.getVertexBufferObjectManager()).animate(100);

Foi substituído por:

final AnimatedSprite face = new AnimatedSprite(pX, pY, this.mBoxFaceTextureRegion, this.getVertexBufferObjectManager());

face.animate(100);



Em:

org.andengine.examples.SplitScreenExample

Na linha 179:

final AnimatedSprite face = new AnimatedSprite(pX, pY, this.mBoxFaceTextureRegion, this.getVertexBufferObjectManager()).animate(100);


Foi substituído por:

final AnimatedSprite face = new AnimatedSprite(pX, pY, this.mBoxFaceTextureRegion, this.getVertexBufferObjectManager());

face.animate(100);



Os demais problemas de compilação podem ser encontrados através de buscas no google, no forum do Andengine, ou no próprio vídeo.