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 Architect 30 Day trial

no Produto Delphi XE5

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) { } Estrutura condicional com If (cont==3) else { } else { } for (i=0;i<=3;i++) { } for (i=3;i>=0;i--) { }

Em Pascal := = If (cont=3) Then Begin End; If (cont=3) Then Begin End else Begin End; for cont:=0 to 3 do Begin End; for cont:=3 downto 0 do Begin End;

Lao de Repetio FOR

Lao de Repetio WHILE

while( i <= 100 ) {

While (i<=100) 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; End; //no obrigatrio, mas serve para sair da funo.

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 ShortInt SmallInt LongInt Integer Int64 Byte Word

Faixa Aproximada -128..127 -32768..32767 -2147483648..2147483647 -2147483648..2147483647 -2^63..2^63-1 0..255 0..65535

LongWord 0..4294967295

21 de 79

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

Cardinal UInt64

0..4294967295 0..2^64-1

Tipos Float

Tipo Real48 Single Double Real

Faixa Aproximada
2.9e-39 .. 1.7e+38 1.5e-45 .. 3.4e+38 5.0e-324 .. 1.7e+308 5.0e-324 .. 1.7e+308
63

Dgitos sig. 11-12 7-8 15-16 15-16 10-20

Extended

32-bit platforms 3.4e-4932 .. 1.1e+4932 64-bit platforms 5.0e-324 .. 1.7e+308


63

15-16
Comp
-2 +1 .. 2 -1

10-20 10-20

Currency -922337203685477.5808.. 922337203685477.5807

Tipo Booleano

Boolean aceita true ou false;

Tipo Data e hora

TDate TTime TDateTime

guarda data guarda hora 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. 2. 3. 4. Ponteiros no so suportados no mundo mobile No h suporte para Inline assemby Evite chamadas a APIs diretamente, esteja pronto para as novas plataformas que viro 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 Nexus 7 HD (2013) Nexus 4 Nexus 7 (2012) Android Version 4.3 4.2.2 Test Results (Out of 16 Samples) 16/16 16/16 16/16 Percentage Passed 100 100 100 Comments

4.3

45 de 79

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

Nexus 7 Nexus 4 Nexus 10 Galaxy S II (GT-

4.2.2 4.3 4.3

16/16 16/16 16/16

100 100 100

4.1.2 I9100) Galaxy S III Galaxy S4 Nexus 10 Galaxy Tab2 7 (GT4.1.1 P3110) Optimus L5 (LG4.1.2 E612) Galaxy Tab2 7 (GT4.1.1 P3110) Orange Nivo 4.1.2 (Coolpad 7560U) Nexus 7 LG Optimus L5 (LG 4.0.3 - E610) Galaxy S II (GT2.3.3 I9100) Fujitsu Arrows Tab 4.0.3 (F-01D) HTC Desire HD HTC One X 2.3.6 4.1.1 4.2.1 4.1.1 4.1.1 4.2.2

16/16

100

16/16 16/16 16/16

100 100 100

16/16

100

16/16

100

16/16

100

16/16

100

16/16

100

15/16

93.75

15/16

93.75

Bug reported about Picture Taking

15/16

93.75

Bug reported about Audio Recording

15/16 15/16

93.75 93.75

Bug reported about Audio Recording Bug reported about Web Browser

46 de 79

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

HTC Desire SV Kindle Fire HD

4.0.4

15/16

93.75

Bug reported about Audio Recording Bug reported about Location Demo and

4.0.3 (KFTT) Samsung Galaxy 4.0.3 Tab2 10

14/16

87.5 Audio Recording Bug reported about Location Demo and

14/16

87.5 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 Bionic Huawei Ascend P1 ZTE Avid 4G ASUS Nexus 7 4.0.3 4.0.4 4.2.1 15/16 16/16 16/16 93.75 100 100 Bug reported about Audio Recording 16/16 100

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