Objetivos Neste capítulo, você vai:
1.3 Recursos do Android
Franqueza e código-fonte aberto
Uma vantagem de desenvolver aplicativos Android é a franqueza (ou grau de abertura) da plataforma. O sistema operacional é de código-fonte aberto e gratuito. Isso permite ver o código-fonte do Android e como seus recursos são implementados. Você também pode contribuir para o Android relatando erros (consulte http://source.android.com/ source/report-bugs.html) ou participando nos grupos de discussão do Open Source
Project (http://source.android.com/community/index.html). Diversos aplicativos An- 1 http://blogs.strategyanalytics.com/WSS/post/2013/10/31/Android-Captures-Record-81-Percent- Share-of-Global-Smartphone-Shipments-in-Q3-2013.aspx. 2 http://www.idc.com/getdoc.jsp?containerId=prUS24093213. 3 http://www.technobuffalo.com/2013/04/16/google-daily-android-activations-1-5-million. 4 http://venturebeat.com/2013/09/03/android-hits-1b-activations-and-will-be-called-kitkat-in- next-version. 5 http://www.businessweek.com/articles/2013-05-29/behind-the-internet-of-things-is-android- and-its-everywhere.
droid de código-fonte aberto do Google e outros estão disponíveis na Internet (Fig. 1.1). A Figura 1.2 mostra onde se pode obter o código-fonte do Android, aprender a respeito da filosofia por trás do sistema operacional de código-fonte aberto e obter informações sobre licenciamento.
URL Descrição
http://en.wikipedia.org/wiki/List_of_ open_source_Android_applications
Ampla lista de aplicativos de código-fonte aberto, organizada por categoria (por exemplo, games, comunicação, emuladores, multimídia, segurança).
http://developer.android.com/tools/
samples/index.html Exemplos de aplicativos do Google para a plataforma Android – inclui mais de 60 aplicativos e jogos, como
Lunar Lander, Snake e Tic Tac Toe.
http://github.com/ O GitHub permite a você compartilhar seus aplicativos e código-fonte, e colaborar com os projetos de código-fonte aberto de outras pessoas.
http://sourceforge.net O SourceForge também permite a você compartilhar aplicativos e código-fonte, e colaborar com os projetos de código-fonte aberto de outras pessoas.
http://f-droid.org/ Centenas de aplicativos Android de código-fonte aberto, incluindo o bloqueador de anúncios Adblock Plus, navegação de transporte público aMetro, AnySoftKeyboard (disponível em vários idiomas), o player de música Apollo, o jogo Chinese Checkers, o controlador de peso DroidWeight, Earth Live Wallpaper e muitos mais.
http://blog.interstellr.com/ post/39321551640/14-great-android- apps-that-are-also-open-source
Lista 14 aplicativos Android de código-fonte aberto, com links para o código.
http://www.openintents.org/en/ libraries
Fornece quase 100 bibliotecas de código-fonte aberto que podem ser utilizadas para melhorar recursos de aplicativos.
http://www.androidviews.net Controles de interface gráfica de usuário personalizados para melhorar a aparência de seus aplicativos.
http://www.stackoverflow.com Stack Overflow é um site de perguntas e respostas para programadores. Os usuários podem votar em cada resposta, e as melhores respostas aparecem no início. Figura 1.1 Sites de recursos para aplicativos e bibliotecas de código-fonte aberto para Android.
Título URL
Get Android Source Code http://source.android.com/source/downloading.html
Governance Philosophy http://source.android.com/about/philosophy.html
Licenses http://source.android.com/source/licenses.html
FAQs http://source.android.com/source/faqs.html
Figura 1.2 Recursos e código-fonte para o sistema operacional Android de código-fonte aberto.
O grau de abertura da plataforma estimula a rápida inovação. Ao contrário do iOS patenteado da Apple, que só existe em dispositivos Apple, o Android está disponível em aparelhos de dezenas de fabricantes de equipamento original (OEMs) e em numerosas
operadoras de telecomunicações em todo o mundo. A intensa concorrência entre os OEMs e as operadoras beneficia os consumidores.
Java
Os aplicativos Android são desenvolvidos com Java – uma das linguagens de programa- ção mais usadas do mundo. Essa linguagem foi uma escolha lógica para a plataforma Android, pois é poderosa, gratuita, de código-fonte aberto e milhões de desenvolvedores já a conhecem. Os programadores Java experientes podem se aprofundar rapidamente no desenvolvimento com Android, usando as APIs (interfaces de programação de apli- cativo) Android do Google e de outros.
A linguagem Java é orientada a objetos e tem acesso às amplas bibliotecas de classe que ajudam a desenvolver aplicativos poderosos rapidamente. A programação de inter- faces gráficas do usuário com Java é baseada em eventos – neste livro, você vai escrever aplicativos que respondem a vários eventos iniciados pelo usuário, como toques na tela. Além de programar partes de seus aplicativos diretamente, você também vai usar os IDEs do Eclipse e do Android Studio para arrastar e soltar convenientemente objetos predefinidos, como botões e caixas de texto para seu lugar na tela, além de rotulá-los e redimensioná-los. Com esses IDEs é possível criar, executar, testar e depurar aplicativos Android de forma rápida e conveniente.
Tela multitouch
Os smartphones Android englobam a funcionalidade de telefone celular, cliente de Internet, MP3 player, console de jogos, câmera digital e muito mais, em um dispositivo portátil com telas multitouch coloridas. Com o toque de seus dedos, você pode navegar facilmente entre as opções de usar seu telefone, executar aplicativos, tocar música, navegar na web e muito mais. A tela pode exibir um teclado para digitação de e-mails e mensagens de texto e para a inserção de dados em aplicativos (alguns dispositivos Android também têm teclados físicos). Gestos
As telas multitouch permitem controlar o aparelho com gestos que envolvem apenas um toque ou vários toques simultâneos (Fig. 1.3).
Nome do gesto Ação física Utilizado para
Toque rápido (touch) Tocar rapidamente na tela uma vez.
Abrir um aplicativo, “pressionar” um botão ou um item de menu.
Toque duplo rápido (double touch) Tocar rapidamente na tela duas vezes.
Ampliar e reduzir imagens, Mapas do Google Maps e páginas web.
Pressionamento longo (long press) Tocar na tela e manter o dedo na posição.
Selecionar itens em uma visualização – por exemplo, verificar um item em uma lista. Movimento rápido (swipe) Tocar e mover rapidamente o dedo
na tela, na direção do movimento desejado.
Mover item por item em uma série, como no caso de fotos. Um movimento do swipe para automaticamente no próximo item. Arrastamento (drag) Tocar e arrastar o dedo pela tela. Mover objetos ou ícones, ou rolar
precisamente uma página web ou lista. Zoom de pinça (pinch swipe) Usando dois dedos, tocar na tela e
juntá-los ou afastá-los.
Ampliar e então reduzir a tela (por exemplo, ampliando texto e imagens).
Aplicativos incorporados
Os dispositivos Android vêm com vários aplicativos padrão, os quais podem variar de acordo com o aparelho, o fabricante ou o serviço de telefonia móvel. Normalmente, isso inclui Phone, People, Email, Browser, Camera, Photos, Messaging, Calendar, Play Store, Calculator e muitos mais.
Web services
Web services são componentes de software armazenados em um computador, os quais podem ser acessados por um aplicativo (ou por outro componente de software) em ou- tro computador por meio da Internet. Com eles, você pode criar mashups, os quais per- mitem desenvolver aplicativos rapidamente, combinando web services complementares, frequentemente de diferentes organizações e possivelmente com outras formas de feeds de informação. Por exemplo, o 100 Destinations (www.100destinations.co.uk) combina
as fotos e tweets do Twitter com os recursos de mapas do Google Maps, permitindo ex- plorar países em todo o mundo por meio de fotos tiradas por outras pessoas.
O Programmableweb (http://www.programmableweb.com/) fornece um catálogo
com mais de 9.400 APIs e 7.000 mashups, além de guias práticos e exemplos de código para você criar seus próprios mashups. A Figura 1.4 lista alguns web services populares. De acordo com o Programmableweb, as três APIs mais utilizadas para mashups são: Google Maps, Twitter e YouTube.
Fonte de web services Como é usada
Google Maps Serviços de mapas
Twitter Microblog
YouTube Busca de vídeo
Facebook Rede social
Instagram Compartilhamento de fotos
Foursquare Check-in móvel
LinkedIn Rede social para negócios
Groupon Comércio social
Netflix Aluguel de filmes
eBay Leilões pela Internet
Wikipedia Enciclopédia colaborativa
PayPal Pagamentos
Last.fm Rádio na Internet
Amazon eCommerce Compra de livros e muito mais
Salesforce.com Gerenciamento de relacionamento com o cliente (CRM)
Skype Telefonia pela Internet
Microsoft Bing Busca
Flickr Compartilhamento de fotos
Zillow Avaliação de imóveis
Yahoo Search Busca
WeatherBug Clima
Figura 1.4 Alguns web services populares (http://www.programmableweb.com/apis/ directory/1?sort=mashups).