sábado, 30 de outubro de 2010

O cliente tem sempre razão..

Continuando...

Abaixo uma visão das notas dos alunos.
O professor pode incluir uma avaliação, e dar notas para seus alunos.






As representações gráficas diminuiram, foi adicionado um gráfico de barra para indicar o estado do aluno.




domingo, 17 de outubro de 2010

Diário HTML

Olá, depois de muito trabalhar...

Temos um diário feito inteiramente em HTML (tabelas) que servirá como template para impressão.






O processo com XLS do Excel é muito trabalhoso (para não dizer impossível).
Esse modelo foi gerado com base em um diário fornecido pelo professor Ivan.

Um abraço e até a próxima.

terça-feira, 12 de outubro de 2010

Progressos no LhamaDroid

Assim como prometido, vou colocar todos os avanços no LhamaDroid até o momento
Os principais trabalhos foram no sentido de implementar o banco de dados para que os dados reais fossem exibidos pelas telas. Então as listas de aluno, aulas e matérias já são carregadas a partir do banco, e as presenças já são modificadas nas telas de controle.

Lista de aulas carregada do banco

Título da tela (UML) agora corresponde à aula atual

O resumo da chamada corresponde aos totais registrados no banco

A lista de alunos é carregada do banco e 
ao modificar uma presença o valor é atualizado no banco

A lista de matérias que o professor 
ministra também corresponde ao banco

Tela de controle de presenças apresenta dados reais

Uma das maiores dificuldades no período foi a tela de controle de presenças, com a Expandable List do Android. Não encontrei nenhum tutorial na internet então me baseei na documentação e consegui após vários problemas fazer a lista carregar corretamente. Publicarei ainda um tutorial, com alguns cuidados a implementação é bem simples.

Agora implementadas as classes de persistência (que ainda passarão por ajustes) o próximo passo é o mais complexo, a integração com o serviço PHP sendo desenvolvido pelo Joaci, e a utilização de Bluetooth para realizar a chamada e trafegar dados. Tentarei manter uma frequência maior de publicação no blog nesse período.

sábado, 2 de outubro de 2010

SQLite no Android

Agora que já falei sobre o SQLite, vamos colocá-lo no contexto do Android.
O SQLite já faz parte do Android por definição, então já está disponível para qualquer desenvolvimento.
É possível inclusive acessar o arquivo .db a partir do emulador da SDK do Android, modificando o mesmo com qualquer programa que leia este tipo de arquivo, até com a extensão do firefox que comentei no outro artigo.
Para encontrar este arquivo, utilizando o eclipse, altere para a perspective Dalvik Debug Monitor Server (DDMS) e navegar para Data > Data > [Aplicação] > DataBases > [nome da Base], conforme print:


É muito prático trabalhar diretamente com a base, que pode ser transferida diretamente para o emulador depois de alterada.

Agora, seguindo na implementação do Android, a API oferece uma classe chamada SQLiteOpenHelper, que deve ser extendida e representa uma base de dados SQLite. No construtor é informado o nome da base sendo criada e a versão atual (que deve ser incrementada quando o app for atualizado), além de uma customização do cursor utilizado pelo banco (caso você tenha implementado uma).


public class DataBaseHelper extends SQLiteOpenHelper {


public DataBaseHelper(Context context) { 
super(context, DATABASE_NAME, null, 1);
}
}


Outros métodos importantes são o onCreate e o onUpgrade, que contém respectivamente os scripts de criação e de atualização da estrutura do banco.


//Executa as rotinas de criação das tabelas do banco
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE A");
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
//Executar scripts que devem ser rodados quando o banco sofre alteração numa atualização

}

Quando esta classe estiver implementada o banco já poderá ser utilizado. Utilizando o trecho abaixo é possível criar um objeto do tipo SQLiteDatabase, que oferece acesso às tabelas, oferecendo métodos para realizar CRUD.

SQLiteDatabase db = new DataBaseHelper(context).getReadableDatabase();        
db.rawQuery("SELECT * FROM TABLE", null); 

As consultas retornam cursores, que provavelmente não são novidade para quem já mexeu com outras bases de dados.

No contexto do lhama, os meus progressos foram:
-Adaptar a base de dados para o SQLite
-Preparar uma carga de exemplo para testes
-Integrar as consultas com as Views do Android para que os dados sejam manipulados.

A última parte consumiu a maior parte do meu tempo, especialmente na integração dos cursores do banco de dados com a ExpandableList do Android. O print abaixo já mostra a lista com dados carregados a partir do banco, já atualizando as presenças das aulas cadastradas quando o checkbox é alterado. Foi desenvolvido numa aplicação a parte para focar o meu trabalho nesta atividade.



SQLite, o pequeno notável

É pessoal, manter um blog atualizado não é fácil, então vou tentar tirar o atraso com uma série de posts contando o progresso nesse meio tempo.
Vou começar com o SQLite, que para quem não sabe, é o banco de dados implementado no Android.
Também é o mesmo banco utilizado no iPhone, e utilizado em vários lugares, como por exemplo para guardar as configurações do firefox (tanto que o firefox tem uma extensão para acessar bancos SQLite).
Como descrito no site oficial, o SQLite não é um concorrente do Oracle ou de bancos de grande porte, apenas é uma opção mais interessante do que utilizar persistência diretamente em arquivo, utilizando-se da estrutura do SQLite, já muito bem consolidada.



Os pontos interessantes do SQLite são que ele possui tipos apenas por "formalidade", com o exemplo fica um pouco mais fácil de entender: Ao criar uma coluna do tipo Integer, não é obrigatória a utilização de inteiros nessa coluna. Podemos inserir texto, datas, horas, enfim, qualquer tipo nessa coluna. Cabe ao programador utilizar este recurso de forma consciente para manter a consistência do banco.


Agora no contexto do Lhama, o meu trabalho foi adaptar o banco de dados estruturado em MySql para SQLite, e conhecer mais sobre a utilização do mesmo no Android, o que será tema do próximo post.

domingo, 19 de setembro de 2010

Aplicação rica!?



Boa noite!

Enfim começamos com o ambiente do professor:
Eu acredito que está bonito.
A idéia é que o professor ao clicar em algum do serviços veja as matérias que leciona e ao clicar nessa "pasta" como nome da matéria lhe será mostrado as ferramentas relacionadas as matérias/turmas.

Penso ser um dos processos mais trabalhosos....Mas tem que ser feito!






Complementando:

Agora uma imagem da visão que os professores vão ter dos alunos que cursam sua matéria.



Até a próxima!

quinta-feira, 9 de setembro de 2010

WBS


Olá pessoal segue uma fotinha do WBS, esperamos manter este escopo até o final do projeto.