O documento descreve um minicurso sobre desenvolvimento de aplicações para dispositivos móveis utilizando JavaME. O minicurso irá cobrir a plataforma JavaME, produção de aplicativos básicos, confecção de telas, desafios de portabilidade, persistência de dados e exemplos de APIs para câmera, SMS e integração com a Web.
Arquitetura De Ap Is GráFicas Do Java Dtv Lwuit E Dtv UiErisvaldo Junior
1. O documento descreve as arquiteturas das APIs Gráficas do JavaDTV, LWUIT e DTV-UI.
2. LWUIT é uma biblioteca baseada no Swing que permite criar interfaces gráficas atraentes em dispositivos móveis e JavaME. DTV-UI fornece funcionalidades específicas para interfaces em TV digital.
3. As APIs permitem acesso aos planos gráficos da plataforma para exibição de conteúdo e fornecem componentes visuais, gerenciamento de eventos e layout
O documento apresenta os principais conceitos do WebSphere MQ, incluindo os três estilos de comunicação entre programas, o papel dos gerenciadores de filas e das filas locais e remotas na comunicação entre aplicativos, e as principais chamadas da interface MQI utilizadas para acessar recursos do MQ.
O documento descreve como o software IZCode pode ser usado para gerar rapidamente programas .NET e Java a partir de bancos de dados. O IZCode importa bancos de dados, permite editar tabelas e campos, criar telas, e então gera o código-fonte desejado.
O documento descreve como criar interfaces gráficas básicas com Android usando o Eclipse. Ele introduz os conceitos de View e ViewGroup e discute vários gerenciadores de layout como LinearLayout, AbsoluteLayout, TableLayout e RelativeLayout. Exemplos de código XML são fornecidos para ilustrar cada gerenciador de layout.
Este documento apresenta os principais conceitos da linguagem de programação Java, incluindo sua história, características, ambientes de desenvolvimento e tipos de programas. O objetivo é capacitar professores do Centro Paula Souza a lecionarem disciplinas sobre desenvolvimento de software orientado a objetos usando a linguagem Java.
O documento descreve um protótipo de sistema de gerenciamento de rotas para transporte coletivo desenvolvido usando Java, JSP, API Google Maps e banco de dados PostgreSQL. O sistema permite gerenciar rotas de forma automatizada, calculando distâncias e custos.
Este documento fornece instruções sobre como programar o primeiro aplicativo para Android usando o Eclipse. Explica como instalar o SDK e o plugin ADT no Eclipse, criar um projeto "Olá Mundo" e executá-lo no emulador. Também apresenta brevemente o DroidDraw para criação de layouts.
UTILIZANDO O FRAMEWORK JBOSS SEAM PARA ACELERAR O DESENVOLVIMENTO DE APLICAÇÕ...Eder Nogueira
O documento discute o uso do framework JBoss Seam para acelerar o desenvolvimento de aplicações corporativas para a web, resumindo que o Seam integra JSF e EJB3 permitindo que os desenvolvedores foquem na lógica do negócio e não no código duplicado entre camadas, e que a criação de componentes Seam com anotações simplifica o desenvolvimento aumentando a produtividade.
Arquitetura De Ap Is GráFicas Do Java Dtv Lwuit E Dtv UiErisvaldo Junior
1. O documento descreve as arquiteturas das APIs Gráficas do JavaDTV, LWUIT e DTV-UI.
2. LWUIT é uma biblioteca baseada no Swing que permite criar interfaces gráficas atraentes em dispositivos móveis e JavaME. DTV-UI fornece funcionalidades específicas para interfaces em TV digital.
3. As APIs permitem acesso aos planos gráficos da plataforma para exibição de conteúdo e fornecem componentes visuais, gerenciamento de eventos e layout
O documento apresenta os principais conceitos do WebSphere MQ, incluindo os três estilos de comunicação entre programas, o papel dos gerenciadores de filas e das filas locais e remotas na comunicação entre aplicativos, e as principais chamadas da interface MQI utilizadas para acessar recursos do MQ.
O documento descreve como o software IZCode pode ser usado para gerar rapidamente programas .NET e Java a partir de bancos de dados. O IZCode importa bancos de dados, permite editar tabelas e campos, criar telas, e então gera o código-fonte desejado.
O documento descreve como criar interfaces gráficas básicas com Android usando o Eclipse. Ele introduz os conceitos de View e ViewGroup e discute vários gerenciadores de layout como LinearLayout, AbsoluteLayout, TableLayout e RelativeLayout. Exemplos de código XML são fornecidos para ilustrar cada gerenciador de layout.
Este documento apresenta os principais conceitos da linguagem de programação Java, incluindo sua história, características, ambientes de desenvolvimento e tipos de programas. O objetivo é capacitar professores do Centro Paula Souza a lecionarem disciplinas sobre desenvolvimento de software orientado a objetos usando a linguagem Java.
O documento descreve um protótipo de sistema de gerenciamento de rotas para transporte coletivo desenvolvido usando Java, JSP, API Google Maps e banco de dados PostgreSQL. O sistema permite gerenciar rotas de forma automatizada, calculando distâncias e custos.
Este documento fornece instruções sobre como programar o primeiro aplicativo para Android usando o Eclipse. Explica como instalar o SDK e o plugin ADT no Eclipse, criar um projeto "Olá Mundo" e executá-lo no emulador. Também apresenta brevemente o DroidDraw para criação de layouts.
UTILIZANDO O FRAMEWORK JBOSS SEAM PARA ACELERAR O DESENVOLVIMENTO DE APLICAÇÕ...Eder Nogueira
O documento discute o uso do framework JBoss Seam para acelerar o desenvolvimento de aplicações corporativas para a web, resumindo que o Seam integra JSF e EJB3 permitindo que os desenvolvedores foquem na lógica do negócio e não no código duplicado entre camadas, e que a criação de componentes Seam com anotações simplifica o desenvolvimento aumentando a produtividade.
Este documento fornece as melhores práticas para o uso do WebSphere MQ, incluindo: (1) usar nomes curtos para objetos MQ; (2) atribuir uma fila Dead Letter Queue a cada gerenciador de filas; (3) evitar nomes fixos de objetos nos programas.
Desenvolvimento de Apps e Games para Android - Parte 2Erisvaldo Junior
O documento discute o desenvolvimento de aplicativos para Android. Resume o documento em 3 frases:
1) O Android lidera o mercado mundial de smartphones com 35% de quota em 2011, contra 19% do iOS.
2) O Google App Inventor permite criar aplicativos Android visualmente sem código.
3) O documento explica os principais componentes, layouts e primeiros passos para desenvolvimento de aplicativos para Android.
[DESATUALIZADO] Apostila Desenvolvimento Android BásicoMau Salamon
O documento fornece uma introdução básica sobre desenvolvimento Android. Ele discute Java como plataforma, comandos básicos, tipos de dados, operadores, comentários, classes e objetos, pacotes e mais. O documento também apresenta conceitos-chave do sistema operacional Android como atividades, serviços, provedores de conteúdo e mais. Por fim, aborda interface gráfica, layouts, componentes, menus, notificações e recursos.
Este documento apresenta uma introdução ao desenvolvimento para iPhone, discutindo por que desenvolver para a plataforma, os passos para criar uma aplicação e uma introdução ao framework CocoaTouch.
O documento descreve a Model-Driven Architecture (MDA), incluindo seu histórico, papéis, tipos de modelos, tecnologias e ferramentas. A MDA visa criar modelos independentes de plataforma para diminuir esforços de manutenção à medida que sistemas envelhecem.
O documento discute o desenvolvimento de interfaces de usuário multiplataforma utilizando a Arquitetura Orientada a Modelos (MDA). Ele apresenta como a MDA permite a modelagem de interfaces de usuário em diferentes níveis de abstração e a geração de código para plataformas específicas através de transformações. Um estudo de caso é apresentado para ilustrar o processo de modelagem de domínio, interação e geração de interfaces Swing e HTML.
1. O documento discute as interfaces de documentos múltiplos (MDI) e de documento único (SDI).
2. MDI permite que várias janelas filhas sejam abertas dentro de uma janela pai compartilhada, enquanto SDI trata cada janela como uma entidade separada.
3. MDI pode economizar espaço na tela e ser mais fácil de implementar, mas SDI funciona melhor com múltiplos monitores e aplicativos e permite que as janelas sejam organizadas de forma mais flexível.
1. O documento descreve os requisitos técnicos e de software para um curso de programação web, incluindo sistemas operacionais e hardwares suportados, configurações recomendadas e necessárias, e softwares requeridos como o NetBeans IDE e Java Development Kit.
O documento introduz a plataforma Java ME, descrevendo suas camadas, recursos e como desenvolver aplicativos MIDlets, incluindo codificação de um "Olá Mundo", empacotamento e implantação em um servidor web para instalação OTA nos dispositivos móveis.
O documento apresenta conceitos sobre desenvolvimento para a plataforma Android, incluindo preparação do ambiente de desenvolvimento, criação de projetos, layouts, persistência de dados e comunicação com a web. Exemplos de exercícios práticos são fornecidos para demonstrar o uso de layouts, activities, dialogs e armazenamento de dados em SharedPreferences e arquivos internos.
O documento introduz conceitos básicos sobre J2ME, incluindo o que é um dispositivo wireless, por que usar J2ME, como deve parecer uma aplicação J2ME e o que são configurações, perfis e MIDlets.
Este documento fornece instruções sobre como programar o primeiro aplicativo para Android usando o Eclipse. Explica como instalar o SDK e o plugin ADT no Eclipse, criar um projeto "Olá Mundo" e executá-lo no emulador. Também apresenta brevemente o DroidDraw para criação de layouts.
Este documento fornece instruções sobre como programar o primeiro aplicativo para Android usando o Eclipse. Explica como instalar o SDK e o plugin ADT no Eclipse, criar um projeto "Olá Mundo" e executá-lo no emulador. Também mostra como usar o DroidDraw para criar layouts de tela.
O documento discute o desenvolvimento de aplicativos móveis usando a plataforma Java. Apresenta os conceitos-chave da plataforma Java ME, incluindo configurações, perfis e máquinas virtuais. Também discute tópicos como ciclo de vida de MIDlets, pacotes importantes e boas práticas de projeto para aplicativos móveis.
Web service permite a integração de sistemas e comunicação entre aplicações através de formato XML, permitindo que novas aplicações interajam com as existentes e sistemas de plataformas diferentes sejam compatíveis. MS SQL Server é um sistema gerenciador de banco de dados relacional desenvolvido pela Microsoft para armazenar e recuperar dados solicitados por outras aplicações. Hibernate é um framework Java que realiza mapeamento objeto-relacional para diminuir a complexidade de trabalhar com bancos de dados relacionais.
1) O documento descreve o desenvolvimento de um aplicativo para Pocket PC para controle de pedidos em restaurantes, permitindo que os pedidos sejam feitos no PDA do garçom e enviados para a cozinha e caixa de forma sincronizada.
2) O aplicativo foi desenvolvido usando a plataforma Windows Mobile e a linguagem C#, e consiste em três partes - uma para o garçom no PDA, outra para a cozinha e outra para o caixa, comunicando-se por uma rede sem fio.
3) O documento discute os requisitos de
O documento descreve duas plataformas de desenvolvimento para dispositivos móveis: Android e Qtopia. Ele explica a arquitetura e componentes principais do Android, incluindo o kernel Linux, bibliotecas, Dalvik VM, framework de aplicações e blocos de construção como Activity. Também fornece um breve histórico e descrição da arquitetura do Qtopia.
O documento fornece uma introdução ao Android, incluindo sua história, arquitetura, ferramentas de desenvolvimento e elementos-chave de aplicativos. Ele discute o que é o Android, suas características, versões, arquitetura de camadas, componentes de aplicativos, ciclo de vida de atividades, ferramentas, estrutura de diretórios de projetos e o Android Market.
Curso Android - Dia 1 - Apresentação javaAlex Braz
O documento discute conceitos básicos de programação em Java e Android, incluindo: 1) Conceitos fundamentais da linguagem Java; 2) Como desenvolver aplicativos para dispositivos móveis considerando a interface do usuário; 3) Arquitetura e ciclo de vida de aplicativos Android.
Este documento apresenta um trabalho acadêmico sobre o sistema operacional Android. O trabalho descreve a história e origem do Android, suas características principais como um sistema livre e de código aberto, e as vantagens em relação a outros sistemas. O documento também discute o ambiente de desenvolvimento Android e os principais conceitos por trás do desenvolvimento de aplicativos para o sistema.
1) O documento é uma apostila sobre J2ME que introduz os conceitos básicos dessa tecnologia, incluindo suas configurações, perfis e APIs.
2) É explicado que J2ME é voltado para dispositivos móveis limitados em recursos e que o MIDP é o perfil mais comum, definindo requisitos de tela, memória e entrada.
3) O ciclo de vida de uma MIDlet é descrito, desde a compilação e empacotamento até a execução controlada pelo Application Manager.
1) O documento é uma apostila sobre J2ME que introduz os conceitos básicos dessa tecnologia, incluindo suas configurações, perfis, APIs e diferenças entre as versões MIDP 1.0 e 2.0.
2) A apostila ensina como criar projetos em J2ME usando o Wireless Toolkit, compilar código, empacotar aplicativos e testá-los em emuladores, além de explicar conceitos como obfuscation e ciclo de vida de MIDlets.
3) A maior parte do documento é dedicada a forn
Este documento fornece as melhores práticas para o uso do WebSphere MQ, incluindo: (1) usar nomes curtos para objetos MQ; (2) atribuir uma fila Dead Letter Queue a cada gerenciador de filas; (3) evitar nomes fixos de objetos nos programas.
Desenvolvimento de Apps e Games para Android - Parte 2Erisvaldo Junior
O documento discute o desenvolvimento de aplicativos para Android. Resume o documento em 3 frases:
1) O Android lidera o mercado mundial de smartphones com 35% de quota em 2011, contra 19% do iOS.
2) O Google App Inventor permite criar aplicativos Android visualmente sem código.
3) O documento explica os principais componentes, layouts e primeiros passos para desenvolvimento de aplicativos para Android.
[DESATUALIZADO] Apostila Desenvolvimento Android BásicoMau Salamon
O documento fornece uma introdução básica sobre desenvolvimento Android. Ele discute Java como plataforma, comandos básicos, tipos de dados, operadores, comentários, classes e objetos, pacotes e mais. O documento também apresenta conceitos-chave do sistema operacional Android como atividades, serviços, provedores de conteúdo e mais. Por fim, aborda interface gráfica, layouts, componentes, menus, notificações e recursos.
Este documento apresenta uma introdução ao desenvolvimento para iPhone, discutindo por que desenvolver para a plataforma, os passos para criar uma aplicação e uma introdução ao framework CocoaTouch.
O documento descreve a Model-Driven Architecture (MDA), incluindo seu histórico, papéis, tipos de modelos, tecnologias e ferramentas. A MDA visa criar modelos independentes de plataforma para diminuir esforços de manutenção à medida que sistemas envelhecem.
O documento discute o desenvolvimento de interfaces de usuário multiplataforma utilizando a Arquitetura Orientada a Modelos (MDA). Ele apresenta como a MDA permite a modelagem de interfaces de usuário em diferentes níveis de abstração e a geração de código para plataformas específicas através de transformações. Um estudo de caso é apresentado para ilustrar o processo de modelagem de domínio, interação e geração de interfaces Swing e HTML.
1. O documento discute as interfaces de documentos múltiplos (MDI) e de documento único (SDI).
2. MDI permite que várias janelas filhas sejam abertas dentro de uma janela pai compartilhada, enquanto SDI trata cada janela como uma entidade separada.
3. MDI pode economizar espaço na tela e ser mais fácil de implementar, mas SDI funciona melhor com múltiplos monitores e aplicativos e permite que as janelas sejam organizadas de forma mais flexível.
1. O documento descreve os requisitos técnicos e de software para um curso de programação web, incluindo sistemas operacionais e hardwares suportados, configurações recomendadas e necessárias, e softwares requeridos como o NetBeans IDE e Java Development Kit.
O documento introduz a plataforma Java ME, descrevendo suas camadas, recursos e como desenvolver aplicativos MIDlets, incluindo codificação de um "Olá Mundo", empacotamento e implantação em um servidor web para instalação OTA nos dispositivos móveis.
O documento apresenta conceitos sobre desenvolvimento para a plataforma Android, incluindo preparação do ambiente de desenvolvimento, criação de projetos, layouts, persistência de dados e comunicação com a web. Exemplos de exercícios práticos são fornecidos para demonstrar o uso de layouts, activities, dialogs e armazenamento de dados em SharedPreferences e arquivos internos.
O documento introduz conceitos básicos sobre J2ME, incluindo o que é um dispositivo wireless, por que usar J2ME, como deve parecer uma aplicação J2ME e o que são configurações, perfis e MIDlets.
Este documento fornece instruções sobre como programar o primeiro aplicativo para Android usando o Eclipse. Explica como instalar o SDK e o plugin ADT no Eclipse, criar um projeto "Olá Mundo" e executá-lo no emulador. Também apresenta brevemente o DroidDraw para criação de layouts.
Este documento fornece instruções sobre como programar o primeiro aplicativo para Android usando o Eclipse. Explica como instalar o SDK e o plugin ADT no Eclipse, criar um projeto "Olá Mundo" e executá-lo no emulador. Também mostra como usar o DroidDraw para criar layouts de tela.
O documento discute o desenvolvimento de aplicativos móveis usando a plataforma Java. Apresenta os conceitos-chave da plataforma Java ME, incluindo configurações, perfis e máquinas virtuais. Também discute tópicos como ciclo de vida de MIDlets, pacotes importantes e boas práticas de projeto para aplicativos móveis.
Web service permite a integração de sistemas e comunicação entre aplicações através de formato XML, permitindo que novas aplicações interajam com as existentes e sistemas de plataformas diferentes sejam compatíveis. MS SQL Server é um sistema gerenciador de banco de dados relacional desenvolvido pela Microsoft para armazenar e recuperar dados solicitados por outras aplicações. Hibernate é um framework Java que realiza mapeamento objeto-relacional para diminuir a complexidade de trabalhar com bancos de dados relacionais.
1) O documento descreve o desenvolvimento de um aplicativo para Pocket PC para controle de pedidos em restaurantes, permitindo que os pedidos sejam feitos no PDA do garçom e enviados para a cozinha e caixa de forma sincronizada.
2) O aplicativo foi desenvolvido usando a plataforma Windows Mobile e a linguagem C#, e consiste em três partes - uma para o garçom no PDA, outra para a cozinha e outra para o caixa, comunicando-se por uma rede sem fio.
3) O documento discute os requisitos de
O documento descreve duas plataformas de desenvolvimento para dispositivos móveis: Android e Qtopia. Ele explica a arquitetura e componentes principais do Android, incluindo o kernel Linux, bibliotecas, Dalvik VM, framework de aplicações e blocos de construção como Activity. Também fornece um breve histórico e descrição da arquitetura do Qtopia.
O documento fornece uma introdução ao Android, incluindo sua história, arquitetura, ferramentas de desenvolvimento e elementos-chave de aplicativos. Ele discute o que é o Android, suas características, versões, arquitetura de camadas, componentes de aplicativos, ciclo de vida de atividades, ferramentas, estrutura de diretórios de projetos e o Android Market.
Curso Android - Dia 1 - Apresentação javaAlex Braz
O documento discute conceitos básicos de programação em Java e Android, incluindo: 1) Conceitos fundamentais da linguagem Java; 2) Como desenvolver aplicativos para dispositivos móveis considerando a interface do usuário; 3) Arquitetura e ciclo de vida de aplicativos Android.
Este documento apresenta um trabalho acadêmico sobre o sistema operacional Android. O trabalho descreve a história e origem do Android, suas características principais como um sistema livre e de código aberto, e as vantagens em relação a outros sistemas. O documento também discute o ambiente de desenvolvimento Android e os principais conceitos por trás do desenvolvimento de aplicativos para o sistema.
1) O documento é uma apostila sobre J2ME que introduz os conceitos básicos dessa tecnologia, incluindo suas configurações, perfis e APIs.
2) É explicado que J2ME é voltado para dispositivos móveis limitados em recursos e que o MIDP é o perfil mais comum, definindo requisitos de tela, memória e entrada.
3) O ciclo de vida de uma MIDlet é descrito, desde a compilação e empacotamento até a execução controlada pelo Application Manager.
1) O documento é uma apostila sobre J2ME que introduz os conceitos básicos dessa tecnologia, incluindo suas configurações, perfis, APIs e diferenças entre as versões MIDP 1.0 e 2.0.
2) A apostila ensina como criar projetos em J2ME usando o Wireless Toolkit, compilar código, empacotar aplicativos e testá-los em emuladores, além de explicar conceitos como obfuscation e ciclo de vida de MIDlets.
3) A maior parte do documento é dedicada a forn
O documento discute o desenvolvimento de aplicativos móveis para dispositivos BlackBerry, incluindo recursos, persistência de dados, compilação vs interpretação, webservices, padrões de projeto e ferramentas de desenvolvimento. Também fornece uma breve história da empresa BlackBerry e detalhes sobre seus sistemas operacionais e linguagens suportadas.
Este documento fornece uma introdução sobre como desenvolver aplicativos para Android. Explica as principais partes da plataforma Android como a máquina virtual Dalvik, componentes como activities e services, e ferramentas de desenvolvimento como o Google App Inventor que permite criar aplicativos sem programação. Também discute como configurar o ambiente de desenvolvimento Android.
O documento apresenta uma introdução técnica ao WebSphere Application Server V8.0. Discute sobre a família WebSphere, middleware, tecnologia Java, JEE, WAS v8, IHS, administração e diagnóstico de problemas.
O documento apresenta uma introdução ao desenvolvimento de aplicativos Windows com .NET usando Visual Studio. As principais informações apresentadas são:
1) Uma introdução ao Visual Studio como ambiente de desenvolvimento integrado para construção de aplicações .NET e suas principais funcionalidades.
2) Uma introdução aos conceitos básicos da plataforma .NET como CLR, código gerenciado e suas vantagens.
3) Instruções passo a passo para criar um projeto Hello World simples em C# usando Windows Forms no Visual Studio.
O documento discute a plataforma Java Micro Edition (JME), seu uso em dispositivos móveis, tendências de mercado e oportunidades. Apresenta a arquitetura JME, funcionalidades como conectividade, interatividade e aplicações. Explica como configurar um ambiente de desenvolvimento e criar um "Hello World" JME.
1) O documento apresenta informações sobre o desenvolvimento de aplicativos para Android, incluindo a plataforma Android, o Google App Inventor e um exemplo de aplicação.
2) O Google App Inventor é uma ferramenta que permite a criação de aplicativos para Android sem programação, através de uma interface visual com componentes arrastáveis.
3) A aplicação de exemplo mostrada é o "Miado do Gato", que reproduz o som de um miado ao se tocar na tela.
O documento discute a Java Persistence API (JPA), que é uma especificação para mapeamento objeto-relacional. Ele explica que para criar uma entidade é necessário usar as anotações @Entity e @Id, e que @Id é usado para identificar unicamente uma entidade.
O documento apresenta Diénert de Alencar Vieira e seu histórico profissional, além de um roteiro sobre sistemas web e tecnologias como JSP, Servlets, Facelets, JSF, JBoss Seam, RichFaces e padrões de projeto.
1) O documento descreve as etapas para desenvolver uma aplicação web usando JSF e RichFaces, incluindo configuração do projeto, criação de templates, beans gerenciados e componentes de interface.
2) É explicado como implementar navegação baseada em estados usando beans gerenciados e tags JSF para exibir diferentes partes da aplicação.
3) Detalhes técnicos como configuração no web.xml, criação de utilitários, templates e componentes de menu são apresentados.
O documento discute as opções para desenvolvedores de aplicativos móveis, incluindo as principais plataformas (JavaME, Flash Lite, Android), lojas de aplicativos, e estratégias de distribuição, promoção, análise e monetização. Resume também a história e o futuro do JavaME, e enfatiza a importância de não se ater a uma única plataforma ou tecnologia.
O documento apresenta uma introdução ao JavaFX, discutindo suas principais funcionalidades para desenvolvimento de interfaces gráficas, as novidades da versão 1.2 e dicas para iniciar o uso da plataforma. É destacado o potencial do JavaFX, mas também problemas relacionados à sua distribuição que ainda precisam ser resolvidos.
O documento resume a história da empresa DOMM Assessoria em Informática Ltda, incluindo seus sócios graduados em Ciência da Computação, áreas de especialização em TV digital, processamento de imagens e otimização, e objetivos de abrir seu próprio negócio e estabelecer parcerias. Ele também discute os custos e desafios de manter uma microempresa, bem como oportunidades de incentivo por meio do programa PRIME da FINEP.
O documento apresenta o programa da Sun para integração com universidades, incluindo o programa de Embaixadores, a iniciativa acadêmica SAI e a rede OSUM. O programa de Embaixadores recruta estudantes para divulgar as tecnologias da Sun no meio acadêmico, oferecendo materiais, bolsas e experiência. A SAI fornece treinamentos e certificações online com desconto. A OSUM é uma rede global para discussão sobre open source e eventos com a Sun.
A Redesoft realizou um encontro para discutir sua missão de produzir soluções funcionais, as dificuldades passadas e presentes, os produtos e parcerias atuais, os desafios futuros, as expectativas de mercado e o perfil esperado para profissionais.
O documento discute conceitos básicos sobre coleções no Java. Ele apresenta os objetivos da discussão que são: distinguir cada tipo de coleção, escolher a melhor implementação de coleção para cada uso, conhecer as principais interfaces e implementações de coleção, e entender os conceitos fundamentais de igualdade no Java necessários para trabalhar com coleções.
O documento apresenta informações sobre a empresa Sun Microsystems e sobre programas acadêmicos da Sun, como o SAI (Sun Academic Initiative), OSUM (Open Source University Meetup) e o Programa de Embaixadores. Em 3 frases, o documento discute: 1) A história e as principais linhas de produtos da Sun; 2) Programas da Sun para estudantes e professores universitários, como treinamentos, certificações e comunidades online; 3) Como participar desses programas para aprender sobre tecnologias da Sun e se tornar um Embaixador da Sun.
O documento discute sockets em Java, abordando tópicos como:
1) Definição de sockets e sua representação no sistema operacional;
2) Modelo cliente-servidor e formas de comunicação com e sem conexão;
3) Estados de um socket e primitivas da API de sockets.
Este documento fornece uma visão geral da plataforma Java ME, descrevendo suas principais classes e componentes, como Canvas e GameCanvas, além de exemplos práticos de desenvolvimento de aplicativos móveis e integração com a web.
O documento apresenta a agenda de uma palestra sobre programação concorrente com Java. A parte 1 da agenda inclui introdução, motivação, arquitetura de sistemas, tipos de concorrência, programas e processos e problemas com concorrência. A parte 2 e 3 discutem threads, exclusão mútua e sincronização. A parte 4 aborda introdução a sincronização, semáforos, monitores e o perigo de deadlock.
O documento discute a presença da Sun no meio acadêmico. Ele apresenta a Sun e suas tecnologias, certificações, o programa SAI, a rede OSUM, o programa de embaixadores e eventos realizados na Universidade Federal da Paraíba.
O documento discute o que é software livre, comparando-o com software proprietário e privativo. Ele explica que software livre pode ser usado, copiado, modificado e redistribuído sem restrições, diferentemente do software proprietário. Também discute como projetos como o GNU, Linux e a licença GPL ajudaram a promover o software livre e como desenvolvedores podem ganhar dinheiro e reconhecimento mantendo seu código aberto.
Erisvaldo Gadelha Saraiva Júnior é um tecnólogo e graduando em ciência da computação com experiência em desenvolvimento de aplicações móveis. Seu objetivo é desenvolver aplicações para dispositivos móveis considerando fatores como portabilidade, uso de memória e processamento.
O documento apresenta uma visão geral da plataforma JavaME para desenvolvimento de aplicações móveis, abordando tópicos como perfis CLDC/MIDP, estrutura básica de classes, persistência de dados, emuladores e exemplos práticos de aplicações.
O documento discute o conceito de threads em Java. Uma thread é uma linha de execução dentro de um processo. Um processo pode ter múltiplas threads executando simultaneamente. Threads podem ser criadas extendendo a classe Thread ou implementando a interface Runnable. É necessário iniciar uma thread chamando o método start() para que ela comece a executar.
O documento discute os monitores como uma abordagem para sincronização em programação concorrente. Os monitores fornecem exclusão mútua e sincronização entre processos de forma explícita e centralizada. Eles podem ser implementados como classes em linguagens orientadas a objetos, com variáveis globais, procedimentos de entrada e código de inicialização.
Este documento fornece uma introdução às coleções no Java, discutindo os seguintes pontos:
1) A importância de entender igualdade no Java para trabalhar com coleções;
2) Como sobrescrever corretamente o método equals para definir a igualdade entre objetos;
3) Como o método hashCode está ligado ao equals e também deve ser sobrescrito.
1. Minicurso
Desenvolvimento para Dispositivos Móveis utilizando JavaME
Por Erisvaldo Júnior
Resumo: O presente minicurso tem como objetivo introduzir o
desenvolvimento de aplicações para dispositivos móveis utilizando a
tecnologia JavaME, através de uma abordagem prática. Em um primeiro
momento, será mostrada a plataforma, sua arquitetura e como produzir
aplicativos básicos, utilizando os componentes nativos do J2ME.
Depois, focar-se-á na confecção de telas em baixo nível, nos desafios
de portabilidade, persistência de dados e exemplos demonstrando o uso
de APIs opcionais para manipulação de câmera, envio de SMS/MMS e
integração com a Web através de requisições HTTP. Por fim, serão
mostradas algumas aplicações comerciais desenvolvidas, consolidando o
conteúdo ministrado.
Erisvaldo Júnior é tecnólogo em Sistemas para Internet pelo Instituto Federal de
Educação, Ciência e Tecnologia da Paraíba (IFPB), bem como graduando em Ciência
da Computação pela Universidade Federal da Paraíba (UFPB). Além disso, é
pesquisador no Laboratório de Tecnologias para Ensino Virtual e Estatística
(LabTEVE), também situado na UFPB, fazendo parte da equipe de jogos educacionais
multiplataforma.
E-mail / Gtalk: erisvaldojunior@gmail.com
Site: http://erisvaldojunior.com
Twitter: http://twitter.com/erisvaldojunior
2. Minicurso
Desenvolvimento para Dispositivos Móveis utilizando JavaME
Por Erisvaldo Júnior
Introdução
Entre as tecnologias para desenvolvimento de aplicações para celulares, destaca-se o
J2ME, também chamado de JavaME ou, ainda, JME. Trata-se de uma versão
simplificada do Java, executada sobre uma máquina virtual Java reduzida, a KVM, que
demanda menos recursos que a JVM (Java Virtual Machine).
O J2ME possui duas configurações básicas: CDC (Connected Device Configuration) e
CLDC (Connected Limited Device Configuration). O CDC se destina a dispositivos com
maior capacidade de processamento, o que permite a presença de recursos não
disponíveis na configuração mais básica, o CLDC. Esta, porém, é a configuração
utilizada pelos celulares, pagers e alguns PDAS (Personal Digital Assistant) menos
poderosos, uma vez que tais dispositivos não dispõem de alto poder de
processamento.
Uma vez definida a configuração, entra-se no âmbito dos perfis (profiles),
responsáveis por determinar características mais específicas do dispositivo para o
qual se está desenvolvendo. O perfil, em conjunto com a configuração, fornece um
conjunto de APIs para o desenvolvimento focado no grupo de dispositivos desejado.
Assim, no caso do desenvolvimento de aplicações para celulares, utiliza-se a
configuração CLDC (versão 1.0 ou 1.1) e o perfil MIDP (Mobile Information Device
Profile), na sua versão 1.0, 2.0 ou 2.1.
O MIDP 1.0 é compatível com quase todos os aparelhos ativos no Brasil, mas peca
em não fornecer tantos recursos quanto a versão 2.0, principalmente no que tange à
existência de componentes específicos para a criação de jogos e aplicações
multimídia. Estudando-se o mercado brasileiro atual, conclui-se que a melhor escolha
para o desenvolvimento de aplicações com J2ME é usando a configuração CLDC 1.1
e o profile MIDP 2.0, que formam uma espécie de padrão da indústria de celulares no
momento, dos mais baratos aos mais caros (alguns já suportam MIDP 2.1, mas a
compatibilidade é retroativa, ou seja, um celular com suporte a MIDP 2.1 roda código
MIDP 1.0 e também 2.0).
A Figura 1, desenvolvida pela Sun [SUN, 2008], fornece uma visão geral da
plataforma Java. Nessa figura, é possível visualizar o JavaME. No caso dos celulares,
a camada-base é a KVM. A camada de configuração, CLDC, está logo acima, sob a
camada de perfil, MIDP. Por fim, sobre o MIDP, ainda podem existir pacotes opcionais,
como os SDKs (Software Development Kit) da Nokia, por exemplo, fornecendo
maiores facilidades para os desenvolvedores.
3. Figura 1 [SUN, 2008]
Ferramentas
Para executar as aplicações desenvolvidas em J2ME no computador faz-se
necessário o uso de um emulador. A Sun disponibiliza o WTK (Java Wireless Toolkit),
um kit que facilita o desenvolvimento e os testes das aplicações J2ME no computador.
O WTK conta com um emulador, documentação, exemplos diversos e ferramentas que
permitem, entre outras coisas, monitorar o uso de memória da aplicação.
Em conjunto com o emulador, costuma-se utilizar uma IDE (Integrated Development
Environment) para facilitar o processo de desenvolvimento. A IDE que será adotada no
decorrer deste minicurso é o NetBeans 6.5, que pode ser baixado gratuitamente em
seu site oficial (www.netbeans.org). A principal razão para a escolha do NetBeans é a
presença de ferramentas visuais que aumentam bastante a produtividade, tais como o
Game Builder (muito útil para os jogos) e o Visual Mobile Designer (utilizado para a
confecção de telas de aplicação bem como estabelecer o seu fluxo). Apesar dessas
ferramentas não substituírem por completo a codificação, podem aumentar a
produtividade consideravelmente, desde que usadas na medida certa. A Figura 2
mostra a IDE NetBeans 6.5 integrada ao emulador do WTK 2.5.2 (o NetBeans na sua
versão Mobility ou na versão completa já possui o WTK). Pode-se visualizar, ainda, a
existência de diversas cenas de um jogo, construídas com o Game Builder.
4. Figura 2
O MIDlet
Uma aplicação JavaME é chamada de MIDlet, de forma análoga aos Applets
(aplicações que são executadas no navegador) e os Xlets (aplicações de TV Digital).
Os MIDlets são controlados por um gerenciador chamado de AM (Application
Manager). A Figura 3, desenvolvida por Fonseca [FONSECA, 2005], demonstra o
ciclo de vida de um MIDlet. Quando um MIDlet é invocado, o Application Manager faz
uma chamada ao método startApp(), responsável por tornar o estado do MIDlet “ativo”,
conforme pode ser visto na figura. No decorrer da execução, a aplicação pode ser
pausada, seja por desejo do usuário ou por uma chamada ou mensagem recebida.
Quando isso ocorre, é executado o método pauseApp() do MIDlet. A própria aplicação
pode pausar a si mesma se necessário, utilizando o método notifyPaused(). Nesse
momento, o estado da aplicação se torna “pausado”. Já quando a aplicação é
finalizada, o método destroyApp() do MIDlet é invocado, seja por parte do AM ou da
própria aplicação, utilizando o método notifyDestroyed(). Nesse caso, a aplicação
entra no estado “destruído”. Percebe-se pela Figura 3, ainda, que do estado
“pausado” pode-se retornar para o “ativo”, pois o método startApp() é novamente
chamado após o fim da pausa. Outra possibilidade é que a aplicação pode ser
finalizada, dirigindo-se diretamente do estado “pausado” para o estado “destruído”.
5. Figura 3 [FONSECA, 2005]
Classes do JavaME
A Figura 4, também desenvolvida por Fonseca [FONSECA, 2005], mostra a hierarquia
de classes do J2ME ou, mais precisamente, do perfil MIDP. No maior nível da
hierarquia, existe a classe Display, que representa a tela do aparelho. A classe
Displayable, por sua vez, representa qualquer componente que possa ser exibido no
Display e divide-se em dois grupos: as classes de alto nível (que herdam da classe
abstrata Screen) e as classes de baixo/médio nível (representadas pela classe Canvas
e, no MIDP 2.0, também por sua classe filha, a GameCanvas). A classe abstrata
Screen contém quatro subclasses básicas: List, Form, Alert e TextBox. São
consideradas de alto nível porque se comportam para o desenvolvedor como
componentes apropriados para a criação de interfaces, no caso listas, formulários,
mensagens de aviso e caixas de texto, respectivamente. Na outra vertente, a classe
Canvas é a classe derivada de Displayable que representa o topo das classes de
baixo/médio nível, por permitir um controle maior do dispositivo, permitindo ao
programador moldar o display do aparelho livremente. Assim, é visível que a classe
Canvas é de extrema importância para o desenvolvimento de interfaces ricas e, por
isso, requer atenção especial. As demais classes, derivadas de Screen, apesar de
serem bastante úteis para o desenvolvimento de aplicações gerais, geralmente são
substituídas, em aplicações comerciais, por telas mais ricas que utilizam o poder de
Canvas.
6. Figura 4 [FONSECA, 2005]
A Figura 5, por sua vez, mostra a hierarquia de classes expandida, incluindo as
classes derivadas de Screen e outras classes presentes apenas no MIDP 2.0 ou
superior, bastante úteis para jogos e animações, como a classe Sprite.
Figura 5
7. Classe Screen e suas derivadas
Como dito anteriormente, a classe Screen possui diversos componentes destinados a
criação de elementos úteis para a interface de uma aplicação qualquer. Esses
elementos são representados por classes derivadas de Screen, como List, TextBox,
Alert e Form.
A classe Alert é responsável pela criação de mensagens de alerta ao usuário. Essas
mensagens se caracterizam por possuírem um tempo pré-determinado de exibição. Ao
término desse tempo, a mensagem desaparece.
A classe Form é utilizada para a criação dos famosos “forms”, comuns em ferramentas
RAD. Um Form é composto por componentes denominados Item.
Pode-se entender o Form como um agrupamento lógico de itens, tais como TextField,
DateField, ChoiceGroup, Gauge, ImageItem e StringItem. Assim, o Form disponibiliza
métodos como insert, para adicionar um Item, delete, para remover um Item, além de
outros métodos úteis, como append e set.
List, por sua vez, é responsável por criar listas seletivas. Podem ser listas de múltipla
escolha ou única escolha, sendo os itens selecionados pelas teclas de navegação ou
teclas de atalho do aparelho.
Por fim, a TextBox, como o próprio nome diz, é uma caixa de texto. Uma instância de
TextBox possui um título que é mostrado na parte superior da tela, um subtítulo ou
texto descritivo, o tamanho da caixa (em caracteres) e o tipo de dado do campo.
A Figura 6 mostra todos esses componentes, além da classe Canvas (responsável
pelas telas de baixo nível, Command (comandos que são adicionados na tela para
reger a navegação do aplicativo) e a interface CommandListener, responsável por
definir ações para os comandos adicionados às telas.
Figura 6
8. Classe Canvas
Canvas é a derivada de Displayable (vide Figura 6) que permite ao programador uma
manipulação da tela em mais baixo nível. Utilizando a classe Graphics, por exemplo,
podem-se desenhar primitivas (quadrados, retângulos, linhas), inserir imagens e
caracteres em qualquer posição da tela. Permite, ainda, a manipulação de threads
para a criação de animações e a manipulação de eventos, que podem ser acionados
pelas teclas do aparelho, por exemplo.
No caso das animações, é usual utilizar a estratégia de renderização dependente de
tempo. Para isso, o uso das classes Timer e TimerTask é recomendado.
Pacote Game do MIDP 2.0
O MIDP 2.0 presenteia os programadores de jogos com um pacote especial para
jogos, o Game API. Esse pacote provê uma série de classes que possibilita o
desenvolvimento de jogos ricos para os dispositivos móveis.
As classes disponibilizadas pelo pacote são: GameCanvas, Layer, LayerManager,
TiledLayer e Sprite.
A classe GameCanvas é uma subclasse de Canvas e provê as funcionalidades
básicas de tela. GameCanvas traz uma série de melhorias em relação a Canvas,
como a captura dos estados das teclas especiais e uma melhor sincronização gráfica.
Layer é uma classe abstrata que representa um elemento visual do jogo, como um
Sprite ou um TiledLayer. Layer provê atributos básicos, como a localização, o tamanho
e a visibilidade do elemento.
LayerManager, como o próprio nome diz, é um gerenciador de camadas. Através
dessa classe, é possível trabalhar a interface do jogo em camadas, possibilitando que
se façam alterações em uma camada enquanto outra está sendo mostrada na tela.
Esse recurso é extremamente interessante para a criação de jogos.
TiledLayer permite ao desenvolvedor a construção de grandes áreas gráficas que são
subdivididas em células, denominadas tiles. Pode-se imaginar um TiledLayer como
uma tabela dividida em linhas e colunas na qual cada célula apresenta uma imagem,
que pode ser facilmente manipulada. Esse recurso facilita muito a construção dos
jogos tile-based, tais como puzzles¸ rpgs, etc.
Por fim, a classe Sprite, que permite a divisão de arquivos de imagens em frames,
além de transformações sobre essas imagens e, ainda, detecção de colisão. Sprite
provê uma série de métodos que tornam a animação de personagens uma tarefa fácil
e rápida. Sprite também pode ser muito útil para criação de aplicações com interfaces
ricas, podendo representar botões, barras de progresso e outros componentes de
interface que possuam algum tipo de animação.
9. Persistência de dados no JavaME
A persistência de dados no JavaME se dá através do RMS (Record Management
Store), um esquema de armazenamento bastante simples. Uma aplicação pode
acessar múltiplos Record Stores e cada um pode ter uma quantidade variável de
registros. Alguns aparelhos limitam o tamanho máximo de um Record Store (para a
ordem de algumas dezenas ou centenas de Kbytes), aconselhando-se, assim, que os
mesmos possuam tamanho reduzido.
O RMS possui recursos interessantes, como navegar pelos registros através de uma
enumeração que é instância da classe RecordEnumeration, além de filtrá-los da
maneira que o programador preferir, implementando uma classe de filtro que herda de
RecordFilter e, também, ordená-los de forma adequada, implementando uma classe
comparadora que herda de RecordComparator.
O armazenamento dos registros no RMS é seqüencial, bem como o seu acesso, que é
relativamente lento. Se o RMS for muito grande, poderá haver atrasos significativos no
acesso aos registros, principalmente quando estiverem sendo utilizados filtros e
comparadores nas consultas. A Figura 7 mostra como funciona o RMS internamente.
Como se pode notar, o acesso é seqüencial, pouco diferindo da leitura de um arquivo,
por exemplo.
Figura 7
APIs opcionais
Além das classes acima citadas, disponibilizadas obrigatoriamente em uma
implementação JavaME com configuração e perfil adequados, vários outros pacotes
podem estar disponíveis para o programador. São as chamadas APIs opcionais,
disponibilizadas através de JSRs (Java Specification Requests). Essas APIs estão
disponíveis em alguns aparelhos e em outros não, dependendo exclusivamente das
capacidades do mesmo e da vontade do fabricante em questão em fornecê-las. Entre
10. elas, destacam-se: WMA 2.0 (Wireless Messaging API), disponibilizada com a JSR
205 e que permite o envio e recebimento de SMS/MMS; MMAPI 1.1 (Mobile Media
API), disponibilizada com a JSR 135 e que permite a manipulação da câmera do
aparelho e outros recursos multimídia; Bluetooth API, disponibilizada com a JSR 82 e
que permite comunicação entre aplicações através de Bluetooth; Mobile 3D Graphics
API, disponibilizada através da JSR 184 e que permite a criação de jogos e aplicações
tridimensionais; entre outras. Algumas dessas APIs serão mostradas no decorrer do
minicurso.
Conhecendo os celulares
Após testar as aplicações no emulador, é necessário estudar os dispositivos para os
quais se pretende portar a aplicação, suas capacidades e limitações. No caso da
Nokia, o Fórum Nokia possui um acervo com todos os dispositivos da empresa e suas
respectivas especificações, que pode ser acessado em http://forum.nokia.com. Cada
aparelho listado possui informações de memória disponível, capacidade de
processamento, dimensões de tela e, ainda, características específicas da
implementação do JavaME naquele aparelho, como a configuração utilizada (CLDC
1.0 ou 1.1), o perfil (MIDP 1.0, 2.0 ou 2.1) e as APIs opcionais que ele apresenta.
Além disso, é possível baixar os kits de desenvolvimento para o grupo de aparelhos no
qual se está desenvolvendo. No caso da Nokia, existem emuladores para cada família
de aparelhos (Series 40 ou Series 60). Esses emuladores representam com maior
fidelidade a máquina Java daqueles aparelhos e, com isso, tem-se uma garantia maior
que sua aplicação funcionará adequadamente nesses dispositivos.
Referências
[FONSECA, 2005] Fonseca, Enrico. iMasters – Ciclo de vida do MIDlet. Disponível
em: http://imasters.uol.com.br/artigo/3416/java/ciclo_de_vida_do_midlet.
Acessado em 13 de janeiro de 2008.
[SUN, 2008] Sun Microsystems – Sun Developer Network (SDN). JavaME
Technology – Powering your Devices Everywhere. Disponível em:
http://java.sun.com/javame/technology/index.jsp. Acessado em 13 de janeiro de
2008.