Image Image Image Image Image
Scroll to Top

Topo

eclipse

13

nov
2011

Sem Comentários

Em Blog

Por Allison

H4Android – primeiro contato com o framework

Em 13, nov 2011 | Sem Comentários | Em Blog | Por Allison

Desenvolvi um framework para orm no Android (é eu sei já existem alguns muito bons por sinal, so que no meus projetos eu buscava soluções o menos intrusivas possível e terminei chegando à conclusão de que era melhor eu desenvolver minha propria solução.).

Com o h4Android você não precisa extender suas classes de nenhuma interface, nem seguir “receita de bolo”, você simplemente cria suas classes no estilo POJO e usa as anotações.

Vamos ao tutorial:

Objetivo

Neste tutorial tenho o intuito de apresentar o usuário a uma simples utilização do framework para criar uma base de forma dinâmica baseado no modelo mapeado, bem como um pequeno exemplo de persistência baseado num objeto pertencente à uma classe mapeada.

Crie um novo projeto Android no Eclipseb

  • Informe o nome do projeto como testh4a.
  • Informe a versão que deseja utilizar Android 2.2.
  • Informe o nome do pacote br.org.h4a.test, neste ponto você já pode finalizar a criação do projeto;

Acesse a página do projeto no em http://code.google.com/p/h4android/, vá na aba Downloads e baixe o arquivo h4android_2_2-0.0.0.1.jar. Salve numa pasta de sua preferência.

De posse da biblioteca h4android_2_2 selecione seu projeto clique no botão direito do mouse e selecione a opção propriedades, selecione a opção Java Build Path, na aba Libraries clique em Add External JARs… localize a biblioteca h4android_2_2, em seguida clique no botão OK.

Bem neste ponto sua aplicação já está apta a utilizar o framework. Vamos lá então:

Crie um pacote qualquer no seu projeto para inserir as classes que devem ser mapeadas como entidade no banco de dados, eu criei um pacote com o seguinte nome br.org.h4a.test.model.

Dentro deste pacote vamos uma classe para utilizar no nosso exemplo. Crie a classe Contato com o seguinte conteúdo

package br.org.h4a.test.model;

public class Contato {

    private Integer id;
    private Integer version;
    private String nome;
    private String telefone;
    private String celular;
    private String email;

}

Assim que concluirmos o mapeamento desta classe não esqueça de criar os métodos get e set de cada atributo.

Vamos ao mapeamento então:

package br.org.h4a.test.model;

@Entity
@Table("TBL_CONTATO_")
public class Contato {

    @Id
    private Integer id;
    @Version
    private Integer version;
    @Column(name = "_NOME", length = 50, allowNulls = false, typeColumn = TypeColumn.VARCHAR)
    private String nome;
    @Column(name = "_TELEFONE", length = 14, allowNulls = false, typeColumn = TypeColumn.VARCHAR)
    private String telefone;
    @Column(name = "_CELULAR", length = 14, typeColumn = TypeColumn.VARCHAR)
    private String celular;
    @Column(name = "_EMAIL")
    private String email;

}

A explicação detalhada de cada anotação esta no documento na página do projeto.

Bem, agora basta criar os métodos get e set dos atributos.

Agora vamos por o h4Android para funcionar, iremos fazer uma chamada simples para inserir um objeto do tipo Contato.

Abra a classe Testh4aActivity esta é a activity principal da aplicação (aliás a única!!). Logo após a linha que contem o código setContentView, vamos começar os testes do framework.

Digite as seguintes linhas:

        //**********************************************************************
        PersistenceManagerA22 pm = null;
        List<String> classes = new ArrayList<String>();
        classes.add("br.org.h4a.test.model.Contato");
        try {
            pm = new PersistenceManagerA22(
            /*contexto para conexão*/         this,
            /*nome para a base de dados*/     "base_da_aplicacao_testh4a.db",
            /*versao da base de dados*/       1000,
            /*lista string com as entidades*/ classes ,
            /*modo de conexão do android*/    Context.MODE_PRIVATE,
            /*modo de conexao do framework*/  ModelBeavior.RENEW,
            /*habilita o log do framework*/   1
                                          );
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (InstantiationException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }
        //**********************************************************************

Bem a partir deste ponto podemos simplesmente criar um objeto do tipo Contato setar algumas informações e usar o método insert do PersistenceManagerA22 pm.

Inclua em seguida o seguinte trecho de código:

        Contato contato = new Contato();
        contato.setVersion(1000);
        contato.setNome("Carlos Timoshenko");
        contato.setTelefone("85 0000 0000");
        contato.setEmail("carlostimoshenkorodrigueslopes@gmail.com");

        // Neste ponto quando o framework tentar inserir o objeto contato, será
        // detectado que a base ainda nao existe e h4android ira gerar o ddl da
        // base e gerar a mesma do "zero".
        // Como o log esta ativado poderemos ver o feedback do framework criando
        // as tabelas e inserindo um objeto do tipo Contato
        pm.insert(contato);
        pm.close();

Bem agora é só por a aplicação para rodar e acompanhar o LogCat no Eclipse mostrando as mensagens do h4Android.

Quando você por sua aplicação para rodar o h4android tentará persistir um objeto do tipo Contato, como a base de dados não existe então o framework gera o DDL do seu banco e cria para você, além de inserir o objeto de forma transparente.

Você pode copiar esta banco de dados SQLite que foi criado no emulador para o seu pc e acessar diretamente pelo console usando o cliente do próprio SQLite o sqlite3 e dar um “select * from TBL_CONTATO_;” para confirmar o objeto inserido.

Bem espero que esta ferramenta lhes seja útil, adianto que a mesma se encontra em uso pois atende ao basico de um crud, porém ja estou desenvolvendo novas funcionalidades. Coloco-em à disposição para eventuais dúvidas.

Boa tarde.

Fonte: Timoshenko/PortalAndroid

Tags | , , ,

29

out
2011

Sem Comentários

Em Blog

Por Allison

Nova versão do Orion traz melhorias e novos plugins

Em 29, out 2011 | Sem Comentários | Em Blog | Por Allison

O time de desenvolvimento do Orion anunciou a nova versão da sua ferramenta web para desenvolvimento de aplicativos web, o Orion 0.3. Essa nova versão traz melhorias no editor de código, na integração com o Git e no desenvolvimento de plugins para integração com outras ferramentas.

O Orion é a aposta da Fundação Eclipse para criar um ambiente integrado de desenvolvimento (IDE) disponível na web. O objetivo do Orion é mover o desenvolvimento de sistemas para a web, trazendo a experiência já adquirida com IDEs desktop (Eclipse) para a web. A seguir estão descritas as principais melhorias implementas no Orion 0.3.

Melhorias no editor

O editor de código do Orion agora suporta a busca e substituição de conteúdo (find and replace). O usuário pode acionar a busca através da tecla de atalho Ctrl+F. Outra nova funcionalidade do editor é possibilidade de navegar em links (uma url em comentário, por exemplo) através da tecla Ctrl (ou Cmd).

O editor JavaScript não possui mais dependência para o framework Dojo, isso torna o editor mais leve e favorece o uso de outros frameworks JavaScript durante a codificação. Disponível apenas para JavaScript, por enquanto, o Orion tem a funcionalidade de exibir/ocultar (folding) blocos de comentário quando o usuário navega sob uma área demarcada no código.

Também foram implementadas melhorias na sinalização de erros e warnings. Agora o editor consegue diferenciar warnings e erros, além de apresentar o conteúdo em múltiplas linhas, com um layout mais adequado.

Novos Plugins

Foi desenvolvido um plugin para o Bugzilla, com a funcionalidade de vincular o link do bug/melhoria na descrição do commit no Git. Essa informação permanece junto ao histórico de modificações no repositório.

O desenvolvedor passa a contar com um plugin que integra o Orion com o CSSLint, uma ferramenta que analisa a qualidade do CSS. Também foi criado um plugin para o WebDAV, para a integração de arquivos hospedados no Orion com um servidor WebDAV.

Melhorias na integração com o Git

Foi adicionado suporte ao Git cherry-pick. Essa funcionalidade permite que o desenvolvedor rapidamente identifique as mudanças realizadas em um commit de outro branch.

O Orion passa a suportar o Git Rebase. O Rebase é util para sincronizar modificações realizadas em um branch remoto depois que o branch local foi definido. O desenvolvedor passar a ter mais autonomia para realizar o push de conteúdo em branches remotos. Outra novidade é o nome dos branches na página de logs do Git.

Associar uma conta do OpenID com o perfil

O usuário pode vincular uma conta OpenID com o perfil do Orion. O OpenID é um serviço de autenticação que centraliza as credencias do usuário e permite que outros sites/serviços deleguem a ele o processo de autenticação. Com essa funcionalidade, o usuário pode se autenticar no Orion utilizando uma conta do OpenID.

O Orion está disponível online através do OrionHub e para experimentar a IDE basta criar uma conta gratuita. Existe também opção de realizar o download do Orion e usá-lo localmente que, a partir dessa distribuição, conta com um servidor web embutido e permite que o serviço esteja disponível na máquina do próprio desenvolvedor.

Fonte: Eder Magalhães/InfoQ

Tags | , , , , , , ,

29

jul
2011

Sem Comentários

Em Blog

Por Allison

Reflection: maximizando a produtividade em Java

Em 29, jul 2011 | Sem Comentários | Em Blog | Por Allison

Reflection API (ou Reflexão em português) é muito usado por aplicações que necessitam examinar ou modificar o comportamento de aplicações que estão sendo executadas na maquina virtual Java (JVM). É uma técnica avançada utilizada por programadores mais experientes, mas é extremamente útil, pois é uma técnica poderosa e permite aos aplicativos executar operações que de outra forma seria impossível, geralmente tais técnicas são aplicadas quando quer construir o seu próprio Framework, pois com ela é possível:

Recursos de extensibilidade

Um aplicativo pode fazer uso externo de classes definidas pelo usuário através da criação de instâncias de objetos de extensibilidade usando seus nomes totalmente qualificados, ou seja, únicos.

Navegadores de classe e Ambientes de Desenvolvimento Visuais

Um navegador de classes precisa ser capaz de enumerar os membros de classes, enquanto os ambientes de desenvolvimento visual pode se beneficiar fazendo uso de informações de tipo disponíveis na reflexão para ajudar o desenvolvedor a escrever código correto. Ex. Netbeans e Eclipse

Depuradores e Ferramentas de Teste

Depuradores precisam ser capazes de examinar os membros privados em classes. Ferramentas de teste pode fazer uso de reflexão para sistematicamente chamar um conjunto de APIs detectável definido em uma classe, para assegurar um alto nível de cobertura de código em um conjunto de testes. Ex. jUnit e Debug do Netbeans ou Eclipse.

Quem nunca teve a necessidade de chamar um método pertencente a toda classe e seus objetos chamado getClass(), este método faz parte de um conjunto de métodos para descobrir classes, construtores, campos, métodos além de sua lista de membros, seja eles herdados ou não, ou mesmo privados.

E quando precisamos obter os descritores de uma classe de driver de banco de dados usando, por exemplo, o Class.forName(“com.mysql.jdbc.Driver”).

Fonte: Oracle.Com

Tags | , , , , , ,