• Nenhum resultado encontrado

Recursos do Android Franqueza e código-fonte aberto

9 Google Play e questões de comercialização

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 games, 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 game 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

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. Usamos os web services do Twitter no Capítulo 4.

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).

Versão do Android Nome Android 1.5 Cupcake Android 1.6 Donut Android 2.0–2.1 Eclair Android 2.2 Froyo Android 2.3 Gingerbread Android 3.0-3.2 Honeycomb Android 4.0 Ice Cream Sandwich Android 4.1-4.3 Jelly Bean

Android 4.4 KitKat

Figura 1.5 Números de versão do Android e os nomes correspondentes.

1.4.1 Android 2.2 (Froyo)

O Android 2.2 (também chamado de Froyo, lançado em maio de 2010) introduziu o ar- mazenamento externo, permitindo guardar os aplicativos em um dispositivo de memória externo, em vez de apenas na memória interna do aparelho Android. Ele introduziu tam- bém o serviço Android Cloud to Device Messaging (C2DM). A computação em nuvem

(cloud computing) permite utilizar software e dados armazenados na “nuvem” – isto é, acessados em computadores (ou servidores) remotos por meio da Internet e disponíveis de acordo com o pedido – em vez de ficarem armazenados em seu computador de mesa, note- book ou dispositivo móvel. Ela oferece a flexibilidade de aumentar ou diminuir recursos de computação para atender às suas necessidades em dado momento, tornando esse processo mais econômico do que comprar hardware caro para garantir a existência de armazenamen- to e poder de processamento suficientes para níveis de pico ocasionais. O Android C2DM permite aos desenvolvedores de aplicativos enviarem dados de seus servidores para seus apli- cativos instalados em dispositivos Android, mesmo quando os aplicativos não estão sendo executados. O servidor avisa os aplicativos para que entrem em contato diretamente com ele para receberem dados atualizados de aplicativo ou do usuário.6 Atualmente o C2DM foi substituído pelo Google Cloud Messaging.

6

Para obter mais informações sobre os recursos do Android 2.2 – recursos gráficos OpenGL ES 2.0, framework de mídia e muito mais – visite http://developer.android. com/about/versions/android-2.2-highlights.html.

1.4.2 Android 2.3 (Gingerbread)

O Android 2.3 (Gingerbread), lançado no final de 2010, acrescentou mais refinamen- tos para o usuário, como um teclado redesenhado, recursos de navegação aprimorados, maior eficiência no consumo de energia e muito mais. Ele adicionou também vários re- cursos voltados ao desenvolvedor, para comunicação (por exemplo, tecnologias que faci- litam fazer e receber ligações dentro de um aplicativo), multimídia (por exemplo, novas APIs de áudio e gráficas) e games (por exemplo, melhor desempenho e novos sensores, como um giroscópio para um melhor processamento de movimentos).

Um dos novos recursos mais significativos no Android 2.3 foi o suporte para co- municação em campo próximo (NFC) – um padrão de conectividade sem fio de curto alcance que permite a comunicação entre dois dispositivos a uma distância de poucos centímetros. O suporte e os recursos para o NFC variam de acordo com o dispositivo Android. O NFC pode ser usado para pagamentos (por exemplo, um toque de seu apa- relho Android habilitado para NFC em um dispositivo de pagamento de uma máquina de refrigerantes), para troca de dados, como contatos e imagens, para emparelhamento de dispositivos e acessórios e muito mais.

Para ver mais recursos voltados ao desenvolvedor de Android 2.3, consulte http:// developer.android.com/about/versions/android-2.3-highlights.html.

1.4.3 Android 3.0 a 3.2 (Honeycomb)

O Android 3.0 (Honeycomb) inclui aprimoramentos na interface do usuário feitos es- pecificamente para dispositivos de tela grande (tais como os tablets), como teclado rede- senhado para digitação mais eficiente, interface do usuário em 3D visualmente atraente, navegação mais fácil entre telas dentro de um aplicativo e muito mais. Os novos recursos voltados ao desenvolvedor de Android 3.0 incluíram:

• fragmentos, os quais descrevem partes da interface do usuário de um aplicativo e podem ser combinados em uma única tela ou utilizados em várias telas;

• uma barra de ação persistente na parte superior da tela, fornecendo ao usuário opções para interagir com os aplicativos;

• a capacidade de adicionar layouts de tela grande a aplicativos já existentes, proje- tados para telas pequenas, a fim de otimizar seu aplicativo para uso em diferentes tamanhos de tela;

• uma interface do usuário visualmente atraente e mais funcional, conhecida como “Holo” por sua aparência e comportamento holográficos;

• um novo framework de animação;

• recursos gráficos e de multimídia aprimorados;

• a capacidade de usar arquiteturas de processador multinúcleo para melhorar o desempenho;

• suporte para Bluetooth ampliado (permitindo, por exemplo, que um aplicativo de- termine se existem dispositivos conectados, como fones de ouvido ou um teclado); e

aplicativos) e muito mais – e a fácil adaptação de seus aplicativos para funcionar em diferentes dispositivos. O Ice Cream Sandwich também adicionou várias APIs para uma melhor comunicação entre os dispositivos, acessibilidade para usuários com deficiências (por exemplo, visual), redes sociais e muito mais (Fig. 1.6). Para ver uma lista comple- ta das APIs do Android 4.0, consulte http://developer.android.com/about/versions/ android-4.0.html.

Recurso Descrição

Detecção de rosto Usando a câmera, os dispositivos compatíveis podem determinar a posição dos olhos, nariz e boca do usuário. A câmera também pode monitorar o movimento dos olhos do usuário, permitindo a criação de aplicativos que mudam a perspectiva de acordo com o olhar do usuário.

Operador de câmera virtual Ao filmar um vídeo com várias pessoas, a câmera focalizará automaticamente a que está falando.

Android Beam Usando NFC, o Android Beam permite que você encoste dois dispositivos Android para compartilhar conteúdo (como contatos, imagens, vídeos). Wi-Fi Direct As APIs Wi-Fi P2P (peer-to-peer) permitem conectar vários aparelhos

Android utilizando Wi-Fi. Sem utilizar fios, eles podem se comunicar a uma distância maior do que usando Bluetooth.

Social API Acesse e compartilhe informações de contato entre redes sociais e aplicativos (com a permissão do usuário).

Calendar API Adicione e compartilhe eventos entre vários aplicativos, gerencie alertas e participantes e muito mais.

APIs de acessibilidade Use as novas APIs Accessibility Text-to-Speech para melhorar a experiência do usuário em seus aplicativos para pessoas com deficiências, como deficientes visuais, e muito mais. O modo explorar por toque permite aos usuários deficientes visuais tocar em qualquer parte na tela e ouvir uma voz descrevendo o conteúdo tocado.

Framework Android@Home Use o framework Android@Home para criar aplicativos que controlam

utensílios nas casas dos usuários, como termostatos, sistemas de irrigação, lâmpadas elétricas em rede e muito mais.

Dispositivos Bluetooth voltados à saúde

Crie aplicativos que se comunicam com dispositivos Bluetooth voltados à saúde, como balanças, monitores de batimento cardíaco e muito mais.

Figura 1.6 Alguns recursos para desenvolvedores de Android Ice Cream Sandwich (http://developer.android.com/about/versions/android-4.0.html).

1.4.5 Android 4.1–4.3 (Jelly Bean)

O Android Jelly Bean, lançado em 2012, inclui suporte para telas de vídeo externas, segurança aprimorada, melhorias na aparência (por exemplo, widgets de aplicativo que podem ser dimensionados e notificações de aplicativo maiores) e no desempenho, que aperfeiçoam a troca entre aplicativos e telas (Fig. 1.7). Para ver a lista de recursos do Jelly Bean, consulte http://developer.android.com/about/versions/jelly-bean.html

Recurso Descrição

Android Beam O Android Beam pode ser usado para unir facilmente seu smartphone ou tablet a alto-falantes Bluetooth® sem fio ou fones de ouvido especiais. Widgets de tela de

bloqueio

Crie widgets que aparecem na tela do usuário quando o aparelho está bloqueado ou modifique seus widgets de tela inicial existentes para que também fiquem visíveis nessa situação.

Photo Sphere APIs para trabalhar com os novos recursos de foto panorâmica. Permitem aos usuários tirar fotografias em 360º semelhantes às usadas no Street View do Google Maps.

Daydreams Daydreams são protetores de tela interativos, ativados quando um aparelho está encaixado ou carregando. Eles podem reproduzir áudio e vídeo e responder às interações do usuário.

Suporte para idiomas Novos recursos ajudam seus aplicativos a atingir usuários internacionais, tais como texto bidirecional (da esquerda para a direita ou da direita para a esquerda), teclados internacionais, layouts de teclado adicionais e muito mais. Opções para o

desenvolvedor

Vários novos recursos de monitoramento e depuração ajudam a melhorar seus aplicativos, como os relatórios de erros, que incluem uma captura de tela e informações de estado do dispositivo.

Figura 1.7 Alguns recursos do Android Jelly Bean (http://developer.android.com/about/ versions/jelly-bean.html).

1.4.6 Android 4.4 (KitKat)

O Android 4.4 KitKat, lançado em outubro de 2013, inclui várias melhorias de de- sempenho que tornam possível executar o sistema operacional em todos os aparelhos Android, inclusive em dispositivos mais velhos com restrição de memória, os quais são particularmente populares nos países em desenvolvimento.7

Permitir que mais usuários atualizem para o KitKat reduzirá a “fragmentação” de versões de Android no mercado, o que tem sido um desafio para os desenvolvedores que antes tinham de projetar aplicativos para serem executados em várias versões do sistema operacional ou limitar seu mercado em potencial, tendo como alvo aplicativos para uma versão específica.

O Android KitKat inclui também aprimoramentos na segurança e na acessibili- dade, recursos gráficos e de multimídia melhorados, ferramentas de análise de uso da memória e muito mais. A Figura 1.8 lista alguns recursos novos importantes do KitKat. Para ver uma lista completa, consulte

http://developer.android.com/about/versions/kitkat.html

Provedor de SMS Crie aplicativos de SMS (Short Message Service) ou MMS (Multimedia Messaging Service) com o novo provedor de SMS e as novas APIs. Agora os usuários podem selecionar seus aplicativos de troca de mensagens padrão.

Framework de transições O novo framework torna mais fácil criar animações de transição. Gravação de tela Grave um vídeo de seu aplicativo em ação para criar tutoriais e materiais de

marketing.

Acessibilidade melhorada A API gerenciadora de títulos permite aos aplicativos verificar as preferências de títulos do usuário (por exemplo, idioma, estilos de texto e muito mais).

Chromium WebView Dê suporte aos padrões mais recentes para exibir conteúdo web, incluindo HTML5, CSS3 e uma versão mais rápida de JavaScript.

Detector e contador de passos

Crie aplicativos que identificam se o usuário está correndo, andando ou subindo a escada e que contam o número de passos.

Host Card Emulator (HCE) O HCE permite que qualquer aplicativo realize transações NFC seguras (como pagamentos móveis) sem a necessidade de um elemento de segurança no cartão SIM, controlado pela operadora de telefonia celular.

Figura 1.8 Alguns recursos do Android KitKat (http://developer.android.com/about/versions/ kitkat.html).