Construindo
Aplicativos
M贸veis com Java Joshua Marinacci
Novatec
Authorized Portuguese translation of the English edition of titled Building Mobile Applications with Java, First Edition ISBN 9781449308230 © 2012 Joshua Marinacci. This translation is published and sold by permission of O'Reilly Media, Inc., the owner of all rights to publish and sell the same. Tradução em português autorizada da edição em inglês da obra Building Mobile Applications with Java, First Edition ISBN 9781449308230 © 2012 Joshua Marinacci. Esta tradução é publicada e vendida com a permissão da O'Reilly Media, Inc., detentora de todos os direitos para publicação e venda desta obra. © Novatec Editora Ltda. 2012. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo, sem prévia autorização, por escrito, do autor e da Editora. Editor: Rubens Prates Tradução: Luís Euclides dos Santos Revisão gramatical: Giacomo Leone Neto Editoração eletrônica: Carolina Kuwabata ISBN: 978-85-7522-314-7 Histórico de impressões: Agosto/2012
Primeira edição
Novatec Editora Ltda. Rua Luís Antônio dos Santos 110 02460-000 – São Paulo, SP – Brasil Tel.: +55 11 2959-6529 Fax: +55 11 2950-8869 E-mail: novatec@novatec.com.br Site: www.novatec.com.br Twitter: twitter.com/novateceditora Facebook: facebook.com/novatec LinkedIn: linkedin.com/in/novatec
xxxxxxxx
capítulo 1
Saudações, desenvolvedores de aplicativos móveis!
Saudações, bem-vindos e guten tag. Se você está lendo este livro, é provavelmente porque ficou atraído pela ideia de criar aplicativos móveis com Java para plataformas não-Java. Talvez você estivesse familiarizado com GWT e PhoneGap. Isso está ok. Explicarei tudo enquanto prosseguimos. O importante é que estamos aqui para criar ótimos aplicativos móveis. A verdadeira tecnologia usada para desenvolver software realmente não importa ao usuário final. As pessoas querem apenas aplicativos de qualidade que parecem ótimos e funcionam bem. Infelizmente, a tecnologia não importa quando se trata de realmente criar aplicativos. Plataformas diferentes têm suas próprias ferramentas e linguagens preferidas. Os aplicativos iPhone e iPad são amplamente escritos em Objective-C. Os aplicativos Android são escritos em uma variante de Java do Google. Os aplicativos estilo Windows Metro usam C#, C++ ou Visual Basic. Adicione webOS, BlackBerry (sistemas operacionais tanto antigos quanto novos), o Nook (Android mais antigo) e Kindle Fire (Android adaptado), e agora temos um problema. Para suportar todos os usuários, temos que escrever nosso aplicativo pelo menos três vezes, possivelmente muitas mais se você levar em conta plataformas emergentes de TV. E essa é a boa notícia. A má notícia é que só ficará pior. Plataformas móveis são divergentes, não convergentes. Mesmo dentro da família Android há várias versões importantes em uso generalizado, e a taxa de upgrade é infelizmente baixa.
12
Capítulo 1 ■ Saudações, desenvolvedores de aplicativos móveis!
13
Então, o que deve fazer um desenvolvedor de aplicativos empreendedor? Você quer escrever um aplicativo uma vez, não repetidas vezes. Precisamos de uma única plataforma que funcionará em todos os lugares. Felizmente, já temos tal plataforma: a Web. Não estou falando da Web como uma rede de computadores que hospedam conteúdo. Estou falando das tecnologias Web: HTML, JavaScript e CSS. Virtualmente todo sistema operacional tem um browser, o que significa que ele tem um modo de renderizar HTML e JavaScript. Em quase todos os casos há um modo de criar um aplicativo instalável local usando HTML e JavaScript. Ótimo! Temos uma única plataforma. Problema resolvido. E agora? Bem, se fosse tão fácil, não precisaríamos deste livro. Os sistemas operacionais são diferentes. Cada um deles tem suporte diferente para padrões HTML, APIs JavaScript e sistemas de empacotamento nativos. Além disso, você teria que escrever tudo em JavaScript em vez do código Java com o qual provavelmente está familiarizado. Você teria que desistir da tipagem estática, do amplo ecossistema de bibliotecas Java e da ótima experiência de IDE que todos apreciamos. Bem, é por isso que você comprou este livro. Há duas incríveis ferramentas open source que solucionarão o problema para nós: GWT e PhoneGap. O GWT permite que você escreva em Java mas compile em multiplataforma JavaScript e HTML, que funciona em todos os lugares. O PhoneGap fornece empacotamento nativo para cada sistema operacional, junto com API wrappers para recursos do dispositivo como câmera, acelerômetro e rádio GPS. Por seus poderes combinados podemos realizar o sonho: escrever uma vez em uma poderosa e bem suportada linguagem estaticamente tipada, Java, então produzir aplicativos nativos para todas as plataformas com uma única base de código. O sonho é bom demais para ser verdade? Como veremos, é realmente bastante real.