Mostrando postagens com marcador programação. Mostrar todas as postagens
Mostrando postagens com marcador programação. Mostrar todas as postagens

Nokia Maemo Internet tablet : N800 e N810

Olá a todos,

Estou muito entusiasmado! Finalmente, consegui fazer o pedido do meu Nokia Tablet N800! Agora só aguardar, para por as mãos neste novo gadget.

Para aqueles que não conhecem o Nokia Tablet N800! Irei dar um pequeno resumo:

A classe dos Internet Tablets compreende os dispositivos cujo foco é em acesso à internet e reprodução de mídia. Um dos fabricantes que dispõe de aparelhos neste mercado é a Nokia com os tablets Nokia N800 e o novo Nokia N810.

A plataforma Maemo, formada pelo sistema operacional Maemo e por um SDK, é a parte de software dos Internet Tablets da Nokia.







O Nokia N800 é um dispositivo com acesso sem fio à Intenet originalmente lançado em janeiro de 2007. Apesar do foco da Nokia ser associado a aparelhos celulares, o N800 não é um telefone. Ele permite navegar na Internet usando conexões Wi-Fi ou através de um telefone celular via Bluetooth.



O N810 tem muitas semelhanças com o N800. Embora ambos rodem o Internet Tablet OS 2008, existem algumas diferença entre eles. As novas funcionalidades do N810 como sensor para detecção de luz ambiente, GPS integrado, webcam frontal, teclado físico, entre outras faz com que ele seja um N800 melhorado.



Em nível de suporte de aplicações, há uma diversa gama de opções. Boa parte delas estão hospedadas na Web pelo site https://garage.maemo.org/. Além de aplicações, podemos encontrar também frameworks e ferramentas interessantes que auxiliam na criação e desenvolvimento de novos aplicativos para o tablet. Podemos citar o Easy, ESBox, PluThon e Brisa como exemplos de frameworks e ferramentas desenvolvidos e mantidos por brasileiros (Laboratório de Sistemas Embarcados e Computação Pervasiva da UFCG - Universidade Federal de Campina Grande - http://www.embedded.ufcg.edu.br/).

Vamos falar de alguns deles:



O objetivo do Easy é tornar o desenvolvimento de aplicações para o Maemo extremamente fácil sem perder o poder de processamento e o acesso às suas funcionalides. Para isso ele encapsula toda a complexidade de serviçoes de multimídia, rede e interface gráfica através de uma API de alto nível na linguagem Python.




O ESbox é um plug-in do Eclipse que ajuda a programadores a desenvolver aplicações para a plataforma Maemo. Ele suporta as linguagens C/C++ e Python e o mais legal, não quer um dispositivo para testes do seu aplicativo.




PluThon é um outro plug-in para o Eclipse que provê o suporte ao desenvolvimento de aplicativos em Python para a plataforma Maemo. Desenvolvedores executam e depuram aplicações diretamente no dispositivo, o que acelera o desenvolvimento.



BRisa é outro framework escrito também em Python que permite a criação de aplicações UPnP, focado em Servidores multimídia e renderização de mídia.


Como vocês podem ter observado, há várias ferramentas out-of-the-box para o desenvolvimento de aplicações para seu Nokia Internet Tablet. E o mais interessante, que há uma forte tendência pela escolha de Python e C/C++ como as linguagens para desenvolvimento de aplicativos para estes dispositivos. Isso me fez me aproximar mais deste pequeno aparelho. Estou até com umas idéias interessantes para construção de frameworks de simulação na área de computação inteligente para sistemas embarcados e no aprendizado da linguagem Python com um simulador gráfico de batalhas de robôs programados por desenvolvedores. Enfim, isso fica para próximos posts!

Até a próxima!

Dicas de JavaME; Blog Small and Adaptive

Gostaria de recomendar um blog muito bom com dicas e tutoriais para os desenvolvedores de JavaME. O blog Small and Adaptive contêm várias dicas e pequenos "quebra-galhos" que podem ajudar nas práticas de desenvolvimento de aplicativos móveis com JavaME.

Recomendo a leitura! E parabéns pelo material ao colega Telmo! =D

Segue o link do mesmo, aqui.

Artigos sobre Desenvolvimento Multi-plataforma em Symbian

Um grande colega meu Felipe Andrade publicou alguns artigos interessantes em parceria com a comunidade de desenvolvedores Symbian (Symbian Developer).
Os artigos fazem uma análise das plataformas existentes para desenvolvimento suportados pelo Symbian e também sobre a possibilidade de desenvolver aplicativos com 2 ou mais linguagens ao mesmo tempo. Isso é possível ?! Sim!

Vejam os artigos na íntegra (em inglês) :

Multi-Language Programming - Part 1
Bernd Wiegmann’s paper examines the strengths and weaknesses of runtime environments.

Multi-Language Programming - Part 2
This paper is the second in a series examining how to build applications by mixing languages.


Um post publicado pelo colega Rodrigo Peixoto, fala sobre como reduzir e otimizar ao máximo a performance do seu aplicativo desenvolvido em Python. Muito bom o post! Recomendo! Especialmente para aqueles que não conhecem a linguagem de programação Python ou para aqueles que ainda acreditam que Python é muito lento! (Ele é lento em comparação à linguagens compiláveis, mas com bibliotecas terceiras e práticas de programação corretas é possível extrair o máximo do Python com o que ele tem de melhor: produtividade e liberdade!)



Leiam o post referencial "Aplicativos Python lentos. Onde está o gargalo" aqui.

Netbeans com suporte a Python

Ótima notícia para os desenvolvedores de Python!

Mais uma ferramenta que suporta a linguagem Python. O Netbeans!

Na versão 6.5, pronta para download!

Irei fazer experimentos para verificar se é válido substituí-lo pelo Pydev (Eclipse).


Fonte: Code Snakes

Dica: Nivel da bateria celulares Symbian 3rd Nokia

Para os desenvolvedores da plataforma nokia Symbian 3rd, especificamente para os desenvolvedores de JavaME, a Nokia introduziu uma propriedade "com.nokia.mid.batterylevel" que permite acessar o nível atual da bateria através da chamada do método System.getProperty("com.nokia.mid.batterylevel") a partir do seu midlet.

Segue um exemplo de código tirado do blog MobilePit:

Download source code and sample midlet : NokiaBattery_midlet.zip

Portais para desenvolvimento mobile

Pessoal,

Estava fazendo uma análise aqui de quantas fabricantes de celulares possuem portais ou fóruns específicos para desenvolvedores de aplicativos para a sua linha de aparelhos. Posso dizer que fiquei até contente, em comparação há alguns anos atrás em que tinha que procurar informações sobre desenvolvimento para um celular Samsung ou LG em portais genéricos de JavaME ou algo semelhante.

Seguem os links para os interessados em ter em seus favoritos dicas e guidelines dos portais de desenvolvimento por fabricante:

LG Developer Forum

Samsung Developer Site

Forum Nokia

Motorola Developer


BlackBerry Developer Program

Iphone Developer


Sony Ericsson developer program


Só não encontrei ainda a do HTC.... mas enfim já é um repositório já bem cheio para ajudar aos desenvolvedores de aparelhos móveis, especialmente para suporte de download de sdks e guidelines!

[]''s

Desenvolvimento para Iphone: tutoriais

Achei no blog do Diego Santos, um material bem interessante em português em que o mesmo está traduzindo os guias de desenvolvimento para o Iphone do site da Apple. Nesses tutoriais em português, vários conceitos sobre a plataforma do Iphone e sobre o ambiente de desenvolvimento são apresentados.

Seguem os links abaixo:

Um overview sobre o desenvolvimento para Iphone

Ferramenta para Desenvolvimento para Iphone OS


Tudo isso pode ser encontrado no site oficial de desenvolvedores da Apple:

Apple Developer

Aplicativos Python S60


Achei um post muito interessante em um fórum que encontrei mostrando diversos aplicativos desenvolvidos em Python para celulares Symbian S60.
É incrível a quantidade de aplicativos interessantes de bastante qualidade desenvolvidos em apenas em algumas horas! Linguagens de programação de script são fantásticas para prototipação de aplicativos, e agora mostrando serviço em aplicativos comerciais prontos para serem distribuídos!

Recomendo fortemente vocês darem uma olhada, especialmente porque os aplicativos são open-source e os códigos-fonte estão disponíveis para download e estudo.

Análise de plataformas móveis: JavaME (Prós e contras)

Uma das questões bem intrigantes hoje para os desenvolvedores da área mobile é a dificuldade da escolha de que linguagem de programação ou tecnologia a escolher para desenvolver nossa aplicação. Existe hoje uma variada e crescente lista de linguagens como Java, Symbian C++, Flash Lite, Widgets, Python, etc.
O mais interessante é que como existem diversas tecnologias, não há a necessidade para os desenvolvedores de ter conhecimento técnico em todas as tecnologias, visto que nem todos também desenvolvem os mesmos tipos de aplicativos. Ou seja, de acordo com o tipo de tecnologia que melhor se encaixa com a experiência do desenvolvedor e com o propósito do aplicativo, podemos decidir qual melhor tecnologia a ser usada para o desenvolvimento.
Mas isso pode ser uma faca de dois gumes. Há a possibilidade também de confudir os novos desenvolvedores que estão começando a desenvolver nesse amplo mundo de software mobile, porém fragmentado.

Em muitos fórums, geralmente ocorre esse tipo de discussão:

Questão: "Eu quero desenvolver um aplicativo que abra um arquivo e possa enviá-lo para um servidor web. O que eu posso usar para desenvolver esse aplicativo ?"

Resposta1: "JavaME, FileConnection API! Ele pode resolver seu problema."
Resposta2: "Ah, não se preocupe. Use C++ em vez de JavaME, porque senão você vai receber milhões de caixas de dialógo de permissões e segurança."
Resposta3: "Porque usar C++ quando você pode fazer a mesma coisa com Python? C++ é muito complexo ! "
Resposta4: "Mas Python não roda em aparelhos sem o sistema operacional Symbian, use Java."
Resposta5: "Para que tanto trabalho? Porque não usa logo o Flash Lite e usa a persistência já nativa baseada em servidor ("server-based persistence") ? Seu aplicativo vai sair rapidinho!"
Resposta6: "Flash Lite é muito fragmentado e de novo cai na necessidade de aparelhos Symbian. Use JavaME, mas não se esqueça de assinar (certificar) sua MIDlet ou a usabilidade do aplicativo será um lixo!"

Vejam os diversos fórums na área de desenvolvimento móvel. Está cheio dessas discussões como o exemplo acima. Baseada na minha opinião/experiência e também compilando opiniões de diversas fontes, pude juntar uma análise com pós e contras das principais plataformas de desenvolvimento da atualidade. Irei começar com JavaME, que é a mais popular dentre as existentes.

Tecnologia: JavaME

Prós:
Aplicativos para gerenciamento pessoal e produtividade - Exemplos: Gerenciadores de atividades físicas (sport trackers), aplicativos de controle de gastos, gerenciamento de informações pessoais (calendário, agenda de contatos, etc.).
Jogos - Tanto jogos casuais (advergames) como jogos complexos.
Aplicativos comerciais "enterprise" - Esses não necessitam de interfaces muito requintadas. Geralmente usam bibliotecas padrões da API (Ex: LCDUI) para atingir o maior número de aparelhos possíveis aliado com menor tempo de desenvolvimento (A preocupação fica na regra de negócio).
Prototipação Rápida - Provas de conceito e aplicativos para testes podem ser rapidamente implementados com JavaME.
Aplicativos de Rede - Leitores RSS, serviços de previsão de tempo, aplicativos de blogging, versões mobile de aplicativos web, etc.
Criação de aplicativos realmente portáveis.
Grande quantidade de aparelhos disponíveis com o a máquina virtual JavaME.

Porque?

Facilidade e simplicidade de uso e aprendizado - Um programador experiente, mesmo vindo de outras linguagens como C/C++, pode obter um bom conhecimento prático de como toda a plataforma funciona em algumas semanas e produzir aplicativos rapidamente. Isto eleva a JavaME como uma plataforma rápida pra desenvolvimento de aplicativos. Baseada na linguagem Java e orientada a objetos facilitam esse aprendizado. O framework também não é muito complexo.
Portabilidade - A idéia do Java é "Programe uma vez e rode em qualquer lugar". Embora isso seja o ideal, na prática há diferenças entre implementações, o suporte diferenciado a certos pacotes e APIS, formatos de Audio/video, etc. Mas isso não significa que você deve reescrever totalmente seu aplicativo. Com algumas linhas e algumas checagens em tempo de execução será suficiente.

GAME API - Para mim um dos frameworks matadores do JavaME. Ele combinado com algumas APIS opcionais tornam o desenvolvimento de jogos para celular bastante eficiente com ótimos resultados.
API de Networking e a facilidade de comunicação Web - O framework GCF (Generic Connection Framework) tem como essência ser o máximo possível extensível e genérico para variados tipos de conexão. Uma vez que você tenha aprendido a fazer um tipo de conexão, você está apto rapidamente a fazer qualquer tipo de conexão.


Contras:

Acesso a recursos específicos do aparelho - Exemplos: Acesso a caixa de mensagens SMS, sistema de arquivos, galerias de foto, hardware, etc.
Aplicações Multimídia - Examplos: Reprodutores (players) de video streaming, audio e gravadores de vídeo e som, aplicações de reconhecimento de vídeo/som.
Aplicativos que exigem bastante performance - Computação científica, processamento de imagens, decodificadores de vídeo, processamento de som.


Porque?

A API de Java ainda é limitada para acesso a recursos específicos no hardware do telefone. Isso existe porque qualquer funcionalidade nova em Java depende da aprovação do processo da comunidade Java (Java Community Process), logo se não existir uma API padrão disponível para que o desenvolvedor queira fazer, ele está com má sorte. Um exemplo clássico seria acessar a caixa de mensagens SMS do aparelho.

A implementação MMAPI ainda é bastante bugada. Muitas checagens em tempo de execução são necessárias ainda pelo fato de que as funcionalidades nativas do aparelho (desenvolvidas em outras linguagens) são disponíveis para máquina virtual Java e esse acesso indireto pode ter um impacto profundo em performance de aplicativos de tempo-real.

Fazer controles específicos sobre áudio, vídeo ou câmera geralmente não está disponível. Embora o JSR 234 (Advanced Multimedia Supplements) ainda consiga resolver algumas dessas dependências, ainda nem se compara com o que outras plataformas podem oferecer para os desenvolvedores. E a disponibilidade dessa API em aparelhos móveis, já que é uma API opcional, é bastante baixa.

O acesso ao sistema de arquivos é provido pela API FileConnection (JSR-75), mas ainda é restrito para certos tipos de acesso e requer que o MIDlet seja assinado, senão diversas caixas de diálogo de segurança pedindo a permissão do usuário aparecerão na tela. Usabilidade zero! Ah, e o processo de assinatura de um MIDlet custa $$ e tem uma burocracia envolvida, esteja preparado.


Enfim, essa é apenas uma pequena análise que eu faço hoje com JavaME, inclusive opinião de alguns desenvolvedores e fóruns que eu vejo na área. Não acho que JavaME é ruim ou melhor. Ela tem muitos prós e contras que devem ser levados quando iniciar a escolha de qual plataforma para o desenvolvimento do seu aplicativo móvel. De acordo com as suas necessidades e requisitos do seu aplicativo, a pergunta "O que eu devo escolher ou usar" será respondida através da experiência. No início realmente é complicado, mas com o tempo a escolha de qual plataforma adotar acaba sendo bastante natural. Gerenciamento de requisitos é uma ciência e não uma arte, então a escolha da plataforma de desenvolvimento irá aparecer naturalmente com a experiência.

A próxima linguagem de programação que irei citar mais detalhes é o Python! Considero essa a minha plataforma de desenvolvimento favorita. =D



Teste de desempenho : Java vs C++

Este post não tem nada haver com Mobile diretamente (Indiretamente tem! Especialmente em informações de desempenho e alocação de memória: Requisitos essenciais para desenvolvimento de aplicativos móveis).
Um artigo publicado pelo Vitor Pamplona no seu blog, fazendo alguns testes de desempenho entre Java e a linguagem C++. A Pergunta lançada: Qual plataforma tem melhor desempenho em processadores Corex (ex: Core 2 Duo) ?

Reposta? Vejam aqui e tirem a dúvida com seus próprios olhos.

Fiquei impressionado com o resultado! Sem dúvidas, A Sun está de parabéns pelo trabalho realizado.
top