Diego Santos

Vocês anseiam pelo dia em que homens serão homens e escreverão seus próprios devices drivers?

Codecamp Forum Nokia setembro 26, 2008

Filed under: Mobilidade — diegosantos @ 7:11 pm
Tags: ,

O Codecamp Forum Nokia que vai acontecer aqui no Brasil no dia 22 de
outubro no Rio de Janeiro e no dia 24 de outubro em São Paulo:

http://www.onlineintl.com/Nokia/

Nesse Codecamp eles irão fazer um “overview” da plataforma S60 da
Nokia e irão apresentar dois tutoriais:

– Python para smartphones S60
– Web Runtime Widgets para smartphones S60

Vocês podem obter informações detalhadas e se inscreverem para o
evento no site informado acima.

Anúncios
 

Ferramenta para Desenvolvimento para Iphone OS setembro 14, 2008

Filed under: Mobilidade — diegosantos @ 6:15 am
Tags:
Para desenvolver aplicações para iphone, você precisa de um computador com MAC OS X executando as ferramentas do Xcode. Xcode é uma suite da Apple para desenvolvimento que prove suporte a gerenciamento de projetos, edição de código, construção de executáveis, debugar códico fonte, gereciamento de repositório de código, apuração da perfomance, e muito mais. No centro da suite está a própria aplicação Xcode, que prove o ambiente de básico de desenvolvimento. Xcode não é a única ferramenta que você usa, a as seguintes seções te dara uma introdução dos aplicativos que você usa para criar aplicativos para Iphone.

Xcode

O focu da sua experiência de desenvolvimento é o aplicativo Xcode. Xcode é um ambiente integrado de desenvolvimento (IDE) que provê todas as ferramentas que você irá precisar para criar e gerenciar seu projeto e arquivos Iphone, construa seu como um executável, execute e debugue seu código no simulador Iphone ou em um aparelho.

Para criar um novo aplicativo Iphone, você começa criando um novo projeto no Xcode. Um projeto gerencia todas as informações associadas com seu aplicativo, incluindo códigos fonte, configurações de instalação e regaras necessárias para por as partes juntas. O coração de cada projeto Xcode é a janela do projeto, seja na “Figure 1”. Essa janela permite acesso instantâneo para todos os elementos chave para seu aplicativo. A lista Grupos e Arquivos é onde você gerencia os arquivos em seu projeto, incluindo os arquivos de códigos e os alvos de cada um desses arquivos. A barra de ferramentas permite acesso a ferramentas e comando frequentemente usados, enquanto o painel de detalhes provê um espaço configurável para trabalhar em seu projeto. Outros aspectos de cada janela do projeto oferece

informações sobre o projeto.

Figure 1 Uma janela do projeto Xcode.

The Xcode project window

 

Xcode vem com um avançado editor de texto, que suporta recursos tais como completar código, sintaxe em cores, esconder códigos, e anotações inline para erros, alertas, e notas. O sistema de inicialização do Xcode prove apropriadas configurações padrão e a habilidade para configurar o ambiente de acordo com o seu desejo. E se você necessita de documentação, o Assistente de Pesquisa providencia uma documentação de acordo com o contexto, enquanto a janela da documentação do Xcode deixa você navegar e buscar por informação.

Quando você inicializa sua aplicação no Xcode, você tem a opção de inicializar no simulador ou no aparelho. O simulador providencia um ambiente local para testar sua aplicação e ter certeza que ela se comporta essencialmente do jeito que você quer. Depois que você estiver satisfeito com o comportamento básico da aplicação, você pode dizer ao Xcode para inicializar e executá-lo no Iphone ou iPod Touch conectado ao seu computador. Executando em um aparelho permite um teste de última instância, e o Xcode deixa você debugar o código que está sendo executado no aparelho. Executar no aparelho permite um último teste no ambiente, e o Xcode permite que você debugue o código que está sendo executado no aparelho.

Figure 2 Executando um projeto do Xcode

Running a project from Xcode

Para detalhes de como inicilizar e executar um projeto no Iphone, veja “Development Environment” in iPhone OS Programming Guide.

Interface Builder

Interface Builder é a ferramenta usada para montar a interface visual de sua aplicação. Usando o Interface Builder, você monta a janela de sua aplicação arrastando e soltando componentes pré-configurados dentro dele. O compontoente inclui sistema de controle padrão como campos de textos, botões, e também customização para representar o layout de sua aplicação. Depois de ter posicionado os componentes na superfície da janela, você pode posicioná-lo arrastando, configurar seus atributos usando o inspetor, e estabelecer o relacionamento entre aqueles objetos e seu código. Quando sua interface parece do jeito que você quer, você salva o conteúdo em um arquivo nib, que é um formato de arquivo de recursos customizados.

Os arquivos nib você pode criar no Interface Builder contendo todas as informações que o kit UI precisa para recriar os mesmos objetos em sua apliacação em tempo de execução. Carregando o aquivo nib cria se versões de tempo de execução de todos os objetos arquivdos no arquivo, configurando-os exatamente como eles eram no Interface Builder. Também usa informações de conexão que você especificou para estabeler conexões entre um objete criado a pouco e alguns objetos já existentes na aplicação. Essas conexões providenciam a seu código ponteiros para os objetos dos arquivos nib e também provicendia informações sobre o que os objetos precisam para comunicar ações dos usuários ao código.
Em toda parte, usar o Interface Builder salva nos de um tremendo tempo quando vamos criar interface do usuário de nossa aplicação. Interface Builder elimina códigos necessários para criar, configurar, e posicionar os objetos que compoem sua interface. Por isso com um editor visual, você consegue ver exatamente como sua interface vai parecer no tempo de execução.

Instruments

A fim de assegurar que você entregue o melhor experiência aos usuários de seu software, o ambiente de instrumentos permite que você analize a performance de seu aplicativo Iphone enquanto executa no simulador ou no aparelho. Instrumentos reunem dados de seu aplicativo executado e apresenta dados em gráficos chamados de linha do tempo. Você pode reunir dados sobre o uso da memória de sua aplicação, atividade do dis, atividade de rede e gráficos de performance. A linha do tempo pode mostrar todos os diferentes tipos de informações lado a lado, deixando você correlagar em toda parte o comportamento de sua aplicação, não só o comportamento em uma área especifica. Para conseguir informações mais detalhadas, você pode ver detalhes das amostras que o instrumento reune.

Figure 3 Using Instruments to tune your application

Using Instruments to tune your application

Em adição para prover a linha do tempo, os instrumentos providenciam ferramentas para ajudá-lo a analizar o comportamento de sua aplicação. Por exemplo, a janela de instrumentos deixa você armazenar dados de mútiplas execuções assim você pode ver se o comportamento de seu aplicativo está realmente conseguindo melhoras ou se ainda precisa de ajustes. Você pode salvar os dados daquela execução em um documento do instrumento e abrí-lo em outras vezes.

Para detalhes de como usar os instrumentos com os aplicativos do Iphone, veja “Development Environment” em iPhone OS Programming Guide. Para informações gerais de como usar os intrumentos, veja Instruments User Guide.

 

Python for S60 setembro 10, 2008

Filed under: Mobilidade,PyS60 — diegosantos @ 7:23 pm
Tags: ,

Após alguns artigos falando sobre o desenvolvimento para móveis, irei mostrar agora um pouco sobre o PyS60 uma das melhores maneiras de se desenvolver para a Série 60 da Nokia. Em breve postarei mais algumas traduções referentes ao desenvolvimento para o Iphone e também algumas dicas sobre Objective-C, a linguagem do Iphone.

Pra começar: Porque Python?
Pythonis a simple, consistent and effective programming language. [Manual Getting Started With Pyton]

Algumas coisas interessantes antes de começar

Python for S60 tem algumas peculiaridades interessantes. Dentre todas, quero citar algumas:

  • Instalação simplificada
  • Possibilidade de programar diretamente no celular
  • Possibilidade de instalar bibliotecas
  • Construir aplicações gráficas
  • Acessar arquivos do cartão de memória/ ou memória do telefone
  • Construir aplicativos com tecnologia bluetooth
  • Acessar câmera
  • SMS
  • Lista telefônica

Como deu pra perceber, é possível construir um número infinito de aplicativos utilizando esta tecnologia.

Requisitos

Celular Nokia com Symbian S60 ou superior.

Um computador… Pois o download do interpretador Symbian para o celular está geralmente em um arquivo .zip. É necessário descompactar o arquivo e instalar o .sys via Pc Suite. Você pode fazer o download dele pelo link para o Forum da Nokia

E um editorzinho de texto. Seja no computador ou no celular….. No PC serve até o notepad, no celular eu gosto de usar o Yedit ou o Notepad. Você pode fazer o download de ambos no symbianbrasil.com

Funfando…

Vamos escrever nosso primeiro script em Python. Será algo extremamente complexo e cansativo. Vamos construir o nosso primeiro “Hello World!” (ou quase um Hello World!).
O código será o seguinte:

  1. print O primeiro programa PyS60

Só isso? Sim, só isso!
Igualzinho ao nosso bom e velho Python na linha de comando. Para um Hellow World gráfico, o código ficaria:

  1. import appuifw
  2. appuifw.app.title = uO primeiro programa PyS60
  3. appuifw.note(uO primeiro programa PyS60, ‘info’)

Phyton_hello_world
Para rodar o aplicativo, basta renomea-lo para arquivo.py e envia-lo ao celular. Quando o arquivo for executado, o interpretador já saberá que o programa que o executa é o Python.

 

Um overview sobre o desenvolvimento para iphone julho 29, 2008

Filed under: Mobilidade — diegosantos @ 9:29 pm
Tags: ,

Esse texto, a alguns outros que virão, é a tradução do centro de desenvolvimento para iphone do qual faço parte.

extraído de : http://developer.apple.com/iphone/gettingstarted/docs/iphoneosoverview.action

O iPhone OS inclui sistema operacional e tecnologias que você pode usar para executar aplicativos nativamente em iPhone e iPod touch . Ainda que compartilhe uma herança comum a muitas tecnologias com o Mac OS X, O iPhone OS foi concebido para satisfazer as necessidades de um ambiente móvel, onde as necessidades do usuário são um pouco diferentes. Os desenvolvedores do Mac OS X irão encontrar muitas tecnologias familiar, mas eles podem também encontrar tecnologias que estão disponíveis apenas no sistema operacional do iPhone sistema operacional, tais como a interface Multi-Touch e o acelerómetro.

O Kit de desenvolvimento para iPhone (iPhone SDK) contém o código, a informação, e as ferramentas que você precisa para desenvolver, testar, executar, depurar e aplicações para sincronizar com o iPhone OS. O ferramentas do Xcode foram atualizados para apoiar o desenvolvimento do iPhone OS. Para além de constituir a base de edição, compilação, depuração e de ambiente para o seu código, Xcode prevê também o ponto de lançamento para testar seus aplicativos em um iPod ou iPhone touch. Xcode também lhe permite executar aplicativos em um simulador de iPhone , uma plataforma que imita a base do iPhone OS em ambiente local no seu computador Macintosh.

Este artigo fornece uma visão geral de alto nível das características básicas encontradas no iPhone OS, para ajudar a orientá-lo na plataforma. Você encontrará outros artigos do iPhone Dev Center para ajudar a chegar até a velocidade mais rápida e para ajudá-lo a entender o processo básico para a criação de aplicativos para iPhone. Você deve usar esses artigos para ajudar a guiar o seu caminho para a aprendizagem da plataforma do iPhone OS.

Camadas de tecnologia do iPhone OS

No iPhone OS, o sistema de arquitetura e muitas das tecnologias são semelhantes aos encontrados no Mac OS X. O kernel do sistema operacional do iPhone é baseado em uma variante da mesma base Mach kernel que se encontra no Mac OS X. No topo desta kernel estão as camadas de serviços que são usados para executar aplicações na plataforma. A Figura mostra uma visão geral de alto nível dessas camadas.

Isto dá-lhe opções camadas quando se trata de implementar seu código. Por exemplo, as camadas núcleo do sistema operacional (Core OS) e o o Núcles dos Serviços (Core Services)  contém as interfaces fundamentais para iPhone OS, incluindo os utilizados para acessar aos arquivos, tipos de dados de baixo nível, serviços Bonjour, soquetes de rede e assim por diante. Essas interfaces são na sua maioria à base do C e incluem tecnologias como a Core Fundation, CFNetwork, SQLite, e acesso a POSIX threads e sockets UNIX entre outros.

Nas camadas superiores, você encontrará as mais avançadas tecnologias que utilizam uma mistura de interfaces baseadas em C e Objective-C. Por exemplo, a camada dos Meios de Comunicação Social (Media) contém as tecnologias fundamentais utilizados para apoiar desenho 2D e 3D, áudio e vídeo. Esta camada inclui as tecnologias baseadas em C o OpenGL ES, Quartz, e Core Audio. Contém também Core Animation, que é um avançado engine de animação baseado em Objetivo-C.

Na camada Cocoa Touch, a maior parte das tecnologias utiliza Objetivo-C. O framework dessa camada fornecer as infra-estruturas fundamentais utilizadas pela sua aplicação. Por exemplo, o frame provê suporte a orientação a objetos colecções, gerenciamento de arquivos, operações de rede, e mais. O framework UIKit prevê a infra-estrutura visual para sua aplicação, incluindo classes de janelas, pontos de vista, controles  e os controladores que gerenciam esses objetos. Outros frameworks deste nível permitem o acesso do usuário à informação e de contato e foto para o acelerômetros e outras características de hardware do dispositivo.

O ponto de partida para qualquer novo projecto é a camada Cocoa Touch , e o framework UIKit , em particular. Ao decidir quais tecnologias adicionais  utilizar, é recomendado que você comece com framework das camadas de nível superior e se apoiar nos framework das camadas mais baixas, conforme necessário. Os framework de nível superior torna mais fácil o suporte aos comportamenntos do sistema com menos esforço da sua parte. A única vez em que você deve descer para os framework de nível mais baixo é quando você deseja implementar um comportamento personalizado que não seja fornecida a um nível superior.

Para maiores detalhes das tecnologias do iPhone OS veja iPhone OS Programming Guide.

Escrevendo Código para iPhone OS

O iPhone SDK suporta a criação de orientada-gráficamente para os aplicativos que correm nativamente em iPhone OS. As aplicações que você criar pode residir no ecrã inicial do usuário, junto com os outros aplicativos de sistema, tais como fotos, previsão do tempo, e Relógio. Depois de serem lançados, com exceção do kernel e alguns daemons de baixo nível ,a sua aplicação é a única aplicação em execução no sistema. Embora executando, a sua aplicação ocupa todo o ecrã e é o foco de atenção do usuário. E quando o usuário apertar o botão Home, a sua aplicação sai do sistema exibe a tela Home novamente. Tendo o sistema é vantajoso para você mesmo, porque dá-lhe acesso total ao sistema de recursos subjacentes. Você pode tirar vantagem do espaço construído, em hardware, tais como os acelerómetros, câmera, gráficos e de hardware para executar apenas o seu código.

Devido à forma como os usuários interagem com o iPod e iPhone touch é fundamentalmente diferente da forma como os usuários interagem com o Mac OS X, a maneira de conceber as suas aplicações também devem ser diferentes. Em uma aplicação do iPhone, não há nenhuma noção de documento separado por janelas para exibir o conteúdo. Em vez disso, todos os dados da aplicação é exibida em uma única janela. Esta situação levou à criação de novos pontos de vista e controles que permitem que você possa apresentar os dados de sua aplicação de modo organizado. Além disso, muitos dos pontos de vista e controles padrão pode se comportar de forma ligeiramente diferente do que os seus homólogos do Mac OS X. A maior parte destas alterações devem ser transparentes, mas alguns podem exigir-lhe repensar a forma de organizar e apresentar os seus dados.

O modelo de tratamento de evento do iPhone SO representa também um importante ruptura em relação as aplicações desktop tradicionais. Em vez de se basear nos tradicionais eventos de mouse e teclado,  o iPhone OS introduz a idéia de “eventos de toque”. Um evento de toque pode ocorrer em qualquer altura e em combinação com um toque adicional ou mais eventos. Toques podem ser usado para detectar simples interações com o conteúdo, tais como a seleção ou arrastar os itens, ou eles podem ser usados para detectar gestos e interações complexas, tais como toque leve ou gestos para abrir ou fechar(utilizado, por exemplo, a zoom in e out nas aplicações de imagens).

Considerando a estrutura básica do seu aplicativo, você precisa pensar sobre o modo como os usuários vão realmente usá-lo. As aplicações do iPhone ser limpas, e focar no que o usuário precisa no momento. Lembre-se que os usuários que estão on-the-go querem obter a informação rapidamente e não gastar muito tempo procurando através de várias camadas de telas. Proporcionar um esquema simples que destaca as principais informações que o usuário precisa é importante. Para jogos divertidos e outros aplicativos, você também deve considerar a forma como os usuários podem querer interagir com o seu pedido e tirar partido das tecnologias, como os acelerômetros e câmera se for esse o caso.

À medida que você começar o desenvolvimento, os framework que pretende utilizar inicialmente estão nos framework UIKit e Foundation . Estes frameworks fornecem os principais serviços utilizados por todos as aplicações do iPhone. Para refinar sua aplicação, você deve investigar os outros frameworks do sistema para ver quais os serviços que oferecem. A documentação conceitual para cada um dos frameworks inclui links para materiais relevantes para ajudá-lo a aprender mais sobre como usar esse framework.

Para obter informações sobre os framework foundation e UIKit , veja Foundation Framework ReferenceUIKit Framework.
e

Onde começar

Criar simples aplicações que são executadas no iPhone OS é relativamente fácil com o projeto de construção de modelos fornecidos pela Xcode, mas criar aplicativos que fazem alguma coisa útil e agradável exige que você gaste algum tempo com leitura através da documentação disponível. No mínimo, você deve ter o tempo para ler as orientações dos artigos do iPhone Dev Center, que explorará as ferramentas e processos para a criação de aplicações.

Se você é completamente novo ao que diz respeito a iPhone OS e Mac OS X, ter tempo para compreender a concepção básica e padrões e das convenções iPhone OS é crítico para escrever código para a plataforma. Aplicações em iPhone OS funcionam melhor quando se tirar partido do poder fornecidos pelos frameworks . Se você passar algum tempo tentando trabalhar em torno do framework de comportamento básico, você poderá criar a sua aplicação muito mais difícil do que simplesmente a aprendizagem da utilização de padrões de projeto básico. As informações básicas que todos os desenvolvedores de iPhone está  Cocoa Fundamentals Guide. Este documento apresenta os princípios básicos da linguagem Objective-C e das convenções de programaçã e padrões utilizados por UIKit design e muitos outros frameworks do sistema.

Depois de compreender a base de convenções você usará para criar aplicações para o iPhone, pode  o  iPhone OS Programming Guide para detalhes específicos sobre o processo de desenvolvimento. Este livro oferece tarefa-chave de base conceitual e informações sobre como escrever aplicações para o iPhone, incluindo exemplos de como exibir uma interface de usuário, manipular eventos e tirar partido das características-chave do iPhone OS. Ele também descreve o processo global de desenvolvimento e explica como você usa o Xcode para construir e executar seus aplicativos.

Além de iPhone OS Programming Guide, você deve olhar também códigos de amostra disponíveis. Você também pode olhar os códigos disponíveis de aplicações iPhone OS que lhe mostram como usar as tecnologias disponíveis para criar aplicações para o mundo real. Você pode utilizar essas amostras como ponto de partida para as suas próprias aplicações ou você pode olhar para eles para saber mais sobre como usar recursos específicos.

O iPhone promete mudar todos os patamares do que é uma mobile, aliás ele já tem feito, muito ainda existe para ser feito e vale a pena aos techmaníacos ficarem atentos.

 

Desenvolvendo aplicações para Symbian OS S60 julho 27, 2008

Filed under: Mobilidade — diegosantos @ 6:26 pm
Tags: ,

O Symbian OS é um sistema muito versátil permitindo desenvolver aplicações em diversas linguagens diferentes como Symbian C++, JavaME, C entre outras.

O C++ como linguagem nativa do sistema possibilita que aplicações escritas nesta linguagem obtenham acesso maior as APIs (Application Programming Interface) do sistema e desempenho superior se comparado a outras linguagens como Java.
Possibilidades.JPG
Fonte: Symbian Resources

Possibilidades

  • Symbian C++
  • Java ME
  • Python
  • Perl
  • Ruby
  • FlashLite

Symbian C++

Prós:

  • Acesso completo ao sistema de arquivos.
  • Inicialização rápida.
  • Aplicações funcionam em todos os dispositivos sem necessidades de porta-los.
  • Aplicações funcionam em background, foreground, invisíveis.
  • Conta com controles já definidos e padronizados(Grids, Listbox, Forms, etc).
  • IDE gratuíta.

Contras:

  • Requer um conhecimento aprofundado em C++.
  • Maior tempo de produção comparada com outras linguagens.

Java ME

Prós:

  • Grande potencial de mercado.
  • Funcionam em qualquer dispositivos com suporte a Java (apesar da necessidade de portabilidade).
  • Facilidade na elaboração do código.
  • IDE gratuíta.

Contras:

  • Aplicações não podem rodar em background.
  • Demora na inicialização.
  • Fragmentação.
  • Acesso limitado ao recursos do sistema.

Python

Prós:

  • Extensibilidade.
  • Open Source.
  • Fácil programação.
  • Pode ser programado *on-device*.

Contras:

  • Sem pré-instalação

FlashLite

Prós:

  • Grande potencial de marketing
  • Boa IDE para desenvolvimento
  • Fácil de programar

Contras:

  • IDE de alto custo ($700)
  • Limitações do Flash Lite 1.1
 

Programando dispositivos móveis

Filed under: Mobilidade — diegosantos @ 4:11 am
Tags: , , ,

Com essa onda de Iphone, virou moda se falar em desenvolvimento para dispositivos moveis. Porém o que realmente falta é um guia para aqueles que desejam desenvolver para smartphones, iphones e ipods.

Não é a minha intenção ainda escrever um guia completo sobre o desenvolvimento para “MOBILE”, mas irei explanar um pouco, ao menos para clarear a mente daqueles, que como eu, está se aventurando nessa nova área para programação.

Para programar dispositivos móveis você precisa primeiramente saber em qual plataforma programar, cada celular possui um sistema operacional no qual trabalha em cima, porém este SO pode variar de celular para celular e pode possuir versões diferentes.

Aconselho você olhar este link para então verificar qual plataforma você irá utilizar ex.: S60, Series40, Series80 etc. Atualmente as plataformas mais utilizadas são Symbiam da RIM, Windows Mobile da Microsoft e uma versão móvel da Mac OS X para iphone.

O Symbian atualmente proporciona suporte as seguintes linguagens :

+ C++ (Nativo);

+ Java ME;

+ Python;

+ FlashLite;

+ entre outras.

Caso queira saber mais sobre Symbian acesse o site oficial.

O Windows Mobile, na sua versão 6.0 suporta o pacotes:

+ Visual Studio, além dos normais;

+ Java ME ;

+ Python, existe um;

+ interpretador PHP para Windows Mobile .

Caso queira saber mais sobre acesse  Windows Mobile .

E como estamos acostumado, para desenvolver para iphone temos que nos adequar as vontades de Steve Jobs. No Iphone devemos utlizar COCOA, um framework super poderoso para interfaces em dispositivos que utilizam MAC OS X. Existem maneiras de se desenvolver em outras linguagens nesses aparelhos :

+ Python – PyObjC;

+ Ruby – RubyCocoa;

+ Perl – CamelBones;

+ C# – Cocoa#;

+ Objective-Basic – ObjB.

Para um suporte oficial maior acesse Iphone for Developers .

Criando soluções para um desses três sistemas você estará desenvolvendo um software para uma vasta gama de smartphones.