Blog oficial para desenvolvedores que falam português
Next Level Apps: Inscrições encerradas
10/07/2013
Olá pessoal,
Primeiro, queria agradecer muito a todos que ajudaram a divulgar e que se inscreveram nesse evento. É realmente gratificante ver que a comunidade, as empresas e empreendedores toparam a nossa idéia e estão se disponibilizando em passar um dia conosco !
Foram mais de 4 mil visualizações do nosso post e mais de 120 apps inscritas !!
Infelizmente, como já havia dito, não temos espaço para todos os inscritos. Além é claro, não seria possível dar atenção da forma correta a todos de uma só vez. Por isso, já estamos analisando com cuidado cada inscrição.
Sabemos que não será possível trazer todos, mas, já está nos nossos planos realizar mais eventos desse tipo. Também iremos fazer eventos para aqueles que estão começando na plataforma Android ou que querem começar já com empurrãozinho.
Até na sexta, no final do dia, pretendemos enviar todas as confirmações das inscrições. Assim, há tempo para todos confirmarem, e caso novas vagas se abram, nós vamos tentando encaixar o máximo de pessoas possível.
Mais uma vez obrigado, e nos vemos em breve !
Abraços
Neto
Leve seu aplicativo Android para o próximo nível !
02/07/2013
Durante o Google I/O, em maio desse ano (2013),
+Hugo Barra
anunciou alguns números bem interessantes em relação à Google Play Store. E gostaria de chamar atenção pra alguns desses números:
900 milhões de ativações de dispositivos Android
+ 850 mil aplicativos publicados na Google Play Store
48 bilhões de downloads de aplicativos, através da Google Play Store
São número realmente grandes, que devemos comemorar, e nos dão um panorama bem interessante do mercado consumidor para aplicativos Android, e claro, são muito motivadores para que os desenvolvedores criem ainda mais aplicações para a plataforma Android.
E nós do Google, queremos mais do que "só" ter muitas aplicações disponíveis na nossa loja, queremos também ajudar os desenvolvedores a melhorarem seus aplicativos aplicativos, e assim deixar o seu Android um Super Android!
Afinal, os usuários que investiram em ter um bom smarpthone, tablet e qualquer outro dispositivo que funcione com Android, merece ter aplicativos que tirem o máximo dessa experiência !
E como pretendemos fazer isso ?
Hoje os desenvolvedores já tem a disposição uma grande (pra não dizer gigante) quantidade de material oficial sobre desenvolvimento Android. Alguns de nossos canais oficiais são a
página oficial para desenvolvedores Android
, o perfil
+Android Developers
no G+ e também o canal
Android Developers no YouTube
. Mas, sabemos que as vezes, os desenvolvedores querem mais, e principalmente conversar frente a frente, trocar idéias e tirar algumas dúvidas.
Por isso, vamos promover um
evento
chamado
Next Level Apps
, quer será realizado em
São Paulo
no
dia 26 de julho de 2013
. Será um
dia inteiro
,
grátis
, repleto de palestras com um conteúdo variado que irá ajudar os desenvolvedores a alcançarem um outro nível em suas aplicações Android !
Quem pode participar ?
O evento será
aberto
a
empresas
de qualquer porte,
startups
ou até
empreendedores individuais
que já
tenham publicado
um
aplicativo Android
, mas acham que podem ter um aplicativo ainda melhor!
As
inscrições
serão realizadas através de um
formulário
que será indicado
no final no post
(mas por favor, leia o post completo), e questões de espaço, o número de participantes é limitado.
Mas não precisa correr e preencher agora, pois o formulário ficará disponível até o dia 9 de julho (terça-feira), e
TODAS
as
submissões
serão
avaliadas
pela equipe de Developer Relations do Google Brasil. Por isso, preencha o formulário com os detalhes que julgue necessário e que nos permita entender melhor o seu aplicativo.
Para que todos possam se programar, inclusive os que são de fora de São Paulo, vamos enviar as confirmações inscrição até o final do dia 12 de julho (sexta-feira). Serão solicitados alguns dados pessoais e claro, a confirmação de sua intenção. Caso alguns selecionados não confirmem, as vagas serão passadas aos demais na lista, mas todos serão notificados da confirmação ou não da sua inscrição.
Conteúdo
Durante o evento, teremos palestras sobre:
Otimização de aplicativos para tablets;
Como ser destaque na Google Play Store;
Dicas de design e UX;
Monetização;
Oportunidades de negócio;
Boas práticas sobre backend e Google App Engine;
E para fechar o dia, um happy hour para que os participantes e palestrantes possam conversar sobre suas aplicações, seus negócios e aumentar ainda mais o networking !
Mas é grátis de verdade ?
Sim, a inscrição no evento (e claro, incluindo o happy hour) é gratuita!
A única coisa que vamos pedir em troca, é que os selecionados sem comprometam a levar o seus aplicativos para o próximo nível. E para incentivar um pouco, no dia 30 de agosto iremos avaliar os aplicativos dos participantes que tiverem implementado alguma melhoria.
O aplicativo que, na nossa opinião, mais tiver evoluído baseado nas nossas dicas, será escolhido para que os seus desenvolvedores venham ao escritório do Google em São Paulo para gravar um Office Hours com a nossa equipe, além é claro de divulgar a sua app.
Obs.: Durante o evento, daremos mais detalhes de como será esse processo.
Detalhes do evento:
Data: 26 de julho de 2013
Cidade: São Paulo / SP
Horário: 8:30 as 18h (e mais o happy hour após as palestras)
Inscrições até 9 de julho via
formulário
Espero a inscrições de vocês e nos vemos no dia 26 !!
Abraços
+Neto Marin
Desenvolvendo um jogo para a web usando Google Play game services
02/07/2013
Olá! Eu sou
+Bruno Oliveira
e estou no Google há cerca de dois anos e meio. Trabalhei com Android no Brasil por um tempo e agora estou na equipe de jogos do Android em Mountain View, California.
No Google I/O esse ano, lançamos uma série de APIs para jogos (
Google Play game services
). Essas APIs multi-plataforma permite integrar
sign-in
,
achievements
,
leaderboards
e
cloud save
em jogos para Android, iOS e para a web. Nesse post, vamos dar uma introdução rápida sobre como usar o Google Play game services para criar jogos na web usando HTML e Javascript.
Eu tenho um certo gosto por jogos retrô, de uma época em que cada pixel era muito importante porque o número total de pixels na tela era bem pequeno. Por esse motivo todo jogo que eu faço tem um pouco dessa influência (e também porque dizer que meus gráficos pixelados são "retrô" é uma boa desculpa para minha falta de habilidade artística!).
Como começar?
Vou usar como exemplo um jogo que escrevi recentemente, o
Firewall Defense
(esse é o momento no qual ao invés de ler o resto desse artigo, você vai acabar indo jogar o jogo, mas tudo bem, eu entendo -- mas não passe na minha frente no ranking dos
high scores
!).
Ok, vamos lá. Em primeiro lugar, temos que planejar como será o jogo. Além de planejar a parte de como jogá-lo, também temos que pensar em quais serão os
achievements
e os
leaderboards
que vamos adicionar.
No Firewall Defense, o jogador tem a missão de defender um firewall dos vírus malignos que tentarão destruí-lo. O jogador controla um retângulo branco (que, com alguma imaginação, claramente é um lançador de mísseis) usando o teclado e atira linhas brancas (que claramente são mísseis). Mas, para complicar mais as coisas, há também os pacotes de dados legítimos, que não devem ser destruídos. É importante pensar na progressão da dificuldade; um bom jogo começa fácil e progressivamente fica mais difícil. Por isso, escolhi fazer com que o ritmo de geração dos inimigos aumente conforme o jogador avança no jogo. Além disso, a velocidade dos inimigos também fica cada vez maior.
Com o
gameplay
desenhado, precisamos agora pensar onde o jogo será publicado. Uma opção prática é publicá-lo no
Google App Engine
. Foi o que fiz com o Firewall Defense. Assim, você terá uma URL para o seu jogo que será como
nome-do-jogo.appspot.com
.
Agora, vamos pensar nos
achievements
do jogo. Um
achievement
deve ser uma conquista não trivial, uma recompensa para o jogador que consegue fazer algo que exige precisão, velocidade ou determinação. Quando o jogador consegue atingir esse objetivo, dizemos que o
achievement
foi
destravado (unlocked)
. Há dois tipos de
achievement
: os normais e os incrementais. Os normais são destravados uma única vez (por exemplo "Chegar ao Nível 40"), enquanto que os incrementais exigem um certo número de passos (por exemplo "Derrotar 100 inimigos").
Alguns exemplos de
achievements
normais do Firewall Defense:
Not a disaster
: destruir um inimigo.
Cadet:
atingir uma pontuação de 1000 pontos.
Soldier:
atingir uma pontuação de 2000 pontos.
Captain:
atingir uma pontuação de 3000 pontos.
Alguns exemplos de
achievements incrementais
:
Experience - Newbie
: destruir 50 inimigos
Experience - Intermediate
: destruir 100 inimigos
Frequent Player:
jogar 20 jogos.
Serious Player:
jogar 20 jogos conseguido pontuação de pelo menos 2000 pontos em cada.
Para
leaderboards
, teremos um único, que será o de pontuações globais. Jogos mais avançados poderiam ter um
leaderboard
para cada modalidade jogo, mas como temos uma única modalidade, não precisaremos de mais de um.
Uma vez decididos os
achievements
e
leaderboards
, devemos criar o projeto no
Google Play Developer Console
:
Clique no tab de jogos (ícone de
joystick
)
Clique em
Add New Game
.
Digite o nome do seu jogo e escolha uma categoria, e clique
Continue
.
Vá para a aba
"2. Linked Apps"
Clique
"Link a web app"
Digite a URL do seu jogo. Se você está usando o Google App Engine, por exemplo, poderia ser algo como
http://nome-do-jogo.appspot.com/
(lembre de colocar a barra no final).
Clique em
Continue
Agora devemos criar um OAuth2 Client ao app. Para isso clique no botão
Authorize your app now
.
Insira seu logotipo e novamente a URL do seu jogo.
Clique em
Continue
.
Digite novamente seu hostname e clique
Create Client
.
Seu Client ID aparecerá, será algo como
123456789012.apps.googleusercontent.com
.
Guarde seu Client ID, pois você precisará dele em breve (não é necessário obter o Client Secret no nosso exemplo).
Agora temos que adicionar o seu computador local como origem Javascript. Para isso, vá para a aba
"1. Game details"
e vá para a parte mais inferior dessa tela. Você verá um título "API Console Project" e um link para o seu projeto no API Console. Clique nesse link
Uma vez no API console, clique na aba
"API Access"
e localize seu Client ID (que será o único existente). Clique em
"Edit settings..."
Na caixa "Authorized Javascript Origins", adicione as seguintes URLs, uma por linha (substituindo nome-do-jogo pela sua URL verdadeira):
http://nome-do-jogo.appspot.com
https://nome-do-jogo.appspot.com
http://localhost:8080/index.html
Clique
Update
.
Agora podemos criar os achievements e o leaderboard. Volte para o
Google Play Developer Console
, selecione o seu jogo e vá para a aba
Achievements
. Siga as instruções na interface para adicionar cada um dos
achievements
do seu jogo, prestando atenção a quais deles devem ser normais e quais devem ser incrementais.
Depois, vá para a aba
Leaderboards
e crie os leaderboards que o seu jogo usará. No meu caso, criei somente um, chamado "High Scores".
Observe que cada achievement e cada leaderboard tem um ID, que é uma string alfanumérica que parece com "Cfwj331afs3rsdkj_Gc". Copie cada uma dessas strings para um arquivo de texto para usar no passo seguinte.
Agora podemos desenvolver o jogo em HTML e Javascript. Convém colocar os IDs em constantes globais no começo do Javascript:
var gameservices = {};
// IDs (obtidos do Google Play Developer Console)
gameservices.CLIENT_ID = "123456789012.apps.googleusercontent.com";
gameservices.LEADERBOARD_ID = "CfaIhZQOW-vgzFAIQAJ";
gameservices.ACHIEVEMENTS = {
KILL_ENEMY: "CgkIhZGW-vgbEIQQAz",
MEU_ACHIEVEMENT: "CgkIhZGW-vgbEAIEBk",
MEU_OUTRO_ACHIEVEMENT: "CgkIhFDW-vgbEAIQAo"
}
...etc.
Agora, precisamos inicializar a API como descrito
nas instruções
.
$(document).ready(function() {
var po = document.createElement('script');
po.type = 'text/javascript'; po.async = true;
po.src = 'https://apis.google.com/js/client:plusone.js';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(po, s);
});
E adicionar o botão de Sign In no HTML do jogo:
<div id="sign_in_bar">
<div id="sign_in_button">
<span class="g-signin"
data-callback="onSignInResult"
data-clientid="123456789012.apps.googleusercontent.com"
data-cookiepolicy="single_host_origin"
data-requestvisibleactions="http://schemas.google.com/AddActivity"
data-scope="https://www.googleapis.com/auth/games">
</span>
</div>
</div>
Agora escrevemos a função que será chamada quando o sign-in tiver sucesso:
gameservices.onSignInResult = function(authResult) {
if (authResult['access_token']) {
$('#sign_in_bar').hide(); // esconde o botão de sign-in
gameservices.signedIn = true;
// carrega a API:
gapi.client.load("games", "v1", gameservices.onApiLoaded);
}
else if (authResult['error']) {
// sign in falhou.
gameservices.signedIn = false;
$('#sign_in_bar').show(); // mostra o botão de sign-in
}
}
A função onApiLoaded será chamada quando a API estiver pronta para usar:
gameservices.onApiLoaded = function() {
// podemos começar o jogo!
}
Agora podemos começar o jogo!
Durante o jogo, quando quisermos enviar uma pontuação para o servidor, basta fazer a seguinte chamada:
var score = ...; // pontuação do jogador
if (gameservices.signedIn) {
var req = gapi.client.games.scores.submit({
leaderboardId: gameservices.LEADERBOARD_ID, score: score });
req.execute();
}
Durante o jogo, quando desejarmos destravar um achievement, podemos fazer a seguinte chamada:
var achId = ... // ID do achievement aqui.
if (gameservices.signedIn) {
// cache local, para evitar chamar a API repetidamente:
if (!gameservices.achievements[achId].unlocked) {
gameservices.achievements[achId].unlocked = true;
var req = gapi.client.games.achievements.unlock({ achievementId: achId });
req.execute(function(resp) {
if (resp) {
gameservices.achievements[achId].unlocked = true;
if (resp.newlyUnlocked) {
// mostra popup para o usuário dizendo que o achievement foi
// destravado (por exmeplo, um <div> semitransparente)
// ...
}
}
});
}
}
De maneira semelhante, para incrementar um achievement incremental, podemos fazer desta forma:
var steps = ... // calcular quantos passos incrementar;
var achId = ... // ID do achievement aqui.
if (gameservices.signedIn) {
var req = gapi.client.games.achievements.increment({
achievementId: achId,
stepsToIncrement: steps
});
req.execute(function(resp) {
if (resp && resp.newlyUnlocked) {
ach.unlocked = true;
// mostrar o popup de "achievement destravado" para o usuário
}
}
});
}
Não esqueça de fornecer um botão de sign-out para que o usuário possa desconectar sua conta do jogo (implementado
conforme instruções
):
function desconectaUsuario() {
if (!gameservices.signedIn) return;
var access_token = gapi.auth.getToken();
var revokeUrl = 'https://accounts.google.com/o/oauth2/revoke?token=' +
access_token.access_token;
gameservices.signedIn = false;
// Perform an asynchronous GET request.
$.ajax({
type: 'GET',
url: revokeUrl,
async: false,
contentType: "application/json",
dataType: 'jsonp',
success: function(nullResponse) {
gameservices.onSignInResult(false);
},
error: function(e) {
console.log(e);
alert("Failed to disconnect. You can also do this manually at " +
"https://plus.google.com/apps.");
}
});
}
Espero que esse post tenha sido útil para mostrar um pouco sobre como a API web do Google Play game services funciona. Para informações mais detalhadas, não deixe de consultar a
documentação das API REST
e a
documentação geral
sobre Google Play game services.
Um abraço! Ou, numa saudação melhor,
"Live long and develop!"
+Bruno Oliveira
Developer Relations, Android
Labels
+page
1
20th Century Fox
1
A/B
1
Action
1
Action Console
1
Actions
3
Actions Console
1
Actions on Google
1
ActiveQA
1
Adaptive Battery
1
AddThis
1
ADK
1
ADL
1
Admin do Firebase
1
AdMob
6
Ads
2
AdWords
1
AdX
1
AI
4
algoritmo
1
AMP
6
AMP Linker
1
AMP Project
1
Analytics API
1
Android
58
Android 8.0 Oreo
1
Android 8.1
1
Android ADK
2
Android API
2
Android App Bundle
1
Android Dev Summit
1
Android Developers
23
Android Marshmallow
1
Android N
3
Android Nougat
2
Android P
3
Android P Beta 2
1
Android Preview
1
Android SDK
1
android studio
8
Android Studio 3.2
1
android wear
2
AndroidDev
6
AndroidX
1
Announcement
2
AoG
1
AoGDevs
1
api
15
API 25
1
API 28
1
APIs
4
Aplicativos
4
app
1
App Engine
1
Apple
1
apply
1
Apps
9
AR
1
ARCore
3
artificial intelligence
1
AsyncTask
1
AUC
1
AutoAugment
1
Avro
1
Awareness API
1
Biblioteca do Google
1
Big Data
1
BigQuery
1
BiometricPrompt
1
bitcode
1
Borg
1
Bot
1
bytecode Dalvik
1
C++
1
câmera
1
CameraDevice
1
Canal Beta
1
canary
1
câncer de próstata
1
Capital One
1
Cast
1
CFI
1
Chrome
8
Chrome 68
1
Chrome Dev Summit
1
Chrome DevTools
1
Chrome OS
2
Chromecast
1
Chromium
2
CI
1
CLI
1
Cloud
6
Cloud Computing
1
Cloud Console
1
Cloud Dataflow
1
Cloud Developers
2
Cloud DLP
1
Cloud Firestore
1
Cloud Messaging
1
Cloud ML Engine
1
Cloud Scheduler
1
Cloud Shell
1
Cloud Source Repositories
1
Cloud Spanner
2
CodeSchool
1
código aberto
2
Compute Engine
1
ConfigMap
1
Container Builder
1
CPU
2
Crash Reporting
2
Crashlytics
3
credential api
1
criptografia
1
CSS
3
CSS Grid Layout
1
CSV
1
CTA
1
Curitiba
1
Dart API
1
Data Validation
1
DBAs
1
DCGAN
1
Desenvolvedores Google
11
Desenvolvimento
3
DevBusBrasil
1
DevBytes
2
Developer Bus
1
Developer Preview
1
developer quiz
1
DevFest
3
DevFest16
1
DevFest18
1
DevFestW
1
DFP
2
Dialogflow
1
DLP
1
DLS
1
documentação
1
Dragon Ball Legends
1
E2E
1
eclipse
1
end-to-end-encryption
1
Estimator
1
Estimators API
1
estudantes
1
Eventos
15
Famílias multilíngue
1
FCM
2
Featured
1
Firebase
24
Firebase Analytics
6
Firebase App Indexing
2
Firebase Cloud Messaging
5
Firebase Crashlytics
2
Firebase Dynamic Links
3
Firebase In-App Messaging
1
Firebase Invites
2
Firebase Lab
1
Firebase Links Dinamicos
1
Firebase Notifications
3
Firebase Remote Config
1
Flutter
3
FRR
1
G+
1
game
1
game dev
3
Games
2
games services
1
GCloud
3
GCM
1
GCP
7
GDD
7
GDE
1
GDEs
1
GDG
12
GDG Curitiba
1
GDG Floripa
1
GDG OpenSampa
1
GDG Porto Alegre
1
GDG Recife
1
GDG SP
3
GDGs
1
GDL
1
Git
1
GitHub
1
GNMT
1
Google
3
Google Ad Manager
1
Google AI
1
Google Analytics
1
Google Assistant
1
Google Assistente
3
Google Brain
2
Google Cast SDK
1
google clou
1
Google Cloud
17
Google Cloud Certified
1
Google Cloud Healthcare API
1
Google Cloud Platform
3
google code-in
1
Google Developer Advocate
1
Google Developer Expert
1
Google Developers
11
Google Fotos
1
Google I/O
6
Google Play
16
Google Play Games services
1
Google Play Protect
1
Google Play Services
4
Google Slides
1
Google Speech
1
google summer of code
1
Google+
2
Google+ sign-in
1
Googlers
1
GPU
2
GSuites
1
GUI
1
Hackathon
1
Hangouts
1
Hangouts Chat
1
HDR
1
High Quality Apps
2
HTML5
6
HTTP
3
HTTPS
2
HttpURLConnection
2
I/O
1
IA
2
Illusive Images
1
ImageReader
1
In-App Messaging
1
Inglês
1
Instant Apps
1
inteligencia artificial
1
IntelliJ REPL
1
IntentService
1
Interoperabilidade
1
IO Extended
1
IO13
1
iOS
9
IU
2
Java
1
Java 8
1
javascript
2
JPEG
1
JSON
2
Kaggle
1
kernel
1
Keyboard Map API
1
Knowledge Connectors
1
Kotlin
6
Kotlin da Udacity
1
Kubernetes
5
LangID
1
Launchpad
1
launchpad accelerator
2
Learning Augmentation
1
LEGO
1
Listas
1
ListFragment
1
LLVM
1
LTO
1
Machine Learning
2
Meetup
2
mensagens
1
Mentoria
1
Messaging
2
microsserviços
1
ML
2
ML Kit
1
Mobile
3
Mobile Ads SDK
1
Monetização
3
Monetize
3
MySQL
1
Native
1
Navigation Architecture Component
1
NES
1
Neto Marin
2
Next Level Apps
2
Next Level Tips
2
NNLM
1
Node.js
2
Notificações
1
novembro azul
1
Number Genie
1
Nuvem Profissional
1
OAuth
2
OAuth2
1
Open Images Extended
1
open source
3
Options Menu
1
Options Menu virtual
1
Orkut
2
Payment Request
1
pesquisa
1
PHA
1
Phone Gateway
1
PII
1
pixel
1
Play Academy
1
Play Console
1
Play Services
1
Playtime 2018
1
plug-in AMP
1
Porto Alegre
1
Preact
1
PRIV
1
program
1
progressive web apps
2
Push Notification
2
Python
1
QA
1
RA
2
Raspberry Pi
1
RBDMS
1
React
1
recording apis
1
remarketing
1
Remote Config
2
research
4
ResultReceiver
1
reward
1
RNN
2
Robolectric 4.0
1
RV
1
Sceneform
1
SDK
4
SDK Manager
3
Security
2
Server
1
service worker
1
sign-in
1
Sliding Tabs
1
Smartronix
1
social
6
Spark
1
SRE
1
Stack
1
Stack Overflow
1
Startups
2
Storage
2
story
1
Support Library
1
SurfaceView
1
Svelte
1
switch
1
Tag Manager
1
Tag Manager 360
1
tensorflow
5
TensorFlow Hub
2
TensorFlow Lite
1
TensorFlow Transform
1
Test Lab
2
Testes
1
TF Hub
2
tf.keras
1
TFDV
1
TFX
1
TI essencial
1
toolkit
1
tradução
1
TTS
1
Udacity
1
Universal Apps
1
Universal Sentence Encoder
1
user experience
1
ux
1
VectorDrawable
1
Velostrata
1
Volley
1
vr
2
vulnerabilidades
1
vulnerabilidades do Google
1
vulnerability
1
web
2
web dev
2
WebKit
1
webservice
3
when
1
WordPress
1
WorkerDOM
1
YouTube
4
YouTube API
1
YUV
1
Zomato
1
Archive
2022
nov.
out.
jul.
jun.
mai.
abr.
mar.
fev.
jan.
2021
dez.
nov.
out.
set.
ago.
jul.
jun.
mai.
abr.
mar.
fev.
jan.
2020
dez.
nov.
out.
set.
ago.
jul.
jun.
mai.
abr.
mar.
fev.
jan.
2019
dez.
nov.
out.
set.
ago.
jul.
jun.
mai.
abr.
2018
dez.
nov.
out.
set.
ago.
jul.
jun.
mai.
abr.
mar.
fev.
2017
ago.
jul.
jun.
mai.
abr.
mar.
jan.
2016
dez.
nov.
out.
set.
ago.
jul.
mai.
mar.
2014
jul.
jun.
abr.
mar.
fev.
2013
dez.
nov.
out.
set.
ago.
jul.
jun.
mai.
mar.
fev.
jan.
2012
nov.
jul.
jun.
mai.
abr.
mar.
2011
nov.
set.
ago.
jul.
jun.
Feed
Follow @googledevbr