Tópico para discussão sobre J2ME. Porque utilizar em uma situação específica?

Boa noite pessoal,
primeiramente quero relatar o acontecido, estava conversando com uns amigos sobre j2me, android e td mais, afinal somos todos iniciantes.
Entre uma cerveja e outra surgiu uma questão que me deixou confuso, levando em consideração que um smartphone possui acesso direto a internet via wireless por exemplo e eu tenho que desenvolver um acesso a um webservice por exemplo, por que desenvolver uma aplicação com j2me ou android, se eu poderia simplesmente criar uma “página wap” e prover o acesso via browser (opera mini por exemplo).

Para ser mais específico a aplicação apenas enviaria uma série de parâmetros para o webservice.
E no caso de criar uma pagina para acesso via browser, o usuário faria um login e escolheria as opções.

Fica aberta a discussão para esta situação.

Opinem.

Abraço

Pense gafanhoto, pense !!

Não é difícel de ver os motivos do pq uma página wap não é a melhor saída.

Cara perguntei isso para os responsáveis no JavaOne.
Qual a vantagem de usar Java ME ao invés do android e do iphone.

Eles responderão que o além de o Java ME não se resumir a celulares, pessoal da oracle está correndo atrás, as novas versões do Java ME a api ta sendo atualizada para o java 6 antes era o java 1.4 entre outras coisas.

Agora sobre sua questão se a aplicação é simples acho melhor fazer web mesmo pois fica portável entre os celulares já que todos tem um browser.

Alguns motivos pra se trabalhar com J2ME.

[list]O sistema wap não é satisfatorio. Pois sua aplicaçao fica presa ao sistema Online. (So pode enviar se estiver conectado)[/list]
[list]O j2ME utiliza o RMS para gravar as informações, possibilitando que seja enviado somente quando houver conexão. (Aplicação Offline)[/list]
[list]Um sistema em J2ME, você não fica dependente a um smart com wireless. Pode ser instalado em qualquer celular, mais simples que seja, basta ter um plano de dados.[/list]

Devem existir outros motivos…

[quote=paulohnt]Alguns motivos pra se trabalhar com J2ME.

[list]O sistema wap não é satisfatorio. Pois sua aplicaçao fica presa ao sistema Online. (So pode enviar se estiver conectado)[/list]
[/quote]
Este é um dos principais motivos que desenvolvedores devem abominar veemente quem sugerir usar HTML ao invés de uma app j2me.
É inconcebível que o serviço de coleta de dados ou transmissão dependa da disponibilidade da rede para o usuário poder usar.
Por isto aplicações J2ME são adequadas para o cenário onde o usuário deve poder fazer o serviço dele independente se tem ou não sinal.
Quando tiver, a aplicação sincroniza e boa.

Diabo Loiro e paulohnt, acho q vcs confundiram as coisas, ele quiz saber qual a vantagem em se fazer um aplicativo e em se fazer uma página ra ser acessada via navegador, a plataforma (jme, android, ios, meego etc) em que o aplicativo seria feito nao influi nesse caso

paulohnt, em outras plataformas tb há como persistir os dados, e essa sincronização de dados tb pode ser feita, bsta implementar
sobre a ultima afirmação, não sei se concordo, até mesmo pq ñ entendi oq vc quiz dizer, acontece q celulares simples q possuem jme tb possuem navegadores e vc pode navegar pelo gprs, aliás, estes celulares simples ñ possuem wireless e o jeito é navega pelo gprs mesmo, ou seja, mesmo podendo usar um aplicativo jme tb se pode acessar uma pagina wap

bom, minha opinião é q um aplicativo é vantajoso ainda, por vc ter um maior controle dos componentes da tela, por vc poder persistir dados no local, e evitar por exemplo q um usuario e senha seja digitado a todo momentoe, em um exemplo mais específico, evita q um vendedor tenha q baixar sua lista de vendas dos ultimos 30 dias toda a vez q ele for consultar o seu histórico (supondo q a aplicação só guarda dados dos ultimos 30 dias de transação, mas poderia ser 60 ou 15 dias…)

outro fator é o trafego de dados, em uma aplicação dedicada vc pode “enxugar” os dados pra vc mandar e receber o minimo nescessário, inclusive vc pode compactar os dados antes de enviar e descompacta-los ao receber, ao custo de algum processamento, claro, mas pode valer a pena, já em uma página vc tem todo o html, os dados da sessão, os dados da requisição, e o tempo q se leva pra um navegador renderizar um html é ligeiramente maior que se o sistema nativo do celular leva pra desenhar seus componentes

tb acho q deve ter outros fatores, mas um aplicativo ainda vai ser a melhor opção por um bom tempo

flw, t+

quikkoo, eu estava falando sobre aplicativo Offline. O que possibilita de gravar informações no celular (via RMS) e enviar apenas quando tiver conexão. Essa é uma grande vantagem.
Imagine, um vendedor que precisa passar em 10 lojas durante o dia. Coletando informações para inserir no webService.
Com um aplicativo wap, ele vai se conectar 10 vezes para enviar os dados. Em uma aplicação Offline, independente de ser desenvolvida em j2me ou android, basta apenas no final do dia, ele fazer apenas uma conexão e enviar todos os dados.

[quote=quikkoo]paulohnt, em outras plataformas tb há como persistir os dados, e essa sincronização de dados tb pode ser feita, bsta implementar
sobre a ultima afirmação, não sei se concordo, até mesmo pq ñ entendi oq vc quiz dizer, acontece q celulares simples q possuem jme tb possuem navegadores e vc pode navegar pelo gprs, aliás, estes celulares simples ñ possuem wireless e o jeito é navega pelo gprs mesmo, ou seja, mesmo podendo usar um aplicativo jme tb se pode acessar uma pagina wap[/quote]

O Boster foi específico ao falar:

Isto não seria necessário…

Buenas pessoal, a discussão está rendendo =P

Bom, citei um exemplo de aplicação, mas poderia ser outros tipos de aplicação tb, sem problema algum.

O lance da comunicaçao onde o wap tem q fazer requisições a todo momento eh um ponto crucial, levando em consideração oq o quikkoo falou sobre a grande parte dos aparelhos não possuirem wireless (ainda).

Uma dúvida simples, j2me roda no IOS e android. Existe algum OS com limitação atualmente. (Vamos excluir celulares com sistemas operacionais que possuem mais de 3 anos sem atualização, só por precaução).

paulohnt, uma aplicação pode ter limitação de armazenamentos RMS? Se sim, qual seria a limitação?

Em termos de segurança, vcs acham que uma aplicação j2me (com autenticação local, supondo que o usr e psw estivessem armazenados na aplicação) seria mais seguro que um pagina wap tb com autenticação?

Obrigado por todas as respostas e que continuemos expondo nossas idéias.

Abraço

nenhum dos dois rodam (meego tb não), todos tem suas próprias formas de se desenvolver, a principio isso pode lhe parecer um problema, mas por enquanto é melhor assim pois jme ñ oferece recursos suficientes pra vc usufluir de forma “suave” td q os smartphones com essas plataformas possuem, mas tirando essas plataformas acredito que todos os outros fones com 3 ou 5 anos, tem uma maquina virtual java

eu ñ me lembro, por curiosidade tb queria saber haha, mas acredito q seria o limite físico

na minha opinião ñ faz diferença, mesmo guardando a senha, vc teria q em algum momento enviar alguma coisa ao servidor pra autenticar lá tb, então dá no mesmo

flw, t+

Sim, existem limitações… Desenvolver em J2mE é um desafio.
Há poucos dias, eu estava fazendo uma bateria de testes com o RSM em vários aparelhos. E a quantidade de Inserts, Deletes, Updates varia muito de aparelho por aparelho.

Não sei se os valores de processamento e memória dos celulares estão corretos (porque nao peguei diretamente do site do fabricante). Mas nao deve ser tão diferente disso.

Nokia 5610
Processador: ARM 11, 369 MHz CPU
S.O: Symbian OS v9.2, S60 rel. 3.1
Memória Interna: 20 MB
Inserts: 1500
Selects: 1000
Select + Update: 1000

Nokia E62
Processador: TI OMAP 235 MHz
S.O: Symbian OS 9.1, Series S60
Memória Interna: 80 MB
Inserts: 1250
Selects: 750
Select + Update: 750

Motorola V8 RAZR2
Processador: 500 MHz
S.O: Linux
Memória Interna: 420MB ou 2GB
Inserts: 1700
Selects: 1400
Select + Update: 1400

P.s.: Esses números de inserts, selects e updates são altos porque eu estava testando até quando esses aparelhos suportam. Eu queria ver mesmo OutOfMemoryError! Hehehe

Acho estas medições de inserts e selects apropriadas para tua aplicação, pois fazem sentido só a ela.

O número de ‘inserts’ (q termo feio para o RMS) que podem ser feitos, depende do tamanho de cada registro que vc inserir, pois no j2me por justamente não existir schema, vc é livre para ter registros no mesmo banco com tamanhos diferentes. O que de concreto existe quanto a limite é o que o fabricante impõe e que normalmente não é divulgado no site do aparelho.

Existe tantas formas de consultar e atualizar ou ‘apendar’ informação no banco, que dizer que suporta X ou Y sem mostrar a metodologia dos testes é heresia.

Tá certo, as pessoas podem ou não confiar nos seus números, mas credibilidade virá se entenderem que estes números fazem sentido e para isto, só verificando como vc chegou a estes brilhantes números.

Você tem razão boone. Já deu pra perceber que minha area era banco de dados. Hehe
Estou aprendendo a programar em Java (j2me) mas ainda penso um pouco como database admin.

Em relação aos testes, eram bem simples. Somente para aprender e testar a classe RecordStore. Aprender um pouco sobre RMS.

E sim, meu teste e minha metodologia é bastante questionável… Até porque não utilizei nenhuma metodologia para verificar a real capacidade de cada aparelho. Mas coloquei os resultados para mostrar a diferença em relação ao poder de processamento dos aparelhos.

[quote=boone]Acho estas medições de inserts e selects apropriadas para tua aplicação, pois fazem sentido só a ela.

O número de ‘inserts’ (q termo feio para o RMS) que podem ser feitos, depende do tamanho de cada registro que vc inserir, pois no j2me por justamente não existir schema, vc é livre para ter registros no mesmo banco com tamanhos diferentes. O que de concreto existe quanto a limite é o que o fabricante impõe e que normalmente não é divulgado no site do aparelho.

Existe tantas formas de consultar e atualizar ou ‘apendar’ informação no banco, que dizer que suporta X ou Y sem mostrar a metodologia dos testes é heresia.

Tá certo, as pessoas podem ou não confiar nos seus números, mas credibilidade virá se entenderem que estes números fazem sentido e para isto, só verificando como vc chegou a estes brilhantes números.[/quote]

  • Menor tráfego de dados;
  • Melhor usabilidade;
  • Esplorar melhor os recusos de cada aparelho;
  • Mais versatilidade no uso.

Esses são alguns pontos que me vieram à cabeça no momento, mas tem muito mais motivos.