Google App Engine: Plug-ins para IDEs

Dando continuidade aos posts do Google App Engine, falaremos agora sobre como o processo de desenvolvimento de aplicações para o App Engine podem ser facilitados usando plug-ins para alguns IDEs mais conhecidas como o Microsoft Visual Studio (VS) e o Eclipse.

Dando foco ao VS, as ferramentas necessárias são as mesmas citadas nos posts anteriores sobre App Engine:

Também precisamos instalar o Microsoft Visual Studio 2010 Shell (Integrated) que, em conjunto com o Python Tools for Visual Studio (PTVS), torna-se em um espécie de Visual Studio Python Express.

Como alternativa ao Microsoft Visual Studio 2010 Shell, é possível utilizar a versão Professional (ou superior) do Microsoft Visual Studio 2010, que pode ser baixada diretamente do site da Microsoft. Lembramos que alunos escolas podem baixá-lo do DreamSpark. Mesmo optando por esta alternativa, é necessário instalar o Python Tools for Visual Stuido (PTVS).

Imagem do PTVS (extraído de http://pytools.codeplex.com/)

O PTVS  é um plug-in para o VS que oferece, entre outras funcionalidades, a integração de um interpretador Python (em nosso caso,  Python 2.7) dentro do ambiente do VS, desfrutando de funcionalidades do VS como o intellisense, refatoração de código, navegação no código, busca de referências e também controle de versão integrado ao VS.

Intellisense: Busca de métodos
Intellisense: Preenchimento de parâmetros de uma função
Intellisense: Pesquisa pelas referências de um método
Intellisense: Apresentação das ocorrências da pesquisa

O PTVS permite a criação de projetos de VS comuns como WinForms, WPF, IronPython Silverlight Web Application, e o tradicional Console Application, em que toda programação pode ser escrita em Python/IronPython. Contudo o PTVS em sí não tem ligação com o App Engine. Ele apenas facilita o desenvolvimento de aplicações escritas em Python, podendo criar projetos de testes para módulos da nossa aplicação que não utilizam recursos específicos do App Engine.

Para conectar o ambiente de desenvolvimento do App Engine ao VS é necessário a criação de um windows shell script para mandar comandos para o servidor de desenvolvimento Python do App Engine, passando informações sobre o local/caminho do projeto VS a ser executado. Para saber mais sobre os comandos que podem ser enviados ao servidor de desenvolvimento clique aqui. Também é possível executar o GoogleAppEngineLauncher.exe, que vem com SDK do App Engine, apontar para a pasta raiz do projeto criado no VS e rodar o servidor de desenvolvimento.

Existem detalhes sobre este processo de integração do ambiente de desenvolvimento de App Engine para Python, ao VS 2010,  que discutiremos em outro post. Mas apenas saber desta possibilidade já é um motivo para aprofundar mais neste assunto.

Até a próxima.

Referências

Escrito por Ahmed Alejo

Dispositivos Móveis para Operações em Campo

Em nosso blog já apresentamos diversas tendências e novas tecnologias para o desenvolvimento de aplicações móveis. No entanto, o desenvolvimento de um sistema que tenha suporte a mobilidade, voltado ao mundo corporativo e industrial, não está ligado somente a tecnologia e como ela será empregada, mas também aos tipos de dispositivos utilizados na ponta e ao porquê da escolha deles.

Atualmente no mercado é possível encontrar uma grande variedade de dispositivos, como por exemplo Smartphones, Pocket PCs e Tablets, assim como uma variedade de sistemas operacionais embarcados em cada tipo de dispositivo. Com isso, em projetos de sistemas móveis torna-se necessário uma análise de qual tipo de dispositivo se encaixa melhor na tarefa que o sistema se propõe a tratar, levando em consideração a relação interface homem-máquina, robustez contra danos e preço.

Quando se pensa em sistemas móveis normalmente se pensa em dispositivos populares, de uso pessoal, para utilização na ponta, devido a sua praticidade e custo relativamente baixo. Atualmente o sistema operacional mais utilizado para esta finalidade é o Windows Mobile, que já conta com um grande número de aplicações comerciais, porém o Android e o iOS também vêm conquistando muitos adeptos.

Um site interessante é o GSMArena que permite visualizar e comparar características e funcionalidades entre diversos dispositivos existentes.

Os tablets, novo buzzword, estão em alta no desenvolvimento de sistemas corporativos. Eles estão ganhando espaço devido a algumas características como a grande tela e o maior processamento que permite uma melhor apresentação dos dados, usabilidade e desempenho. Hoje, no mercado, fala-se muito em dispositivos do momento como iPad, Xoom, Galaxy Tabs, que podem ser facilmente utilizados em sistema móveis comercias como venda de produtos, marketing entre outros.

  

No entanto, para sistemas que irão trabalhar em chão de fábrica ou em campo e que exigem maior robustez, é aconselhavel optar por dispositivos mais resistentes e que foram desenvolvidos especialmente para essas situações. Entre os Smartphones e pocket PC’s comerciais podemos encontrar o MC9500 e o BIP-6000. Além de serem resistentes a quedas, água e temperaturas hostis, eles possuem outras características incomuns aos dispositivos pessoais conforme abaixo:

 - Maior capacidade de memória ROM.

 - Leitor de código de barras

 - Leitor de cartões magnéticos bidirecional

 - Impressora térmica

  

Os tablets também ganharam suas versões mais resistentes, como o tablet brasileiro i-MXT, primeiro em seu segmento no país, que é utilizado pela Polícia de São Paulo, conforme pode ser visualizado neste link e neste.

Estes são utilizados para auxiliar no combate a criminalidade, permitindo a consulta de bancos de dados e agilizando localmente o início de investigações.

Também é possível encontrar outros tablets já em processo de vendas ou em desenvolvimento para este segmento, como o AsusTough e o PanasonicToughpad.

 

Além dos dispositivos que permitem a utilização de sistemas móveis embarcados, hoje também é possível contar com impressoras móveis, normalmente com sistema térmico de impressão, que permitem a impressão in loco, como exemplo: etiquetas, relatórios, contas de serviços públicos como água e luz entre outros, agilizando alguns processos de campo e chão de fábrica. Alguns exemplos dessas impressoras são a Zebra RW 420, bastante utilizada pelo seu pequeno tamanho e robustez que permite fácil integração com dispositivos móveis por meio de comunicação Bluetooth, e o Pidion BIP-1300, um dispositivo que já possui uma impressora integrada a ele.

 

Atualmente na Mobiltec existem projetos onde foram realizadas pesquisas e análises para identifcar quais dispositivos se encaixavam melhor ao sistema. Dentre os sistemas destacamos um voltado ao atendimento de ordem de serviços em campo. O objetivo desse projeto era desenvolver um sistema móvel integrado ao sistema comercial de um cliente, de formas a permitir o uso, em campo, de dispositivos móveis de baixo custo e fácil reposição em caso de danos. Nesse caso, na época, optamos por dispositivos smartphones como o HTC S610 com windows mobile. Já em outros sistemas móveis responsáveis por registrar pedidos de venda, entrega e leituras de medidores optamos por dispositivos como o Motorola e o Pidion, que possuem um valor de mercado maior porém garantem robustez em relação a quedas e umidade.

Também temos projetos onde foram utilizadas impressoras móveis, como por exemplo o projeto de leitura e faturamento em campo, permitindo que por meio da leitura de medidores, via Motorola MC9500, a conta seja faturada e posteriormente impressa, via impressora Zebra, permitindo a entrega da conta no ato da leitura. Isso além de uma evolução tecnológica no processo de arrecadamento do cliente, oferece um ganho financeiro e uma antecipação do fluxo de caixa do cliente de forma significativa.

Pelo exposto, é possível observar que hoje temos todo o suporte de tecnologia e de equipamentos de mercado para desenvolver sistemas móveis, voltados a segmentos da indústria e do comércio que necessitem de equipamentos mais robustos em processos, que vão desde a apresentação de informações até a impressão de documentos.

Escrito por Giovani Barili e Bruno Souza

TUTORIAL – Android – Parte 1 – Primeiros passos

Depois dos tutoriais sobre desenvolvimento nas plataformas Windows Phone e iOS, chegou a hora de falarmos um pouco sobre a plataforma Android. Ele é um sistema operacional para dispositivos móveis gerenciado pelo Google e que tem parte de seu código fonte liberado para a comunidade. Ele foi concebido baseando-se no kernel do Linux 2.6 e roda as aplicações numa máquina virtual chamada de Dalvik, que nada mais é do que uma máquina virtual Java otimizada para requisitar pouca memória e ter um menor consumo de energia.

 

Que Sistema Operacional posso usar ?

De acordo com o site do Android http://developer.android.com/sdk/requirements.html os sistemas operacionais suportados pela plataforma são: Windows XP (32-bit), Vista (32 ou 64-bit), ou Windows 7 (32 ou 64-bit), Mac OS X 10.5.8 ou superior (somente x86) e Linux.

Neste tutorial, focaremos apenas no sistema operacional Windows que será utilizado para instalarmos as ferramentas e executarmos um projeto de exemplo.

Quais as ferramentas necessárias ?

Para começarmos a desenvolver aplicações para o sistema Android precisaremos de algumas ferramentas. Vamos começar com o básico:

Eclipse IDE

Versão 3.6 (Codinome Helios) ou superior. É a plataforma de desenvolvimento para a criação de aplicativos Android oficial. Baixe uma versão do Eclipse, que pode ser encontrada no site http://www.eclipse.org/downloads/. Deve ser baixado algum dos seguintes pacotes, onde o mais recomentado é o Eclipse Classic:

  • Eclipse IDE for Java Developers
  • Eclipse Classic

Eclipse IDE for Java EE Developers

JDK 5 ou 6

É importante verificar se já o possui instalado em sua máquina. Pode ser encontrado no site da Oracle http://www.oracle.com/technetwork/java/javase/downloads/index.html

Android Development Tools Plugin (ADT)

Este é o plugin para o Eclipse que vai nos fornecer um conjunto de ferramentas que darão acesso a vários recursos para facilitar nosso desenvolvimento. Após baixar o pacote com o Eclipse e de tê-lo descompactado, execute-o. A seguinte tela deverá aparecer da primeira vez que fizer isto:

Defina uma pasta onde ficará seu ambiente de trabalho e confirme.

Dentro do Eclipse, selecione Help > Install New Software…, clique em Add no canto superior direito e adicione a seguinte URL que conterá a última versão do ADT Plugin:

https://dl-ssl.google.com/android/eclipse/

Selecione o ADT, leia e aceite os acordos de licença e então instale-o.

Android SDK

Entre no site do Android http://developer.android.com/sdk/index.html e faça o download da última versão do SDK.

Descompacte o zip em uma pasta no seu ambiente de trabalho. Depois vá até o Eclipse, clique em Window > Preferences. Vá em Android e no campo SDK Location coloque a localização do seu SDK.

Agora chegou o momento de baixar as versões da plataforma Android em que se deseja trabalhar. Escolheremos apenas a plataforma 2.3.3, que nos servirá como exemplo. Selecione também o Samples for SDK quem contém os projetos de exemplo para aquela plataforma e utilizaremos como demonstração a seguir.

Após finalizarmos a parte de configuração das ferramentas, será executado um projeto de exemplo para testar o ambiente. Criaremos um projeto a partir de um dos exemplos baixados junto com a plataforma SDK.

Vá em File > New > Project… e selecione Android Project, clique em Next e então selecione a opção Create project from existing sample.

Selecione o Build Target correspondente à plataforma 2.3.3.

Escolha um dos projetos exemplos. Aqui escolheremos o Snake para relembrar os tempos daqueles celulares antigos.

Para rodar a aplicação de exemplo é necessário criar um novo AVD (Android Virtual Device) que vai ser um emulador com uma versão específica do sistema Android e funcionará semelhante a um dispositivo real. Se preferir, existe a possibilidade de conectar um aparelho para realizar os testes, o emulador é uma forma mais acessível para realizar essa tarefa.

Abra o Android Virtual Device Manager e crie um novo emulador.

No Target selecione a opção Android 2.3.3 – API Level 10, marque o Snapshot para que o estado do emulador possa ser salvo e assim da próxima vez que abrir o emulador não precise reiniciar o sistema novamente. No Built-in foi selecionada a opção HVGA que corresponde a um tamanho de tela normal.

Agora é só ir ao projeto recém adicionado e clicar com o botão direito do mouse na raiz e ir em Run As > Android Application. Como foi criado anteriormente um AVD para a vesão 2.3.3 a IDE se encarregará de iniciar o emulador e instalar o pacote do projeto. Se tudo ocorrer bem você verá uma tela com a aplicação de teste mostrada na figura abaixo.

Ficou curioso para conhecer mais detalhes? Tem muita informação no próprio site do Android http://developer.android.com/index.html. Fique ligado no nosso blog, tem muita coisa bacana vindo por aí.

Escrito por Roger Mack

TUTORIAL – iOS – Parte 1 – Hello World

Seguindo com a nossa série de tutoriais de desenvolvimento, hoje abordaremos a plataforma iOS. O objetivo dos nossos posts nesse formato (que você poderá identificar pelo título, que seguirá sempre o mesmo padrão) é mostrar de forma rápida e objetiva, sempre com a ajuda de recursos visuais, como desenvolver para determinada plataforma, desde a configuração do computador até as questões mais avançadas. As postagens seguirão uma ordem crescente de complexidade e hoje, como post inicial de iOS, mostraremos o que você precisa (e como fazer) para começar a desenvolver.

PRÉ-REQUISITOS

- Um computador com sistema operacional Mac OS X versão* 10.6 ou superior

* Necessário para a versão 4 do Xcode.

Vale lembrar que as versões do Mac OS modificadas que circulam pela internet ou mesmo a instalação de uma versão original em um hardware não Mac ou em uma máquina virtual (os chamados Hackintoshes), além de instáveis e lentas, não são permitidas pelos termos de uso da Apple. A melhor opção é o uso de um hardware Mac original. Mesmo o modelo mais básico já é suficiente em termos de desempenho.

- Um cadastro como desenvolvedor registrado na Apple (Free)

Como já MOSTRAMOS AQUI NO BLOG, a Apple exige que todos os desenvolvedores sejam registrados em um dos PROGRAMAS DE DESENVOLVIMENTO oferecidos. Felizmente, para baixar os softwares necessários, o registro sem custos é suficiente, apenas não sendo possível testar em dispositivos (o simulador supre a maioria das necessidades) e submeter aplicações à Apple Store.

Para se registrar como desenvolvedor, acesse developer.apple.com e clique em iOS Dev Center

Na página seguinte, a opção de registro estará disponível logo no início da página

Na próxima página, a opção de registro free deve aparecer. Clique em Get Started.

Após preencher alguns formulários você terá uma conta no Developer Center e acesso a maioria dos recursos disponíveis, como vídeos e documentações, entre outros.

- O SDK instalado na máquina

O Xcode é a IDE oficial de desenvolvimento do mundo Apple. No Developer Center você encontra para download o Xcode já com tudo que é preciso para o desenvolvimento em iOS no mesmo pacote.

Na página inicial, novamente acesse o iOS Dev Center. Faça login com usuário e senha que você acabou de criar. A página inicial do iOS Dev Center deve aparecer diferente quando você estiver logado. Clique na opção Downloads (a primeira da lista)

A página será posicionada no local para download do pacote completo de ferramentas necessárias. Apenas selecione a versão correta de acordo com a versão do seu Mac OS (10.6 – Snow Leopard ou 10.7 – Lion)

Apos o download, abra o arquivo .dmg que você acabou de baixar e clique duas vezes no arquivo Xcode.mpkg para iniciar a instalação. Siga as orientações do instalador e deixe todas as opções padrão de instalação.

Ao fim do processo, o ícone do Xcode deve estar na pasta padrão Applications, que deve ser uma das pastas presentes na Dock de ícones que fica na parte inferior da tela. Clique no ícone e vamos para o que interessa!

CRIANDO UM PROJETO

Na tela inicial do Xcode, selecione Create New Project

A tela de seleção do tipo do projeto deve aparecer, selecione (se já não estiver selecionado) Application da família iOS no menu da esquerda e Single View no menu central (o template Single View é o mais simples para o nosso exemplo, mas poderíamos escolher qualquer um em princípio).

Na próxima tela, dê um nome para a aplicação que será criada, um identificador (o padrão de identificador recomendado pela Apple segue um estilo de URL invertida, como demonstrado na própria tela, no campo Bundle Identifier), um prefixo de classe (que será concatenado no nome de todas as classes do projeto), selecione como tipo de dispositivo iPhone e deixe marcada a opção de utilização do Automatic Reference Counter (falaremos disso nos próximos posts).

Após, escolha onde será criada a pasta com os arquivos do projeto e deixe desmarcada a opção de Source Control. Neste caso, vamos salvar os arquivos no Desktop.

Ao fim destes passos temos a tela do Xcode com o projeto que criamos. Com o template de projeto que escolhemos (Single View) já podemos neste ponto executar a aplicação no simulador. Para isso basta clicar no botão Run localizado na parte superior esquerda.

Se tudo correu bem e não cometemos nenhum erro de programação (já que não programamos nada ainda) o projeto deve compilar e o simulador iniciar automaticamente. A aplicação deve rodar também de forma automática e uma tela cinza deve aparecer, já que apenas criamos uma aplicação com uma tela vazia.

Para interromper a execução, basta clicar no botão Stop, que fica ao lado do botão Run.

Neste ponto você já tem o seu ambiente de desenvolvimento pronto para o uso. Não são necessárias configurações extras ou outros downloads e instalações. Basta criar um projeto e desenvolvê-lo. E é isso que veremos no próximo passo do nosso tutorial, afinal ainda não vimos o famoso Hello World na tela do simulador, nem para que servem todos aqueles botões e menus do Xcode. Até lá!

Escrito por Renan Drabach
Apoio Luiz Roberto Lethang Rodolpho

Gestão de aplicativos móveis no Android

Os dispositivos móveis com sistema operacional Android, representados por smartphones e tablets, são hoje parte expressiva do mercado. E, apesar do grande apelo ao consumidor, o Android encontra-se em forte expansão também no ambiente corporativo. É cada vez maior a demanda por desenvolvimento de aplicativos corporativos para dispositivos Android, nos mais variados segmentos. Naturalmente a necessidade por soluções de gestão de dispositivos móveis (Mobile Device Management) cresce em proporções similares.

Uma das áreas chaves da gestão de dispositivos móveis (MDM) é a gestão de aplicativos. Em um post anterior já tratei sobre esta questão, com ênfase no Windows Mobile. Em dispositivos com sistema Android esta questão é ainda mais crítica, dada a quantidade gigante e crescente de aplicativos disponíveis para a plataforma no Android Market. Dado esse contexto, é pertinente uma discussão mais detalhada sobre o tema.

Distribuição e gerência de aplicativos e atualizações

No Android, aplicativos são distribuídos na forma de pacotes APKs (Application Package). O sistema Android possui sua loja de aplicativos (Marketplace), plataforma de distribuição e instalação de aplicativos. Através do Market a aquisição, download e instalação de aplicativos são procedimentos triviais. No entanto, esta estrutura só está disponível para aplicativos comercializados no Android Market.

A distribuição de aplicativos corporativos, de forma restrita aos dispositivos de seus colaboradores, não passa pelo Market. Este processo até pode ser realizado com o uso de ferramentas simples como e-mail ou sites de compartilhamento de arquivos, só que tais recursos são pouco eficientes para suportar um bom processo de gestão de aplicativos. Processos mais elaborados tipicamente levam em conta direitos de uso através de perfis de usuário, atualização de software automática, inventário de software dos dispositivos da empresa, entre outros. Para suportar um processo destes é necessário construir infraestrutura própria. Assim como destaquei no post sobre gestão de aplicativos no Windows Mobile, se faz necessário a construção de uma ferramenta de transmissão dos pacotes e plataforma administrativa para a correta e eficiente gestão do processo.

Instalação e remoção de aplicativos

Instalação e remoção de aplicativos no sistema Android são procedimentos relativamente simples, realizados com poucas linhas de código. Mas há algumas considerações importantes a serem feitas:

  • Local de instalação: pode ser na memória interna ou em um cartão de memória. Esta é uma característica do aplicativo. O mesmo deve vir configurado para poder ser instalado no cartão de memória externo.
  • Permissões: Aplicativos Android são baseados em permissões, que são concedidas pelo usuário no momento da instalação. Essa característica torna inviável a construção de um processo de instalação de aplicativos transparente para o usuário, requisito importante para muitos cenários de negócio. Aí está uma grande crítica à capacidade de gestão de dispositivos móveis (MDM) na plataforma Android.

Monitoramento e bloqueio de aplicativos

No Android é possível identificar os processos em execução por código e também encerrar sua execução. Através destes recursos é possível construir um sistema de bloqueio de execução de aplicativos nos conceitos de blacklist (lista de processos bloqueados) e de whitelist (lista de processos permitidos). No entanto, é necessário monitoramento constante dos processos do dispositivo para o correto gerenciamento deste sistema de bloqueio.

De forma alternativa, também é possível construir um launcher personalizado capaz de limitar o acesso aos aplicativos e recursos do sistema, substituindo o launcher padrão do sistema. Desta forma o novo launcher atua como um sistema de bloqueio (também conhecido por sistema quiosque).

Conclusões

Como visto, é possível fazer uma boa gestão de aplicativos em dispositivos Android. A necessidade de intervenção do usuário em partes do processo é a ressalva a ser feita, pois pode comprometer o processo em um ambiente corporativo.

Mesmo que, em termos gerais, a capacidade de gestão de aplicativos no Android seja boa, há muitas carências no que se refere a MDM nas demais áreas de gestão de dispositivos. O Android ainda tem muito a evoluir para oferecer maior capacidade de gestão de dispositivos móveis.

Escrito por Eduardo Klein