Programação para Dispositivos Móveis - (01) Introdução ao Ambiente

39
Programação para Dispositivos Móveis Introdução ao Ambiente 07/06/2022 Fagner S. de Lima - Programação para Dispositivos Móveis 1

description

No mundo atual, onde os mais diversos dispositivos podem ser utilizados para manusear as informações, a conectividade e interatividade chegaram a níveis altíssimos, e usuários pretendem obter as informações a qualquer instante e em qualquer lugar. Dentro deste contexto os dispositivos móveis tornaram-se um importante meio físico para o tramite de informações. Para a programação destes dispositivos a linguagem Java demonstra-se interessante devido a sua grande abrangência em termos da plataforma móvel. Com alta portabilidade e conectividade com outras plataformas, o Java permite a construção de jogos e sistemas cadastrais, bem como a utilização de recursos avançados como GPS e assinatura digital. A adoção da linguagem Java também pode ser justificada pela grande base de programadores já existente para a mesma, facilitando a migração destes programadores para a plataforma móvel.

Transcript of Programação para Dispositivos Móveis - (01) Introdução ao Ambiente

Page 1: Programação para Dispositivos Móveis - (01) Introdução ao Ambiente

10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 1

Programação para Dispositivos Móveis

Introdução ao Ambiente

Page 2: Programação para Dispositivos Móveis - (01) Introdução ao Ambiente

10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 2

Objetivos

Analisar tecnologias empregadas em dispositivos móveis; Verificar os principais recursos de apoio; Reconhecer limitações em equipamentos e tecnologias; Determinar o meio de desenvolvimento.

Page 3: Programação para Dispositivos Móveis - (01) Introdução ao Ambiente

10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 3

Desenvolvimento para Dispositivos Móveis

Nos últimos anos, principalmente pela praticidade e comodidade, cada vez mais pessoas aderem ao uso de dispositivos com tecnologia móvel. Os crescentes números de venda no mercado brasileiro apontam essa realidade.

No que tange dispositivos móveis empregados para a telefonia (celulares e smartphones) no Brasil, existem mais dispositivos móveis do que pessoas. Portanto, existe uma demanda crescente de consumo que exige uma demanda de desenvolvimento de programas (software) nesses dispositivos.

Page 4: Programação para Dispositivos Móveis - (01) Introdução ao Ambiente

10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 4

Desenvolvimento para Dispositivos Móveis

Nos últimos anos, se destacam no mercado brasileiro os dispositivos móveis que possuem capacidade computacional, conectividade (internet e telefonia) e multimídia. Dentre eles, seguem os mais comuns:

Page 5: Programação para Dispositivos Móveis - (01) Introdução ao Ambiente

10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 5

Características Comuns em Dispositivos Móveis

Normalmente, os dispositivos móveis são pequenos e possuem algumas diferenciações importantes quando comparados a equipamentos maiores. São elas:1. Normalmente são menores e mais leves;2. Possuem memória com menor capacidade;3. Possuem processador com capacidade inferior;4. Possuem maior autonomia de bateria / menor consumo de energia;5. Tendem a ser mais seguros e confiáveis;6. Podem possuir conectividade ou não, ou ainda conectividade

limitada;7. Normalmente são mais rápidos na inicialização e no desligamento;8. Podem ser mais resistentes a quedas.

Page 6: Programação para Dispositivos Móveis - (01) Introdução ao Ambiente

10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 6

Presença no Mercado

Os equipamentos móveis estão em constante evolução e estão presentes no mercado nos mais variados formatos.

Como o mercado está em constante mudança é realmente difícil prever a penetração dos dispositivos, pois tudo depende muito de fatores políticos, sociais, econômicos e ecológicos.

Page 7: Programação para Dispositivos Móveis - (01) Introdução ao Ambiente

10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 7

Presença no Mercado

Alguns dos movimentos que estão acontecendo há algum tempo nos dão uma pequena ideia das tendências do mercado de equipamentos móveis:

1. Telefones Celulares comuns estão convergindo para SmartphonesO smartphone é um telefone celular mais inteligente e que possui funcionalidades mais avançadas que atendem necessidades por meios computacionais (manipulação de arquivos, documentos, e-mail, agenda, jogos, recursos multimídia dentre outros).Além disso, através da instalação de programas as funcionalidades podem ser ampliadas.

Page 8: Programação para Dispositivos Móveis - (01) Introdução ao Ambiente

10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 8

Presença no Mercado

Alguns dos movimentos que estão acontecendo há algum tempo nos dão uma pequena ideia das tendências do mercado de equipamentos móveis:

2. Os Netbooks e Notebooks sofrerão transformaçõesNovos dispositivos móveis estão causando verdadeiras revoluções e alguns dispositivos em determinadas situações poderão assumir o lugar dos netbooks e dos notebooks tradicionais.Equipamentos mais robustos como ultrabooks, equipamentos que usam “touch screen” (toque na tela - dispensam o uso do mouse e do teclado), que são mais portáteis como tablets e notebooks que se dividem em partes, formando tablets estarão cada vez mais presentes no mercado.

Page 9: Programação para Dispositivos Móveis - (01) Introdução ao Ambiente

10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 9

Presença no Mercado

Alguns dos movimentos que estão acontecendo há algum tempo nos dão uma pequena ideia das tendências do mercado de equipamentos móveis:

3. Surgimento de novos equipamentos com redes sem fio e com longa autonomia de bateriaNovos dispositivos estão surgindo para funcionar por um dia inteiro ou mais com uma única carga e com a conexão 3G opcional para o usuário ficar online em praticamente qualquer lugar.Alguns equipamentos trabalham na ideia de que será que “seus aplicativos, jogos, fotos, músicas, filmes e documentos estarão acessíveis de qualquer lugar e não será mais preciso se preocupar em perder o computador ou com não fazer o backup das informações”.

Page 10: Programação para Dispositivos Móveis - (01) Introdução ao Ambiente

10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 10

Reflexão

Diferentes estratégias de mercado reconhecem que a internet tem vantagens na forma de aplicação e como plataforma de produtividade. O Google usa essa estratégia e seus serviços são um bom exemplo desse conceito de entregar tudo ao usuário a partir da nuvem (internet), todavia em nossas escolhas temos que ponderar sobre os novos paradigmas, pois a partir de um dispositivo móvel, assim como é verdade que é possível abandonar o desktop e o modelo de software tradicional e trabalhar inteiramente na nuvem, é verdade também que o usuário pode facilmente escolher utilizar essas ferramentas baseadas na web, a partir de plataformas tradicionais como Windows, Mac OS X ou Linux, mantendo o benefício de instalar programas de maneira local.

Page 11: Programação para Dispositivos Móveis - (01) Introdução ao Ambiente

10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 11

Escolha da Tecnologia e de Equipamento

Na área de tecnologia surgem e somem constantemente aparelhos, ferramentas, plataformas de desenvolvimento e linguagens de programação. Para evitar uma escolha equivocada de equipamentos ou de tecnologias, é preciso ficar atento às informações e tendências de mercado - leia sites de notícia regularmente.

Page 12: Programação para Dispositivos Móveis - (01) Introdução ao Ambiente

10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 12

Plataforma

A palavra “plataforma” será utilizada daqui por diante e você deve entendê-la como sendo um tipo de ambiente com características específicas em que alguma acontecerá. A seguir, temos dois termos que serão utilizados com certa frequência:

1. Plataforma de ExecuçãoRefere-se ao ambiente onde os softwares são executados. Ela pode ser diferente em cada tipo de dispositivo, todavia deve atender as capacidades e limitações específicas de cada um deles sem prejudicar a execução dos softwares.

Page 13: Programação para Dispositivos Móveis - (01) Introdução ao Ambiente

10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 13

Plataforma

A palavra “plataforma” será utilizada daqui por diante e você deve entendê-la como sendo um tipo de ambiente com características específicas em que alguma acontecerá. A seguir, temos dois termos que serão utilizados com certa frequência:

2. Plataforma de DesenvolvimentoRefere-se ao ambiente que possibilita o desenvolvimento (criação ou manutenção) de softwares. Essa plataforma está diretamente relacionada à plataforma de execução e deve produzir softwares capazes de atender as capacidades e limitações específicas da plataforma de execução.

Page 14: Programação para Dispositivos Móveis - (01) Introdução ao Ambiente

10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 14

Uso da Plataforma de Desenvolvimento

No mercado existem muitas plataformas de execução e de desenvolvimento para dispositivos móveis.

Normalmente as plataformas de desenvolvimento são instaladas e utilizadas em computadores do tipo desktop (ou notebook) e os resultados produzidos são transferidos e utilizados pelos dispositivos móveis.

Normalmente isso acontece porque é complicado de se desenvolver em alguns dispositivos que, por vezes, não oferecem recursos ou facilidades devido a restrições físicas como display, memória, processador e teclado dentre outras e, limitações lógicas como softwares.

Page 15: Programação para Dispositivos Móveis - (01) Introdução ao Ambiente

10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 15

Máquina Virtual

O termo “máquina virtual” também será empregado daqui por diante e se refere à plataforma de execução de softwares por uma estrutura relativamente complexa. Basicamente, uma máquina virtual é uma máquina, criada através de software, que executa programas como se fosse um dispositivo real (físico). Uma máquina virtual, também conhecida como Virtual Machine ou simplesmente VM, pode ser entendida como “uma duplicata eficiente e isolada de uma máquina real”. A IBM, por exemplo, define uma máquina virtual como uma cópia totalmente protegida e isolada de um sistema físico.

Page 16: Programação para Dispositivos Móveis - (01) Introdução ao Ambiente

10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 16

Linguagem de Máquina, de Programação e Código-Fonte

Para desenvolver um software, em uma visão simplificada, é necessário conceber uma ideia e depois transmiti-la ao computador em um idioma que ele possa compreender e executar – a esse idioma chamaremos de linguagem de máquina.

Como cada computador é diferente, escrever ideias na linguagem de máquina de cada novo sistema operacional ou hardware que surge pode realmente ser muito trabalhoso e complicado, por esse motivo, para facilitar a vida de quem desenvolve software e acelerar os resultados de produtividade, foram criadas as linguagens de programação.

Page 17: Programação para Dispositivos Móveis - (01) Introdução ao Ambiente

10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 17

Linguagem de Máquina, de Programação e Código-Fonte

A linguagem de programação além de permitir uma melhor compreensão humana das instruções (códigos-fontes) escritas, traz também a conveniência de possibilitar a conversão para a linguagem de máquina em condições diferentes, desde que algum software consiga traduzi-la para ser compatível com o sistema operacional, máquina virtual ou hardware.

As linguagens de programação são a representação de ideias dentro de uma lógica humana em uma escrita especial que atuam como um idioma intermediário, ou seja, um idioma que fica entre o nosso idioma e o idioma da máquina.

Page 18: Programação para Dispositivos Móveis - (01) Introdução ao Ambiente

10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 18

Compilação, Interpretação e Bytecode

Compilação é o termo utilizado para descrever o processo que realiza a tradução da linguagem de programação para a linguagem de máquina. O produto final da compilação é o software (programa executável). O processo de compilação é sempre complexo, pois depende de hardware, de software, de interpretações, de verificações, de junções e de otimizações nos elementos que compreendem o código-fonte da linguagem de programação levando em conta sua lógica, bibliotecas e as partes da plataforma onde o software será concebido.

Page 19: Programação para Dispositivos Móveis - (01) Introdução ao Ambiente

10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 19

Compilação, Interpretação e Bytecode

Interpretação é o termo utilizado para descrever o processo onde programas de computador leem um código-fonte de uma linguagem de programação e o executam sem necessariamente convertê-lo em um software, em outras palavras, o processo funciona como se alguém lesse um arquivo e pedisse para o computador ir fazendo. O interpretador, software que faz a interpretação, pode ler o código-fonte linha-a-linha e pedir para o computador ir executando o programa ou pode ler o código-fonte inteiro para depois realizar sua execução passo-a-passo.

Page 20: Programação para Dispositivos Móveis - (01) Introdução ao Ambiente

10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 20

Compilação, Interpretação e Bytecode

Bytecode (código em bytes) é o termo utilizado para descrever compilação para um software, normalmente de máquina virtual. Descrevendo um pouco mais, a compilação gera como resultado um programa que pode ser executado pelo sistema operacional e a esse programa dá-se o nome de programa executável, todavia um bytecode apesar de ser compilado não é imediatamente executável, pois sua execução ocorre através da interpretação de software que normalmente é uma máquina virtual, em outras palavras, ele é um programa executável que roda somente em um software. A principal vantagem do bytecode em relação aos outros modos está na dualidade entre a portabilidade - o bytecode irá produzir o mesmo resultado em qualquer dispositivo - e a ausência da necessidade do pré-processamento típico dos compiladores - o bytecode é encarado como um produto final, cuja validação da sintaxe e tipos de dados (entre outras funções dos compiladores) é desnecessária.

Page 21: Programação para Dispositivos Móveis - (01) Introdução ao Ambiente

10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 21

Tecnologias para Desenvolvimento

Como já foi dito anteriormente, na área de tecnologia surgem e somem constantemente aparelhos, ferramentas, plataformas de desenvolvimento e linguagens de programação. Para evitar uma escolha equivocada de equipamentos ou de tecnologias você deve estar atento às informações e tendências de mercado. Neste momento, descreveremos resumidamente apenas duas tecnologias, todavia você deve pesquisar na internet e procurar mais informações a respeito delas e de outras que existem no mercado.

Page 22: Programação para Dispositivos Móveis - (01) Introdução ao Ambiente

10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 22

Java Micro Edition (JME)

Plataforma de desenvolvimento que faz uso da tecnologia Java para execução de programas em dispositivos móveis. Foi criada pela SUN Microsystems e, atualmente, é suportada pela ORACLE.Essa plataforma possui compatibilidade com diversos equipamentos e é aceita na maioria dos dispositivos móveis. Um grande diferencial quando comparada a outras plataformas de desenvolvimento é que programas desenvolvidos nessa plataforma contam com acessibilidade e portabilidade dentro de algumas especificações. Programas feitos para a Java ME consomem poucos recursos do dispositivo graças a KVM (Kilo Virtual Machine) que é uma máquina virtual com funções reduzidas construídas para atender as necessidades e restrições dos dispositivos, impostas por uma especificação chamada configuração CLDC (Connected Limited Device Configuration) ou CDC (Connected Device Configuration).

Page 23: Programação para Dispositivos Móveis - (01) Introdução ao Ambiente

10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 23

Java Micro Edition (JME)

Por um lado, são vantagens dessa plataforma a vasta quantidade de bibliotecas livres que podem ser encontradas na internet, o baixo consumo de recursos e a disponibilidade da tecnologia em diversos equipamentos, todavia, por outro lado, existe a dificuldade de se programar com pouca memória e processamento, dificuldade para manipular dados que necessitam ser armazenados ou pesquisados, além disso, algumas características da própria plataforma trazem restrições que impedem acesso completo às funcionalidades nativas do dispositivo móvel, ocasionando algumas limitações que necessitam de esforço extra para serem superadas - coisa que nem sempre é possível.A plataforma Java ME é gratuita e sua disponibilidade no equipamento depende do fabricante do dispositivo móvel. Dependendo do dispositivo o desenvolvedor necessita comprar a KVM, ou negociar a distribuição, ou ainda, negociar a licença do produto por imposições legais.

Page 24: Programação para Dispositivos Móveis - (01) Introdução ao Ambiente

10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 24

Android

Plataforma que atende dispositivos móveis mais avançados e que permite desenvolvimento de programas através da linguagem Java. Ela possui compatibilidade com equipamentos relativamente novos e funciona principalmente em smartphones e tablets, todavia a plataforma também é compatível com equipamentos de maior capacidade.

Essa plataforma conta com um sistema operacional baseado em Linux, foi criada pelo Google e utiliza uma máquina virtual chamada Dalvik para executar programas criados a partir do Java. Como a máquina virtual Dalvik utiliza padrões que não são compatíveis com os padrões de bytecode da máquina virtual Java, é preciso converter o bytecode do formato Java para o formato da Dalvik.

Page 25: Programação para Dispositivos Móveis - (01) Introdução ao Ambiente

10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 25

Android

A plataforma Android também é gratuita e é open-source (código-fonte aberto), ou seja, tem seus códigos-fontes disponíveis na internet e qualquer desenvolvedor de software pode consulta-los, alterá-los ou aprimorá-los e redistribui-los.

Page 26: Programação para Dispositivos Móveis - (01) Introdução ao Ambiente

10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 26

Android

Diferentemente do Java ME, o Android não possui restrições quanto ao acesso às funcionalidades nativas do dispositivo móvel, muito pelo contrário, foi concebido para permitir que desenvolvedores possam tirar proveitos de tudo o que o aparelho possa oferecer. Além disso, o desenvolvedor conta com recursos muito poderosos para exibição gráfica 2D e 3D e também conta com um poderoso e leve banco de dados com suporte SQL através do SQLite. Outro ponto muito importante para os aplicativos dessa plataforma é que eles podem ser divulgados e distribuídos facilmente através do Android Market, um serviço on-line que o Google oferece e que já vem pré-instalado no Android.

Page 27: Programação para Dispositivos Móveis - (01) Introdução ao Ambiente

10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 27

Introdução ao Ambiente

Exercícios de Fixação

Page 28: Programação para Dispositivos Móveis - (01) Introdução ao Ambiente

10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 28

Exercícios de Fixação

1. A diferença significativa entre um telefone celular e um smartphone:a) está na marca do aparelho.b) está no hardware empregado.c) está no tamanho do aparelho.d) está na aplicação do smartphone, que é um tablet.e) é que o smartphone é um telefone inteligente, ele possui

funcionalidades que são mais avançadas e que podem ser estendidas por meio de programas executados através de seu sistema operacional.

Page 29: Programação para Dispositivos Móveis - (01) Introdução ao Ambiente

10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 29

Exercícios de Fixação

1. A diferença significativa entre um telefone celular e um smartphone:a) está na marca do aparelho.b) está no hardware empregado.c) está no tamanho do aparelho.d) está na aplicação do smartphone, que é um tablet.e) é que o smartphone é um telefone inteligente, ele possui

funcionalidades que são mais avançadas e que podem ser estendidas por meio de programas executados através de seu sistema operacional.

Page 30: Programação para Dispositivos Móveis - (01) Introdução ao Ambiente

10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 30

Exercícios de Fixação

2. O termo "plataforma de hardware" refere-se:a) ao ambiente de desenvolvimento de software.b) ao ambiente de desenvolvimento de hardware.c) ao sistema operacional.d) ao tipo de equipamento ou, de dispositivo ou, ainda, ao ambiente

de execução.e) ao ambiente desktop.

Page 31: Programação para Dispositivos Móveis - (01) Introdução ao Ambiente

10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 31

Exercícios de Fixação

2. O termo "plataforma de hardware" refere-se:a) ao ambiente de desenvolvimento de software.b) ao ambiente de desenvolvimento de hardware.c) ao sistema operacional.d) ao tipo de equipamento ou, de dispositivo ou, ainda, ao

ambiente de execução.e) ao ambiente desktop.

Page 32: Programação para Dispositivos Móveis - (01) Introdução ao Ambiente

10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 32

Exercícios de Fixação

3. Uma máquina virtual é:a) uma máquina que não existe.b) um tipo de plataforma de hardware.c) a classificação dada para o tamanho do aparelho.d) uma duplicata eficiente e isolada de uma máquina real.e) uma tecnologia de desenvolvimento de software para dispositivos

móveis.

Page 33: Programação para Dispositivos Móveis - (01) Introdução ao Ambiente

10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 33

Exercícios de Fixação

3. Uma máquina virtual é:a) uma máquina que não existe.b) um tipo de plataforma de hardware.c) a classificação dada para o tamanho do aparelho.d) uma duplicata eficiente e isolada de uma máquina real.e) uma tecnologia de desenvolvimento de software para dispositivos

móveis.

Page 34: Programação para Dispositivos Móveis - (01) Introdução ao Ambiente

10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 34

Exercícios de Fixação

4. A plataforma Android, quando comparada à plataforma Java ME, possui o diferencial de:

a) permitir que desenvolvedores possam tirar proveitos de tudo o que o dispositivo móvel possa oferecer.

b) funcionar com Java na plataforma de execução.c) funcionar usando linguagem de programação Java.d) funcionar em telefones celulares comuns.e) não permitir que o hardware seja acessado pela máquina virtual.

Page 35: Programação para Dispositivos Móveis - (01) Introdução ao Ambiente

10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 35

Exercícios de Fixação

4. A plataforma Android, quando comparada à plataforma Java ME, possui o diferencial de:

a) permitir que desenvolvedores possam tirar proveitos de tudo o que o dispositivo móvel possa oferecer.

b) funcionar com Java na plataforma de execução.c) funcionar usando linguagem de programação Java.d) funcionar em telefones celulares comuns.e) não permitir que o hardware seja acessado pela máquina virtual.

Page 36: Programação para Dispositivos Móveis - (01) Introdução ao Ambiente

10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 36

Exercícios de Fixação

5. São sistemas operacionais de smartphone:a) Windows, Linux e MAC.b) iOS, Symbian, Android, PalmOS, WebOS, RIM BlackBerry, Windows

Mobile e Windows Phone.c) Android e Java ME.d) Java.e) Dalvik e KVM.

Page 37: Programação para Dispositivos Móveis - (01) Introdução ao Ambiente

10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 37

Exercícios de Fixação

5. São sistemas operacionais de smartphone:a) Windows, Linux e MAC.b) iOS, Symbian, Android, PalmOS, WebOS, RIM BlackBerry,

Windows Mobile e Windows Phone.c) Android e Java ME.d) Java.e) Dalvik e KVM.

Page 38: Programação para Dispositivos Móveis - (01) Introdução ao Ambiente

10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 38

Introdução ao Ambiente

Extras

Page 39: Programação para Dispositivos Móveis - (01) Introdução ao Ambiente

10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 39

Links

Download do Java ME http://www.oracle.com/technetwork/java/javame/javamobile/download/overview/ind

ex.html

Fórum para Desenvolvedores Java Guj: http://www.guj.com.br/

Tutoriais do NetBeans https://netbeans.org/features/java-on-client/java-me.html