Sei sulla pagina 1di 18

Buscar

post favorito

comentrios

ClubeDelphi 155 - ndice

Desenvolvimento Android no
Delphi

Servios
Inclua um comentrio

Veja nesse artigo os detalhes iniciais que envolvem a


construo de aplicaes Android, atravs do uso do IDE
do Delphi XE5.

Adicionar aos Favoritos


Marcar como lido/assistido
Incluir anotao pessoal
Verso para impresso

+Delphi
0

Curtir

Gostei (13)

(0)

Fique por dentro


A mais nova verso do Delphi, a XE5, apresentou como grande atrativo o suporte
nativo ao desenvolvimento mvel para Android. Esta novidade veio a atender um
desejo antigo da comunidade, que enxerga a referida plataforma como sendo uma
tima opo comercial. Isso pode ser justificado pelo fato do Android ser atualmente
o SO mais difundido e utilizado em meio ao contexto dos dispositivos mveis
(tablets e smartphones). Em vista disso, o presente artigo ir mostrar os detalhes
iniciais que envolvem a construo de aplicaes deste tipo, atravs do uso do IDE
do Delphi XE5.

O suporte ao desenvolvimento mvel no Delphi surgiu ainda em sua verso XE2, at


ento direcionado exclusivamente construo de aplicativos para a plataforma iOS,
contemplando dispositivos Apple, tais como iPhone, iPad e iPodTouch. Adicionalmente,
ainda nesta poca j se ventilava os primeiros rumores sobre o eventual suporte nativo
da ferramenta ao desenvolvimento mvel para Android, num futuro prximo. Isto
porque, apesar da clara e reconhecida evoluo para a poca, o suporte a iOS atendia
apenas parcialmente o nicho de mercado ao qual a grande maioria dos
desenvolvedores Delphi estavam inseridos.
Sua realidade Mobile envolvia, alm dos dispositivos iOS, um grande mercado em
expanso e abrangente de dispositivos Android, vide smartphones e tablets dos mais
variados tipos e marcas. Logo, surgiram os primeiros pedidos sobre o mencionado
suporte e, passadas algumas verses da ferramenta, tal promessa veio a ser
finalmente atendida com o recm-lanado Delphi XE5. Sendo assim, esta verso da
ferramenta conta com o novo suporte nativo ao desenvolvimento de aplicaes para a
plataforma Android.

Alm disso, o grande diferencial neste ponto fica por conta da forma de
desenvolvimento aplicada construo deste novo tipo de aplicao, que se mostra
essencialmente a mesma da j utilizada para o desenvolvimento clssico para Win32.
Em outras palavras, isso reflete o envolvimento de uma mesma linguagem, uma
mesma sintaxe e os mesmos componentes j conhecidos.
Ao final das contas, todo este cenrio vem ilustrar a pretenso maior da Embarcadero,
que a de prover a construo de aplicaes para mltiplas plataformas (Windows,
Mac OS X, iOS e Android), atendendo mltiplos dispositivos (PCs, Smartphones e
Tablets) a partir de uma mesma base de cdigo e de conhecimento.
De forma natural, o desenvolvimento de aplicaes mveis por si s envolve uma srie
de fatores extras que extrapolam os recursos providos internamente pela ferramenta
de desenvolvimento. Com o Delphi no diferente e, sendo assim, a pretenso deste
artigo a de justamente prover o maior nmero de informaes e detalhes que
norteiam o incio do desenvolvimento para Android no Delphi, servindo assim como
ponto de partida para a construo das primeiras aplicaes deste tipo.

Preparao do ambiente
Logo de incio possvel estabelecer que o desenvolvimento para Android no XE5
requer uma preparao pontual do ambiente de trabalho. Diferente do que acontecia
em sua abordagem mais tradicional, de desenvolvimento de aplicaes para Windows,
este novo processo construtivo no Delphi exige uma srie de fatores extras, que vo
alm dos recursos providos internamente pelo IDE. Em vista desse diferencial, a seguir
so discorridos cada um dos itens necessrios ao desenvolvimento para Android nesta
nova verso do Delphi.

Android Tools
Dentre os recursos externos ao IDE do Delphi, necessrios ao desenvolvimento de
aplicaes para a Android, trs so tidos como fundamentais: JDK, NDK e SDK. Tais
siglas representam elementos os quais podem ser traduzidos como sendo ferramentas
de desenvolvimento para a referida plataforma, essenciais a qualquer ambiente voltado
criao de aplicaes mveis deste segmento.
Os dois primeiros podem ser considerados recursos estticos, uma vez que a
instalao/atualizao de ambos se d com pouca frequncia no ambiente de
desenvolvimento. Num processo oposto, o SDK pode ser considerado varivel a cada
verso da plataforma.
De incio, a presena do JDK (Java Development Kit) justificada pelo fato do Android
estar diretamente atrelado plataforma Java, tornando-se necessria a presena de
seu kit de desenvolvimento oficial, que habilita a criao de softwares para esta
tecnologia. No contexto do Delphi XE5, a verso requerida e recomendada do JDK a
1.6 ou 1.7
. Em vista disso, a fim de prevenir eventuais transtornos, caso o ambiente no
contemple nenhuma dessas verses, a prpria instalao do XE5 se encarrega de
instalar o JDK adequado.
J NDK (Android NDK) o acrnimo para Native Development Kit e pode ser
brevemente definido como sendo um conjunto de recursos que permite a
implementao de partes da aplicao usando linguagens de cdigo nativo, tais como C
e C++. Sua finalidade de uso destina-se essencialmente gerao de aplicaes
autossuficientes e que faam uso direto e intensivo do processador do dispositivo
(CPU), sendo ento muito til mecnica interna utilizada nos bastidores do Delphi.
Em outras palavras, atravs do uso do NDK que o Delphi gera o cdigo nativo
necessrio para a elaborao de suas aplicaes mveis para a plataforma Android.

Logo, a prpria instalao da ferramenta contempla o instalador da verso adequada (e


recomendada) do NDK. Por fim, SDK (Android SDK) remete ao termo em ingls
Software Development Kit que, neste cenrio, caracteriza o kit de desenvolvimento
para a plataforma.
Em suma, este pacote fornece as bibliotecas e ferramentas necessrias a todo o
contexto que envolve a construo de aplicativos para Android. Apenas como
informativo, a seguir exposto o caminho padro de cada uma das ferramentas, tendo
como base uma instalao padro do release de lanamento do Delphi XE5:
JDK C:\Program Files\Java\jdk1.7.0_25;
NDK C:\Users\Public\Documents\RAD Studio\12.0\PlatformSDKs\android-ndk-r8e;
SDK C:\Users\Public\Documents\RAD Studio\12.0\PlatformSDKs\adt-bundlewindows-x86-20130522\sdk
Em complemento a este cenrio, o Delphi XE5 conta com um elemento externo
denominado Android Tools, que fica disponvel atravs do menu de instalao da
ferramenta, a partir da guia Iniciar do Windows, conforme mostra a Figura 1. Uma vez
acionada tal opo, imediatamente aberta a janela Android SDK Manager (Figura 2),
que apresenta um prognstico geral dos recursos disponveis a cada verso da
plataforma, mostrando o status de cada item (se instalado ou no) e possibilitando
inclusive a eventual instalao ou atualizao de cada um.
Assim como acontece com os itens anteriores (JDK e NDK), o prprio instalador do
Delphi XE5 j prov, de forma opcional, a instalao de uma verso adequada do SDK
(BOX 1). Tal facilidade oferecida logo no incio do processo, tal qual mostrado na
Figura 3.

Figura 1. Android Tools

Figura 2. Android SDK Manager

Figura 3. Instalao do Delphi XE5 Android SDK e Android NDK

BOX 1 Android SDK e Android NDK Verses recomendadas


A instalao do Delphi XE5 contempla, de forma nativa e opcional, uma verso
recomendada do Android SDK (4.2.2) e do Android NDK (android-ndk-r8e). Aqui,
se diz recomendada (ou adequada) pelo fato destas verses serem aquelas
utilizadas pela equipe de desenvolvimento da Embarcadero durante a elaborao
do produto, tendo assim a garantia de serem plenamente suportadas pelo IDE. Por
conseguinte, a utilizao de verses diferentes destas pode implicar na existncia
de nuances no plenamente suportadas pela verso corrente do IDE, ocasionando
comportamentos indesejados.

Em complemento, para que o desenvolvimento Android seja efetivamente habilitado no


IDE, necessrio que tanto NDK quanto SDK sejam identificados internamente. Para
tal, agora o prprio menu de opes da ferramenta (menu Tools | Options) conta com
um novo elemento tambm denominado SDK Manager, que traz uma lista dos
caminhos condizentes a cada propriedade relacionada verso do SDK utilizado,
incluindo o NDK.
De posse destas informaes que o Delphi consegue detectar a localizao das
bibliotecas a serem utilizadas durante o processo de desenvolvimento. Conforme pode
ser visto na Figura 4, uma vez que feita a opo pela instalao da verso do NDK e
do SDK providos nativamente, as propriedades de ambos j so automaticamente
detectadas pelo IDE.
Pelo fato de que cada verso da plataforma est atrelada a um SDK especfico,
natural que o desenvolvedor venha a fazer uso de um SDK diferente do provido
nativamente. Em situaes mais tradicionais, comum que o ambiente j conte com
uma instalao existente de SDK. Para estes casos, torna-se necessria a adio
manual do Android SDK em questo, ao SDK Manager do IDE.

abrir imagem em nova janela


Figura 4. Opes IDE SDK Manager

USB Driver
No IDE do Delphi, a execuo de uma aplicao Android se d basicamente de duas
formas, sendo atravs do envolvimento de um software emulador ou de um dispositivo
fsico real. Para este ltimo, o processo envolve a simples conexo do aparelho ao
hardware de desenvolvimento, que ocorre via porta USB.
Diante disso, possvel determinar que outro requisito fundamental para o
desenvolvimento Android no XE5 est relacionado ao uso do driver USB apropriado ao
dispositivo envolvido. Como exemplo, para um aparelho Nexus 7, se torna necessrio o
uso do Google USB Driver, da mesma forma que um aparelho Motorola exige o driver
USB especfico, provido pela prpria fabricante. Por padro, dentro do contexto do
Delphi XE5, grande parte das necessidades relacionadas drivers, tais como instalao
e atualizao, podem ser sanadas atravs do uso de seu Android SDK Manager.

Emulador
Sem sombra de dvidas, a forma mais natural de se executar uma aplicao Android
no Delphi atravs do uso de um emulador. Por esta razo, o prprio instalador do
Delphi, por meio da instalao nativa do SDK e NDK do Android, j prov a criao de
um emulador padro j configurado para o devido uso no IDE, em meio ao processo de
desenvolvimento de aplicaes mveis para a plataforma.
Este emulador padro apresentado sob o nome de rsxe5_android e sua definio
completa, incluindo suas configuraes, podem ser vistas atravs do gerenciador de
dispositivos virtuais do Android, denominado Android Virtual Devices (Figura 5),
provido pelo Android SDK Manager, e disponibilizado atravs de seu menu Tools |
Manage AVDs.

Figura 5. Android Virtual Device Manager

FireMonkey Mobile Application


Em sua verso anterior, a XE4, o Delphi trouxe como uma de suas grandes novidades
um novo tipo de projeto, denominado FireMonkey Mobile Application que, conforme seu
nome sugere, est direcionado construo de aplicaes mveis com a ferramenta.
Nesta poca, conforme j dito, o suporte do IDE ao contexto Mobile se restringia
plataforma iOS, resultando na produo de aplicativos para dispositivos como iPhone,
iPad e iPod Touch.
De forma natural, nesta sua nova verso (XE5), a ferramenta teve seu suporte
aumentado com a insero da plataforma Android a seu contexto. Como reflexo disso,
agora a partir de um tipo de projeto nico (FireMonkey Mobile Application), possvel
se construir aplicativos para ambas as plataformas mveis suportadas. O
direcionamento especfico a cada plataforma se d simplesmente pela devida indicao
na opo Target Platforms do Project Manager do IDE.
A Figura 6 mostra as opes habilitadas de forma nativa em projetos deste tipo no
XE5. Ainda com base na imagem, um detalhe a ser mencionado neste momento se d
pela indicao do Android, como sendo a plataforma de destino padro para o tipo de
projeto FireMonkey Mobile Application. Isso se deve muito ao fato do suporte a Android
ser uma das grandes apostas da Embarcadero, nesta nova fase do Delphi.

Figura 6. Project Manager Target Platforms

Templates para projetos FireMonkey Mobile


Ao se iniciar um novo projeto FireMonkey Mobile Application no Delphi XE5, uma gama
de modelos pr-definidos (templates) de aplicaes so disponibilizados ao
desenvolvedor, servindo como ponto de partida para o efetivo desenvolvimento. A
funo principal destes modelos previamente elaborados facilitar o incio do processo
construtivo do aplicativo, evitando que se comece totalmente do zero. Em suma,
cada modelo conta essencialmente com formulrios e componentes pr-configurados,
de acordo com sua caracterstica relacionada.
Por esta razo, cada template disponibilizado autodocumentado, o suficiente para
que o desenvolvedor tenha a clara noo de sua inteno e caracterstica. Tais
informaes so mostradas pelo simples repousar do ponteiro do mouse sobre cada
modelo. A Figura 7 mostra alguns dos templates Mobile disponveis no XE5.

Figura 7. FireMonkey Mobile Application Templates


Com exceo do modelo Blank Application, cada template deste, quando utilizado,
exige a indicao imediata de um local a ser salvo em disco, uma vez que no so
gerados em memria, mas sim copiados fisicamente a partir do repositrio do Delphi.

Um exemplo prtico: primeira aplicao


Android no Delphi XE5
Mantendo a tradio no que diz respeito apresentao prtica de uma nova
abordagem relacionada a desenvolvimento de software, de incio ser construdo um
tradicional projeto Hello World!, de forma a introduzir a construo de aplicaes
Android no Delphi.
Sendo assim, utilizando como base o modelo de aplicao mais bsico (Blank
Application) de um projeto FireMonkey Mobile Application, a construo do layout a ser
utilizado se d de maneira similar ao j realizado ao longo dos anos com projetos VCL
Forms Application.
Isto posto, pelo simples arrastar de um boto (TButton) para o formulrio do projeto,
fica definido o layout da aplicao (Figura 8). Ainda em termos visuais, outra
alterao necessria se d pela devida definio dos dizeres a serem mostrados no
controle que, neste caso, seria algo como Dizer Ol!.
Numa abordagem tradicional utilizando a VCL, tal mudana implicaria na configurao
da propriedade Caption do elemento TButton. Todavia, apesar das semelhanas
notadas, tal como o nome da classe do controle utilizado (TButton), importante
lembrar que o desenvolvimento Mobile no Delphi est relacionado ao framework
FireMonkey (FMX).
Em funo disso, os elementos utilizados tendem a ter suas prprias nuances.
Especificamente para este caso, o detalhe fica por conta da propriedade do controle
TButton que representa o texto a ser mostrado em seu visual. Enquanto que na VCL
utilizada a propriedade Caption, aqui se utiliza a propriedade Text. Apesar de sutil,
especificaes como esta podem gerar confuses num desenvolvimento inicial.

J em termos de codificao, a Listagem 1 mostra o cdigo do mtodo manipulador


do evento OnClick do boto. Da mesma forma que o habitual, apenas uma chamada ao
mtodo ShowMessage o suficiente para se mostrar uma mensagem informativa ao
usurio. O detalhe aqui fica nos bastidores, uma vez que o ShowMessage utilizado faz
referncia ao mtodo declarado na unit FMX.Dialogs, em substituio a VCL.Dialogs.
Listagem 1. Cdigo para o evento OnClick do boto

procedure TForm1.Button1Click(Sender: TObject);


begin
ShowMessage('Ol Mundo!');
end;

Figura 8. Layout da primeira aplicao de exemplo


Por conseguinte, j com a aplicao em execuo, o resultado da ao do clique no
boto ilustrado na Figura 9.

Figura 9. Aplicao Hello World! em execuo

Aplicao Android com banco de dados


Desde seu incio, o Delphi teve sua excelncia refletida na construo de solues para
a plataforma Windows e, fundamentalmente, no provimento de aplicaes envolvendo
banco de dados, conhecidas em meio comunidade como aplicaes de banco de
dados. Dito isto, mediante esta sua nova fase evolutiva, que abrange a construo de
aplicaes para plataformas mveis (iOS e Android), torna-se interessante o uso de
uma abordagem j familiar para a demonstrao dos novos conceitos envolvidos,
traando um paralelo entre elas sempre que possvel.
O desenvolvimento de aplicaes com banco de dados no Delphi XE5 para plataformas
Mobile, sob o ponto de vista nativo, est estritamente relacionado ao uso dos bancos
de dados Interbase ToGo e IBLite (BOX 2). Contudo, j de incio vale ressaltar que
ambos os produtos so comerciais (pagos), logo, sua utilizao requer a posse de uma
licena vlida. Com base no contexto do artigo, que est relacionado ao uso da verso
experimental (Trial) da ferramenta, o desenvolvimento se d pela utilizao da verso
ToGo, uma vez que uma licena do produto (tambm Trial) provida junto da
instalao do IDE.
De posse da tecnologia de banco de dados, se faz necessria definio da biblioteca
de componentes de acesso a dados a ser utilizada. Para aplicaes Android, trs so as
opes nativas: dbExpress (BOX 3), InterBase Express (IBX) e FireDAC. Levando em
conta o nvel de popularidade, num momento inicial, o dbExpress se mostra uma opo
agradvel. Em se tratando de plataformas mveis (iOS e Android), o dbExpress tem
seu suporte direto limitado a dois tipos de banco de dados: o j citado InterBase ToGo
e o SQLite.
Para a plena utilizao dos demais SGBDs suportados pelo framework, um cenrio ideal
se daria pelo envolvimento de um servidor de aplicao DataSnap, caracterizando
assim um contexto multicamadas, o que foge do escopo deste artigo.

BOX 2 InterBase ToGo e IBLite


De forma sucinta, o InterBase pode ser definido como sendo um poderoso banco

de dados relacional, de alto desempenho e segurana, pertencente mesma


empresa mantenedora do Delphi, a Embarcadero. A robustez de seus recursos o
credenciam a estar no mesmo patamar de outras solues j tambm
consolidadas no mercado, tais como Oracle, MySQL, MS SQL Server, entre outros.
Assim como seus concorrentes, o InterBase, como produto, contempla uma srie
de verses distintas, cada qual com suas especificidades. Dentre estas, as verso
denominadas InterBase ToGo aquela plenamente suportada pela plataforma
Android. Isto porque, esta verso reflete uma engine de banco de dados que pode
ser embutida diretamente na aplicao, sem a necessidade de qualquer tipo de
instalao. Para o seu funcionamento, nenhum processo adicional alocado na
memria, se resumindo apenas ao uso da prpria biblioteca do banco de dados.

BOX 3 dbExpress
De forma conceitual, o dbExpress pode ser simplesmente definido como sendo um
framework de acesso banco de dados presente no Delphi, cuja infraestrutura
totalmente escrita na prpria linguagem utilizada na ferramenta. Atravs da
utilizao de drivers especficos, o dbExpress se torna apto a trabalhar com os
principais SGBDs disponveis no mercado, tais como Oracle, DB2, MS SQL Server,
MySQL, InterBase, Firebird e SQLite. Historicamente, at a verso XE2 da
ferramenta, possvel afirmar de forma unnime que o dbExpress ocupava o
posto de principal opo nativa, em termos de acesso a dados no IDE. Com a
chegada do XE3 e a posterior apresentao da biblioteca FireDAC, o framework
ganhou ento um concorrente altura, sendo que atualmente ambos (dbExpress e
FireDAC) dividem o posto de principais opes nativas para a parte de acesso a
dados no desenvolvimento de uma aplicao Delphi.

Banco de dados
Ainda com relao ao InterBase ToGo, a prpria instalao do XE5 traz consigo uma
base de dados de exemplo desta verso do SGBD, cujo arquivo apresenta-se sob o
nome de DBDEMOS.GDB, e que fica localizado na pasta Data, dentro do diretrio de
exemplos (Samples) da ferramenta (C:\Users\Public\Documents\RAD
Studio\12.0\Samples\Data, tomando como base uma instalao padro). Todavia, vale
ressaltar ainda que mesmo que tal arquivo apresente uma extenso (.gdb) que remeta
s verses Server ou Desktop do InterBase, sua utilizao, em termos prticos,
circunstancialmente diferente.
De incio, o primeiro ponto a ser levantado com relao ao gerenciamento de um
banco deste tipo. Tradicionalmente, uma base InterBase pode ser plenamente gerida
por ferramentas como IBConsole e IBExpert, que internamente se utilizam da
biblioteca cliente (client library) padro do SGBD, denominada gds32.dll, para a
efetivao do processo.
O uso, por padro, desta biblioteca pode ser justificado pelo fato dela estar relacionada
s verses mais clssicas do InterBase (Ex: Desktop e Server) e at ento tidas como
as mais usuais. Todavia, tecnicamente, a utilizao de uma base de dados InterBase
ToGo exige o uso de uma biblioteca cliente especfica, denominada ibtogo.dll, em
substituio gds32.dll.
Sendo assim, um ajuste essencial a ser feito se d pelo simples redirecionamento da
client library a ser utilizada pela conexo. Para fins de conhecimento, o arquivo
ibtogo.dll distribudo junto da instalao do XE5, ficando localizado dentro do
diretrio Win32_to, disponibilizado por padro em:
C:\Users\Public\Documents\InterBase\redist\InterBaseXE3

Ainda neste momento importante ressaltar que ambas as bibliotecas cliente citadas
(gds32.dll e ibtogo.dll) dispem de uma mesma interface interna, possibilitando ento
que um mesmo arquivo de banco de dados (.gdb) se torne apto a atuar nas distintas
verses do SGBD. Ciente disso, possvel ento se construir uma base de dados para a
verso ToGo da mesma forma habitual realizada com a verso Server.
Sendo assim, a Listagem 2 mostra o script para a criao de um banco de dados
simples, para a utilizao com a verso ToGo do InterBase.
Listagem 2. Script do banco de dados de exemplo

/*****CRIA O BANCO DE DADOS*****/


SET CLIENTLIB 'C:\Users\Public\Documents\InterBase

redist\InterBaseXE3\Win32_togo\ibtogo.dll';

CREATE DATABASE '[SeuCaminho]\DB_CLUBEDELPHI.gdb'


USER 'SYSDBA' PASSWORD 'masterkey'
PAGE_SIZE 4096
DEFAULT CHARACTER SET WIN1252;
/*****CRIA A TABELA*****/
CREATE TABLE REVISTAS (
ID_REVISTA

INTEGER NOT NULL,

ARTIGO

VARCHAR(50),

AUTOR

VARCHAR(50)

);
/*****DEFINE A CHAVE PRIMRIA*****/
ALTER TABLE REVISTAS ADD CONSTRAINT PK_REVISTAS PRIMARY KEY (ID_REVISTA);

Conforme pode ser visto, a listagem apresentada simples e autoexplicativa o


suficiente a ponto de no exigir nenhum comentrio adicional.

Layout
Como j de conhecimento, FireMonkey Mobile Application o tipo de projeto a ser
utilizado para a construo de uma aplicao Android no Delphi XE5. Alm disso,
mediante a essncia da elaborao de uma aplicao simples, que somente lista um
conjunto de informaes de determinada tabela do banco de dados, o template
Header/Footer torna-se um bom ponto de partida.
Este modelo de aplicao traz como caracterstica de layout, um formulrio contendo
barras de cabealho e rodap, tal como mostra a Figura 10. Por conseguinte, vale
CONTEDO
REVISTAS
CURSOS
POCKET VIDEOS
DEVWARE
FRUM
salientar que essas barras no se tratam de novos componentes FireMonkey, mas sim
de controles j habituais da VCL. Como exemplo, a barra superior, definida por um
simples TLabel, j todo estilizado para o contexto, com o devido alinhamento, cor, e
fonte. Assim como ocorre com o controle TButton, a tradicional propriedade Caption
no est disponvel ao TLabel da FMX, sendo novamente substituda pela propriedade
Text.
Em aplicaes VCL, em cenrios onde se deseja manipular ou simplesmente exibir
dados provindos de um banco de dados, natural a utilizao de controles DataAware, tradicionalmente tratados como controles DB, tais como DBEdit,
DBComboBox, DBGrid, entre outros. Diferente disso, importante lembrar que o
FireMonkey no contempla controles DB, utilizando-se ento de uma abordagem e
uma mecnica diferente da VCL, no que diz respeito ao seu trabalho com dados.
Sendo assim, tomando como base a situao do exemplo citado, que exige a listagem
de dados a partir de uma tabela do banco, em projetos VCL Forms um controle do tipo
TDBGrid poderia ser plenamente utilizado para a exibio dessas informaes. J em
projetos FireMonkey Mobile, este controle poderia ser substitudo por um simples
TListBox, que tem como finalidade exibir um conjunto de itens em uma lista de
rolagem.

MVP

Em termos funcionais, este controle ainda exige a configurao de toda sua parte
visual. Logo, uma primeira atitude a ser tomada diz respeito estilizao de sua caixa
de listagem. Isso se d atravs da subpropriedade ItemStyle, localizada em sua
propriedade de nome DefaultItemStyles do prprio controle. Para um exemplo como o
citado, uma sugesto pela escolha da opo ListBoxItemBottomDetail, que determina
que logo abaixo de cada item listado, seja mostrada uma pequena rea para a exibio
de seus detalhes.
O prprio controle prov ainda a possibilidade de outros ajustes adicionais, tal como a
incluso de uma caixa de pesquisa de itens, ao topo da listagem. Isto conseguido por
meio da incluso de novos componentes relacionados, ao seu design, atravs de seu
menu de contexto Add Item, conforme mostra a Figura 11. Pela imagem, possvel
ver ento a incluso de um novo componente, do tipo TSearchBox.

Figura 10. Header/Footer Template Formulrio

Figura 11. TListBox TSearchBox

Acesso a dados
possvel estabelecer que a essncia do exemplo citado esteja relacionada sua parte
de acesso aos dados da tabela do banco de dados. Uma vez que o dbExpress foi
definido como sendo a tecnologia a ser utilizada para este fim, toda a sequente
abordagem se d de uma maneira muito prxima ao que feito em projetos VCL.
Como exemplo, TSQLConnection o elemento central de conexo, contendo
essencialmente as definies de driver (DBX) e de parmetros da mesma.
Para o primeiro, em razo do SGBD (InterBase ToGo) envolvido, IBLite/ToGo o nome

do driver a ser escolhido na propriedade homnima do componente. Adicionalmente,


os parmetros da conexo ficam definidos na propriedade Params, tal como mostrado
na Listagem 3.
Listagem 3. Cdigo DFM de um componente TSQLConnection propriedade Params

object SQLConnection1: TSQLConnection


...
Params.Strings = (
'DriverUnit=Data.DBXInterBase'
'VendorLib=ibtogo.dll'
'VendorLibWin64=ibtogo64.dll'
'VendorLibOsx=libibtogo.dylib'
'Database=[CaminhoDoBanco]\DB_CLUBEDELPHI.GDB'
'User_Name=sysdba'
'Password=masterkey'
'DisplayDriverName=IBLite/ToGo'
...
)
end

O detalhe aqui fica por conta da exposio do uso da biblioteca cliente do InterBase
ToGo (ibtogo.dll e ibtogo64.dll), bem como o caminho do banco, que deve ser
adequado a um caminho local vlido. Uma vez de posse da conexo, o elemento que
ficar responsvel por fazer toda interao com a tabela desejada no contexto do
dbExpress o TSQLDataSet.
Logo, sua configurao para este exemplo mostrada na Listagem 4, onde fica clara
a definio de uma simples instruo SQL em sua propriedade CommandText, que ir
retornar os dados pertinentes aos campos da tabela REVISTAS.
Listagem 4. Consulta SQL

object SQLDataSet1: TSQLDataSet


Active = True
CommandText = 'select ID_REVISTA, ARTIGO,
AUTOR from REVISTAS order by ARTIGO'
SQLConnection = SQLConnection1
...
end

Por conseguinte, a finalizao das configuraes de tempo de design da aplicao


envolve a ligao entre a parte de dados (TSQLDataSet) e seu visual, que aqui
representado pelo controle TListBox. Numa abordagem VCL, com a utilizao de
controles DB, esta ligao se daria de forma natural atravs do uso de um simples
TDataSource.
Todavia, o trabalho com FireMonkey essencialmente se difere neste aspecto, uma vez
que, conforme j citado, o framework no prov elementos DB. A ligao aqui fica
por conta do uso da tecnologia LiveBindings. Sendo assim, de forma prtica, sua
utilizao, neste caso, se d pelo uso do LiveBindins Designer, que uma ferramenta
visual disponibilizada atravs do menu View > LiveBindings Designer do IDE.
Com sua estrutura aberta, este designer permite ento que sejam definidas as ligaes
entre os elementos do formulrio de uma maneira toda grfica, tal como mostrado na
Figura 12.

Figura 12. LiveBindings Designer

Fazendo o deploy da aplicao


Em situaes reais, o passo seguinte ao desenvolvimento de uma aplicao est
relacionado ao seu efetivo deploy para o ambiente real de produo. Tal processo pode
ser brevemente definido como sendo uma coleta e posterior cpia para o ambiente de
produo, de todos os arquivos necessrios para a plena execuo da aplicao. No
caso de aplicaes Mobile, o ambiente de produo ento o prprio dispositivo no
qual a aplicao dever rodar.
Indo alm, tecnicamente falando, o uso de um emulador em substituio a um
dispositivo fsico tambm exige o mesmo processo de deploy. No Delphi XE5, ao se
executar uma aplicao em seu IDE, todo o processo de deploy realizado de forma
automtica em seus bastidores.
A fim de prover um panorama visual dos arquivos envolvidos no processo, o prprio
IDE do Delphi j prov uma soluo rpida e gil, disponibilizada em seu menu de
projetos Project > Deployment. Uma vez acionada, esta opo traz tona uma nova
janela onde ficam listados os arquivos que iro fazer parte do deploy da aplicao. Por
padro, grande parte dos arquivos essenciais para que o aplicativo seja executado no
dispositivo j so automaticamente inclusos nesta listagem.
Em razo do projeto de exemplo citado utilizar um recurso extra, que diz respeito ao
banco de dados, se faz necessria a incluso destes fatores na janela de Deployment.
Em vista disso, uma primeira atitude ento incluir na lista de arquivos de deploy o
arquivo do prprio banco de dados utilizado, por meio do boto de ao Add Files.
Como ajuste, necessrio que seu caminho no dispositivo seja adequado, atravs da
coluna Remote Path da grade de deployment.
Em consequncia desta mudana, se faz necessria tambm a adequao do caminho
do banco, em runtime, do parmetro da conexo relacionado (Database) no
TSQLConnection. Isso pode ser feito de vrias maneiras, de acordo com o Remote Path
escolhido. A seguir, na Listagem 5 so ento mostradas duas alternativas tradicionais
de uso na perspectiva Mobile, por meio do mtodo manipulador do evento
OnBeforeConnect do componente citado.
Listagem 5. Configurando o caminho do banco de dados

SQLConnection1.Params.Values['Database'] :=
TPath.GetHomePath + PathDelim +
NomeDoArquivoDeBancoDeDados;
SQLConnection1.Params.Values['Database'] :=
TPath.Combine(TPath.GetDocumentsPath,
NomeDoArquivoDeBancoDeDados);

Alm disso, pelo fato do SGBD utilizado ser uma opo comercial (paga), ele necessita
de uma licena vlida para operar no dispositivo. Conforme j citado, a prpria
instalao da verso trial do Delphi XE5 j traz consigo uma licena habilitada do
InterBase ToGo para estes fins.
De modo geral, para se adicionar lista de deploy todos os elementos relativos ao
SGBD em questo, basta que se acione o boto de ao Add Featured Files. Uma vez
feito isso, uma nova janela aberta (Figura 13), j disponibilizando uma opo
devidamente relacionada.

Figura 13. Deployment Featured Files

Concluso
A partir do pleno entendimento do cenrio que envolve a construo de aplicaes
mveis para Android no novo Delphi XE5, o desenvolvedor pode tirar proveito de todas
as vertentes que esta abordagem tem a oferecer. Vislumbrando situaes hipotticas,
podemos citar desde a criao de uma simples aplicao mvel independente, que
poder ser distribuda de forma comercial em loja de aplicativos, passando por
aplicaes que envolvam dados armazenados no prprio aparelho em uma base local e,
enfim, casos corporativos, onde a aplicao Android construda atua como um cliente
de um Servidor de Aplicao DataSnap.
Por conseguinte, so notrias a gama opes que so acrescidas ao contexto do
Delphi, mediante seu novo suporte ao desenvolvimento Android.
Conforme j de praxe no lanamento de cada nova verso, o Delphi XE5 acaba por
proporcionar novos desafios aos membros de sua extensa comunidade. Portanto,
novamente cabe ao desenvolvedor tirar proveito do que h de mais novo na
ferramenta, ampliando ainda mais seu leque profissional.

Links
Delphi XE5 Download Trial
https://downloads.embarcadero.com/free/delphi
Delphi XE5 Pgina oficial do produto
http://www.embarcadero.com/br/products/delphi

Fabricio Hissao Kawata


Formado em Processamento de Dados pela FATEC-TQ. Atua como Programador Delphi h 7 anos.
Entusiasta do desenvolvimento multicamadas. Atualmente escreve artigos sobre Delphi para revistas
especializadas. Certified Delphi Developer. [...]

O que voc achou deste post?

Gostei (13)

(0)

Poste seu comentrio


Ana Karina Da Silva Lunardi
Estou avaliando uma ferramenta para desenvolvimento de algumas aplicaes mobile, por conta da
minha grande experincia e uso da IDE Delphi, acredito que a curva de aprendizado ser menor.
Porm estou com uma dvida, tanto o HTML5 Builder quanto a verso XE5+firemonkey se propem
a gerar apps android entre outras, objetivamente qual devo utilizar?
Abrao,
[h +1 ms] - Responder
[autor] Fabrcio Hissao Kawata
Ana, se a sua inteno reutilizar o seu conhecimento Delphi (linguagem, habilidade com
componentes, etc), com certeza voc deve optar por XE5+FireMonkey.
Obrigado pelo feedback. Abrao!
[h +1 ms] - Responder

Ana Karina Da Silva Lunardi


Obrigado Fabrcio, sim eu tambm cheguei nesta concluso, s gostaria de entender melhor
o porque da embarcadeiro oferecer a mesma funcionalidade mas de IDE's diferentes (XE e
HTML5 Builder).
Voc tem alguma opinio formada sobre isso?
[h +1 ms] - Responder

[autor] Fabrcio Hissao Kawata


Ana, creio que so dois cenrios distintos. O primeiro, provido pelo HTML5 Builder, envolve
uma abordagem mais voltada a profissionais que j mexem com Web como, por exemplo,
PHP, HTML5, JavaScript etc. J para o XE5, a parte Android uma opo a mais para os
desenvolvedores Delphi em si, que j usam a ferramenta/linguagem, e no precisam mais
recorrer a outras ferramentas (ex: HTML5 Builder) para desenvolver aplicaes para
Android.
[h +1 ms] - Responder

Wilton Queiroz
Fabricio, qual seria outro banco de dados free que eu poderia usar
em aplicacoes mobile como firemonkey.
preciso criar aplicacoes de fora de vendas, e preciso armazenar os dados localmente
para sincronizar posteriormente, a sincronizacao penso em compactar a base enviar por ftp
la na outra ponta recebo o arquivo e fao a descompactacao e importacao na base do cliente.
e ter que licenciar uma copia do banco de dados para cada dispositivo fica inviavel.
[h 19 dias] - Responder
Douglas Claudio
Ol Wilton, obrigado pelo seu comentrio.
Enviamos sua solicitao ao Fabricio e estamos no aguardo de um feedback do mesmo.
Um abrao.
[h 19 dias] - Responder

[autor] Fabricio Hissao Kawata

Wilton, alm do InterBase, vc poderia estar utilizando, por exemplo, o SQLite. Obrigado pelo
feedback!
[h 18 dias] - Responder

Luis Emanuel Castelo Branco Gadelha


Estou em um projeto com um cenario bem parecido com o seu. Hoje meu sistema de
vendas desktop desenvolvido em delphi com banco firebird, e cada pc tem seu banco de
dados, porm com a opo de sincronizao com o banco do servidor. Agora preciso
implementar o sistema em mobile. J deciciu o que utilizar? Podemos nos ajudar... se quiser
entra em contato no email emanuelcbgadelha@hotmail.com
[h 16 dias] - Responder

Douglas Claudio
Ol Luis, obrigado pelo seu comentrio.
Enviamos sua solicitao ao Fabricio e estamos no aguardo de um feedback do mesmo.
Um abrao.
[h 16 dias] - Responder

Mais posts
Revista

Revista ClubeDelphi 156


Video aula

Parameters, Load Process e Depurao Remota - Curso Delphi para Iniciantes - 53


Video aula

Watches, Expression Evaluate e Breakpoint Properties - Curso Delphi para Iniciantes - 52


Video aula

Conhecendo os Recursos de Depurao do Delphi - Curso Delphi para Iniciantes - 51


Video aula

Introduo a Fail Over e Balanceamento de Carga - Curso de Multicamadas com Delphi e


DataSnap - 50
Video aula

Callbacks e Channels na prtica - Curso de Multicamadas com Delphi e DataSnap - 49


Video aula

Callbacks - Curso de Multicamadas com Delphi e DataSnap - 48


Artigo

Delphi XE2: Cloud Computing e Windows Azure


Artigo

Delphi e WCF: aplicaes multicamada


Artigo

WPTools: edio, correo ortogrfica e mala direta de textos no Delphi XE 3

Listar mais contedo

DevMedia
Curtir

Anuncie | Loja | Publique | Assine | Fale conosco

21.472 pessoas curtiram DevMedia.

Plug-in social do Facebook

Hospedagem web por Porta 80 Web Hosting

Todos os Direitos Reservados a Web-03

Potrebbero piacerti anche