quinta-feira, 30 de outubro de 2014

O Android, Google Play, APIs, SDK, IDE e APK

Olá!

Primeiramente obrigado por ter voltado ao meu blog, só essa semana o blog já teve mais de 300 visualizações e isso já me faz ter mais vontade ainda de escrever!

Como todo bom livro, curso, palestra, etc... Vou começar pela história da coisa e junto a isso um pouco da minha visão e decisão como profissional optar por essa plataforma que o Google tão graciosamente nos distribui de forma gratuita e livre.

O Android



Mas o que é o Android afinal?

Android é um sistema operacional baseado no núcleo do Linux para dispositivos móveis (eu falando porque esse parágrafo eu copiei do Wikipedia, leia-se móveis smartphones, tablets, relógios, carros, TVs, aspiradores de pó e cafeteiras), desenvolvido pela Open Handset Alliance, liderada pela Google. Segundo a Google, mais de 1 milhão e 500 mil aparelhos com o sistema operacional são ativados todos os dias, sendo utilizado por grandes fabricantes de celulares, como HTC, Samsung, Sony, Motorola e LG.

Resumindo um pouco, o Android foi criado pela Android Inc. em 2004, o Google comprou em 2005 e em 2007 ele, o Google, anunciou oficialmente o Android como seu OS (operating system, em portguês, sistema operacional) para smartphones. Se estiver interessado em mais detalhes sobre a história do Android, clica aqui.

O Android foi criado sobre uma máquina virtual, ou VM (virtual machine em inglês), baseada na JVM (Java Virtual Machine) que é responsável por executar os programas Java, no caso da VM do Android os aplicativos. Atualmente há duas VMs oficiais, a pioneira e ainda em uso pela maioria esmagadora de devices é a Dalvik. A segunda, mais atual, lançada junto com o Android 4.4 KitKat (2013) é a ART (Android Runtime), executando o mesmo papel que a anterior porém com grandes melhorias de performance e segurança.

E hoje? Bom hoje o Android tá ai lindão!

No seu smartphone, tablet, relógio, óculos, carro, TV, geladeiras e alguns sistemas de automatização residencial. E sabe o mais legal de tudo isso? É tudo Java! Sim, é tudo Java meu amigo programador.

O Google acertou em cheio, na minha humilde opnião, escolhendo o Java como linguagem para toda sua plataforma Android. Eu sou apaixonado por orientação a objetos, e por mais que falem que para fazer um "Hello World" são 15 linhas ou mais, eu não vejo outra linguagem dar suporte ao que o Android e o Google se propõem a disponibilizar para desenvolvedores.

Além de tudo, é grátis! Simples assim, o Android é grátis para quem deve ser, nós, desenvolvedores que já "gastamos" nossas horas de descanço estudando e aprendendo para criar nossos apps do dia à dia.

Prazer, esse é o Android, espero que sejam grandes amigos. Ainda tem muito mais!

A Google Play (Android Market)



Formalmente chamada de Android Market, é a loja oficial do Google onde além de disponibilizar milhares de apps, inclusive a sua, para dispositivos Android, você pode comprar livros, ouvir e comprar músicas, revistas, filmes e em alguns países até dispositivos!

O Google não cobra diretamente do desenvolvedores, isso por um lado é muito bom pois torna mais acessível novos desenvolvedores entrarem na comunidade assim como projetos serem mais baratos, basicamente seu custo de produzir um app para Android é mão de obra e tempo, certo? Mas no caso de você ser uma fabricante de hardware e quiser vender dispositivos Android com a loja oficial do Google você irá pagar uma certa taxa para cada device ativo.

Vou escrever um post inteiro ensinando com ganhar dinheiro com seu app só com propaganda, fique tranquilo. Mas vale saber que o Google ganha também. Como já deve conhecer ou ter ouvido falar da plataforma AdSense do Google, assim como você pode por banners em seus sites, também é possível mostrá-los na tela do seu app! E da mesma forma que nos sites, o Google tira cerca de um terço do valor arrecadado pra ele, se pensar bem é justo pois você ainda fica com dois terços do milhão de dólares que irá arrecadar por mês (em?! em?! em?! não esquece dos amigos bloggers pobres em?!).

E por último de você, pobre developer em seu computador empoeirado no canto do quarto escuro acordado até de madrugada para publicar seu app. Chega de drama... Enfim, para se tornar um Google Developer e poder publicar seus apps na Google Play, carinhosamente chamada só de Play, será necessário desembolsar os incríveis 25 doletas, taxa única, pra vida toda, por toda a vida! Diferente de 99 dólares que cobram por ano... E seguindo os passos do AdSense, se e somente se você publicar um app pago, o Google ficará com um terço do valor pra ele, assim como toda transação pelo In-App, pagamento por dentro do app, por exemplo, comprar moedas do jogo (vai ter um post sobre isso também!).

APIs (versões do Android)



O Google chama tecnicamente as versões do Android, seja para smartphone/tablet, wear, glass, TV ou etc, de API (application programming interface, em português, interface de programação de aplicativo). Abaixo segue uma lista das versões, nomes e APIs, e clicando aqui você pode ler mais a respeito de cada versão:
  • Android 1.0 (API level 1)
  • Android 1.1 (API level 2)
  • Android 1.5 Cupcake (API level 3)
  • Android 1.6 Donut (API level 4)
  • Android 2.0 Eclair (API level 5)
  • Android 2.0.1 Eclair (API level 6)
  • Android 2.1 Eclair (API level 7)
  • Android 2.2–2.2.3 Froyo (API level 8)
  • Android 2.3–2.3.2 Gingerbread (API level 9)
  • Android 2.3.3–2.3.7 Gingerbread (API level 10)
  • Android 3.0 Honeycomb (API level 11)
  • Android 3.1 Honeycomb (API level 12)
  • Android 3.2 Honeycomb (API level 13)
  • Android 4.0–4.0.2 Ice Cream Sandwich (API level 14)
  • Android 4.0.3–4.0.4 Ice Cream Sandwich (API level 15)
  • Android 4.1 Jelly Bean (API level 16)
  • Android 4.2 Jelly Bean (API level 17)
  • Android 4.3 Jelly Bean (API level 18)
  • Android 4.4 KitKat (API level 19)
  • Android 4.4 KitKat with wearable extensions (API level 20)
  • Android 5.0 Lollipop (API level 21)
Uma API é, basicamente, o conjunto de funções e componentes que uma determinada versão do Android suporta. Por exemplo, a ActionBar (aquela barra com algumas funções no topo de alguns apps) só foi introduzida oficialmente na API 11 (Android 3.0), então caso você queira usá-la em seu app terá que usar a API 11 ou superior. Mas não se preocupe, o Google já pensou no caso de você ter que distribuir em devices mais antigos e criou bibliotecas que dão suporte a essas novas funcionalidades para APIs antigas (irei explorá-las ao longo dos posts).

E claro, como você pode notar, as versões tem o nome de doces! Mas não se sabe ao certo o porque disso, mas é evidente que os nomes respeitam a ordem alfabética: [C]upcake, [D]onut, [E]clair, ..., ..., ..., [K]itKat e [L]ollipop.

Nesse link você pode ver como está a fragmentação do Android atualmente: https://developer.android.com/about/dashboards/index.html#Platform

E no vídeo abaixo o +Neto Marin fala das novidades do Android Lollipop.


SDK



SDK, é a sigla de Software Development Kit, ou seja, Kit de Desenvolvimento de Software ou Kit de de Desenvolvimento de Aplicativos. É o que chamamos carinhosamente de compilador, o que transformar suas gambiarras em Java e seus XMLs escabrosos em byte-code para a VM do Android interpretar e mostrar seu app na tela dos devices.

Continuando um pouco o assunto, API e SDK são mais ou menos a mesma coisa no Android. Quando você vai criar um projeto você define a API mínima e a API target que na verdade é qual versão de SDK irá compilar seu projeto. Então, por exemplo, seu aplicativo irá suportar no mínimo Androids API 9 (Android 2.3–2.3.2 Gingerbread) e o target será a API 21 (Android 5.0 Lollipop), desta forma devices Android que estejam dentro desse ambito poderão usar seu aplicativo. Claro que você enfrentará alguns problemas de compatibilidade, digo, recursos disponíveis somente em versões superiores não poderão ser usados trivialmente, serão necessários alguns IFs e bibliotecas de compatibilidades dependendo que ter for criar.

IDE



IDE, do inglês Integrated Development Environment ou Ambiente Integrado de Desenvolvimento, é um programa de computador que reúne características e ferramentas de apoio ao desenvolvimento de software com o objetivo de agilizar este processo. Ou seja, esse é o martelo e a talhadeira de sua obra de arte em mármore de Carrara!

Atualmente o Android tem duas IDEs oficiais. A primeira é um plugin para o Eclipse que se chama ADT (Android Development Tools) que inclui um emulador, ferramentas para debugging, memória e análise de performance. Além de herdar todos os recursos do Eclipse, com o ADT você pode criar projeto do tipo Android, assim como Activities, layouts em XML e etc muito mais rápido e fácil com os auxiliares e autocomplete e alguns modelos de classes e XMLs.

O segundo, que venho estudando ao longo dos últimos meses, é o Android Studio. É uma IDE baseada em Intellij, grátis assim como o ADT para Eclipse (o Eclipse também é grátis), lançada em meados de 2013 e liberada em Beta para todos os desenvolvedores esse ano. Possui o mesmo recursos que o ADT e muito mais, além de excelentes shortcuts que deixam o dia à dia ainda mais produtivo. Todos os códigos que irei postar aqui serão feitos com o Android Studio, então se já está acostumado com o Eclipse prepare-se para sair da sua zona de conforto.


APK



Por fim, não menos importante, provavelmente o mais importante... O APK! Ou Android application package em inglês, é o .exe (Windows) ou .pkg (OSX) do Android.

Esse arquivo na verdade trata-se de um arquivo compactado em formato ZIP que contém os arquivos byte-code, XMLs e assets (imagens, vídeos, sons, etc...) de seu aplicativo, que é gerado ao final do projeto assinado com um certificado único. Esse instalador é usado também para você publicar seu app na Google Play, e posteriormente gerar novas versões.

Paralelo ao assunto do APK há o certificado (keystore) que torna o app propriedade do portador desse certificado. E é com ele também que o Google garante alguma segurança em relação a confiabilidade da fonte, ou seja, sabe aquela opção que você desabilita para instalar apps de fontes externas em seu Android? Você meio que está desabilitando a checagem desse certificado pelo OS em seu dispositivo. Mas fique tranquilo que isso será explorado mais a fundo em futuros posts.

Lição de Casa


Na próxima semana iremos começar a instalação e configuração de nosso ambiente chamado de workspace. Desta forma você irá precisar baixar o Android Studio (IDE) e as APIs/SDKs para começar a desenvolver!

Seu computador irá precisar de Java, recomendo instalar a versão 6 para seu sistema operacional, seja OSX, Linux ou Windows. Para baixar o Android Studio clique no link abaixo:

https://developer.android.com/sdk/installing/studio.html

O Android Studio irá vir com o gerenciador de APIs/SDKs, então baixe as APIs mais atuais (eu baixo todas!) e explore um pouco a IDE, principalmente se for seu primeiro contato com uma.

***

UFA!

Parabéns por ter lido até aqui... Muita informação nova? Não se preocupe, vamos passar por todas mais umas 200 vezes nos próximos posts. Espero que tenha esclarecido algumas dúvidas e criado novas, pois só assim você nunca irá para de querer aprender. Abaixo deixei alguns links que usei para compor algumas informações desse post (sim, eu uso muito a Wikipedia).

Fique à vontade nos comentários sobre caneladas, sugestões e críticas!

Até semana que vem...

Fontes e URLs úteis

http://pt.wikipedia.org/wiki/Android
http://en.wikipedia.org/wiki/Google_Play
https://developer.android.com/about/dashboards/index.html
http://en.wikipedia.org/wiki/Android_version_history
http://developer.android.com/guide/topics/ui/actionbar.html
http://pt.wikipedia.org/wiki/Software_Development_Kit
http://pt.wikipedia.org/wiki/Ambiente_de_desenvolvimento_integrado
http://en.wikipedia.org/wiki/Android_Studio
http://en.wikipedia.org/wiki/Android_application_package
http://en.wikipedia.org/wiki/Dalvik_(software)
http://en.wikipedia.org/wiki/Android_Runtime
https://source.android.com/devices/tech/dalvik/art.html

Nenhum comentário:

Postar um comentário