No podcast do Kubernetes, você acessa um resumo semanal de notícias da nuvem nativa, acompanhado por uma entrevista aprofundada com um membro da comunidade. Depois de publicar nosso 50º e último episódio de 2019, é hora de relembrar alguns dos nossos momentos favoritos do ano.
O código aberto chega a todos os cantos do mundo e ficamos surpresos com todos os ouvintes que participaram globalmente da comunidade de podcast. De vez em quando, enviamos adesivos por correio: eles foram enviados a dezenas de países em quase todos os continentes. E ainda esperamos ter ouvintes na Antártica! Agradecemos ao nosso maravilhoso público, que nos atualizou sobre o quanto estamos ajudando as pessoas a se conectar e a aprender sobre a comunidade do Kubernetes. Somos verdadeiramente gratos a você por ouvir o que temos a dizer.
Gostaríamos de compartilhar alguns dos nossos episódios mais populares de 2019:
Histórias de fracasso do Kubernetes, com Henning Jacobs (episódio 38): Para aumentar as chances de sucesso, é importante aprender com as falhas. Depois de experimentar alguns fracassos, Henning foi inspirado a começar a coletar as histórias e outras pessoas.
Ingress, com Tim Hockin (episódio 41): Orgulhoso pai do projeto Kubernetes, Tim é um googler de 15 anos e criador de grandes partes da pilha de rede e armazenamento do Kubernetes, uma extensão óbvia dos anos de trabalho no kernel do Linux.
Ao vivo no Cloud Next, com Eric Brewer (episódio 49): No nosso primeiro show ao vivo, Eric se juntou a nós para falar sobre a história dele na construção de infraestrutura para pesquisa, o teorema da PAC e o anúncio do Kubernetes ao mundo.
KeyBank, com Gabe Jaynes (episódio 51): Os bancos nem sempre são terminais e mainframes. Os inteligentes, como o KeyBank, são Kubernetes e mainframes! A equipe de Gabe trabalhou com o Google Cloud como parceiro de design.
Istio 1.2, com Louis Ryan (episódio 58): Louis trabalha na infraestrutura de API e na malha de serviços do Google há 10 anos. Ele falou sobre a história do Istio, comentou as decisões de design e revelou suas metas futuras.
Ataque e defesa do Kubernetes, com Ian Coldwater (episódio 65): Aprenda a proteger sua infraestrutura de contêineres com Ian: ele é pago para atacar o sistema e um palestrante conhecido da conferência sobre o assunto.
CRDs, API Machinery e extensibilidade, com Daniel Smith (episódio 73): Outro colaborador de longa data do Kubernetes, Daniel ingressou no projeto antes da abertura de código e lidera as equipes de código aberto e do Google que criam CRDs e outros recursos de extensibilidade.
Kubernetes 1.17, com Guinevere Saenger (episódio 83): Nosso penúltimo episódio do ano é uma entrevista com o líder da equipe de lançamento do novo Kubernetes 1.17. Saiba como Guinevere passou de pianista de concertos a engenheiro de software e liderou uma equipe de mais de 30 pessoas para produzir a versão final do Kubernetes de 2019.
Se você tem uma folga durante as férias, por que não se inscrever e aproveitar um ou vários episódios? Para quem quiser outra opção além do áudio, também oferecemos uma transcrição na página de cada episódio em kubernetespodcast.com.
Faremos uma pausa de duas semanas durante o período de férias, mas você voltará a nos ouvir em janeiro!
O Brasil é uma das economias mais fortes da América Latina e, com mais de 200 milhões de cidadãos, também é um do países mais populosos.
Neste post, apresentaremos algumas dicas para você entrar no mercado de jogos dinâmico do Brasil. Quão dinâmico é o mercado? De acordo com o Newzoo, existem quase 80 milhões de jogadores no Brasil, que gastaram US$ 1,5 bilhão em 2018 com dispositivos móveis, e esse número vem crescendo mais rapidamente. Isso faz do Brasil o 13º maior mercado de jogos do mundo.
Uma pesquisa com consumidores do Google constatou que em 2018 83% dos brasileiros relataram jogar um jogo no dispositivo móvel algumas vezes por semana. A pesquisa também revelou que os jogadores brasileiros têm uma atitude muito positiva em relação aos jogos: eles não os percebem como uma distração, mas algo que agrega valor à vida dos jogadores. Essa combinação de crescimento do mercado e atitudes dos jogadores significa um grande potencial para desenvolvedores de jogos no Brasil. No entanto, a monetização de jogos para dispositivos móveis ainda é imatura.
Em 2018, a equipe do Google Play encomendou pesquisas envolvendo mais de 200 consumidores brasileiros conectados. O Google também realizou uma pesquisa com consumidores com 3 mil entrevistados. Usando as descobertas desta pesquisa, a equipe do Google Play identificou sete ações para você adaptar seus jogos e mensagens, aumentando a probabilidade de alcançar o sucesso no Brasil.
Os dados do Google Play mostram que os gêneros de jogos mais populares no Brasil em termos de receita são ação, estratégia, dramatização e gêneros casuais. Dentre essa seleção, há um crescimento da popularidade de gêneros multijogador em tempo real estão, assim como em jogos mais casuais com meta-recursos, como guildas, ligas e elementos narrativos.
No Brasil, as conexões sociais são extremamente importantes, e os jogos podem ser um caminho para essa interação, seja por meio de jogos multijogador massivos on-line ou pela conversa sobre diferentes títulos. Curiosamente, 38% das pessoas pesquisadas gastaram dinheiro em títulos para dispositivos móveis que podem ser jogados com amigos e familiares ou sobre ou para conversar sobre eles com outras pessoas. Ao contrário de muitos mercados maduros, 28% dos brasileiros se reúnem no mesmo espaço físico para jogar o mesmo título, cada um no próprio dispositivo.
Avalie como você pode modificar seu jogo e aumentar sua comunidade para aprimorar essas experiências sociais.
Embora o Brasil tenha uma tradição coletivista, a cultura do país vem se tornando mais focada nas necessidades e desejos individuais. Por isso, decisões sobre lazer são cada vez mais vistas como uma escolha pessoal, e momentos de desconexão individual são essenciais. A pesquisa do consumidor do Google sugeriu que 87% dos jogadores veem os jogos para dispositivos móveis como uma maneira de se desconectar do trabalho ou de estresses da vida pessoal.
Para aproveitar esse sentimento, principalmente em jogos casuais, enfatize o tema do bem-estar emocional como parte da sua promoção: foco no humor, desconexão, liberação de estresse e reenergização.
O interesse pela personalização está ganhando força no Brasil, ao contrário de outros mercados, como o Japão, onde esse perfil de consumo já é popular há um tempo. Os jogadores estão buscando novas maneiras de se sentirem únicos, personalizando o jogo para expressar quem são. A recente pesquisa de consumidor do Google constatou que 38% das pessoas usaram compras no app para personalizar a experiência. A capacidade dos jogadores de dar aos personagens e cenários de jogo uma aparência e sensação distintas é vista como um presente e um investimento duradouro que as pessoas estão dispostas a fazer.
Considere aprimorar suas opções de personalização com recursos que refletem os gostos brasileiros. Além disso, enfatize a personalização no marketing e nas comunicações do seu jogo e faça com que as pessoas se sintam valorizadas com conteúdo especial.
Muitos brasileiros têm um cronograma para jogar em dispositivos móveis. Em particular, ele planejam o que vão jogar no dia seguinte antes de irem para a cama e alinham conquistas para acordar como um estímulo matinal.
O uso de notificações oportunas, que reforça o horário dos jogo dos usuários, demonstrou impulsionar o engajamento e os gastos.
Menos renda disponível e uma economia em recuperação significa que, para muitos brasileiros, o dinheiro é limitado, levando à sensibilidade dos preços. De acordo com a pesquisa do consumidor do Google, 62% dos brasileiros pensaram em gastar dinheiro em jogos premium ou em compras no jogo, mas consideraram o custo muito alto e decidiram concluir a transação.
Os brasileiros adoram fazer uma compra inteligente e esclarecida: 30% dos consumidores que responderam à pesquisa destacaram a importância de obter uma promoção/oferta em um jogo para dispositivos móveis.
Localize seus preços para corresponder à realidade brasileira e torne-os bens tangíveis, como uma lata de refrigerante ou uma xícara de café. Isso permitirá que os usuários avaliem melhor o custo benefício na hora de comprar seus produtos. Considere verificar os preços a cada atualização do app para garantir que você esteja dando as melhores informações aos clientes em potencial. Além disso, procure criar ofertas inovadoras para atrair jogadores, como promoções por tempo limitado, para os “primeiros 100 jogadores” e oportunidades semelhantes.
Segundo a Newzoo, 59% da população on-line do Brasil assiste a conteúdo de vídeo de jogos. O Google também descobriu que os jogadores brasileiros de dispositivos móveis se envolvem com o YouTube, fóruns e outros canais, para melhorar a jogabilidade, e investem tempo significativo nisso. O Brasil sempre esteve entre os países que passam mais tempo assistindo aos vídeos do YouTube, e muito do que eles assistem é conteúdo local.
Aproveite esse comportamento, vinculando conteúdo do YouTube sobre seu jogo, criando tutoriais e fazendo parceria com criadores locais para promover o envolvimento. Criar um tutorial em vídeo mostrando aos jogadores como aproveitar ao máximo os produtos adquiridos pode ser muito vantajoso. Esse tutorial pode ajudar a combater o medo de remorso do comprador ou a tomada de uma decisão errada, a principal barreira aos gastos mencionados por todos os consumidores em nossa pesquisa.
Segundo dados internos do Google, mais de 40% dos dispositivos na América Latina têm menos de 1 GB de armazenamento gratuito. Essa falta de espaço significa que os jogadores nem sempre podem fazer o download de um jogo por impulso, já que precisam considerar a quantidade de memória que será ocupada nos telefones. Na pesquisa do Google, 36% consideraram comprar um jogo premium, não tinham muito armazenamento gratuito no telefone e eram menos propensos a pagar por isso.
Mantenha seu APK pequeno para facilitar a vida dos usuários. O Google Play possui ferramentas, como os pacotes de apps e a Dynamic Delivery , que podem ajudar a reduzir o tamanho do APK.
Apesar de a monetização de jogos para dispositivos móveis estar em estágio inicial, os brasileiros estão dispostos a pagar por conteúdo digital como Netflix e Spotify. Em 2016, uma pesquisa da RBC Capital Markets relatou que 57% dos usuários brasileiros pesquisados eram assinantes da Netflix. Isso indica que há uma oportunidade significativa para os desenvolvedores de jogos no Brasil, desde que se adaptem ao mercado.
Felizmente, essas sete dicas forneceram uma visão geral mais aprimorada do mercado e algumas orientações sobre como alcançar o sucesso com seus jogos no Brasil. Por fim, lembre-se de continuar fazendo testes, já que as necessidades e aspirações dos seus jogadores sempre estarão mudando.
Para ver mais informações sobre as oportunidades no mercado brasileiro, consulte o tópico Pense com o Market Finder do Google.
Fonte: Pesquisa do consumidor do Google, dezembro de 2018
Você pensa em lançar jogos no Brasil? Comente abaixo ou poste um tweet usando a hashtag #AskPlayDev. Você receberá uma resposta do nosso perfil @GooglePlayDev, onde compartilhamos regularmente notícias e dicas sobre como ter sucesso no Google Play.
Nesta série de postagens, apresentaremos as animações no Flutter e mostraremos como criar animações simples e complexas para o app do Flutter.
Esta postagem também está disponível em vídeo, se preferir.
Esta primeira postagem mostrará o modo mais direto para adicionar animações a seu aplicativo. Não é preciso ser um especialista em animações ou conhecer as terminologias dessa área para adicioná-las a um aplicativo. Aos poucos, introduziremos alguns widgets e termos que ajudarão você a dar os primeiros passos com as animações, além de fornecer contexto para as próximas postagens da série.
O Flutter possui uma série de widgets que são versões animadas de widgets existentes que provavelmente já são usados no seu aplicativo, como a versão AnimatedContainer do widget Container e a versão AnimatedPositioned do widget Positioned.
Esses widgets animam automaticamente as alterações nas propriedades. Ao recriar o widget com novos valores de propriedade, como um setState do StatefulWidget, o widget gerencia o encaminhamento da animação do valor anterior para um novo.
Esses widgets são chamados de widgets implicitamente animados. Eles geralmente são o primeiro recurso que você busca quando precisa adicionar animações ao aplicativo. Eles permitem adicionar animações sem incluir outras complexidades.
Veremos em detalhes como usar um desses widgets implicitamente animados para adicionar animações ao aplicativo.
Neste aplicativo, há um contêiner e um botão. Quando o botão é pressionado, o setState é chamado e o contêiner é recriado com um novo valor de largura. Observe que o contêiner muda a própria largura imediatamente, sem qualquer animação.
@overrideWidget build(BuildContext context) { return Column( mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ Container( width: _bigger ? 100 : 500, child: Image.asset('assets/star.png'), ), RaisedButton( onPressed: () => setState(() { _bigger = !_bigger; }), child: Icon(Icons.star), ), ], );}
É possível adicionar animações a este aplicativo trocando o widget Container por um widget AnimatedContainer e especificando a duração da animação.
AnimatedContainer( width: _bigger ? 100 : 500, child: Image.asset('assets/star.png'), duration: Duration(seconds: 1),),
Agora, após pressionar o botão, o contêiner cria gradualmente a animação do valor de largura anterior para o novo.
O processo de animação entre o valor anterior e o novo é chamado de interpolação. O AnimatedContainer gerencia a interpolação das propriedades entre os valores anteriores e novos sempre que forem modificados.
Isso se aplica a todas as propriedades do AnimatedContainer, incluindo, por exemplo, a decoração. É possível modificar o gradiente de uma decoração, e o AnimatedContainer gerenciará a interpolação entre o gradiente antigo e o novo:
AnimatedContainer( decoration: BoxDecoration( gradient: RadialGradient( colors: [Colors.purple, Colors.transparent], stops: [ _bigger ? 0.2 : 0.5, 1.0]) ),),
Os widgets implicitamente animados, como o AnimatedContainer, possuem duas propriedades que podem ser usadas para controlar o comportamento da animação. É possível controlar quanto tempo leva para interpolar o novo valor, configurando a propriedade duração.
AnimatedContainer( width: _bigger ? 100 : 500, child: Image.asset('assets/star.png'), duration: Duration(seconds: 5),),
Neste exemplo, configuramos a animação para ter uma duração mais longa.
Também é possível controlar o modo como o widget interpola do valor antigo para o novo usando uma Curva. As curvas controlam a taxa de alteração ao longo do tempo e podem ajudar a tornar as animações mais realistas. Neste exemplo, mudamos a curva do padrão linear para uma curva quíntica mais exagerada:
AnimatedContainer( width: _bigger ? 100 : 500, child: Image.asset('assets/star.png'), duration: Duration(seconds: 1), curve: Curves.easeInOutQuint,),
Há diversas curvas integradas disponíveis para dar um toque especial às animações. Além disso, é possível definir curvas personalizadas. As curvas inclusive não precisam ser sequenciais, como a curva SawTooth.
Veja este exemplo de uma curva personalizada chamada SineCurve, que usa a função de seno para criar uma curva que salta:
class SineCurve extends Curve { final double count; SineCurve({this.count = 1}); @override double transformInternal(double t) { return sin(count * 2 * pi * t) * 0.5 + 0.5; }}
Aqui, a SineCurve faz com que a estrela salte para cima e para baixo:
O Flutter oferece widgets implicitamente animados, que são versões animadas de widgets comuns. É possível controlar o modo como esses widgets animam o aplicativo usando durações e curvas.
O AnimatedContainer é um widget implicitamente animado com eficácia reconhecida devido às inúmeras propriedades que afetam a aparência. Além disso, todas essas propriedades são interpoladas automaticamente.
Todos os outros widgets implicitamente animados também são eficazes, com opções fáceis de usar para adicionar animações sem acrescentar aspectos complexos.
Além disso, não há necessidade de usar esses widgets em um StatefulWidget nem setState. Você pode usar StreamBuilder e FutureBuilder para acionar animações, como neste exemplo.
Os widgets implicitamente animados são sua primeira escolha para adicionar animações, mas isso não é tudo que o sistema de animação do Flutter tem a oferecer. Nas próximas postagens da série, exploraremos as camadas mais inferiores do sistema de animação do Flutter e mostraremos como criar animações avançadas.
Para outras informações, acesse flutter.dev.
Há alguns anos, o Kubernetes deu o que falar ao oferecer ao mundo o gerenciamento de aplicativos em contêineres. Agora, muitos de nós usam esse recurso na produção para implantar e gerenciar aplicativos em escala. Ao longo desse caminho, reunimos dicas e práticas recomendadas sobre o uso do Kubernetes e do Google Kubernetes Engine (GKE) para você aproveitar ao máximo essa funcionalidade. Veja algumas das postagens mais populares do nosso site sobre a implantação e utilização do Kubernetes.
Para saber ainda mais sobre como usar o GKE, confira nossas postagens do blog mais recentes sobre contêineres e o Kubernetes. Quer se atualizar? Aproveite a promoção de um mês da especialização Arquitetura com GKE no Coursera em http://goo.gle/k8s5 e receba sua certificação. A oferta é válida até 31/01/2020, enquanto houver vagas.