Buscar

Criando Aplicações Móveis com Corona Sample

Prévia do material em texto

Criando	
  Aplicações	
  Móveis	
  com	
  Corona
Brian G. Burton, Ed.D.
Traduzido por Luiz F. Duarte Jr., BSc.
Criando	
  Aplicações	
  Móveis	
  com	
  CoronaPor	
  Brian	
  G.	
  Burton,	
  Ed.D.Tradução	
  por	
  Luiz	
  F.	
  Duarte	
  Jr.,	
  BSc.Copyright	
  ©	
  2012	
  Brian	
  G.	
  Burton,	
  Ed.D.	
  Todos	
  os	
  direitos	
  reservados.Impresso	
  em	
  Abilene,	
  Texas,	
  Estados	
  Unidos	
  da	
  AméricaPublicado	
  por	
  Burtons	
  Media	
  Group.Edições	
  eletrônicas	
  estão	
  disponíveis.	
  Visite	
  http://www.BurtonsMediaGroup.com/books	
  para	
  maiores	
  informações.Corona®	
  SDK	
  é	
  uma	
  marca	
  registrada	
  de	
  Corona	
  Labs®.	
  Corona	
  Labs,	
  o	
  Logo	
  Corona	
  Labs,	
  coronalabs.com	
  são	
  marcas	
  registradas	
  da	
  Corona	
  Labs.Imagens	
  da	
  capa	
  foram	
  geradas	
  usando	
  Corona	
  Simulator	
  e	
  representam	
  aplicações	
  feitas	
  neste	
  livro	
  para	
  Droid®,	
  Galaxy	
  Tab®,	
  iPad®,	
  e	
  iPhone®	
  (da	
  esquerda	
  para	
  direita).Nomes	
  de	
  marcas	
  registradas	
  e	
  imagens	
  podem	
  aparecer	
  neste	
  livro.	
  Ao	
  invés	
  de	
  usar	
  o	
  símbolo	
  ©	
  a	
  cada	
  ocorrência	
  da	
  mesma,	
  utilizamos	
  o	
  nome	
  somente	
  em	
  uma	
  representação	
  comercial	
  e	
  para	
  bene`ício	
  do	
  dono	
  da	
  marca	
  registrada,	
  sem	
  nenhuma	
  intenção	
  de	
  infringir	
  qualquer	
  marca	
  registrada.Enquanto	
  precauções	
  tenham	
  sido	
  tomadas	
  na	
  preparação	
  deste	
  livro,	
  o	
  publicante	
  e	
  autor	
  não	
  assume	
  responsabilidade	
  por	
  erros	
  ou	
  omissões,	
  ou	
  por	
  danos	
  resultantes	
  do	
  uso	
  da	
  informação	
  contida	
  no	
  mesmo.TODO	
  SOFTWARE	
  É	
  FORNECIDO	
  “COMO	
  ESTÁ”,	
  SEM	
  GARANTIA	
  DE	
  NENHUM	
  TIPO,	
  EXPRESSA	
  OU	
  IMPLICADA,	
  INCLUINDO	
  MAS	
  NÃO	
  LIMITADO	
  ÀS	
  GARANTIAS	
  DE	
  MERCABILIDADE,	
  ADEQUAÇÃO	
  PARA	
  UM	
  PROPÓSITO	
  PARTICULAR	
  E	
  NÃO	
  INFRINGIMENTO.	
  EM	
  NENHUM	
  EVENTO	
  DEVEM	
  OS	
  AUTORES	
  OU	
  DETENTORES	
  DE	
  COPYRIGHTS	
  SEREM	
  RESPONSABILIZADOS	
  POR	
  QUAISQUER	
  QUEIXAS,	
  DANOS	
  OU	
  OUTRAS	
  RESPONSABILIDADES,	
  QUER	
  EM	
  UMA	
  AÇÃO	
  DE	
  CONTRATO,	
  DANO	
  OU	
  CASOCONTRÁRIO,	
  PARTINDO	
  DE,	
  FORA	
  DE	
  OU	
  EM	
  CONEXÃO	
  COM	
  O	
  SOFTWARE	
  OU	
  O	
  USO	
  OU	
  OUTRAS	
  NEGOCIAÇÕES	
  NO	
  SOFTWARE.ISBN	
  (eTextbook):	
  978-­‐1-­‐937336-­‐12-­‐7|	
  1-­‐93733-­‐612-­‐3Versão	
  1.011
Índice	
  RápidoSobre	
  o	
  AutorSobre	
  o	
  TradutorIntrodução	
  por	
  Carlos	
  IcazaPrefácio1)	
   Olá	
  Mundo:	
  Instalando	
  e	
  Indo	
  em	
  Frente!2)	
   Botões	
  e	
  Texto3)	
   Animação,	
  Alfa	
  &	
  Orientação4)	
   Preenchendo	
  os	
  Campos5)	
   Todo	
  tipo	
  de	
  Grá`icos6)	
   Interface	
  do	
  Usuário	
  7)	
   Visões	
  de	
  Aplicação8)	
   Diversão	
  com	
  Física9)	
   Criando	
  um	
  Jogo	
  com	
  Corona10)	
   Continuando	
  o	
  Star	
  Explorer11)	
   Mídia	
  Faz	
  o	
  Mundo	
  Girar12)	
   Armazenamento	
  de	
  Arquivos	
  &	
  SQLite13)	
   Esperando	
  nas	
  Tabelas14)	
   Seus	
  Conhecidos:	
  Networking	
  15)	
   Trabalhando	
  com	
  Widgets	
  &	
  Popups16)	
   	
  Rotten	
  Apple	
  –	
  um	
  Jogo	
  de	
  Defender	
  a	
  Torre	
  17)	
   Recursos	
  AdicionaisApêndice	
  A:	
  A	
  Linguagem	
  LuaApêndice	
  B:	
  Lua	
  Avançado
Índice	
  Completo
Sobre	
  o	
  Autor
Sobre	
  o	
  Tradutor	
  (About	
  the	
  Translator)Dedicatória:
Prefácio
Introdução
Bem	
  vindo
Para	
  quem	
  este	
  livro	
  foi	
  feito
Como	
  este	
  livro	
  está	
  organizado
Convenções	
  usadas	
  neste	
  livro
Usando	
  os	
  exemplos	
  de	
  código
Porque	
  não	
  usei	
  ______	
  para	
  ______
Apêndices
Como	
  entrar	
  em	
  Contato
Porque	
  Escolhi	
  Auto-­‐Publicar
Capítulo	
  1
Olá	
  Mundo:	
  Instalando	
  e	
  Indo	
  em	
  Frente!
O	
  que	
  este	
  livro	
  não	
  é
IniciandoCorona:	
  Alguma	
  HistóriaSoftware:	
  CoronaSoftware:	
  AndroidExemplos	
  e	
  ImagensSoftware:	
  iOS
Hardware	
  para	
  Desenvolver:	
  Corona
Hardware	
  para	
  Desenvolver:	
  Dispositivos	
  de	
  TesteAndroidiOS
Considerações	
  de	
  PublicaçãoAndroid	
  (Google)iOS	
  (Apple)
Programando	
  no	
  Corona:	
  Lua
Programando	
  no	
  Corona:	
  Editores
ConWigurando	
  CoronaMacintoshWindows
Programando	
  no	
  Corona:	
  Olá	
  Mundo	
  (V1.0)
Projeto	
  1.0:	
  Olá	
  MundoConligurações	
  do	
  Projeto
Sobre	
  o	
  AutorBrian	
  Gene	
  Burton,	
  Ed.D.	
  é	
  um	
  professor,	
  autor,	
  e	
  desenvolvedor	
  de	
  jogos.	
  Ele	
  criou	
  graduações	
  de	
  jogos	
  em	
  duas	
  universidades	
  e	
  gosta	
  de	
  pesquisar	
  e	
  brincar	
  com	
  ambientes	
  virtuais.	
  Brian	
  apresenta	
  e	
  publica	
  internacionalmente	
  suas	
  pesquisas	
  e	
  gosta	
  de	
  compartilhar	
  o	
  que	
  ele	
  aprendeu	
  sobre	
  desenvolvimento	
  de	
  jogos	
  e	
  mobilidade.	
  Quando	
  não	
  está	
  viajando	
  ou	
  ensinando,	
  ele	
  pode	
  ser	
  encontrado	
  em	
  sua	
  casa	
  nas	
  Montanhas	
  Ozark	
  no	
  Missouri	
  com	
  sua	
  bela	
  esposa	
  há	
  mais	
  de	
  25	
  anos,	
  Rosemary.
Sobre	
  o	
  Tradutor	
  (About	
  the	
  Translator)Luiz	
  Fernando	
  Duarte	
  Júnior	
  é	
  analista	
  de	
  sistemas,	
  consultor	
  e	
  empreendedor	
  de	
  Porto	
  Alegre-­‐RS,	
  Brasil.	
  Bacharel	
  em	
  Ciência	
  da	
  Computação,	
  ele	
  cursa	
  (na	
  época	
  em	
  que	
  este	
  livro	
  foi	
  lançado)	
  Pós-­‐Graduação	
  em	
  Computação	
  Móvel	
  e	
  é	
  a`iccionado	
  por	
  desenvolvimento	
  para	
  smartphones	
  desde	
  2006.	
  De	
  lá	
  para	
  cá,	
  já	
  desenvolveu	
  para	
  as	
  plataformas	
  JME,	
  PalmOS,	
  Blackberry,	
  Android	
  e	
  iOS,	
  tendo	
  ministrado	
  dezenas	
  de	
  palestras	
  e	
  cursos	
  em	
  faculdades	
  e	
  escolas	
  técnicas	
  de	
  seu	
  estado.	
  Ele	
  adora	
  compartilhar	
  seu	
  conhecimento	
  e	
  um	
  pouco	
  de	
  seu	
  trabalho	
  pode	
  ser	
  conhecido	
  no	
  seu	
  blog	
  pessoal	
  LuizTools.com
Dedicatória:Eu	
  dedico	
  este	
  livro	
  à	
  minha	
  amada	
  esposa	
  cujo	
  suporte	
  e	
  encorajamento	
  manteram-­‐me	
  focado	
  e	
  escrevendo.	
  Um	
  agradecimento	
  especial	
  aos	
  meus	
  estudantes	
  e	
  à	
  comunidade	
  Corona	
  pelo	
  seu	
  suporte	
  e	
  requisições	
  por	
  detalhes	
  especí`icos	
  que	
  ajudaram	
  bastante	
  no	
  desenvolvimento	
  deste	
  livro.Os	
  loops	
  sonoros	
  e	
  musicais	
  foram	
  graciosamente	
  fornecidos	
  por	
  Shaun	
  Reed	
  da	
  Constant	
  Seas.	
  	
  Você	
  pode	
  checar	
  sua	
  banda	
  em	
  http://www.constantseas.comGrá`icos	
  Tileset	
  do	
  Reiner’s	
  Tilesets	
  (http://www.reinerstilesets.de)	
  foram	
  usados	
  com	
  permissão.Todas	
  outras	
  imagens	
  (a	
  menos	
  que	
  especi`icado)	
  e	
  capa	
  foram	
  desenhados	
  por	
  Brandon	
  Burton.Ajuda	
  na	
  edição	
  e	
  formatação	
  provida	
  por	
  Brianna	
  Burton	
  (http://www.LiteraryDiaries.com	
  )Um	
  agradecimento	
  à	
  Luiz	
  Fernando	
  DuarteJúnior,	
  webmaster	
  do	
  blog	
  http://luiztools.com,	
  por	
  esta	
  versão	
  em	
  português	
  do	
  livro.
PrefácioA	
  pouco	
  tempo,	
  no	
  início	
  de	
  2008,	
  Walter	
  e	
  eu	
  decidimos	
  ir	
  para	
  o	
  negócio	
  de	
  desenvolvimento	
  de	
  aplicações.	
  Criaríamos	
  uma	
  série	
  de	
  aplicações	
  mobile	
  para	
  vender	
  via	
  app	
  store	
  e	
  víamos	
  a	
  Apple	
  com	
  seu	
  inédito	
  iPhone	
  como	
  o	
  futuro	
  dos	
  smartphones	
  e	
  distribuição	
  de	
  aplicativos.	
  Decidimos	
  construir	
  aplicações	
  simples	
  no	
  início	
  e	
  depois	
  avançamos	
  para	
  as	
  complexas.	
  Embora	
  tenhamos	
  “mergulhado”	
  nele,	
  o	
  iPhone	
  estava	
  em	
  um	
  estado	
  inquieto	
  e	
  nós	
  não	
  estávamos	
  certos	
  se	
  ele	
  iria	
  deslanchar.	
  Sendo	
  um	
  produto	
  Apple,	
  nós	
  sabíamos	
  que	
  ele	
  estava	
  sendo	
  vendido	
  e	
  criando	
  certo	
  alarde,	
  mas	
  era	
  cedo	
  demais	
  para	
  dizer.	
  Nokia,	
  por	
  outro	
  lado,	
  tinha	
  uma	
  grande	
  parte	
  do	
  mercado	
  de	
  smartphones	
  mas	
  seu	
  desenvolvimento	
  de	
  aplicações	
  e	
  distribuição	
  das	
  mesmas	
  era	
  sofrível.Sabíamos	
  que	
  para	
  termos	
  sucesso	
  ao	
  escrever	
  nossas	
  próprias	
  aplicações	
  precisaríamos	
  cobrir	
  mais	
  de	
  uma	
  plataforma.	
  Por	
  um	
  lado,	
  nós	
  sabíamos	
  que	
  o	
  iPhone	
  estava	
  destinado	
  a	
  ser	
  o	
  vencedor	
  e	
  por	
  outro	
  lado	
  a	
  Nokia	
  tinha	
  freado	
  bruscamente	
  seu	
  avanço	
  com	
  seu	
  Series60.	
  Nos	
  focamos	
  e	
  iniciamos	
  o	
  desenvolvimento	
  de	
  um	
  framework	
  que	
  nos	
  permitiria	
  cobrir	
  mais	
  de	
  uma	
  plataforma	
  móvel	
  e	
  rapidamente	
  produzir	
  aplicações.	
  Buscamos	
  muitas	
  diferentes	
  opções,	
  linguagens	
  de	
  script,	
  e	
  algumas	
  tecnologias	
  que	
  nos	
  permitiriam	
  criar	
  nosso	
  próprio	
  framework.De	
  nossas	
  próprias	
  experiências,	
  sabíamos	
  que	
  era	
  essencial,	
  e	
  depois	
  de	
  analisarmos	
  as	
  opções	
  que	
  tínhamos,	
  de`inimos	
  a	
  utilização	
  de	
  Lua	
  e	
  iniciamos	
  o	
  desenvolvimento	
  do	
  framework	
  que	
  se	
  chama	
  hoje	
  Corona.Internamente,	
  nós	
  chamamos	
  este	
  framework	
  emergente	
  de	
  “Ratatouille”,	
  o	
  nome	
  foi	
  proposto	
  porque	
  ele	
  nos	
  leva	
  de	
  volta	
  aos	
  dias	
  de	
  programação	
  com	
  limitações	
  de	
  memória,	
  pequenos	
  espaços	
  de	
  disco	
  e	
  pequenas	
  telas.	
  Depois	
  de	
  um	
  rascunho	
  inicial,	
  começamos	
  a	
  construir	
  alguns	
  protótipos	
  e	
  todo	
  tipo	
  de	
  coisas	
  que	
  conseguíamos	
  desenvolver	
  e	
  isso	
  era,	
  naquela	
  época	
  um	
  momento	
  glorioso.	
  Honestamente	
  achávamos	
  que	
  estávamos	
  um	
  pouco	
  à	
  frente	
  de	
  nosso	
  tempo	
  e	
  não	
  estávamos	
  ainda	
  certos	
  se	
  ele	
  iria	
  funcionar	
  –	
  típica	
  mentalidade	
  de	
  engenheiros.	
  Trabalhamos	
  duro	
  e	
  após	
  semanas	
  tudo	
  que	
  podíamos	
  mostrar	
  era	
  um	
  retângulo	
  sendo	
  desenhado	
  na	
  tela.	
  Mas	
  o	
  momento	
  ‘aha’	
  chegou	
  quando	
  o	
  mesmo	
  código	
  permitiu	
  que	
  a	
  aplicação	
  funcionasse	
  em	
  um	
  Series60	
  e	
  um	
  iPhone.	
  Foi	
  quando	
  eliminamos	
  todas	
  as	
  dúvidas	
  e	
  começamos	
  a	
  adicionar	
  requisitos	
  ao	
  Ratatouille	
  aqui	
  e	
  ali.Em	
  dado	
  ponto,	
  tínhamos	
  seis	
  protótipos	
  e	
  todos	
  funcionavam	
  ridiculamente,	
  era	
  fácil	
  prototipar	
  aplicações	
  com	
  a	
  versão	
  pré-­‐alfa	
  do	
  Ratatouille.
Eventualmente	
  nós	
  tiramos	
  o	
  suporte	
  à	
  Nokia	
  e	
  incluímos	
  suporte	
  ao	
  Android,	
  e	
  decidimos	
  ir	
  atrás	
  de	
  investidores	
  de	
  risco	
  e	
  ver	
  se	
  podíamos	
  transformar	
  isto	
  em	
  um	
  negócio,	
  uma	
  vez	
  que	
  vimos	
  grande	
  interesse	
  de	
  nossos	
  amigos	
  e	
  amigos	
  de	
  nossos	
  amigos	
  no	
  produto.No	
  melhor	
  estilo	
  do	
  Vale	
  do	
  Silício,	
  Corona	
  nasceu	
  de	
  uma	
  idéia	
  em	
  nossas	
  garagens	
  visando	
  solucionar	
  nossas	
  necessidades.	
  Sabíamos	
  que	
  podíamos	
  criar	
  uma	
  ferramenta	
  que	
  permitiria	
  a	
  milhares	
  de	
  desenvolvedores	
  preencherem	
  seu	
  espírito	
  empreendedor	
  e	
  iniciar	
  negócios	
  usando	
  Corona.	
  Hoje,	
  mais	
  de	
  35.000.000	
  de	
  pessoas	
  brincam	
  com	
  jogos	
  e	
  aplicações	
  feitas	
  com	
  Corona.	
  Estes	
  jogos/apps	
  estão	
  sendo	
  escritos	
  por	
  desenvolvedores	
  de	
  14	
  anos,	
  times	
  de	
  jogadores	
  dedicados,	
  agências	
  de	
  publicidade	
  e	
  estúdios.	
  E	
  a	
  melhor	
  parte	
  é	
  que	
  não	
  há	
  previsão	
  desse	
  volume	
  diminuir.Mas	
  Corona	
  não	
  é	
  um	
  sucesso	
  apenas	
  pelas	
  suas	
  aplicações.	
  Ele	
  também	
  toma	
  tempo,	
  dedicação	
  e	
  aprendizado	
  de	
  indivíduos	
  comprometidos	
  como	
  Dr.	
  Burton,	
  que	
  criou	
  alguns	
  tutoriais	
  de	
  como	
  utilizar	
  Corona.	
  E	
  tendo	
  seu	
  próprio	
  espírito	
  empreendedor,	
  ele	
  gastou	
  um	
  tempo	
  valioso	
  em	
  sua	
  ocupada	
  agenda	
  para	
  escrever	
  um	
  livro	
  sobre	
  Corona.Este	
  livro	
  é	
  uma	
  excelente	
  maneira	
  de	
  conhecer	
  nosso	
  Corona	
  SDK	
  e	
  servirá	
  como	
  um	
  guia	
  de	
  como	
  aprender	
  a	
  construir	
  aplicações	
  Corona.	
  Eu	
  sei	
  que	
  você	
  aproveitará	
  este	
  livro	
  tanto	
  quanto	
  gostará	
  de	
  construir	
  aplicaçõs	
  com	
  Corona.Carlos	
  M.	
  IcazaCo-­‐fundador,	
  Ansca	
  Mobile,	
  Inc.
Introdução
Bem	
  vindoBem	
  vindo	
  ao	
  Criando	
  Aplicações	
  Móveis	
  com	
  Corona.	
  Este	
  livro	
  é	
  o	
  resultado	
  de	
  anos	
  de	
  desenvolvimento	
  para	
  dispositivos	
  móveis.	
  No	
  início	
  de	
  2010	
  comecei	
  a	
  buscar	
  uma	
  maneira	
  de	
  desenvolver	
  melhor.	
  A	
  melhor	
  maneira.	
  Buscava	
  uma	
  ferramenta	
  que	
  me	
  permitisse	
  desenvolver	
  mais	
  rapidamente	
  para	
  múltiplas	
  plataformas	
  de	
  dispositivos	
  móveis.	
  Estava	
  cansado	
  e	
  frustrado	
  por	
  ter	
  de	
  reescrever	
  as	
  mesmas	
  aplicações	
  para	
  iPhone,	
  iPad	
  ou	
  Android.	
  Depois	
  de	
  tentar	
  diversas	
  ferramentas	
  e	
  ambientes	
  de	
  desenvolvimento,	
  eu	
  encontrei	
  o	
  Corona	
  SDK	
  da	
  Corona	
  Labs	
  (http://www.coronalabs.com).	
  Enquanto	
  ele	
  ainda	
  estava	
  no	
  início	
  do	
  desenvolvimento,	
  ele	
  mostrava	
  que	
  o	
  time	
  da	
  Corona	
  Labs	
  estava	
  comprometido	
  a	
  construir	
  um	
  conjunto	
  de	
  ferramentas	
  de	
  qualidade	
  e	
  que	
  uma	
  comunidade	
  devotada	
  de	
  desenvolvedores	
  estava	
  rapidamente	
  se	
  formando	
  em	
  volta	
  deste	
  grande	
  SDK	
  (Kit	
  de	
  Desenvolvimento	
  de	
  
Software).	
  Nos	
  dias	
  iniciaisde	
  meu	
  aprendizado	
  sobre	
  Corona,	
  eu	
  me	
  foquei	
  em	
  criar	
  tutoriais	
  (disponíveis	
  no	
  meu	
  website	
  http://www.BurtonsMediaGroup.com/blog).	
  Depois	
  de	
  ensinar	
  Corona	
  a	
  várias	
  turmas	
  de	
  desenvolvimento	
  móvel	
  e	
  com	
  o	
  encorajamento	
  de	
  meus	
  estudantes,	
  eu	
  iniciei	
  o	
  processo	
  de	
  criação	
  do	
  livro	
  que	
  poderia	
  ser	
  usado	
  como	
  um	
  recurso	
  de	
  ensino	
  para	
  o	
  Corona	
  SDK.	
  Espero	
  que	
  você	
  goste	
  de	
  aprender	
  sobre	
  Corona	
  assim	
  como	
  eu!	
  	
  	
  	
  Atenciosamente,Brian	
  G.	
  Burton,	
  Ed.D.
Para	
  quem	
  este	
  livro	
  foi	
  feitoEnquanto	
  meu	
  foco	
  e	
  ímpeto	
  de	
  escrever	
  este	
  livro	
  era	
  que	
  ele	
  fosse	
  usado	
  como	
  um	
  “livro	
  de	
  consulta”,	
  eu	
  também	
  escrevi	
  acreditando	
  que	
  muitas	
  (esperançosamente)	
  pessoas	
  estariam	
  interessadas	
  em	
  aprender	
  mais	
  sobre	
  Corona	
  SDK	
  e	
  desenvolver	
  para	
  múltiplas	
  plataformas	
  ao	
  mesmo	
  tempo.	
  Eu	
  tinha	
  a	
  expectativa	
  de	
  que	
  qualquer	
  um	
  que	
  usasse	
  este	
  livro	
  já	
  tivesse	
  conhecimentos	
  básicos	
  em	
  programação.	
  Não	
  gastei	
  muito	
  tempo	
  nos	
  fundamentos	
  de	
  programação.	
  Existem	
  muitos	
  bons	
  livros	
  de	
  programação	
  e	
  recomendo	
  que	
  você	
  inicie	
  neles	
  e	
  retorne	
  ao	
  desenvolvimento	
  de	
  aplicações	
  quando	
  já	
  tiver	
  dominado	
  o	
  básico.	
  	
  
Como	
  este	
  livro	
  está	
  organizadoEnquanto	
  escrevia	
  este	
  livro,	
  eu	
  mantive	
  os	
  tradicionais	
  semestres	
  de	
  16	
  semanas,	
  assumindo	
  um	
  capítulo	
  por	
  semana.	
  Uma	
  vez	
  que	
  isto	
  não	
  funciona	
  para	
  todo	
  mundo,	
  ele	
  deve	
  ser	
  o	
  bastante	
  para	
  a	
  maioria	
  das	
  pessoas	
  que	
  estão	
  iniciando	
  com	
  desenvolvimento	
  móvel	
  usando	
  Corona	
  SDK.	
  Meu	
  primeiro	
  rascunho	
  terminou	
  com	
  mais	
  de	
  20	
  capítulos.	
  Depois	
  de	
  reorganizar	
  o	
  conteúdo	
  e	
  continuando	
  seu	
  desenvolvimento,	
  nós	
  estávamos	
  agora	
  com	
  16	
  capítulos	
  e	
  um	
  capítulo	
  adicional	
  de	
  grandes	
  recursos	
  e	
  um	
  par	
  de	
  apêndices	
  que	
  foram	
  graciosamente	
  supridos	
  pela	
  Corona	
  Labs	
  sobre	
  a	
  linguagem	
  de	
  script	
  Lua.
Convenções	
  usadas	
  neste	
  livroAtravés	
  deste	
  livro	
  usaremos	
  Courier New	
  para	
  denotar	
  código	
  que	
  deve	
  ser	
  digitado	
  exatamente	
  igual.	
  Quando	
  encontrar	
  exemplos	
  que	
  estão	
  com	
  Courier New, Italics você	
  deverá	
  digitar	
  seus	
  próprios	
  valores.
Usando	
  os	
  exemplos	
  de	
  códigoEste	
  livro	
  foi	
  escrito	
  para	
  ajudar	
  você	
  a	
  desenvolver	
  aplicações	
  e	
  jogos	
  com	
  Corona	
  SDK.	
  Em	
  geral,	
  você	
  pode	
  usar	
  o	
  código	
  neste	
  livro	
  em	
  seus	
  programas	
  e	
  documentação.	
  Você	
  não	
  precisa	
  nos	
  contatar	
  para	
  pedir	
  permissão	
  para	
  reproduzir	
  uma	
  porção	
  signi`icante	
  de	
  código.	
  Você	
  não	
  precisa	
  pedir	
  permissão	
  para	
  escrever	
  uma	
  aplicação	
  que	
  use	
  uma	
  grande	
  quantidade	
  de	
  código.	
  	
  
Agora,	
  por	
  outro	
  lado,	
  se	
  eu	
  ver	
  aplicações	
  que	
  exatamente	
  reproduzem	
  os	
  exemplos	
  deste	
  livro	
  ou	
  tutorial,	
  eu	
  não	
  `icarei	
  feliz.	
  Eu	
  não	
  tenho	
  problemas	
  com	
  pessoas	
  que	
  usem	
  estes	
  exemplos	
  como	
  um	
  ponto	
  inicial,	
  mas	
  vá	
  além	
  disso;	
  seja	
  original!	
  Responder	
  questões	
  citando	
  este	
  livro	
  ou	
  parafrasear	
  trechos	
  não	
  exigem	
  permissão	
  (mas	
  eu	
  apreciaria	
  uma	
  citacão).	
  	
  Eu	
  reservo	
  todos	
  os	
  direitos	
  de	
  venda	
  ou	
  distribuição	
  dos	
  exemplos	
  em	
  qualquer	
  formato	
  fornecido	
  neste	
  livro.	
  Se	
  você	
  não	
  está	
  certo	
  se	
  seu	
  uso	
  cai	
  fora	
  das	
  regras	
  que	
  determinei	
  acima,	
  sinta-­‐se	
  livre	
  para	
  contatar-­‐me	
  através	
  de:	
  DrBurton@BurtonsMediaGroup.com	
  
Porque	
  não	
  usei	
  ______	
  para	
  ______Existem	
  muitos	
  bons	
  produtos	
  disponíveis	
  que	
  podem	
  ajudar	
  os	
  camaradas	
  programadores	
  a	
  tornar	
  seu	
  trabalho	
  muito	
  mais	
  produtivo	
  (veja	
  o	
  capítulo	
  17	
  para	
  uma	
  lista	
  curta).	
  Como	
  este	
  livro	
  é	
  direcionado	
  aos	
  estudantes	
  universitários	
  e	
  pessoas	
  que	
  iniciaram	
  recentemente,	
  eu	
  tentei	
  não	
  usar	
  ferramentas	
  externas.	
  Se	
  alguma	
  ferramenta	
  fosse	
  necessária	
  para	
  que	
  algum	
  projeto	
  fosse	
  concluído,	
  eu	
  tentaria	
  utilizar	
  somente	
  as	
  gratuitas	
  ou	
  de	
  baixo	
  custo.	
  Se	
  eu	
  não	
  usei	
  as	
  suas	
  favoritas,	
  eu	
  posso	
  1)	
  não	
  saber	
  da	
  existência	
  da	
  mesma;	
  2)	
  não	
  consegui	
  obter	
  uma	
  licença	
  de	
  testes	
  do	
  produto;	
  ou	
  3)	
  não	
  gosto	
  da	
  ferramenta	
  (provavelmente	
  a	
  primeira	
  ou	
  segunda	
  opção).	
  Se	
  você	
  conhece	
  uma	
  grande	
  ferramenta	
  que	
  pode	
  economizar	
  muito	
  tempo	
  e	
  dinheiro	
  aos	
  desenvolvedores,	
  por	
  favor	
  compartilhe-­‐a	
  com	
  o	
  mundo	
  no	
  local	
  de	
  discussão	
  no	
  site	
  deste	
  livro:	
  http://www.BurtonsMediaGroup.com/books.
ApêndicesApêndices	
  A	
  e	
  B	
  contendo	
  informações	
  sobre	
  a	
  linguagem	
  de	
  programação	
  Lua	
  foram	
  fornecidos	
  pela	
  Corona	
  Labs	
  e	
  estão	
  incluídos	
  com	
  permissão.	
  Enquanto	
  efetuamos	
  algumas	
  edições	
  no	
  conteúdo	
  para	
  melhorar	
  a	
  legibilidade,	
  o	
  conteúdo	
  original	
  e	
  os	
  exemplos	
  ainda	
  permanecem.
Como	
  entrar	
  em	
  ContatoPor	
  favor	
  enderece	
  seus	
  comentários	
  ou	
  questionamentos	
  para	
  o	
  site	
  do	
  livro:	
  http://www.BurtonsMediaGroup.com/books	
  ou	
  email	
  DrBurton@BurtonsMediaGroup.com.	
  Suporte	
  em	
  português	
  pode	
  ser	
  obtido	
  com	
  o	
  tradutor,	
  Luiz	
  Fernando,	
  no	
  e-­‐mail	
  me@luiztools.com
Porque	
  Escolhi	
  Auto-­‐PublicarA	
  decisão	
  de	
  auto-­‐publicar	
  este	
  livro	
  foi	
  alcançada	
  depois	
  de	
  muita	
  consideração.	
  Enquanto	
  que	
  existem	
  numerosas	
  editoras	
  interessadas	
  (tanto	
  acadêmicas	
  quanto	
  técnicas),	
  eu	
  decidi	
  publicar	
  ao	
  menos	
  a	
  primeira	
  edição	
  sem	
  o	
  uso	
  de	
  editoras	
  tradicionais.	
  Existem	
  muitas	
  razões	
  pelas	
  quais	
  eu	
  tomei	
  esta	
  decisão,	
  mesmo	
  embora	
  ela	
  me	
  leve	
  a	
  menos	
  vendas.	
  	
  Primeiro	
  estão	
  minhas	
  preocupações	
  com	
  o	
  preço	
  `inal	
  do	
  livro.	
  Eu	
  `ico	
  doente	
  de	
  ver	
  livros	
  impressos	
  custando	
  U$75	
  ou	
  mesmo	
  mais	
  de	
  U$100.	
  Eu	
  sinto	
  que	
  este	
  preço	
  é	
  errado	
  ecolocam	
  uma	
  barreira	
  anti-­‐estudantes.	
  	
  Enquanto	
  editoras	
  diminuíram	
  ligeiramente	
  o	
  preço	
  com	
  o	
  advento	
  de	
  eBooks	
  e	
  eTextbooks,	
  esta	
  queda	
  não	
  foi	
  o	
  bastante	
  em	
  minha	
  opinião.	
  Minha	
  segunda	
  preocupação	
  foi	
  o	
  quão	
  rapidamente	
  os	
  ambientes	
  de	
  desenvolvimento	
  mudam.	
  Pessoalmente	
  odeio	
  ter	
  de	
  compar	
  um	
  novo	
  livro	
  a	
  cada	
  nova	
  versão	
  de	
  software.	
  Eu	
  tenho	
  pilhas	
  de	
  livros	
  que	
  estão	
  completamente	
  sem	
  uso	
  agora.	
  Eu	
  decidi	
  publicar	
  esta	
  primeira	
  vez	
  como	
  um	
  eBook,	
  que	
  permite-­‐me	
  atualizar	
  e	
  fornecer	
  ao	
  leitor,	
  mais	
  rapidamente.	
  Eu	
  fornecerei	
  as	
  atualizações	
  menores	
  entre	
  as	
  edições	
  do	
  eBook	
  para	
  todos	
  que	
  adquirirem	
  o	
  eBook	
  através	
  do	
  meu	
  website.Como	
  está	
  sendo	
  dito,	
  se	
  você	
  recebeu	
  uma	
  cópia	
  deste	
  eBook	
  através	
  de	
  torrent	
  ou	
  de	
  um	
  amigo,	
  por	
  favor	
  adquira	
  sua	
  própria	
  cópia	
  através	
  de	
  meu	
  website.	
  Isto	
  lhe	
  fornecerá	
  acesso	
  à	
  versão	
  mais	
  recente	
  do	
  eBook	
  e	
  irá	
  enconrajar-­‐me	
  a	
  continuar	
  com	
  as	
  atualizações.	
  Ainda	
  que	
  eu	
  esteja	
  fazendo	
  isto	
  para	
  ajudar	
  meus	
  estudantes,	
  eu	
  tenho	
  contas	
  para	
  pagar.Por	
  outro	
  lado,	
  ao	
  auto-­‐publicar	
  meu	
  livro	
  eu	
  NÃO	
  tenho	
  um	
  time	
  de	
  pessoas	
  para	
  veri`icar	
  tudo	
  neste	
  livro.	
  Eu	
  estou	
  certo	
  de	
  que	
  alguns	
  erros	
  de	
  digitação	
  foram	
  colocados	
  por	
  gremlins	
  durante	
  a	
  noite.	
  Sei	
  que	
  eu	
  tenho	
  dislexia.	
  Eu	
  contrataria	
  uma	
  pessoa	
  para	
  veri`icar	
  a	
  versão	
  `inal	
  do	
  livro,	
  mas	
  tendo	
  lido	
  muitos	
  livros	
  que	
  foram	
  publicados	
  por	
  grandes	
  companhias	
  e	
  encontrado	
  erros	
  em	
  seus	
  livros,	
  eu	
  estou	
  certo	
  de	
  que	
  erros	
  existem	
  neste	
  também.	
  Por	
  favor,	
  deixe-­‐me	
  sabendo	
  de	
  todos	
  os	
  erros	
  que	
  encontrar.	
  Uma	
  errata	
  pode	
  ser	
  encontrada	
  no	
  site	
  do	
  livro:	
  http://www.burtonsmediagroup.com/books	
  
Capítulo	
  1
Olá	
  Mundo:	
  Instalando	
  e	
  Indo	
  em	
  Frente!
Você	
  teve	
  uma	
  grande	
  idéia	
  de	
  jogo	
  ou	
  aplicação	
  móvel.	
  Maravilha!	
  Agora,	
  como	
  você	
  cria	
  o	
  mesmo	
  e	
  distribui-­‐o	
  para	
  iPhone/Droid/iPad/Nook,	
  (ou	
  qualquer	
  dispositivo	
  que	
  você	
  escolha)?	
  Existem	
  muitos	
  dispositivos	
  para	
  escolher.	
  Qual	
  plataforma	
  é	
  a	
  melhor	
  para	
  minha	
  aplicação?	
  	
  Com	
  tantas	
  plataformas	
  para	
  escolher	
  (Android,	
  iOS,	
  RIM,	
  Windows,	
  nomeando	
  algumas	
  poucas),	
  a	
  escolha	
  da	
  plataforma	
  para	
  desenvolver	
  pode	
  ser	
  muito	
  di`ícil.	
  Cada	
  plataforma	
  usa	
  uma	
  linguagem	
  diferente,	
  tem	
  uma	
  API	
  diferente	
  (Interface	
  de	
  Programação	
  de	
  Aplicações)	
  e	
  requisitos.	
  Devemos	
  nos	
  prender	
  a	
  uma	
  plataforma	
  de	
  desenvolvimento?	
  Devemos	
  escolher	
  somente	
  uma?Felizmente	
  com	
  o	
  advento	
  de	
  ferramentas	
  como	
  Corona	
  da	
  Corona	
  Labs,	
  agora	
  é	
  possível	
  desenvolver	
  para	
  múltiplas	
  plataformas	
  ao	
  mesmo	
  tempo.	
  Porque	
  escrever	
  uma	
  vez	
  e	
  publicar	
  para	
  dispositivos	
  diferentes	
  é	
  a	
  melhor	
  solução	
  no	
  mundo	
  de	
  desenvolvimento	
  móvel.	
  	
  Corona	
  da	
  Corona	
  Labs	
  permite	
  que	
  os	
  camaradas	
  desenvolvedores	
  publiquem	
  para	
  dispositivos	
  Android	
  e	
  iOS	
  (Apple),	
  tanto	
  smartphones	
  quanto	
  tablets.	
  Este	
  livro	
  foi	
  escrito	
  para	
  ajudar	
  estudantes	
  de	
  todo	
  lugar	
  a	
  obterem	
  as	
  habilidades	
  necessárias	
  para	
  transformarem	
  sua	
  idéia	
  em	
  uma	
  aplicação	
  usando	
  Corona	
  SDK.
O	
  que	
  este	
  livro	
  não	
  éEnquanto	
  que	
  este	
  livro	
  é	
  designado	
  para	
  ensinar	
  o	
  básico	
  de	
  desenvolvimento	
  de	
  aplicações	
  móveis,	
  ele	
  não	
  é	
  designado	
  para	
  ensinar	
  fundamentos	
  de	
  programação.	
  Estou	
  presumindo	
  que	
  você	
  já	
  sabe	
  o	
  básico	
  de	
  programação	
  de	
  computadores.	
  Se	
  você	
  não	
  sabe	
  como	
  usar	
  um	
  bloco	
  if/else,	
  um	
  loop	
  ou	
  uma	
  função,	
  você	
  provavelmente	
  não	
  está	
  preparado	
  para	
  este	
  livro.	
  	
  Enquanto	
  eu	
  `iz	
  todas	
  as	
  tentativas	
  de	
  cobrir	
  o	
  básico	
  que	
  a	
  maioria	
  dos	
  estudantes	
  querem	
  aprender	
  durante	
  o	
  primeiro	
  semestre	
  de	
  um	
  curso	
  de	
  desenvolvimento	
  móvel,	
  devido	
  a	
  problemas	
  com	
  tempo	
  e	
  espaço,	
  somente	
  os	
  mais	
  importantes	
  puderam	
  ser	
  incluídos.	
  Existe	
  um	
  segundo	
  volume	
  em	
  desenvolvimento	
  que	
  cobrirá	
  aspectos	
  mais	
  avançados	
  e	
  um	
  volume	
  voltado	
  exclusivamente	
  a	
  projetos	
  de	
  jogos	
  com	
  Corona.
Iniciando
Corona:	
  Alguma	
  HistóriaCorona	
  Labs	
  foi	
  criada	
  em	
  2008	
  como	
  uma	
  companhia	
  `inanciada	
  por	
  investidores	
  de	
  risco	
  em	
  Palo	
  Alto,	
  Califórnia.	
  Antes	
  de	
  Corona,	
  o	
  time	
  da	
  Corona	
  Labs	
  foi	
  responsável	
  por	
  criar	
  muitas	
  ferramentas	
  padrões	
  da	
  indústria	
  que	
  tenho	
  certeza	
  de	
  que	
  você	
  conhece.	
  	
  No	
  tempo	
  que	
  eu	
  estive	
  desenvolvendo	
  aplicações	
  com	
  Corona,	
  eu	
  encontrei	
  na	
  Corona	
  Labs	
  um	
  dos	
  negócios	
  mais	
  amigáveis	
  e	
  úteis	
  que	
  eu	
  tive	
  o	
  prazer	
  de	
  trabalhar.	
  Além	
  disso,	
  a	
  comunidade	
  é	
  muito	
  amigável	
  e	
  solícita.	
  Se	
  você	
  decidir	
  juntar-­‐se	
  à	
  comunidade	
  Corona,	
  esteja	
  certo	
  de	
  continuar	
  com	
  este	
  grande	
  espírito	
  de	
  solidariedade!
SoWware:	
  Corona	
  Não	
  é	
  surpresa	
  de	
  que	
  você	
  precisará	
  do	
  Corona	
  SDK	
  para	
  começar.	
  Para	
  aprender,	
  eu	
  recomendo	
  baixar	
  a	
  versão	
  trial	
  (de	
  teste)	
  no	
  site	
  da	
  Corona	
  Labs	
  http://www.coronalabs.com/.	
  Clique	
  no	
  botão	
  de	
  download	
  e	
  registre-­‐se	
  (independente	
  se	
  é	
  um	
  usuário	
  pagante	
  ou	
  gratuito).	
  Se	
  você	
  for	
  um	
  estudante	
  ou	
  universitário,	
  você	
  pode	
  obter	
  um	
  desconto	
  acessando	
  http://developer.coronalabs.com/forms/educators-­‐and-­‐students.
SoWware:	
  AndroidPara	
  começar	
  o	
  desenvolvimento	
  de	
  aplicações	
  para	
  Android	
  com	
  Corona,	
  você	
  não	
  precisará	
  de	
  nenhum	
  software	
  adicional	
  Android.	
  Entretanto,	
  você	
  precisará	
  do	
  Java	
  SDK	
  (tipicamente	
  conhecido	
  como	
  JDK)	
  para	
  estar	
  apto	
  a	
  compilar	
  em	
  ambiente	
  MicrosoftWindows.	
  Vá	
  em	
  http://www.oracle.com/technetwork/java/javase/downloads/index.html	
  e	
  baixe	
  a	
  Java	
  Platform	
  Standard	
  Edition	
  clicando	
  no	
  botão	
  “Download	
  JDK”.	
  Aviso:	
  Você	
  somente	
  precisa	
  baixar	
  o	
  download	
  do	
  JDK	
  se	
  você	
  está	
  em	
  um	
  sistema	
  Microsoft	
  Windows.	
  Se	
  você	
  está	
  usando	
  um	
  Macintosh	
  com	
  OS	
  X,	
  ele	
  já	
  está	
  instalado.
Exemplos	
  e	
  ImagensUm	
  último	
  download	
  deve	
  ser	
  feito:	
  os	
  exemplos	
  de	
  códigos,	
  imagens	
  e	
  outras	
  ferramentas	
  que	
  você	
  pode	
  precisar	
  com	
  os	
  projetos	
  estão	
  listadas	
  neste	
  livro.	
  Eles	
  estão	
  todos	
  disponíveis	
  em	
  http://www.BurtonsMediaGroup.com/books.	
  	
  
SoWware:	
  iOSPara	
  desenvolvimento	
  direto	
  no	
  simulador,	
  você	
  não	
  tem	
  que	
  baixar	
  nada	
  da	
  Apple.	
  Entretanto,	
  quando	
  for	
  hora	
  de	
  testar	
  em	
  um	
  dispositivo	
  ou	
  preparar	
  a	
  aplicação	
  para	
  o	
  iTunes,	
  você	
  necessitará	
  do	
  Apple	
  iOS	
  SDK.	
  Se	
  você	
  já	
  é	
  um	
  desenvolvedor	
  Apple,	
  você	
  já	
  está	
  apto	
  a	
  realizar	
  a	
  instalação.	
  Se	
  você	
  não	
  é	
  um	
  desenvolvedor	
  Apple	
  atualmente	
  (U$99/ano	
  para	
  uma	
  assinatura	
  padrão	
  de	
  desenvolvedor),	
  você	
  pode	
  se	
  registrar	
  como	
  desenvolvedor	
  gratuito	
  e	
  baixar	
  o	
  Xcode	
  através	
  da	
  Apple	
  App	
  Store	
  por	
  U$4.99).
Hardware	
  para	
  Desenvolver:	
  Corona
Corona	
  não	
  demanda	
  muito	
  do	
  seu	
  computador	
  para	
  desenvolvimento.	
  Enquanto	
  você	
  estiver	
  usando	
  ao	
  menos	
  um	
  OSX	
  10.6	
  ou	
  superior	
  em	
  um	
  Mac,	
  ou	
  Windows	
  XP	
  com	
  CPU	
  de	
  1GHz	
  em	
  um	
  PC,	
  você	
  estará	
  bem.Se	
  você	
  está	
  planejando	
  desenvolver	
  aplicações	
  para	
  iPhone,	
  iPod	
  Touch	
  e/ou	
  iPad,	
  você	
  precisará	
  de	
  um	
  Mac.	
  Este	
  é	
  um	
  requisito	
  da	
  Apple.	
  Para	
  manter	
  todo	
  mundo	
  de	
  bom	
  humor,	
  Corona	
  somente	
  publicará	
  para	
  um	
  dispositivo	
  iOS	
  se	
  você	
  estiver	
  usando	
  um	
  Mac.	
  Você	
  também	
  pode	
  criar	
  aplicações	
  Android	
  utilizando	
  um	
  Mac.Se	
  você	
  tem	
  somente	
  um	
  sistema	
  Windows,	
  você	
  pode	
  desenvolver	
  e	
  publicar	
  aplicações	
  Android.	
  Você	
  também	
  está	
  apto	
  a	
  desenvolver	
  para	
  dispositivos	
  iOS,	
  entretanto	
  não	
  poderá	
  publicar	
  e	
  vender	
  seu	
  trabalho	
  para	
  iOS	
  fora	
  de	
  um	
  Mac.	
  Eu	
  uso	
  um	
  MacBook	
  e	
  um	
  PC,	
  regularmente	
  variando	
  entre	
  ambos	
  durante	
  o	
  desenvolvimento	
  de	
  aplicações.
Matriz	
  de	
  Hardware	
  Necessário:
Hardware Android	
  OSAndroid	
  OS 	
   	
   Apple	
  iOS	
   	
   Apple	
  iOSHardware Desenvolver Instalar Desenvolver InstalarMacintosh X X X XWindows	
  PC X X X
Hardware	
  para	
  Desenvolver:	
  DisposiYvos	
  de	
  TesteSe	
  você	
  pretende	
  desenvolver	
  e	
  vender	
  aplicações	
  para	
  dispositivos	
  móveis	
  você	
  deve	
  ter	
  um	
  dispositivo	
  móvel	
  para	
  testar	
  suas	
  criações.	
  Eu	
  estive	
  em	
  projetos	
  onde	
  era	
  necessário	
  ter	
  um	
  hardware	
  que	
  eu	
  não	
  tinha.	
  Usar	
  somente	
  o	
  simulador	
  cobrirá	
  75%	
  do	
  que	
  pode	
  aconteçar	
  com	
  sua	
  aplicação,	
  mas	
  não	
  lhe	
  permitirá	
  presenciar	
  todos	
  os	
  problemas	
  em	
  potencial.	
  	
  Alguns	
  dos	
  projetos	
  que	
  citei	
  anteriormente	
  funcionavam	
  perfeitamente	
  no	
  simulador,	
  mas	
  “travavam”	
  no	
  dispositivo	
  móvel	
  e	
  eu	
  era	
  rejeitado	
  pela	
  Apple.	
  A	
  experiência	
  era	
  mais	
  do	
  que	
  apenas	
  frustrante	
  e	
  ensinou-­‐me	
  uma	
  valiosa	
  lição:	
  se	
  você	
  está	
  desenvolvendo	
  para	
  uma	
  plataforma,	
  tenha	
  dispositivos	
  de	
  teste!
AndroidCorona	
  somente	
  compila	
  para	
  Android	
  OS	
  2.2	
  ou	
  superiores.	
  Qualquer	
  dispositivo	
  que	
  você	
  planeje	
  utilizar	
  deve	
  ter	
  um	
  processador	
  ARM	
  V7.	
  Existe	
  uma	
  in`inidade	
  de	
  dispositivos	
  que	
  preenchem	
  estes	
  requisitos,	
  então	
  você	
  não	
  terá	
  problema	
  em	
  encontrar	
  um	
  para	
  executar	
  seus	
  testes.
iOSPara	
  desenvolvimento	
  no	
  iOS,	
  você	
  precisará	
  de	
  uma	
  licença	
  de	
  desenvolvedor	
  e	
  também	
  de	
  um	
  iPhone,	
  iPod	
  Touch,	
  ou	
  iPad.	
  Obviamente,	
  tendo	
  um	
  telefone	
  antigo	
  ou	
  iPad	
  é	
  uma	
  boa	
  idéia	
  para	
  testar	
  FPS	
  (Frames	
  por	
  Segundo)	
  se	
  sua	
  aplicação	
  usa	
  grá`icos	
  intensamente.	
  É	
  recomendado	
  que	
  você	
  use	
  a	
  versão	
  mais	
  recente	
  do	
  iOS	
  em	
  seus	
  dispositivos.	
  Para	
  estar	
  
apto	
  a	
  instalar	
  sua	
  aplicação	
  em	
  um	
  dispositivo	
  iOS,	
  você	
  precisará	
  de	
  um	
  Mac	
  e	
  uma	
  conta	
  de	
  desenvolvedor	
  Standard,	
  Enterprise,	
  ou	
  University	
  da	
  Apple.	
  	
  
Considerações	
  de	
  PublicaçãoEu	
  estou	
  certo	
  de	
  que	
  você	
  já	
  está	
  imaginando	
  as	
  primeiras	
  vendas	
  de	
  sua	
  aplicação.	
  Mas	
  antes	
  que	
  você	
  possa	
  vendê-­‐la,	
  você	
  precisará	
  decidir	
  aonde	
  você	
  irá	
  publicá-­‐la.	
  Existem	
  muitas	
  considerações	
  especí`icas	
  de	
  cada	
  distribuidor	
  que	
  você	
  precisa	
  ter	
  em	
  mente.	
  	
  
Android	
  (Google)O	
  mercado	
  para	
  Android	
  é	
  muito	
  diferente	
  da	
  loja	
  do	
  iTunes	
  da	
  Apple.	
  No	
  mercado	
  Android	
  você	
  tem	
  inúmeros	
  distribuidores	
  diferentes	
  disponíveis	
  para	
  vender	
  suas	
  aplicações,	
  incluindo	
  o	
  Android	
  Market	
  do	
  Google	
  (http://market.android.com),	
  Amazon,	
  Barnes	
  and	
  Noble,	
  entre	
  outros.	
  Você	
  precisará	
  criar	
  uma	
  conta	
  com	
  cada	
  distribuidor	
  que	
  você	
  deseja	
  utilizar	
  como	
  canal	
  de	
  vendas.Por	
  U$25	
  você	
  pode	
  criar	
  uma	
  conta	
  de	
  desenvolvedor	
  para	
  Android	
  com	
  o	
  Google.	
  Você	
  NÃO	
  tem	
  que	
  se	
  cadastrar	
  em	
  nada	
  até	
  que	
  esteja	
  pronto	
  para	
  começar	
  a	
  vender	
  suas	
  aplicações.	
  Para	
  criar	
  sua	
  conta	
  visite	
  http://developer.android.com/index.html.Uma	
  vez	
  que	
  você	
  tenha	
  sua	
  conta	
  con`igurada	
  você	
  precisará	
  decidir	
  se	
  sua	
  aplicação	
  será	
  gratuita	
  ou	
  paga.	
  Além	
  disso,	
  a	
  maioria	
  das	
  lojas	
  de	
  aplicações	
  lhe	
  cobrará	
  algo	
  em	
  torno	
  de	
  30%	
  sobre	
  as	
  vendas	
  por	
  estar	
  lhe	
  oferencendo	
  os	
  serviços.	
  Em	
  outras	
  palavras,	
  se	
  você	
  cobra	
  99	
  centavos	
  por	
  uma	
  aplicação,	
  você	
  receberá	
  69.3	
  centavos	
  por	
  cada	
  venda.
iOS	
  (Apple)Uma	
  das	
  maiores	
  vantagens	
  do	
  mercado	
  para	
  iOS	
  éque	
  há	
  somente	
  uma	
  loja	
  de	
  aplicativos.	
  Desenvolver	
  aplicações	
  para	
  o	
  iOS	
  lhe	
  custará	
  U$99	
  por	
  ano	
  para	
  uma	
  licença	
  padrão	
  de	
  desenvolvedor	
  Apple.	
  Existem	
  licenças	
  empresarias	
  que	
  somente	
  são	
  necessárias	
  caso	
  você	
  desenvolva	
  em	
  uma	
  grande	
  empresa.	
  Para	
  as	
  `inanças	
  de	
  um	
  estudante,	
  a	
  taxa	
  de	
  U$99	
  pode	
  ser	
  muito	
  cara,	
  então	
  eu	
  recomendo	
  esperar	
  tanto	
  quanto	
  possível	
  antes	
  de	
  adquirir	
  a	
  licença	
  que	
  deve	
  ser	
  renovada	
  anualmente.	
  Você	
  pode	
  saber	
  mais	
  sobre	
  licenças	
  de	
  desenvolvimento	
  e	
  sobre	
  o	
  iOS	
  SDK	
  em:	
  http://developer.apple.com/programs/register/.	
  Apple	
  também	
  lhe	
  cobrará	
  30%	
  de	
  comissão	
  sobre	
  as	
  suas	
  vendas.
Programando	
  no	
  Corona:	
  LuaNeste	
  texto,	
  a	
  linguagem	
  que	
  você	
  usará	
  em	
  suas	
  experiências	
  com	
  programação	
  é	
  Lua.	
  Lua	
  é	
  uma	
  linguagem	
  de	
  script	
  que	
  foi	
  desenvolvida	
  no	
  início	
  da	
  década	
  de	
  90.	
  Ela	
  é	
  gratuita,	
  distribuída	
  sobre	
  a	
  licença	
  MIT	
  e	
  largamente	
  utilizada	
  para	
  o	
  nível	
  de	
  lógica	
  de	
  grandes	
  jogos	
  e	
  encaixa-­‐se	
  naturalmente	
  no	
  desenvolvimento	
  mobile	
  pelo	
  tamanho	
  diminuto	
  do	
  seu	
  interpretador.	
  Corona	
  Labs	
  foi	
  boazinha	
  o	
  bastante	
  para	
  fornecer	
  dois	
  apêndices	
  sobre	
  Lua	
  (Apêndices	
  A	
  &	
  B)	
  que	
  estão	
  incluídos	
  neste	
  livro.	
  Se	
  você	
  quer	
  aprender	
  mais	
  sobre	
  Lua,	
  visite	
  o	
  site	
  da	
  linguagem	
  http://www.lua.org.	
  A	
  primeira	
  edição	
  de	
  Programando	
  em	
  Lua	
  
está	
  disponível	
  online	
  em	
  http://www.lua.org/pil.	
  Se	
  você	
  já	
  programou	
  em	
  qualquer	
  outra	
  linguagem	
  moderna,	
  você	
  achará	
  fácil	
  aprender	
  Lua	
  enquanto	
  nós	
  avançaremos	
  nas	
  lições.	
  	
  
Programando	
  no	
  Corona:	
  EditoresA	
  escolha	
  de	
  um	
  editor	
  será	
  sempre	
  uma	
  decisão	
  pessoal.	
  Corona	
  não	
  é	
  impactado	
  por	
  nenhum	
  editor	
  especí`ico,	
  então	
  você	
  deve	
  escolher	
  um	
  no	
  qual	
  se	
  sinta	
  confortável.	
  Eu	
  recomendo	
  um	
  que	
  permita	
  integração	
  com	
  Lua	
  para	
  tornar	
  sua	
  edição	
  mais	
  fácil.	
  	
  Alguns	
  dos	
  mais	
  populares	
  editores	
  para	
  uso	
  com	
  Corona	
  incluem	
  (mas	
  não	
  estão	
  limitados)	
  BBEdit,	
  Eclipse,	
  Notepad++,	
  TextMate,	
  TextWrangler,	
  e	
  Xcode.	
  É	
  claro	
  qu	
  você	
  pode	
  ignorar	
  todos	
  esses	
  e	
  usar	
  o	
  bloco	
  de	
  notas	
  ou	
  textedit	
  se	
  você	
  desejar.	
  
BBEdit	
  (Mac)	
  por	
  Bare	
  Bones	
  Software,	
  U$99.99.	
  Eu	
  tenho	
  usado	
  BBEdit	
  no	
  meu	
  Mac	
  há	
  algum	
  tempo	
  e	
  é	
  meu	
  editor	
  favorito	
  quando	
  estou	
  trabalhando	
  no	
  Mac.	
  BBEdit	
  tem	
  con`igurações	
  internas	
  (incluindo	
  Lua),	
  que	
  permitem	
  facilmente	
  a	
  você	
  de`inir	
  a	
  linguagem	
  na	
  qual	
  você	
  está	
  desenvolvendo.	
  http://www.barebones.com
Corona	
  Project	
  Manager	
  (Mac/Win)	
  por	
  J.A.	
  Whye,	
  U$75.Corona	
  Project	
  Manager	
  tem	
  um	
  editor	
  interno	
  e	
  juntamente	
  com	
  sua	
  grande	
  habilidade	
  de	
  simpli`icar	
  o	
  gerenciamento	
  de	
  um	
  projeto	
  Corona,	
  o	
  custo	
  do	
  CPM	
  é	
  baixo.	
  Veja	
  o	
  Capítulo	
  17	
  para	
  obter	
  um	
  cupom	
  e	
  economizar	
  30%	
  no	
  CPM.	
  http://www.coronaprojectmanager.com
Eclipse	
  (Mac/Win)	
  Código	
  aberto,	
  $0.	
  Eclipse	
  é	
  o	
  editor	
  que	
  uso	
  quando	
  estou	
  trabalhando	
  no	
  meu	
  PC.	
  Eclipse	
  tem	
  uma	
  grande	
  comunidade	
  de	
  suporte.	
  Embora	
  Eclipse	
  tenha	
  sido	
  originalmente	
  desenvolvido	
  como	
  uma	
  IDE	
  Java	
  (Ambiente	
  de	
  Desenvolvimento	
  Integrado)	
  ele	
  é	
  atualmente	
  uma	
  base	
  para	
  muitos	
  editores	
  no	
  mercado.	
  Um	
  plugin	
  para	
  Lua/Corona	
  está	
  disponível.	
  http://eclipse.org	
  
Notepad++	
  (Win)	
  Código	
  aberto,	
  $0Um	
  editor	
  de	
  linguagens	
  popular	
  e	
  de	
  código	
  aberto	
  para	
  ambientes	
  PC.	
  http://notepad-­‐plus-­‐plus.org/
TextMate	
  (Mac)	
  por	
  Micromates,	
  €39	
  (cerca	
  de	
  U$57).	
  	
  Textmate	
  é	
  muito	
  popular	
  na	
  comunidade	
  Corona	
  com	
  um	
  plugin	
  disponível	
  no	
  site	
  da	
  Corona	
  Labs.	
  http://macromates.com
TextWrangler	
  (Mac)	
  por	
  Bare	
  Bones	
  Software,	
  $0.	
  TextWrangler	
  tem	
  a	
  vantagem	
  de	
  ser	
  um	
  editor	
  gratuito	
  para	
  o	
  Mac.	
  Embora	
  ele	
  não	
  tenha	
  todos	
  os	
  recursos	
  do	
  BBEdit,	
  ele	
  fará	
  o	
  trabalho	
  necessário	
  e	
  oferece	
  um	
  suporte	
  integrado	
  ao	
  Lua.	
  	
  http://www.barebones.com
Xcode	
  (Mac)	
  por	
  Apple,	
  $0*.
Xcode	
  é	
  uma	
  parte	
  integrante	
  do	
  iOS	
  SDK.	
  	
  Se	
  você	
  está	
  acostumado	
  a	
  desenvolver	
  utilizando	
  Objective-­‐C,	
  Xcode	
  é	
  a	
  escolha	
  natural.	
  Enquanto	
  Xcode	
  está	
  incluído	
  no	
  iOS	
  SDK,	
  ele	
  somente	
  é	
  gratuito	
  se	
  você	
  já	
  possui	
  uma	
  conta	
  de	
  desenvolvedor	
  na	
  Apple.	
  Se	
  você	
  possuir	
  somente	
  uma	
  conta	
  gratuita,	
  o	
  iOS	
  SDK	
  custa	
  U$4.99	
  (incluindo	
  o	
  Xcode).
Configurando	
  CoronaA	
  instalação	
  do	
  Corona	
  SDK	
  é	
  algo	
  bem	
  direto.	
  Somente	
  clique	
  no	
  botão	
  de	
  download	
  em	
  http://www.coronalabs.com,	
  registre-­‐se,	
  selecione	
  sua	
  plataforma	
  (Mac	
  ou	
  Windows)	
  e	
  siga	
  as	
  orientações	
  abaixo	
  baseado	
  em	
  seu	
  sistema	
  operacional.
Download do Corona SDK
MacintoshDepois	
  que	
  você	
  executar	
  o	
  arquivo	
  baixado	
  e	
  aceitar	
  a	
  licença	
  do	
  software,	
  arraste	
  a	
  pasta	
  do	
  Corona	
  SDK	
  para	
  a	
  pasta	
  Aplicações.
Instalando Corona SDK em um MacintoshIsto	
  irá	
  copiar	
  todos	
  os	
  arquivos	
  do	
  Corona	
  SDK	
  para	
  sua	
  pasta	
  de	
  aplicações.	
  Quando	
  abrir	
  a	
  pasta	
  do	
  Corona	
  SDK,	
  você	
  encontrará	
  amostras	
  de	
  código,	
  ferramentas,	
  uma	
  biblioteca	
  
de	
  recursos	
  bem	
  como	
  o	
  Terminal	
  e	
  o	
  Simulator	
  (as	
  ferramentas	
  primárias	
  de	
  desenvolvimento	
  que	
  utilizaremos).
WindowsCorona	
  SDK	
  para	
  Windows	
  possui	
  baixos	
  requisitos	
  de	
  hardware:	
  
• Sistema	
  operacional	
  Windows	
  7,	
  Vista,	
  ou	
  XP
• Processador	
  de	
  1	
  GHZ	
  (recomendado)
• 38	
  MB	
  de	
  espaço	
  em	
  disco	
  (mínimo)
• 1	
  GB	
  de	
  memória	
  RAM	
  (recomendado)
• Sistema	
  de	
  grá`icos	
  OpenGL	
  1.3	
  ou	
  superior	
  Em	
  todas	
  as	
  instalações	
  que	
  eu	
  `iz	
  deCorona,	
  o	
  único	
  problema	
  que	
  eu	
  tive	
  foi	
  quando	
  meu	
  sistema	
  não	
  possuía	
  OpenGL	
  1.3	
  ou	
  superior	
  instalado.	
  Isto	
  foi	
  facilmente	
  corrigido	
  baixando	
  drivers	
  de	
  vídeo	
  atualizados	
  para	
  meu	
  sistema.	
  Corona	
  SDK	
  executa	
  com	
  versões	
  antigas	
  de	
  OpenGL,	
  porém	
  com	
  baixa	
  performance.	
  Você	
  deve	
  atualizar	
  seus	
  drivers	
  de	
  vídeo	
  o	
  quanto	
  antes	
  para	
  corrigir	
  o	
  problema	
  se	
  ele	
  existir.	
  Mais	
  informações	
  sobre	
  OpenGL	
  podem	
  ser	
  encontradas	
  em	
  http://www.opengl.org.Se	
  você	
  ainda	
  não	
  baixou	
  o	
  Java	
  JDK	
  (Kit	
  para	
  Desenvolvedores	
  Java),	
  você	
  deve	
  fazê-­‐lo	
  agora.	
  Vá	
  em	
  http://www.oracle.com/technetwork/java/javase/downloads/index.html	
  e	
  baixe	
  o	
  Java	
  Platform	
  Standard	
  Edition	
  clicando	
  no	
  botão	
  “Download	
  JDK”.	
  Na	
  próxima	
  página,	
  selecione	
  “Windows	
  x86”	
  na	
  lista	
  de	
  downloads	
  disponíveis.	
  	
  O	
  JDK	
  é	
  obrigatório	
  para	
  compilar	
  aplicações	
  para	
  dispositivos	
  em	
  sistemas	
  Microsoft	
  Windows.	
  Este	
  é	
  um	
  download	
  gratuito	
  no	
  site	
  da	
  Oracle.	
  Depois	
  qeu	
  você	
  tiver	
  baixado	
  o	
  instalador,	
  siga	
  os	
  procedimentos	
  normais	
  para	
  instalar	
  o	
  JDK	
  no	
  seu	
  sistema.
Programando	
  no	
  Corona:	
  Olá	
  Mundo	
  (V1.0)A	
  primeira	
  vez	
  que	
  você	
  executar	
  o	
  Corona	
  Terminal	
  ou	
  Simulator	
  ele	
  pedirá	
  que	
  você	
  se	
  autentique	
  com	
  as	
  informações	
  de	
  registro	
  que	
  você	
  usou	
  no	
  site	
  da	
  Corona	
  Labs.	
  Complete	
  estas	
  informações	
  uma	
  única	
  vez	
  e	
  você	
  estará	
  preparado	
  para	
  continuar.
Registro	
  do	
  Desenvolvedor	
  Corona	
  
Você	
  deve	
  sempre	
  executar	
  o	
  Corona	
  Terminal	
  em	
  um	
  Macintosh	
  ao	
  invés	
  do	
  Simulator	
  para	
  compilar	
  e	
  testar	
  aplicações.	
  Em	
  um	
  sistema	
  Windows,	
  executando	
  o	
  Corona	
  Simulator,	
  o	
  Terminal	
  também	
  é	
  executado.	
  O	
  Corona	
  Terminal	
  lhe	
  dá	
  informações	
  importantes	
  quando	
  você	
  está	
  compilando	
  suas	
  aplicações	
  e	
  permite	
  encontrar	
  os	
  erros	
  mais	
  facilmente.	
  O	
  Corona	
  Terminal	
  automaticamente	
  executará	
  o	
  Corona	
  Simulator.	
  
Projeto	
  1.0:	
  Olá	
  MundoEu	
  pessoalmente	
  sempre	
  odiei	
  livros	
  de	
  programação	
  e	
  aulas	
  que	
  gastavam	
  seu	
  primeiro	
  capítulo	
  ou	
  semana	
  cuidando	
  de	
  todos	
  os	
  detalhes.	
  Eu	
  comprava	
  o	
  livro	
  ou	
  assistia	
  a	
  aula	
  porque	
  eu	
  queria	
  programar,	
  não	
  saber	
  de	
  história	
  da	
  programação	
  ou	
  `icar	
  seguindo	
  livros	
  entediantes.	
  Então	
  vamos	
  pular	
  essa	
  parte	
  e	
  partir	
  para	
  o	
  necessário	
  projeto	
  “Olá	
  Mundo”.Pare	
  de	
  revirar	
  os	
  olhos!	
  Antes	
  de	
  eu	
  perder	
  você,	
  deixe-­‐me	
  garantir	
  que	
  você	
  irá	
  obter	
  um	
  valioso	
  recurso	
  deste	
  Olá	
  Mundo,	
  algo	
  que	
  você	
  irá	
  usar	
  pro	
  resto	
  do	
  seu	
  tempo	
  enquanto	
  desenvolvedor	
  Corona.Foi	
  o	
  bastante	
  para	
  conseguir	
  sua	
  atenção?	
  Então	
  vamos	
  começar!
Configurações	
  do	
  ProjetoSe	
  você	
  seguir	
  este	
  processo	
  cada	
  vez	
  que	
  você	
  iniciar	
  um	
  novo	
  projeto,	
  ele	
  tornará	
  sua	
  vida	
  muito	
  mais	
  fácil:Primeiro,	
  crie	
  uma	
  pasta	
  para	
  o	
  projeto	
  chamada	
  “Hello	
  World”	
  (Olá	
  Mundo	
  em	
  Português).	
  Ela	
  pode	
  `icar	
  em	
  sua	
  Área	
  de	
  Trabalho	
  ou	
  onde	
  preferir.	
  Eu	
  coloco	
  todos	
  meus	
  projetos	
  Corona	
  em	
  uma	
  pasta	
  “Projetos	
  Corona”.	
  	
  
Crie uma pasta Hello World para seu projetoAbra	
  seu	
  editor	
  favorito	
  (eu	
  estou	
  usando	
  BBEdit	
  nos	
  screenshots).	
  Crie	
  um	
  arquivo	
  em	
  branco	
  e	
  salve	
  como	
  “main.lua”	
  na	
  pasta	
  Hello	
  World	
  que	
  acabou	
  de	
  criar.
Salve o arquivo main.lua na sua pasta Hello World
Agora	
  deve	
  existir	
  um	
  arquivo	
  main.lua	
  na	
  sua	
  pasta	
  Hello	
  World.	
  	
  Voltando	
  ao	
  seu	
  editor,	
  digite:
print("Hello World")e	
  salve	
  seu	
  arquivo	
  	
  main.lua.
A	
  seguir,	
  você	
  precisará	
  executar	
  o	
  Corona.	
  Se	
  você	
  está	
  em	
  um	
  ambiente	
  Microsoft	
  Windows,	
  execute	
  o	
  Corona	
  Simulator.	
  Em	
  um	
  Macintosh,	
  execute	
  o	
  Corona	
  Terminal.
 Inicialização do Corona em um Mac – não use o botão de novo projeto ainda!Ao	
  executar	
  você	
  verá	
  a	
  janela	
  Terminal	
  e	
  a	
  caixá	
  de	
  diálogo	
  Welcome	
  to	
  Corona.	
  Selecione	
  “Open	
  a	
  Project”	
  nesta	
  caixa	
  de	
  diálogo	
  e	
  navegue	
  até	
  a	
  pasta	
  Hello	
  World	
  que	
  foi	
  criada	
  previamente.
Abra Hello World & selecione o dispositivo a simularQuando	
  você	
  está	
  abrindo	
  um	
  projeto,	
  você	
  estará	
  apto	
  a	
  selecionar	
  qual	
  dispositivo	
  você	
  gostaria	
  de	
  simular	
  no	
  Corona	
  Simulator.	
  Por	
  enquanto	
  selecione	
  iPhone	
  ou	
  Droid	
  e	
  clique	
  no	
  botão	
  Open.Tao	
  logo	
  você	
  abra	
  o	
  projeto,	
  o	
  simulador	
  irá	
  executar	
  o	
  mesmo.Você	
  percebeu?	
  Está	
  certo,	
  nada	
  aconteceu...no	
  simulador.	
  Olhe	
  na	
  janela	
  do	
  Terminal.	
  No	
  `inal	
  você	
  verá	
  seu	
  Hello	
  World	
  exibido.
Hello World na janela do Corona TerminalParabéns!	
  Você	
  fez	
  sua	
  primeira	
  aplicação	
  Corona!	
  Agora	
  antes	
  de	
  `icar	
  desapontado,	
  você	
  deve	
  aprender	
  a	
  usar	
  uma	
  ferramenta	
  muito	
  importante	
  para	
  descobrir	
  problemas	
  em	
  suas	
  aplicações.	
  Quando	
  algo	
  não	
  está	
  funcionando	
  corretamente	
  ou	
  não	
  está	
  exibindo	
  o	
  que	
  você	
  esperava,	
  você	
  pode	
  mandar	
  a	
  si	
  mesmo	
  mensagens	
  através	
  da	
  janela	
  do	
  Terminal.	
  Acredite	
  quando	
  eu	
  digo	
  que	
  este	
  comando	
  irá	
  lhe	
  salvar	
  horas	
  de	
  dores-­‐de-­‐cabeça	
  com	
  erros	
  ocultos!Aviso:	
  Se	
  você	
  ainda	
  não	
  viu	
  nada,	
  existem	
  dois	
  erros	
  comuns	
  que	
  as	
  pessoas	
  cometem:	
  1)	
  eles	
  não	
  salvam	
  seu	
  arquivo	
  main.lua	
  (eu	
  ainda	
  faço	
  isso)	
  ou	
  2)	
  quando	
  salvam	
  o	
  arquivo	
  main.lua,	
  ele	
  não	
  é	
  salvo	
  como	
  um	
  arquivo	
  de	
  texto.

Continue navegando