domingo, 11 de maio de 2014
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:
- Sequência telas do programa e a interação com o usuário:
- Fazer um protótipo funcional das telas do programa com o mínimo de funcionalidades do projeto (para a primeira entrega)
- A funcionalidade minima é um jogo sem interação com o servidor e sem sistema de pagamento.
- mesmo sem esses aspectos implementados nosso protótipo deve ser pensado de modo permitir a inclusão das telas (que devem ser criadas)
- Pesquisas necessárias:
- Como fazer os menus?
- Como fazer transições de tela?
- Como tocar mp3
- 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)
- podemos carregar uma imagem no banco de dados?
- podemos carregar uma imagem da internet?
- 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:
- http://coronalabs.com/blog/2013/09/03/tutorial-understanding-in-app-purchases/
- https://www.google.com.br/#q=consumable+in+app+android
- http://developer.android.com/google/play/billing/api.html
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).
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.
É 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:
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:
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.
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
https://drive.google.com/folderview?id=0B1V0PBgnh-yHaHNQdjc1TjJTekk&usp=sharing
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.
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/forumsEm:
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.
Assinar:
Postagens (Atom)