segunda-feira, 5 de julho de 2010

Nokia Qt SDK para Linux e Mac

Mais novidades sobre o sdk do Qt para Linux e Mac. Já faz um tempo que saiu um release incial do projeto visando criar uma forma unificada de desenvolvimento mobile usando Qt.

A intenção é levar o ambiente de desenvolvimento para outros sistemas operacionais como Linux e Mac. Abaixo algumas informações do Forum.Nokia

Description

The Nokia Qt SDK leverages the power of the Qt framework and tools, combining them with tools designed to streamline the creation of apps for Symbian and the Maemo platform.
The SDK includes the Qt Simulator, which enables apps for Symbian and Maemo devices to be tested on a computer.

Versions available

The Nokia Qt SDK is available in the following versions and installation packages:
  •  32- or 64-bit Microsoft Windows XP Service Pack 2, Windows Vista, or Windows 7 .
  •  32-bit Ubuntu Linux 7.04 or later.
  •  64-bit Ubuntu Linux 7.04 or later.
  •  Apple Mac OS X 10.6 or later (Beta).


Link: http://www.forum.nokia.com/info/sw.nokia.com/id/e920da1a-5b18-42df-82c3-907413e525fb/Nokia_Qt_SDK.html


E falando sobre o esquema do remote compiler:

A goal of the Nokia Qt SDK is to enable developers using Linux and Apple Mac computers to create applications that will run on Symbian devices. An impediment to this goal is the absence of a solution to enable Symbian binaries to be compiled on these computers.
http://wiki.forum.nokia.com/index.php/Nokia_Qt_SDK_Remote_Compiler

E aqui algumas informações e limitações sobre o projeto: http://wiki.forum.nokia.com/index.php/Nokia_Qt_SDK_v1.0_Beta


As coisas ainda devem estar em beta mas já deve ser possível fazer testes e ver como os sdks estão funcionando. O importante é que está próximo de poder desenvolver em outros SOs melhores, como Linux e Mac OS.



sexta-feira, 21 de agosto de 2009

Widgets!

Os widgets são pequenas aplicações com funções específicas. Todos já devem ter visto um alguma vez. Eles tem uma filosofia bastante generosa: facilitar o acesso à um serviço de forma rápida e simples e com um visual agradável (na maioria dos casos).

Eles estão presentes no Windows Vista, no Dashboard do Mac, Yahoo e agora estão se mostrando extremamente eficientes na área dos celulares, smartphones e internet tablets. A tecnologia em si é padronizada pelo w3c, que orienta de forma geral como deve ser a estrutura dos widgets.

Quem tiver interesse em ler a padronização, basta ir em: http://www.w3.org/TR/widgets/

Em linhas gerais, segundo a definição do W3, os widgets são aplicações no estilo cliente-servidor e possuem um ciclo de desenvolvimento bem definido em conformidade com uma série de padrões (chamados de web standards).

Os widgets possuem um conjunto de especificações, dentre elas temos a Widgets-API, Widgets-DigSig (os widgets podem ser assinados digitalmente usando um padrão de assinatura baseado em XML), a Widgets-Security que especifica as ações dos widgets quando estão em execução e a Widgets-Update que permite criar um esquema de atualização dos widgets via HTTP, o que torna o ciclo de desenvolvimento, distribuição e atualização bem definido.



Imagem da arquitetura de um Widget, retirada do site: http://www.w3.org/TR/widgets-land/

Acima, a imagem mostra a arquitetura básica dos widgets. O user agent é o que se chama de “runtime environment” , lugar onde os widgets são executados. É possível notar o conjunto de tecnologias que podem ser usadas na construção de um widget, que vai desde a popular combinação de XML, Javascript (ou mais formalmente, ECMAScript), HTML e CSS. Tudo combinado com um poder de desenvolvimento que dá a liberdade de criação desde as mais simples até as mais complexas.

Nesse caso, é evidente que o uso da internet é fundamental. Todo o esquema de execução é baseado no consumo de uma fonte de informação (nesse caso, o Widget Resource da imagem).

Para um estudo mais completo da especificação dos Widgets, basta ler o documento disponível no site do W3 Consortium.

Como continuação deste post, pretende me apronfundar mais na tecnologia dos Widgets e abordar a tecnologia do Web Runtime, ou WRT, desenvolvido pela Nokia e que hoje é uma grande promesse na área de desenvolvimento em celulares e smartphones.


Fonte:

Widgets 1.0: Packaging and Configuration (W3C Working Draft 22 December 2008): http://www.w3.org/TR/widgets/

Iniciando com Web Runtime (WRT) da Nokia

Para quem não conhece, o WRT é uma nova tecnologia da Nokia que foi liberada para o público no ano passado. Como é algo bem recente, a Nokia está investindo bastante na tecnologia e principalmente na comunidade de desenvolvimento.

O S60 usa a engine do Webkit no seu navegador de internet. O WRT faz justamente extender o Web Browser para habilitar a execução de Widgets.

Widgets são uma categoria de aplicações que tem foco no usuário final, provendo acesso a serviços através de consumo de informações. Exemplos são os widgets do Windows Vista, Yahoo!, etc. Eles seguem uma padronização do W3 Consortium e seguem uma arquitetura bem rígida e definida. Escrevi um pouco sobre os widgets em http://ryganon.blogspot.com/2009/04/widgets.html

Aí entra o WRT e a popularização dos celulares e smartphones. Nada mais óbvio que esse tipo de serviço migrasse perfeitamente para essa área. Os widgets do WRT já são bem integrados na nova safra de smartphones da Nokia, como os da 5a edição. Alguns modelos anteriores como os da 3a edição também rodam os widgets.

Eles são construídos de forma a serem aplicações feitas usando a combinação de HTML, CSS e Javascript com recursos de comunicação, segurança (permite assinatura e criptografia baseada em XML) e acesso a muitos recursos do S60.

A IDE "oficial" da Nokia para construção dos widgets é o Aptana Studio com o plugin do WRT. O Aptana é uma IDE baseada no eclipse, gratuita (também possui versões pagas) focada na pate de edição web. Eu considero uma das melhores IDEs para edição de Javascript. Para desenvolver os widgets é preciso basicamente o Aptana, pois ele tem uma série de ferramentas que permitem o teste das aplicações. Download e informações em: http://www.forum.nokia.com/Resources_and_Information/Tools/Runtimes/Web_Runtime/Aptana_Plugin/

Paralelo a isso pode-se (na verdade deve-se) usar os SDKs de desenvolvimento da Nokia. Uma boa opção é usar o SDK da 5a edição, que já traz recursos de touchsreen, baseado nos aparelhos mais recentes da Nokia.

Informações sobre o WRT em http://www.forum.nokia.com/Resources_and_Information/Explore/Web_Technologies/Web_Runtime/
Na página tem um tour pela tecnologia, com descrição de mercado para publicação, arquitetura, ferramentas, etc.

No wiki sobre o WRT tem muito código de exemplo, guias e tutoriais http://wiki.forum.nokia.com/index.php/Category:Web_Runtime_(WRT)

Bom, quem quiser se aventurar mais em widgets e estiver afim de estudar o básico está aí no texto.

segunda-feira, 12 de janeiro de 2009

PyS60: Creating masks for images

Masks are used to create transparency aspect to images. Supose you have an image with dark background color. You can create a mask and attach it to the original image and them set your background color to be transparent.

First you need to open the image:
myImage = graphics.Image.open("C:\\image.png")
Then:
#get with and weight of the image
width, height = myImage.size

#now, create the mask, mode 1 means that the image will be created in black and white mode
mask = Image.new(size=myImage.size, mode='1')

#get the first pixel of the image, wich is located at the background area
tran = myImage.getpixel((0,0))[0]

#make the transformation
for y in range(height):
line = myImage.getpixel([(x, y) for x in range(width)])

for x in range(width):
if line[x] == tran:
mask.point((x,y), 0)

Now you have a masked version of the image pointed by mask variable. To use the mask just draw the original image in the body canvas:

background.blit(myImage,(x,y),(z,w), mask = mask)

Where background variable is the reference to your background. Parameters:

1. The original image
2. A tuple defining the size of the image (just if yout want to resize the original image to fit your screen)
3. Is the position you want to draw the image in the screen.

The last one is the mask reference.

Links and code examples can be found in the Python Wiki at Forum Nokia

Anunciado o PyS60 1.9.0 (com Python 2.5)

O pessoal do Forum Nokia anunciou no fim do ano passado o lançamento da nova versão do PyS60. Segue o trecho:

New Features Added in PyS60 1.9.0 are:

  • New Python 2.5.1 core.
  • A GUI version of Ensymble for packaging scripts into sis files.
  • More extensive documentation in the form of HTML documents.
  • If the application raises an exception on start-up, the traceback is printed on the screen instead of the application quitting silently.
  • S60 2nd Edition no longer supported
Essa é parte da recente sequência de lançamentos de SDKs para o S60 5th edition. A Nokia está investindo bastante na nova safra de modelos com touchscreen.

Já estão disponíveis os SDKs da 5a edição para download no Forum Nokia