Você está na página 1de 79

APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE5

Ronnei Peterson

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

DICAS DE INSTALAO
Caso voc ainda no possua uma licena oficial utilize por 30 dias a verso Trial para os
testes. Recomendamos a compra da licena do produto, pois somente com produtos
licenciados que permitido a gerao de apps oficiais e comerciais, no permitido
adicionar aplicativos desenvolvidos em verses trial na Google Play ou na AppStore.

BAIXANDO A VERSO TRIAL


Acesse o site www.embarcadero.com.br no menu Produtos escolha a opo FREE
TRIALS

Na prxima pgina escolha a Opo Trial Download no Delphi XE5

Na pgina de Seleo do Produto clique em Download

no Produto Delphi XE5

Architect 30 Day trial


2 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

Crie uma conta ou entre com seu login e senha registrados na embarcadero

O nmero de srie chegar no seu email, e tambm ser necessrio esse login e senha
no primeiro uso do produto na ativao do registro do mesmo.
3 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

DICAS REFERENTE A BANCO DE DADOS


Caso voc j utilize o FIREBIRD em seu computador desmarque a opo de instalar o
Interbase, para evitar conflitos, caso contrrio mantenha a instalao completa, pois o
interbase ser til no desenvolvimento de aplicativos com banco de dados.

SDK DO ANDROID

Marque as opes de instalar o SDK e o NDK do Android.

4 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

Aguarde o Final da Instalao, ela poder ser um pouco demorada porque necessrio
fazer o download de todos os arquivos da instalao.

Acesse o Delphi XE5 complete o passo de registro do software, usando o nmero de


srie enviado em seu email e o email e senha registrados na embarcadero.

Conhecendo a IDE do Delphi

IDE (Integrated Development Environment), um ambiente integrado para desenvolvimento de


software

5 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

Barra de Ferramentas
Clicando com o boto direito sobre uma das barras de ferramentas aparecer a lista de barra
de ferramentas que esto ou podem ser adicionadas.

Palheta Standard

6 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

Palheta responsvel por criar novas units, abrir units existentes, salvar a unit atual, salvar tudo
eadicionar ou remover units externas aos nossos projetos.

Palheta Desktop

Esta palheta serve para configurarmos o nosso ambiente de trabalho, j existem alguns
modelos prontos, porm voc pode personalizar seu ambiente de trabalho, com as janelas e
posies das mesmas da forma que voc preferir.

Palheta View

Responsvel por Visualizar as units,formulrios e alternar entre Visual (form) e Cdigo (unit)

Palheta Debug

7 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
Palheta Responsvel pela Depurao do Projeto, ou seja, compilar, compilar e executar, pausar
a depurao, fazer depurao linha a linha, entre outras opes de depurao. Veremos a
funo de cada uma dessas opes mais adiante.

Tool Palette - Palheta de Ferramentas (Ctrl + Alt + P)

Nesta palheta voc encontrar as ferramentas necessrias para trabalhar, quando no


estamos com nenhum projeto abertoa palheta de ferramentas mostrar os possveis projetos
que podem ser criados.

Project Manager Gerenciador de Projetos (Ctrl +.Alt + F11)

Nesta palheta voc poder gerenciar os projetos abertos, visualizando seus arquivos,
plataforma que ser usada para depurao (Windows, Mac, Ios..), adicionando e removendo
novos arquivos ao projeto.

8 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

Structure Palheta de Estrutura dos componentes (Shift + Alt + F11)

No exemplo abaixo eu inseri dois componentes no formulrio e a palheta Estrutura mostrou


como eles esto organizados, ou seja o Edit1 e o Memo1 esto dentro do Formulrio Form2.

Object Inspector Palheta Inspetor de Objetos (F11)

Esta uma das palhetas que teremos o maior contato durante o desenvolvimento, atravs
dela que acessaremos as propriedades e eventos do componente selecionado, no exemplo
abaixo foi selecionado um Edit (caixa de entrada) e o object inspector est listando todas as
propriedades do mesmo, na segunda imagem o object inspector est listando todos os eventos
do Edit selecionado.

9 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

Menu View

Atravs deste Menu voc poder abrir janelas e visualizar os atalhos para cada uma delas.

Projetos, Units e Formulrios


10 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

Um projeto uma coletnea de arquivos necessrios para que um programa possa funcionar,
no Delphi existem diversos tipos de projetos, como por exemplo:

VCL Forms Aplicattion Aplicao baseada em formulrios VCL (Visual Component Library),
biblioteca de componentes visuais, a VCL herda do Windows o visual de seus componentes,
podendo inclusive serem modificados caso o tema do Windows seja modificado.

Firemonkey Desktop Application Aplicao que pode ser usada em mltiplas plataformas
desktop (Windows, Mac Os), com componentes redesenhados e estilizados.

VCL Metropolis UI Application Aplicao baseada em VCL, porm com recursos visuais do
tema Metropolis (Windows 8).

Firemonkey Mobile Application Aplicao para dispositivos mveis, nesta verso do Delphi
possvel criar aplicaes para dispositivos com sistema operacional IOS (Apple) e dispositivos
com sistema operacional Android.
Entre outros projetos.

11 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

Firemonkey Mobile Application


Este ser o projeto que utilizaremos durante o mini-curso.
Um projeto uma coletnea de units e formulrios para gerar uma aplicao.
Uma unit (.pas) pode existir por si s.
Um formulrio depende de uma Unit (.pas) e de um arquivo (.dfm), a unit contm o cdigo
funcional da aplicao e arquivo dfm contm o cdigo dos componentes visuais do
formulrio.

Exemplo de um projeto

Exemplo de uma unit que contm um formulrio

12 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

Entendendo a estrutura de uma UNIT

unit Unit2; //nome da Unit

interface//bloco de interface responsvel pelas declaraes

uses//declara as units (bibliotecas) que sero usadas


System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls;

Type //criao de novos tipos

//Criando uma classe herdada da classe TFORM


13 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
TForm2 = class(TForm)
private
{ Private declarations }
Public
{ Public declarations }
end;

var //variveis globais a esta unit


Form2: TForm2;

implementation//Bloco de implementao

{$R *.dfm}

//rea onde sero implementados os mtodos, procedimentos e funes

end.//indica o fim da unit

Exemplo do dfm deste formulrio

14 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

15 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

Um pouco da Delphi Language e converso de sintaxe

Como o foco de nosso curso so alunos que j tem um certo conhecimento em C ou Java,
explanaremos aqui as principais diferenas de sintaxe entre as duas linguagens.

Operadores

+ Soma
- Subtrao
* Multiplicao
/ Diviso

Comentrios

// comentrio de uma linha

(*
Comentrio em
Bloco
*)

{
Comentrio em
Bloco

16 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

Em C
Atribuio
Comparao
Estrutura condicional

=
==
If (cont==3)
{

:=
=
If (cont=3) Then
Begin

End;

Estrutura condicional com If (cont==3)


else
{

Lao de Repetio FOR

Lao de Repetio WHILE

Em Pascal

If (cont=3) Then
Begin

}
else
{
}
for (i=0;i<=3;i++)
{

End
else Begin

End;

for (i=3;i>=0;i--)
{

for cont:=3 downto 0 do


Begin

End;

while( i <= 100 )

While (i<=100)
Do Begin

End;
for cont:=0 to 3 do
Begin

{
End;

}
Mdulo ou resto da Diviso

If ((4 % 2) ==0)
{
printf(" par );

If ((4 mod 2)=0)


Then Begin
Showmessage( par);
End;

Modularizao: Funes e Procedimentos

Procedimentos

Em C
17 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

void soma()
{

Em Pascal

Procedure Soma;
Begin

End;

Funes

Em C

Int soma()
{
return 30; // sai da funo nesta linha e retorna 30
}

Em Pascal

Function soma:integer;
Begin
Result:=30; //armazena 30 na varivel de retorno, mas no sai nesta linha

18 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
Exit;

//no obrigatrio, mas serve para sair da funo.

End;

Passagem de parmetros em procedimentos e funes

Passagem por argumento

Em C

int soma (int a,int b)


{
return a+b;
}

Em Pascal

Function soma (a,b:integer):integer;


Begin
result:=a+b;
End;

Passagem por referncia

Em C

int soma (int& a,int& b)


{

19 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
}

Em Pascal

Function soma (var a,b:integer):integer;


Begin
End;

ESCOPO DE VARIVEIS

Assim como em C, se uma varivel for declarada dentro de uma funo, o escopo dela
apenas a funo.

Para declarar uma funo em Pascal existem reas especficas para esse procedimento,
diferentemente de C que uma varivel pode ser declarada em qualquer parte do cdigo.

Declarando variveis dentro de um procedimento (entre o nome da funo e o Begin)

Procedure Soma;
Var
A,b:integer;
Texto:string;
Begin
End;

Declarando uma varivel Global a uma Unit (no var antes do implementation da unit, junto a
varivel do formulrio)

20 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
var
Form2: TForm2;
Aglobal:integer; //aqui

implementation

{$R *.dfm}

....
Existem tambm variveis declaradas dentro de classes, que podem ser declaradas na seo
privada ou pblica, mas que foge do escopo deste mini-curso.

TIPOS DE DADOS COMUNS

Inteiros

Tipo

Faixa Aproximada

ShortInt

-128..127

SmallInt

-32768..32767

LongInt

-2147483648..2147483647

Integer

-2147483648..2147483647

Int64

-2^63..2^63-1

Byte

0..255

Word

0..65535

LongWord 0..4294967295

21 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

Cardinal

0..4294967295

UInt64

0..2^64-1

Tipos Float

Tipo

Faixa Aproximada

Dgitos sig.

Real48

2.9e-39 .. 1.7e+38

11-12

Single

1.5e-45 .. 3.4e+38

7-8

Double

5.0e-324 .. 1.7e+308

15-16

Real

5.0e-324 .. 1.7e+308

15-16

32-bit platforms 3.4e-4932 .. 1.1e+4932


64-bit platforms 5.0e-324 .. 1.7e+308

Extended

10-20

15-16
Comp

63

63

-2 +1 .. 2 -1

Currency -922337203685477.5808.. 922337203685477.5807

10-20
10-20

Tipo Booleano

Boolean aceita true ou false;

Tipo Data e hora

TDate

guarda data

TTime

guarda hora

TDateTime

guarda data e hora

22 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
Tipos de caracteres

Char

representao de 1 bytes (1 caracter)

String vetor de caracteres

Funes de String

S:=texto que ser enviado para a varivel S;

A:=teste;
B:=de texto;
C:=A+B+ usando concatenao de strings;

Funo length retorna a quantidade de caracteres de uma string


Quantidadecaracteres:=Length(C);

Uma string inicia em 1 e no em 0, ento para percorrer uma string

For cont:=1 to length(c) do


Begin
Stringfinal:=StringFinal + C[cont];
End;

Algumas funes importantes de converses entre tipos

Na converso o parmetro deve conter um valor correto para o tipo destino, caso contrrio
gerar uma excesso.

23 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
Strtodate = Converte uma String para Data

Strtodatetime= Converte uma string para um campo data/hora

DateTimetostr= Converte um valor Data/Hora para String

Formatdatetime= Formata um valor Data/Hora convertendo para String

Strtoint= Converte uma string para um valor inteiro

StrtoCurr= Converte uma string para um valor currency

Strtofloat= Converte uma string para um valor de ponto flutuante

InttoStr= Converte um valor inteiro para uma string

CurrtoStr= Converte um valor currency para uma string

FloattoStr= Converte um valor de ponto flutuante para uma string

Exemplo de Uso das funes em um click de um boto

procedure TForm2.Button1Click(Sender: TObject);


Var
ValorData:Tdate;
ValorDataHora:TDatetime;
ValorString:String;

24 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
ValorInteiro:integer;
ValorCurrency:Currency;
ValorFloat:Double;
Begin

ValorData:=strtodate('01/01/2000');
ValorDataHora:=strtodatetime('01/01/2000 00:00');
ValorString:=datetostr(ValorData);
ValorString:=FormatDatetime('yyyy/mm/dd', ValorDataHora);
ValorInteiro:=strtoint('22');
ValorCurrency:=strtocurr('10,25');
ValorFloat:=strtofloat('10,2252');
ValorString:=inttostr(332);
ValorString:=CurrtoStr(200.25);
ValorString:=CurrtoStr(200.2566);
End

25 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

O QUE H DE NOVO NO DELPHI XE4


Artigo
de
Fernando
Rizzato
pesquisando
no
dia 28/10/2013
http://blogs.embarcadero.com/fernandorizzato/index.php/2013/05/page/2/

no

link

Principais Mudanas na Linguagem Delphi para Mobile


Sunday, May 5th, 2013

Introduo
Este artigo apresenta as principais novidades da linguagem Delphi no que diz respeito a desenvolvimento para
Mobile, disponibilizado recentemente atravs do Delphi XE4. Porm antes dos detalhes da linguagem, vamos
entender o motivo e a abrangncia destas alteraes.

Novo Compilador
Para oferecer suporte aos dispositivos mveis foram criados dois novos compiladores, um para o simulador do iOS e
outro para o dispositivo fsico (ARM), j que as arquiteturas so distintas.Desta forma agora temos:

Win32 compiler (DCC32)

Win64 compiler (DCC64)

Mac compiler (DCCOSX)

iOS Simulator compiler (DCCIOS32)

iOS ARM compiler (DCCIOSARM)

A novidade est nos dois ltimos, os quais seguem um desenho totalmente novo, baseados em um padro
chamado LLVM (http://llvm.org). Podemos entender o LLVM como um conjunto de mdulos e ferramentas
reutilizveis para compiladores, utilizados amplamente por diversos compiladores nativos, entre eles o prprio
Xcode, nativo da Apple.

Mudanas no Delphi Language


Para suportar dispositivos mveis, o novo compilador (acima) impe algumas mudanas de linguagem, as quais vou
listar a seguir. Na verdade, mais do que mudanas, trata-se de uma grande evoluo da linguagem Delphi. No
futuro, estes e outros avanos sero portados tambm para os compiladores Win32, Win64 e OSX.

Automatic Reference Counting (ARC)


26 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

O ARC traz o melhor dos dois mundos: gerenciamento automtico de memria sem a necessidade de um garbage
collection, tido como um grande vilo de performance nas linguagem que o utilizam. Em resumo o ARC gerencia o
ciclo de vida de objetos sem que voc tenha que se preocupar com o "Free".

No exemplo acima, o objeto MyObj ser removido da memria assim que sair do escopo. Importante ressaltar que a
sintax tradicional (try/finally fazendo o Free manual do objeto) continua suportada, portanto as migraes de
cdigo esto garantidas.

Tambm esto disponveis o pattern Dispose e suporte a [Weak] References. Voc pode encontrar mais sobre isso
aqui:http://edn.embarcadero.com/article/43073.

Tipo String
Todos os tipos string existentes (AnsiString, UTF8String, RawByteString, WideString, AnsiChar, PAnsiChar,
PWideChar, OpenString, ShortString

) agora esto simplificados em um nico: String. Alm disso, as strings agora so 0-based ao invs de 1-based. Isso
significa que alguns cdigos podem precisar de reviso, mas as funes de manipulao de strings j esto
preparadas para esta mudana.

Uma outra - importante - mudana que as strings passaro a ser "imutveis", devido ao gerenciamento de
memria dos dispositivos mveis. Nesta verso do compilador tudo continua conforme anteriormente, voc
receber apenas uma warning alertando que, futuramente, construes como a exibida abaixo no ser mais
suportada:

str1[3]:=w;

Portanto altamente recomendado que, para seus novos cdigos, voc faa uso de construes como
TStringBuilder e TStringHelper para a manipulao de strings. Um trecho de cdigo utilizando estas classes para
ilustrar:

27 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

Outras mudanas
1.

Ponteiros no so suportados no mundo mobile

2.

No h suporte para Inline assemby

3.

Evite chamadas a APIs diretamente, esteja pronto para as novas plataformas que viro

4.

Prefira utilizar as units cross-plataform, especialmente ao manipular arquivos (unit IOUtils)

28 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

EMULADOR DO ANDROID

Para testar os projetos sem um celular necessrio um emulador do sistema operacional do


celular desejado, junto ao Embarcadero Xe5 instalado um Emulador do Android.
Clique no Menu Iniciar, localize o menu do Embarcadero RAD Studio XE5 e abra o Android
Tools

29 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
Menu Tools \ Manage AVDs...

O Print abaixo depender da verso do SDK do Android instalado, caso aps instalado a
mquina virtual j estiver criada necessrio apenas na primeira execuo do emulador
adicionar o suporte a GPU, para isso clique no dispositivo virtual listado e clique em Edit.

Na tela de edio clique em New para adicionar uma nova propriedade

30 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

Clique na Opo GPU emulation e clique em OK

Na lista de propriedades adicionadas troque o valor do GPU emulation para YES

31 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

Clique em Edit AVD para finalizar as alteraes.

Caso voc esteja trabalhando com outra verso do Emulador, segue abaixo um print da criao
de um novo dispositivo virtual, para isso clique no boto NEW

32 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

Preencha as opes indicadas pelas setas vermelhas


AVD Name: Nome do dispositivo, use um nome simples sem espaos ou caracteres
especiais
Device: Escolha o modelo do dispositivo, neste exemplo estamos usando um Nexus
Target: Escolha o Android.4.2.2
Memory Options RAM: Altere para 768 (mximo recomendado)
Use Host GPU: Marque essa opo
33 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
Clique em OK
A mensagem o resultado da criao da mquina virtual.

Iniciando o emulador
Marque o dispositivo virtual e clique em START ...

34 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

35 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

Note que na barra de superior dado um nome para este dispositivo virtual, o mesmo dever
estar listado no Delphi para conseguirmos emular nosso aplicativo.

FIREMONKEY MOBILE APPLICATION


Para criar um novo projeto para desenvolvimento Mobile clique em Menu New \ Firemonkey
Mobile Application - Delphi

36 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

Existem alguns Templates de projetos Mobile que podem ser escolhidos ao iniciar um projeto.

Escolha a opo Blank Application (Aplicao em Branco)


possvel escolher o modelo visual do celular que deseja desenvolver.

37 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
Exemplo Usando o Google Nexus 4

Exemplo Usando o Iphone 4

COMPONENTES OU CONTROLES
Componentes ou controles so objetos (classes) prontos para o desenvolvimento dentro de
uma IDE, por exemplo se voc precisa de um boto, de uma caixa de texto ou de uma label na
construo do seu aplicativo voc no precisa constru-los, eles j esto prontos, basta arrastar
para o formulrio que deseja e eles sero criados.

CONHECENDO ALGUNS CONTROLES (COMPONENTES)


LABEL

38 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

O componente label serve para mostrar textos, ele pode ser encontrado
na Palheta Standard da Tool Palette

Algumas Propriedade
Text = Texto da Label
39 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
StyleLookup = Estilo Visual da Label

PRIMEIRA COMPILAO NO EMULADOR


Adicione um componente Label em seu formulrio, v na propriedade TEXT no Object
Inspector e altere o texto a mesma.
Salve seu projeto e todos os arquivos que compe o mesmo clicando em Menu File \ Save All

Na janela Project Manager, escolha o emulador correto, de acordo com o dispositivo que
deseja fazer o deploy

40 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

Veja que no exemplo acima foi listado o mesmo nome do emulador que j se encontra aberto.
Clique em Run Without Debugging, essa opo compila o projeto e enviar para o dispositivo ou
emulador o app pronto, como estamos trabalhando sem o Debug no conseguiremos
debugar nosso cdigo com paradas (breakpoint), para executar este tipo de operao use a
opo RUN(f9).

Aguarde todo o processo de compilao e deploy

41 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

Compilando para um dispositivo real


No exemplo abaixo foi usado um aparelho SAMSUNG Galaxy S4
O driver do dispositivo j deve ter sido instalado previamente no Windows.
No Aparelho acesse as configuraes, opo sobre o dispositivo
Pressione vrias vezes sobre a opo Num de compilao, ele habilitar as opo de
desenvolvedor, retorne a tela anterior e escolha a opo Opes do Desenvolvedor e marque a
opo Depurao de USB. (Essas opes podem mudar de acordo com o aparelho ou o
Android instalado nele, procure no Google como Habilitar Depurao de USB para
desenvolvimento no modelo de seu aparelho).

42 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

Caso o Delphi no liste automaticamente o dispositivo clique com o boto direito sobre a
opo Target do Android no Project Manager e escolha a opo Refresh. Caso no funcione
uma das dicas fechar e abrir Delphi novamente.

43 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
Caso tudo ocorra certo o dispositivo dever ser listado no Delphi, para marcar ele como alvo
de compilao clique duas vezes sobre a opo ou clique com o boto direito e escolha a
opo Activate.

Clique em Run Without Debugging

Exemplo de um APP compilado direto no celular S4.

44 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

Segundo a Embarcadero (http://www.embarcadero.com/br/products/delphi/android-appdevelopment) :


Crie aplicaes para fones e tablets com Android com processadores ARM7, rodando
Android Gingerbread (2.3.3-2.7), Ice Cream Sandwich (4.0.3 e 4.0.4) ou Jelly Bean (4.1.x,
4.2.x e 4.3.x)
Lista oficial de aparelhos indicados pela Embarcadero que foram testados
(http://docwiki.embarcadero.com/RADStudio/XE5/en/Android_Devices_Supported_for_Applic
ation_Development):

Results of Our Android Device Testing


The device testing table below shows the results of our testing.
Android Device
Name

Android
Version

Test Results
(Out of 16
Samples)

Percentage
Passed

Nexus 7 HD (2013)

4.3

16/16

100

Nexus 4

4.2.2

16/16

100

Nexus 7 (2012)

4.3

16/16

100

Comments

45 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

Nexus 7

4.2.2

16/16

100

Nexus 4

4.3

16/16

100

Nexus 10

4.3

16/16

100

4.1.2

16/16

100

Galaxy S III

4.1.1

16/16

100

Galaxy S4

4.1.1

16/16

100

Nexus 10

4.2.2

16/16

100

4.1.1

16/16

100

4.1.2

16/16

100

4.1.1

16/16

100

4.1.2

16/16

100

4.2.1

16/16

100

4.0.3

15/16

93.75

2.3.3

15/16

93.75

Bug reported about Picture Taking

4.0.3

15/16

93.75

Bug reported about Audio Recording

HTC Desire HD

2.3.6

15/16

93.75

Bug reported about Audio Recording

HTC One X

4.1.1

15/16

93.75

Bug reported about Web Browser

Galaxy S II (GTI9100)

Galaxy Tab2 7 (GTP3110)


Optimus L5 (LGE612)
Galaxy Tab2 7 (GTP3110)
Orange Nivo
(Coolpad 7560U)
Nexus 7
LG Optimus L5 (LG
- E610)
Galaxy S II (GTI9100)
Fujitsu Arrows Tab
(F-01D)

46 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

HTC Desire SV

4.0.4

15/16

93.75

4.0.3

14/16

87.5

Kindle Fire HD

Bug reported about Audio Recording


Bug reported about Location Demo and

(KFTT)

Audio Recording

Samsung Galaxy

Bug reported about Location Demo and


4.0.3

14/16

87.5

Tab2 10

Audio Recording
Bug reported about Picture Taking and

HTC Flyer

2.3.4

13/16

81.25
Audio Recording
Bug reported about Picture Taking,

Sony Xperia U

2.3.7

13/16

81.25
Audio Recording and Notifications

Android Cloud Devices (perfectomobile.com)


Motorola Droid
4.1.2

16/16

100

Huawei Ascend P1

4.0.3

15/16

93.75

ZTE Avid 4G

4.0.4

16/16

100

ASUS Nexus 7

4.2.1

16/16

100

Bionic
Bug reported about Audio Recording

Android Cloud Devices (scirocco-cloud.com/en)


100
Pantone 6

4.1.2

16/16

Fizemos alguns testes em outros aparelhos no indicados na lista, como por exemplo o tablet
Motorola XOM e tivemos xito, porm com alguns tablets da SAMSUNG testados tivemos
problemas pois NO tinham suporte ao NEON, portanto nem todos os aparelhos rodando
ANDROID so suportados, verifique sempre se o aparelho que deseja rodar a aplicao tenha
suporte a NEON e se encontra em uma das verses do ANDROID indicadas pela Embarcadero.

COMPONENTE BOTO
Palheta Standard \ TButton

Propriedade
47 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
Text = Texto do Boto

Evento OnClick
Evento que ativado quando um boto recebe um click.

Exemplo uma caixa de mensagem chamada atravs do click do boto.

48 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

STYLE LOOKUP
Essa propriedade determina a aparncia do componente, ela fundamental pois atravs
dela que o compilador ir determinar a aparncia dos controles de acordo com o Sistema
Operacional do Celular (IOS ou ANDROID).

49 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

Exemplo de um Boto configurado como boto de informao no Android

Mesmo boto configurado como boto de informao no Iphone

Boto Delete no Android

50 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
Boto Delete no Iphone

Ancoragem de Componentes
A propriedade Anchors determina o sistema de ancoragem que o aplicativo usar para o
componente, voc pode ancorar um componente usando as posies: left (esquerda), right(
direita), top (superior) e bottom (inferior). A ancoragem serve quando o tamanho da tela do
aplicativo redimensionada (troca de dispositivo por exemplo) ele indicar como o
componente dever se comportar.

Componente Edit
Componente caixa de texto.
Palheta Standard \ TEdit
Propriedades
Text = texto do Edit
KeyBoardType = Tipo do Teclado que ser mostrado.

Exemplo de um Edit configurado como vktEmailAddress

51 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

Exemplo de um Edit configurado como vktNumberPad

Exemplo de um APP

52 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
Construa uma aplicao com uma Label, um Edit e um boto conforme modelo acima,
configure o tipo do teclado como VktDefault, troque propriedade name do Edit para
EDTNOME
No click do boto mostraremos uma mensagem com o que foi digitado e alteraremos o texto
do Edit via cdigo.
Exemplo de cdigo do click do boto

COMPONENTE RADIOBUTTON
O rdio Button usado para selees de opes, em grupos de radiosbuttons somente um
pode ser selecionado
Palheta Standard \ TRadioButton

A propriedade TEXT altera o texto do mesmo e o evento ONClick disparado sempre que ele
selecionado.
A propriedade ISCHECKED do tipo boolean (true ou false) determina se ele est selecionado ou
no.
Voc s pode ter um radiobutton selecionado por grupo, utilize a propriedade GroupName
para criar os grupos desejados.

53 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

Exemplo de um APP que voc configura o tipo do teclado em tempo de execuo


Neste APP foram adicionados 3 radios buttons, a propriedade TEXT de cada um foi alterada de
acordo com a funo que ele ir executar (esse texto livre)

Em cada OnClick dos radios foi adicionado um cdigo para alterar o tipo do teclado do Edit.

Cdigo do OnClick dos Radios Buttons


O tipo de teclado foi trocado via cdigo, o nmero entre parnteses o indice do tipo
escolhido, consulte o Help para esta listagem de cdigos.

54 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

Componente TOOLBAR
Palheta Standard \ TtoolBar

55 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
Adicione uma Label na ToolBar e configure o StyleLookup para toollabel

Configure a propriedade Align para AlCenter

Exemplo da ToolBar em um ambiente IOS

Exemplo de boto em uma ToolBar com StykeLookup configurado para


addtoolbuttonbordered no ambiente IOS

56 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

Mesmo exemplo em um ambiente Android

COMPONENTES TABCONTROL

O TabControl proporciona a criao de TABS (ABAS)

57 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

Para adicionar as Abas clique com o boto direito sobre o componente e escolha a opo Items
Editor...

Adicione a quantidade de TabItem que desejar

58 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

Propriedades

TabPosition = Posio que ser mostrada as tabs.

Exemplo de TabPosition configurada como tpTop

Exemplo de TabPosition configurada como tpBottom

Exemplo de TabPosition configurada como tpDots


59 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

O TabPosition em tpNone no mostra nenhuma opo visual para troca de Abas, a mesma
pode ser feita atravs de cdigo.
Tabindex = Propriedade que indica qual Aba est ativa no momento.

60 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

Propriedades da TABITEM
Text = Texto da TabItem

Ao clicar sobre um TabItem a tabControl altera a sua TabIndex automaticamente em tempo de


projeto no Delphi.
Exemplo de uma App com uma label por TAB

61 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

62 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

COMPONENTE LISTBOX
Palheta Standard \ TListBox

Manual interessante sobre o componente:


http://docwiki.embarcadero.com/RADStudio/XE5/en/Mobile_Tutorial:_Using_ListBox_Compo
nents_to_Display_a_Table_View_(iOS_and_Android)

63 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

Configure a propriedade Align como AlClient para que o componente se ajuste a tela.

Adicionando ITEMS manualmente

Clique com o boto direito sobre o componente e escolha a opo Items Editor

Escolha a opo TListBoxItem e clique em Add Item

64 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

Cada item pode ser configurado separadamente, para isso clique sobre o Item desejado
Propridades

65 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
Text = Texto Principal do ITEM
TextAlign = Alinhamento do texto principal (taLeading, tacenter e tatrailing)
ItemData
Accessory = Acessrio que ser usado no item (checkmark, detail...)
Bitmap = Imagem com o cone do Item
Detail = Texto secundrio do item (detalhe)
Text = Texto do Item, mesmo da propriedade TEXT
StyleLookup = Esta propriedade indica aparencia do ITEM, determinando se ter ou no detail,
a posio do detail entre outras opes.

EXEMPLO PARA ADICIONAR ITENS VIA CDIGO


O exemplo abaixo foi adicionado no evento OnCLick da Aba Palestras, adicionando 4 itens
manualmente
procedure TForm2.TabItem1Click(Sender: TObject);
var
ListBoxItem:TListBoxItem;//declarando a varivel que sera usada
begin

66 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
ListBoxPalestras.BeginUpdate;

ListBoxPalestras.Items.Clear; //limpando a listbox

//instanciando um novo ListBoxItem


ListBoxItem := TListBoxItem.Create(ListBoxPalestras);
//Configurando o texto principal
ListBoxItem.Text := 'PALESTRA A';
//configurando a aparencia para ter o texto de detalhe
ListBoxItem.StyleLookup:='listboxitembottomdetail';
//configurando o texto detalhe
ListBoxItem.ItemData.Detail:='Palestrante A';
//adicionando o item a listbox
ListBoxPalestras.AddObject(ListBoxItem);

ListBoxItem := TListBoxItem.Create(ListBoxPalestras);
ListBoxItem.Text := 'PALESTRA B';
ListBoxItem.StyleLookup:='listboxitembottomdetail';
ListBoxItem.ItemData.Detail:='Palestrante B';
ListBoxPalestras.AddObject(ListBoxItem);

ListBoxItem := TListBoxItem.Create(ListBoxPalestras);
ListBoxItem.Text := 'PALESTRA C';
ListBoxItem.StyleLookup:='listboxitembottomdetail';
ListBoxItem.ItemData.Detail:='Palestrante C';
ListBoxPalestras.AddObject(ListBoxItem);

ListBoxItem := TListBoxItem.Create(ListBoxPalestras);
ListBoxItem.Text := 'PALESTRA D';
ListBoxItem.StyleLookup:='listboxitembottomdetail';
67 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
ListBoxItem.ItemData.Detail:='Palestrante D';
ListBoxPalestras.AddObject(ListBoxItem);

ListBoxPalestras.EndUpdate;
end;

ADICIONANDO UMA CAIXA DE PESQUISA NA LISTBOX


Clique com boto direito sobre a listbox, escolha a opo Add Item \ TSearchBox

68 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

69 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
ADICIONANDO LISTBOXGROUPHEADER
Declare uma varivel do tipo TLISTBOXGROUPHEADER
Exemplo de como adicionar via cdigo
ListBoxGroupheader:=TListBoxGroupHeader.Create(ListBoxPalestras);
ListBoxGroupheader.Text:='TERA';
ListBoxPalestras.AddObject(ListBoxGroupheader);

70 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

USANDO MLTIPLOS FORMULRIOS


Para que seu aplicativo tenha mltiplas telas necessrio adicionar novos formulrios ao seu
projeto, para isso clique no Menu File \ New \ FireMonkey Mobile Form - Delphi

Escolha a opo HD FireMonkey Form e clique em OK

Ser criado uma nova Unit e um novo formulrio no projeto


71 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

Para salvar essa Unit : Menu File \ Save


Altere a propriedade NAME (NOME) do formulrio para FSEGUNDO

72 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
No formulrio principal adicione um boto para chamarmos o FSEGUNDO

E adicione o cdigo abaixo no evento OnClick

Neste exemplo acima estamos chamando a funo do Show do Formulrio FSegundo que a
funo que mostra o formulrio na tela.
Na primeira compilao obteremos um erro que o Fsegundo no foi encontrado na lista de
USES, ou seja, se vamos utiliz-lo precisamos indicar sua unit na lista de Uses do nosso
formulrio principal, porm o delphi pode adicion-lo automaticamente, para isso resposta
YES na pergunta se deseja adicion-lo.

73 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

Compile novamente para testar.

Para fechar o formulrio aberto precisamos adicionar um cdigo, no exemplo abaixo adicionei
um boto em uma toolbar e configurei o stylelookup dele para backtoolbutton

No onclick desse boto apenas adicionei o cdigo abaixo:

74 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

TMEMO
Componente utilizado para trabalhar com mltiplas linhas de insero de texto.
Palheta Standard \ Tmemo

Principais propriedades

Lines: Linhas do texto, tipo TSTRINGS (estudar a classe TStrings)


Text: Texto de todas as linhas, incluindo as quebras de linhas (#13 e #10)
WordWrap: Indica se o texto quebrar linha automaticamente ou no.
TextAlign: Alinhamento do Texto
ReadOnly: Indica somente Leitura
Enabled: Indica se est ativado ou no
CharCase: Indica se usar tudo maiscula, tudo minscula ou normal.

Exemplo de como inserir informaes na propriedades Lines Via Cdigo


MemoiNFO.Lines.clear; //limpa o texto da lines
MemoiNFO.Lines.Add('texto que deseja inserir); //insere uma linha com texto
MemoiNFO.Lines.Add('texto em outra linha'); //insere uma linha com texto

ACESSANDO COMPONENTES DE OUTROS FORMULRIOS


Digite o nome do Formulrio . Nome do Componente . Nome da Propriedade
Exemplo
Finfo.memoinfo.lines.clear;
Finfo.memoinfo.lines.add(teste);

75 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

TIMAGEVIEWER
Palheta Additional \ TImageViewer
Componente usado para mostrar imagens.
Propriedades
BITMAP: Escolha a opo Edit

Clique no boto LOAD da janela Bitmap Editor e escolha a imagem que deseja.

GESTURES
Palheta Gestures \ TGestureManager

76 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

Para ativar o Gesture clique no Formulrio (utilize a palheta Structure caso o mesmo esteja
com muitos componentes na tela dificultando clicar em uma rea vazia).

Na propriedade Touch \ GestureManager escolha o componente j adicionado no formulrio.

Na propriedade Touch \ Gestures \ Standard escolha os gestures que deseja ativar

No evento OnGesture do Formulrio codifique a ao desejada para cada gesture.

77 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

Esse evento tem um parmetro EventInfo que indica as informaes do Gesture que ocorreu

Acessando a propriedade GestudeID do mesmo conseguimos saber qual gesture ocorreu. No


exemplo abaixo verifique se foi o Gesture sgiLeft (para esquerda) ou o evento sguRight (para
direita) e de acordo com o Gesture eu chamo o click do boto correspondente.

Existem diversos movimentos de gestures, eles foram mapeados e nomeados como


constantes. Segue abaixo a lista:

78 de 79

II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

possvel tambm capturar o nome do Gesture ocorrido em uma string e trabalhar com ele.
Exemplo do cdigo:

No cdigo acima a funo GestureToIdent converte o GestureID (cdigo do gesture) em uma


string de nome S (ela deve ter sido declarada), aps isso posso testar o nome do gesture
executado, caso a funo retorne FALSE porque ela no conseguiu detectar o gesture.

79 de 79

Você também pode gostar