Postado por Jeanine Banks, VP e gerente geral do Developer X e líder de relações com o desenvolvedor
É uma grande alegria estar de volta ao Shoreline Amphitheatre para o Google I/O, esta semana. E é um prazer poder estar com todos vocês, de várias partes do mundo, tanto virtual quanto presencialmente.
O I/O é a nossa declaração de amor para vocês, desenvolvedores. Os desenvolvedores são o motor que ativa a revolução da informação. Mas, mais do que isso, são os desenvolvedores que transformam a informação em ideias e códigos que mudam para melhor a forma como aprendemos, trabalhamos, nos comunicamos e nos divertimos.
Algumas décadas atrás, criar uma experiência digital era publicar um site estático e alcançar milhares de pessoas nos computadores delas. Hoje, isso significa uma experiência extremamente rápida e interativa em vários navegadores, computadores, telefones, tablets, assistentes virtuais, TVs, consoles de jogos, carros, relógios e muito mais. As pessoas querem receber novos recursos mais rápido do que nunca, e sempre com a certeza de que estamos respeitando e mantendo os mais altos padrões de privacidade e segurança.
Para ajudar você a lidar com a complexidade e as expectativas cada vez mais altas, queremos levar a simplicidade para os desafios que você enfrenta. Esta semana, no I/O, compartilhamos o início de um longo trabalho para conectar nossos produtos para desenvolvedores de forma que eles funcionem ainda melhor juntos e também para fornecer mais orientações e melhores práticas que ajudem a otimizar todo o fluxo de trabalho de vocês. Estes são apenas alguns destaques dos anúncios feitos na palestra de abertura para desenvolvedores:
A nova API ARCore Geospatial, que permite inserir conteúdo de RA em locais do mundo real em 87 países sem a necessidade estar fisicamente presente. O Modern Android Development para as melhores experiências em qualquer tela, incluindo o novo suporte do Jetpack Compose ao WearOS e a tablets, um upgrade para o Android Studio com o LiveEdit e muito mais. O novo painel Performance Insights do Chrome DevTools e o suporte do WebAssembly a linguagens de programação gerenciadas, como Dart, Java e Kotlin, que chega em breve. O Flutter 3, nosso framework de IU multiplataforma de código aberto, agora dá suporte a seis plataformas para a criação de aplicativos lindos com uma única base de código. O Firebase Crashlytics totalmente integrado ao Android Studio, ao Flutter e ao Google Play para geração de relatórios de erros consistentes e acionáveis. Os Jobs do Cloud Run para executar a transformação de dados em lote, tarefas administrativas ou jobs programados, e o AlloyDB para PostgreSQL, nosso novo banco de dados relacional totalmente gerenciado que é quatro vezes mais rápido do que o PostgreSQL padrão para cargas de trabalho transacionais. Uma ótima pesquisa sobre codificação assistida por IA e o desafio AI for Code (AI4Code) no Kaggle em parceria com a X, the moonshot factory.
Assista à palestra de abertura para desenvolvedores ou este vídeo de resumo para saber mais sobre as novidades deste ano em muitas de nossas plataformas, incluindo Android, ARCore, Chrome OS, Cloud, Flutter, Firebase, Google Play, Kaggle, aprendizado de máquina e plataforma Web:
Seja para criar seu criar seu primeiro app, expandir as capacidades de seus produtos ou utilizar o aprendizado de máquina com mais facilidade e responsabilidade, esperamos que você se inspire com o amplo espaço à sua frente para transformar ideias em realidade e melhorar as vidas das pessoas.
Postado por Florina Muntenescu e Huyen Tue Dao, anfitriões do #TheAndroidShow
Está chegando mais um episódio do #TheAndroidShow, e você pode assistir aqui! Nesse episódio, mostraremos o que acontece nos bastidores do Jetpack Compose, do Android 13 e de todas as atualizações para tablets Android. Se você ainda não fez isso, ainda há tempo para enviar suas perguntas sobre tablets Android para a equipe pelo #AskAndroid. Nossa equipe de especialistas estará pronta para responder às suas dúvidas ao vivo!
Nossa primeira discussão no #TheAndroidShow será sobre o Jetpack Compose, o kit de ferramentas moderno de IU nativa do Android. No mês passado, lançamos a versão 1.1 do Jetpack Compose, que traz novos recursos como o tratamento de foco aprimorado, o dimensionamento de alvos de toque, o armazenamento em cache do ImageVector e o suporte à extensão de overscroll do Android 12. O Compose 1.1 também passa várias APIs anteriormente experimentais para a versão estável e oferece suporte a versões mais recentes do Kotlin. No #TheAndroidShow, você conhece os bastidores do mundo das animações com uma das engenheiras que ajuda a criá-las, Doris Liu. Depois, o pessoal do Twitter conta como o Compose os ajuda a criar novos recursos em metade do tempo!
Em seguida, passamos ao mundo dos tablets, logo depois dos grandes anúncios da semana: lançamos oficialmente a atualização com recursos 12L no AOSP, e ela será lançada para todos os dispositivos Pixel com suporte nas próximas semanas. Existem mais de 250 milhões de dispositivos Android de tela grande, e o 12L torna o Android 12 ainda melhor nos tablets e inclui atualizações, como uma nova barra de tarefas que permite aos usuários arrastar e soltar apps instantaneamente no modo de tela dividida, novos layouts de tela grande na aba de notificações e na tela de bloqueio e modos de compatibilidade aprimorados para apps. Você pode saber mais aqui.
Ainda este ano, o 12L passará a ser disponibilizado em atualizações planejadas para tablets e dispositivos dobráveis das marcas Samsung, Lenovo e Microsoft. Então, este é o momento para garantir que os apps estejam preparados para isso. Recomendamos testar os apps no modo de tela dividida com janelas de vários tamanhos e em diferentes orientações e verificar as novas mudanças do modo de compatibilidade, caso elas se apliquem. Saiba mais sobre o 12L para desenvolvedores aqui.
Vemos as telas grandes como uma superfície essencial no futuro do Android, e continuamos investindo para fornecer a você as ferramentas necessárias para criar ótimas experiências para tablets, Chromebooks e dispositivos dobráveis. Saiba mais sobre como começar a otimizar para telas grandes. E não deixe de conferir nossos recursos de telas grandes para desenvolvedores.
Concluímos a programação com uma conversa com a diretora de relacionamento com o desenvolvedor Android, Maru Ahues Bouza, falando sobre o Android 13 e também sobre alguns dos temas mais amplos que você verá sobre o Android ainda este ano.
Tudo isso está acontecendo agora mesmo no #TheAndroidShow - junte-se a nós no YouTube!
Postado por Juan Sebastian Oviedo, gerente de produtos sênior
Hoje no Google I/O 2022, anunciamos um ótimo conjunto de novos recursos disponíveis no Android Studio Dolphin Beta e Electric Eel canário, ambos acessíveis por download. Vocês nos disseram que queriam ser mais produtivos durante a criação de apps Android, então nos concentramos em melhorias que tornam a experiência de desenvolvimento mais rápida e informativa.
Na versão Android Studio Dolphin, é possível encontrar os seguintes recursos e melhorias que podem começar a ser usados no canal Beta, que está próximo da qualidade estável:
Para conhecer recursos ainda mais inovadores, você pode dar uma olhada na versão Android Studio Electric Eel no canal canário:
Esses recursos serão promovidos para canais mais estáveis assim que recebermos o feedback de vocês e fizermos melhorias. Então, experimente-os!
Para ver todos os novos recursos em ação, assista à sessão What’s new in Android Developer Tools.
Segue uma lista dos principais novos recursos e melhorias do Android Studio Dolphin:
Coordenação de animações do Compose
Anotações para várias visualizações
Contagens de recomposições do Compose
Assistente de pareamento do emulador do Wear OS
Barra de ferramentas lateral do emulador do Wear OS
Novos tipos de configuração de execução/depuração do Wear OS
Logcat V2
Dispositivos gerenciados pelo Gradle
Segue uma lista dos principais novos recursos e melhorias do Android Studio Electric Eel:
LiveEdit no emulador
LiveEdit na visualização
Insights do Google Play SDK Index
App Quality Insights do Firebase Crashlytics
Emulador redimensionável
Inspeção visual
Pareamento de dois Android Emulators usando o Bluetooth emulado
Espelhamento de dispositivos
Em resumo, estes são os novos recursos e melhorias disponíveis no Android Studio Dolphin Beta, de qualidade quase estável:
Jetpack Compose
Wear OS
Ferramentas de desenvolvimento
Estes recursos e melhorias novíssimos estão disponíveis no Android Studio Electric Eel canário:
Google Play e Firebase
Telas grandes
O Android Studio Dolphin Beta e o Electric Eel canário estão disponíveis para download. Você pode instalá-los lado a lado com a versão estável atual do Android Studio seguindo estas instruções. A versão Beta tem uma qualidade quase estável, mas ainda pode haver bugs. Por isso, se você encontrar algum problema, avise-nos para que possamos corrigi-lo. Da mesma forma, se você encontrar um problema ou tiver algum feedback sobre os recursos da versão canário, fale conosco.
Seu feedback sobre problemas e suas solicitações de recursos são muito importantes para nós. Você pode seguir a equipe de desenvolvimento do Android Studio no Twitter e no Medium.
Veja mais detalhes nas notas da versão de pré-lançamento.
Postado por Maru Ahues Bouza, diretora de relações com desenvolvedores Android
Não há muitas plataformas nas quais você possa criar algo e alcançar imediatamente bilhões de pessoas em todo o mundo, não apenas nos telefones deles, mas também em TVs, carros, tablets, relógios e muito mais. Hoje, no Google I/O, falamos sobre uma série de formas pelas quais o Android ajuda você a aproveitar ao máximo essa oportunidade e sobre como o Modern Android Development cria o máximo de uniformidade possível, para que seja mais rápido e fácil criar experiências sob medida para todas as diferentes telas que usamos diariamente.
Fizemos um resumo dos 13 itens mais importantes para desenvolvedores Android, do Jetpack Compose até tablets, Wear OS e, é claro… o Android 13! E você não pode perder o segundo dia do Google I/O, que traz a trilha completa sobre Android, com 26 palestras técnicas e 4 workshops. Também estamos trazendo de volta a sessão informal de Perguntas e respostas do Android em mais um episódio do #TheAndroidShow. Envie suas perguntas pelo Twitter usando a hashtag #AskAndroid, e a equipe de especialistas estará disponível para respondê-las ao vivo no dia 12 de maio, às 12h30 (horário do Pacífico).
O kit de ferramentas de IU moderno do Android, o Jetpack Compose, continua trazendo as APIs de que você precisa para dar suporte a mais casos de uso avançados, como fontes para download, LazyGrids, encartes de janela e interoperabilidade com rolagem aninhada, e suporte adicional a ferramentas com recursos como LiveEdit, depuração de recomposições e visualização de animações. Veja mais detalhes na postagem do blog.
Faça mais em menos tempo com o Android Studio Dolphin Beta e o Electric Eel canário! O Android Studio Dolphin inclui novos recursos e melhorias para desenvolvimento com o Jetpack Compose e o Wear OS e uma experiência Logcat atualizada. O Android Studio Electric Eel inclui integrações com o novo Google Play SDK Index e o Firebase Crashlytics. Ele também oferece um novo emulador redimensionável para testar apps em telas grandes e o novo recurso LiveEdit para implementar imediatamente alterações de código feitas dentro de funções que podem ser compostas. Assista à sessão What’s new in Android Development Tools e leia a postagem do blog do I/O sobre o Android Studio aqui.
A velocidade de um app logo após a instalação pode fazer uma grande diferença para a retenção de usuários. Para melhorar essa experiência, criamos os perfis de referência. Os perfis de referência permitem que apps e bibliotecas forneçam ao tempo de execução do Android metadados sobre a utilização do caminho do código, que são empregados para priorizar a compilação antecipada. Observamos tempos de inicialização de apps até 30% menores graças à adoção apenas dos perfis de referência, sem nenhuma outra alteração no código! Já estamos usando os perfis de referência dentro do Jetpack: adicionamos esses perfis a bibliotecas populares, como Fragments e Compose, para ajudar a criar uma experiência melhor para o usuário final. Assista à palestra What’s new in app performance e leia a postagem do blog sobre o Jetpack aqui.
O Google está apostando tudo nos tablets. Desde o último I/O, lançamos o Android 12L, uma versão focada nas otimizações para telas grandes, e o Android 13 inclui todas essas melhorias e muito mais. Também anunciamos o tablet Pixel para o próximo ano. Com um novo hardware incrível, sistema operacional e Google apps atualizados, diretrizes e bibliotecas aprimoradas e ótimas mudanças na Play Store, nunca houve um momento melhor para revisar seus apps e prepará-los para as telas grandes e para o Android 13. É por isso que, no I/O deste ano, temos quatro palestras e um workshop para levar você do design à implementação para telas grandes.
Com as mais recentes atualizações para o Wear OS, você pode repensar suas possibilidades de desenvolvimento para wearables. O Jetpack Compose para Wear OS está na versão Beta, e você pode criar lindos apps do Wear OS com menos linhas de código. O Health Services, também na versão Beta, traz uma tonelada de inovações para a comunidade de desenvolvedores dos setores de saúde e bem-estar. Por fim, mas não menos importante, anunciamos o lançamento do The Google Pixel Watch, ainda este ano, que reúne o melhor do Fitbit e do Wear OS. Saiba mais sobre todas as atualizações mais importantes para wearables assistindo à sessão técnica sobre o Wear OS e lendo nosso anúncio do Jetpack Compose para Wear OS.
O Health Connect é uma nova plataforma criada em uma colaboração direta entre o Google e a Samsung que simplifica a conectividade entre apps tornando mais fácil alcançar mais usuários com menos trabalho, para que você possa acessar e compartilhar com segurança dados de saúde e bem-estar dos usuários em vários apps e dispositivos. Hoje, estamos abrindo o acesso ao Health Connect via Jetpack Health. Leia nosso anúncio ou assista à sessão do I/O para saber mais.
O uso do Android for Cars e do SO Android TV continua aumentando nos EUA e em outros países. À medida que mais usuários dirigem conectados ou sintonizados, estamos introduzindo novos recursos para facilitar ainda mais o desenvolvimento de apps para carros e TVs este ano. Assista às sessões "What’s new with Android for Cars" e "What's new with Google TV and Android TV" no segundo dia (12 de maio) às 9h (horário do Pacífico) para saber mais.
Estamos facilitando para os usuários o acesso por voz a apps em vários dispositivos com o Google Assistente por meio da expansão do acesso dos desenvolvedores à API Shortcuts para o Android for Cars. O suporte a apps Wear OS chega ainda este ano. Também estamos facilitando a criação dessas experiências com intents personalizadas mais inteligentes, permitindo que o Assistente detecte melhor instâncias mais amplas de consultas de usuários via aprendizado de máquina, sem treinamento aprofundado em PLN. Além disso, estamos introduzindo melhorias que promovem a descoberta de apps por voz em dispositivos móveis, primeiro por meio de consultas sem marca, que geram utilização do app mesmo que o usuário não tenha dito explicitamente o nome do app, e por sugestões de instalação de apps que aparecem se o app ainda não estiver instalado. Elas já são ativadas automaticamente para App Actions existentes.
Veja as mais recentes atualizações do Google Play, incluindo novas formas pelas quais o Play pode ajudar a expandir seus negócios. Entre os destaques estão a capacidade de criar até 50 listagens personalizadas e definir links diretos para elas, nosso LiveOps Beta, que permitirá que mais desenvolvedores enviem conteúdo a ser considerado para a Play Store, e ainda mais flexibilidade na venda de assinaturas. Veja essas atualizações e muito mais em nossa postagem do blog.
Avalie se um SDK é certo para o seu app com o novo Google Play SDK Index. Esse novo portal público lista mais de 100 dos mais utilizados SDKs comerciais, além de informações como quais permissões do app o SDK solicita, estatísticas sobre os apps que o utilizam e qual versão do SDK é a mais popular. Saiba mais em nossa postagem do blog e assista às sessões "What’s new in Google Play" e "What’s new in Android development tools".
O Sandbox de privacidade no Android fornece um caminho para novas soluções de publicidade a fim de aumentar a privacidade dos usuários sem colocar em risco o acesso a conteúdo e serviços gratuitos. Lançamos recentemente a primeira Visualização do desenvolvedor do Sandbox de privacidade no Android para que você possa ver em primeira mão a API SDK Runtime and Topics. Você pode fazer testes preliminares dessas novas tecnologias, avaliar como elas podem ser adotadas para suas soluções e compartilhar feedback conosco.
O novo Google Wallet dá aos usuários acesso rápido e seguro a recursos essenciais para o dia a dia no Android e no Wear OS. Estamos melhorando a API Google Wallet, antes chamada API Google Pay Passes, para dar suporte a passes genéricos e agrupamento e combinação de passes, por exemplo, agrupamento de um ingresso de evento com um voucher. Também estamos lançando um novo SDK do Android que permite salvar passes diretamente pelo app, sem integração de back-end. Para saber mais, leia a postagem do blog completa, assista à sessão ou leia os documentos no developers.google.com/wallet.
A segunda versão Beta do Android 13 já está disponível! Prepare os apps para os mais recentes recursos de privacidade e segurança, como a nova permissão de notificação, o seletor de fotos com proteção de privacidade e as permissões aprimoradas para pareamento com dispositivos próximos e acesso a arquivos de mídia. Melhore os apps com recursos como suporte a idiomas específicos de apps e ícones temáticos de apps. Crie usando padrões modernos como vídeo HDR e áudio Bluetooth de baixa energia. Você pode começar registrando um dispositivo Pixel aqui ou experimentar o Android 13 Beta em alguns telefones, tablets e dobráveis de nossos parceiros. Visite developer.android.com/13 para saber mais.
Este foi apenas um resumo de alguns dos destaques para desenvolvedores Android do Google I/O deste ano. Não deixe de assistir à palestra What’s New in Android para ver o panorama de toda a trilha técnica do Android no Google I/O, que inclui 26 palestras e 4 workshops. Divirta-se!
Postado por Yafit Becher, gerente de produtos, e Ray Brusca, gerente de parcerias estratégicas
Os desenvolvedores de apps contam com os SDKs para integrar funcionalidades e serviços essenciais para apps e jogos. Os SDKs são elementos básicos essenciais, mas os desenvolvedores nos disseram que pode ser difícil descobrir quais SDKs são confiáveis e seguros. Ajudar desenvolvedores como você a tomar decisões conscientes sobre SDKs também ajuda a manter o Google Play um espaço seguro e confiável para bilhões de pessoas.
Em 2020, lançamos o Google Play SDK Console para fornecer aos provedores de SDKs relatórios de erros, estatísticas de uso e uma forma de comunicar problemas críticos aos desenvolvedores de apps por meio do Google Play Console e do Android Studio. Hoje, estamos dando mais um passo para melhorar a comunicação e a transparência com o lançamento do Google Play SDK Index, um novo portal público que lista mais de 100 dos SDKs comerciais mais usados e fornece insights sobre cada um deles.
O Google Play SDK Index mostra sinais de confiabilidade e segurança para que você possa decidir se um determinado SDK é o certo para sua empresa e seus usuários.
Você pode pesquisar um SDK ou procurar por uma categoria, como Publicidade e monetização ou Análise. Para cada listagem de SDK, o Google Play SDK Index combina dados de uso de apps do Google Play com a detecção de código do SDK a fim de fornecer insights projetados para ajudar você a decidir se um SDK é o certo para sua empresa e seus usuários. É possível ver:
Os provedores de SDKs também podem compartilhar com você informações importantes sobre os SDKs registrados no Google Play SDK Console, tais como:
Seja qual for o momento do ciclo de vida do desenvolvimento, esperamos que você ache o Google Play SDK Index útil para tomar decisões conscientes sobre SDKs. Não deixe de conferir outras atualizações à medida que adicionamos pontos de dados, categorias e volume de SDKs.
Para saber mais:
Como parte de nosso trabalho para modernizar as orientações sobre arquitetura de apps, queremos experimentar diferentes padrões de IU para ver o que funciona melhor, encontrar semelhanças e diferenças entre as alternativas e consolidar nossas descobertas como práticas recomendadas.
Para facilitar ao máximo a aplicação de nossas descobertas, precisávamos de uma amostra com um caso de negócios familiar e que não fosse muito complicada. E quem é que não conhece os apps TODO ? Escolhemos o Architecture Blueprints! O Blueprints sempre serviu como um playground experimental para escolhas de arquitetura. E ele é ótimo para isso!
Os padrões com os quais queremos fazer experiências são claramente afetados pelas diferentes APIs disponíveis atualmente. E a novidade são as APIs de estado do Jetpack Compose! Como o Compose funciona perfeitamente com qualquer padrão de fluxo de dados unidirecional , vamos utilizá-lo para renderizar a IU e fazer uma comparação justa.
Esta postagem do blog conta como a equipe migrou o Architecture Blueprints para o Jetpack Compose. Como o LiveData também é considerado uma alternativa em nossos experimentos, deixamos a amostra no estado em que se encontrava no momento da migração. Nessa refatoração, as classes ViewModel e a camada de dados permaneceram inalteradas.
⚠️ A arquitetura usada nesta base de código baseada no LiveData não segue totalmente as práticas recomendadas de arquitetura mais recentes. Em particular, o LiveData não deve ser usado nas camadas de dados ou de domínios. Devem-se usar fluxos e corrotinas.
Agora que o contexto já ficou claro, vamos detalhar como abordamos a refatoração do Blueprints para o Jetpack Compose. Confira o código completo na ramificação dev-compose.
Antes de realizar qualquer codificação real, a equipe criou um plano de migração para garantir que todos concordassem com as mudanças propostas. O objetivo final era que o Blueprints fosse um aplicativo de atividade única, com telas como funções que podem ser compostas e usando a biblioteca Compose Navigation recomendada para a movimentação entre as telas.
Felizmente, o Blueprints já era um app de atividade única que usava o Jetpack Navigation para a movimentação entre diferentes telas implementadas com fragmentos. Para migrar para o Compose, seguimos as orientações de interoperabilidade do Navigation, que recomendam que os apps híbridos usem o componente Navigation baseado em fragmentos para conter telas baseadas em visualização, telas do Compose e telas que usam tanto as visualizações quanto o Compose. Infelizmente, não é possível combinar os destinos dos fragmentos e do Compose no mesmo gráfico do Navigation.
O objetivo de uma migração gradual é facilitar as revisões de código e manter um produto em condições de entrega ao longo de toda a migração. O plano de migração envolvia três passos:
E foi isso o que fizemos! 🧑💻 Depois ⏩ de duas semanas, migramos as telas Statistics (PR), Add/Edit task (PR), Task detail (PR) e Tasks (PR) e mesclamos a PR final que migrou a lógica Activity e Navigation para o Compose, incluindo a remoção das dependências do sistema de visualização não utilizadas.
Durante a migração, encontramos algumas peculiaridades específicas do Compose que valem destaque:
Assim que você começa a adicionar o Compose ao app, os testes que declaram IUs do Compose precisam usar APIs de teste do Compose.
Para os testes de IU no nível de tela, em vez de usar a API launchFragmentInContainer<FragmentType>, usamos a API createAndroidComposeRule<ComponentActivity>, que permite capturar recursos de strings nos testes. Esses testes são executados no Espresso e no Robolectric. Como o Compose já tem suporte para tudo isso, nenhuma mudança adicional foi necessária. Por exemplo, é possível comparar o código em AddEditTaskFragmentTest que foi migrado para AddEditTaskScreenTest. Observe que, se você usar o ComponentActivity, precisará contar com o artefato androidx.compose.ui:ui-test-manifest.
Nos testes completos ou de integração, também não tivemos nenhum problema. Graças à interoperabilidade do Espresso e do Compose, usamos as declarações do Espresso para verificar as visualizações e as APIs do Compose para verificar a IU do Compose. Aqui, podemos ver a aparência de AppNavigationTest em um ponto durante a migração para o Compose.
Tivemos problemas com o modo como os eventos do ViewModel eram manipulados no Blueprints. O Blueprints implementava uma solução de wrapper de evento para enviar comandos do ViewModel para a IU. No entanto, isso não funciona no Compose. Nossas orientações recentes recomendam a modelagem desses "eventos" como estado, e foi isso o que fizemos durante a migração.
Se observarmos o caso de uso do evento de exibição de mensagens na tela , substituímos o tipo Event<Int>do LiveData por "Int?". Isso também modela o cenário no qual não há mensagens a serem exibidas para o usuário. Nesse caso de uso em particular, o ViewModel também exige uma confirmação da IU sempre que a mensagem é exibida. Veja a diferença entre as duas implementações no seguinte código:
Embora isso possa parecer um trabalho adicional, à primeira vista, é uma garantia de que a mensagem seja exibida na tela.
No código da IU, a forma de assegurar que o evento seja manipulado apenas uma vez é fazer uma chamada para event.getContentIfNotHandled(). Essa abordagem funciona mais ou menos nos fragmentos, mas falha totalmente no Compose. Como as recomposições podem ocorrer a qualquer momento no Compose, o wrapper de evento não é uma solução válida. Se o evento for processado e a função for recomposta (algo que aconteceu bastante durante o teste dessa abordagem), o snackbar será cancelado, e o usuário poderá perder a mensagem. Esse é um problema de UX inaceitável! A solução wrapper de evento não deve ser usada em apps do Compose.
Veja o snippet de código a seguir com o antes (wrapper de evento) e o depois (evento como estado) do código. Como a exibição de mensagens na tela envolve a lógica de IU e as funções de tela que podem ser compostas estavam se tornando mais complexas, usamos uma classe detentora de estado simples para gerenciar essa complexidade (veja, por exemplo, AddEditTaskState).
Durante a refatoração, pode ser tentador migrar tudo para o Compose. Embora não haja nenhum problema nisso, você não deve sacrificar a experiência do usuário nem a precisão do app. A finalidade de fazer uma migração gradual é que o app esteja sempre em condições de entrega.
Isso aconteceu conosco durante a migração de algumas telas para o Compose. Não queríamos fazer um monte de migrações ao mesmo tempo, então migramos algumas das telas para o Compose antes da migração do wrapper de evento. Em vez de manipular o wrapper de evento no Compose e entregar uma experiência insatisfatória, continuamos manipulando essas mensagens no fragmento, enquanto o restante do código da tela estava no Compose. Veja, por exemplo, o estado de TasksFragment durante a migração.
Nem tudo correu tão bem quanto parecia. 🫤 Embora a conversão de conteúdo de fragmentos para o Compose seja direta, a migração dos fragmentos do Navigation para o Navigation Compose exigiu um pouco mais de tempo e raciocínio.
É necessário expandir e melhorar as orientações quanto a diferentes aspectos que tornarão a migração para o Compose mais simples no futuro. Esse trabalho provocou várias conversas, e esperamos ter novas orientações sobre isso em breve! 🎊
Por ser iniciante em Navigation ✋ e a pessoa que lidou com a migração para o Navigation Compose, enfrentei os seguintes desafios:
Em geral, a migração de fragmentos do Navigation para o Navigation Compose foi bem divertida! O mais engraçado é que gastamos mais tempo aguardando revisões de pares do que fazendo a migração do projeto em si! Criar o plano de migração e sincronizar todo mundo com certeza ajudou a definir as expectativas logo no começo e alertar os pares sobre futuras revisões demoradas.
Esperamos que você tenha gostado de ler sobre nossa abordagem da migração para o Compose, e queremos compartilhar em breve mais informações sobre os experimentos e as melhorias que faremos no Architecture Blueprints.
Caso tenha interesse em ver o Blueprints com o código do Compose, confira a ramificação dev-compose. E, caso deseje ver todas as PRs da migração gradual, esta é a lista:
Postado por Marwa Mabrouk, gerente de produtos da plataforma de câmera do Android
A câmera do Android é um recurso apaixonante. A câmera é um dos principais motivos pelos quais as pessoas compram um smartphone. A câmera do Android beneficia os desenvolvedores atuais por meio de várias ferramentas. Camera 2 é a API de framework que faz parte do Android desde a versão 5.0 Lollipop, e CameraX é uma biblioteca de suporte do Jetpack executada com base no Camera 2 e disponibilizada para todos os desenvolvedores Android. Essas soluções foram criadas para se complementar mutuamente a fim de atender às necessidades do ecossistema de câmera do Android.
Para os desenvolvedores que estão começando a trabalhar com a câmera do Android, atualizando apps ou migrando apps do Camera 1, o CameraX é a melhor ferramenta para começar. O CameraX oferece benefícios importantes que dão mais poder aos desenvolvedores e lidam com as complexidades do ecossistema.
Para os desenvolvedores que estão criando funcionalidades altamente especializadas com a câmera para o controle detalhado do fluxo de captura, no qual devem ser levadas em conta as variações de dispositivos, o Camera 2 deve ser utilizado.
Camera 2 é a API comum que ativa o hardware da câmera de todos os dispositivos Android e é implantada em todos os bilhões de dispositivos Android atualmente existentes no mercado mundial. Por ser uma API de framework, o Camera 2 permite que os desenvolvedores utilizem seu profundo conhecimento em fotografia e implementações em dispositivos. Para assegurar a qualidade do Camera 2, os fabricantes de dispositivos demonstram a conformidade por meio de testes em seus dispositivos. As variações dos dispositivos aparecem na API com base nas escolhas dos fabricantes dos dispositivos, permitindo que recursos personalizados se beneficiem dessas variações em dispositivos específicos da melhor forma possível.
Vejamos um exemplo que ajuda a explicar isso. Vamos comparar recursos de captura com a câmera. O Camera 2 oferece um controle especial do pipeline individual de captura para cada uma das câmeras no telefone ao mesmo tempo, além de configurações manuais muito detalhadas. O CameraX permite a captura de fotos de alta resolução e qualidade, além de oferecer funcionalidades de balanço automático de branco, exposição automática e foco automático e controles manuais simples para a câmera.
Exemplos relacionados a aplicativos: a Samsung usa a API de framework da câmera para ajudar o sistema avançado de câmera profissional a capturar fotos com qualidade de estúdio em vários tipos de iluminação e ambientes usando dispositivos Samsung Galaxy. Embora a API seja comum, a Samsung ativou variações que são exclusivas para os recursos de cada um dos dispositivos, e ela se beneficia da API no app de câmera de cada um deles, também. A API de framework da câmera permite que a Samsung faça uso dos recursos mais avançados da câmera e adapte o app nativo para o dispositivo.
Como outro exemplo, a Microsoft decidiu integrar o CameraX a todos os apps de produtividade nos quais o Microsoft Lens é utilizado (ou seja, Office, Outlook e OneDrive), para assegurar o uso de imagens de alta qualidade em todos esses aplicativos. Com a mudança para o CameraX, a equipe do Microsoft Lens conseguiu não só melhorar a experiência dos desenvolvedores devido à simplicidade da API, como também melhorar o desempenho, elevar a produtividade dos desenvolvedores e reduzir o tempo de entrada no mercado. Saiba mais aqui.
Esta é uma fase muito empolgante para a câmera do Android, e há muitos recursos novos nas duas APIs:
À medida que avançamos, compartilharemos com os desenvolvedores mais detalhes sobre os grandes recursos planejados para a câmera do Android. Esperamos interagir com vocês e receber seu feedback por meio da lista de e-mails do CameraX, camerax-developers@android.com, e do Issue Tracker do AOSP.
Agradecemos o interesse contínuo na câmera do Android, e esperamos criar experiências incríveis com a câmera para os usuários por meio da colaboração com vocês!
Postado por Lauren Mytton, gerente de produtos, Google Play
A qualidade é fundamental para o sucesso de um jogo ou app no Google Play, e o Android Vitals no Google Play Console é uma excelente maneira de monitorar o desempenho dos apps. Na verdade, mais de mais de 80% dos milhares de desenvolvedores experientes verificam o Android Vitals pelo menos uma vez por mês para monitorar a qualidade técnica e resolver problemas, e muitos deles fazem isso diariamente.Embora a visão geral do Android Vitals no Play Console permita verificar rapidamente a qualidade de um jogo ou app, muitos desenvolvedores nos disseram que também queriam trabalhar com os dados do Vitals fora do Play Console. Os casos de uso incluem:
A partir de hoje, esses casos de uso são possíveis com a nova API Play Developer Reporting.
Com a API Play Developer Reporting, os desenvolvedores podem trabalhar com dados no nível do app em suas contas de desenvolvedor fora do Play Console. Nesta versão inicial, você tem acesso às quatro principais métricas de bateria e estabilidade do Android Vitals: taxa de falhas, taxa de ANR, taxa de ativações excessivas e taxa de wake-locks em segundo plano travados, além de problemas de ANR e falhas e stack traces. Também é possível visualizar anomalias, detalhamentos (inclusive novos filtros de país no Vitals) e três anos de histórico de métricas.
Configuração do acesso à nova API Play Developer Reporting na página API Access do Play Console.
Para ativar a API, você deve ter uma conta de desenvolvedor no Play Console. Depois, é possível configurar o acesso rapidamente na página API Access do Play Console. Nossa documentação contém tudo o que você precisa saber para dar os primeiros passos.
Na documentação da API, estão disponíveis amostras de solicitações e uma lista dos endpoints disponíveis (para as versões Alfa e Beta).
Depois de ativar a API, é recomendável enviar algumas solicitações manualmente para ter uma noção da operação e dos recursos da API antes de implementar soluções mais complexas. Isso também pode ajudar a determinar tempos de consulta, que podem variar de acordo com o volume de dados em processamento. A execução de consultas em longos intervalos de tempo, em muitas dimensões e/ou em apps muito grandes, pode demorar muito.
A maioria dos nossos conjuntos de métricas é atualizada uma vez por dia. Para evitar o desperdício de recursos e cotas de solicitação, recomendamos a utilização dos métodos fornecidos para verificar o nível de atualização dos dados e se novos dados estão disponíveis antes de emitir uma consulta.
Agradecemos a todos os desenvolvedores que solicitaram esse recurso. Esperamos que isso ajude vocês a continuar melhorando os apps e jogos. Para saber mais sobre o Android Vitals e a API Play Developer Reporting, assista à nossa sessão no Google for Games Developer Summit.
Esta postagem do blog foi útil para você?
★ ★ ★ ★ ★
Postado por Krish Vitaldevara, diretor de gerenciamento de produtos
O Google Play ajuda nossa comunidade de desenvolvedores a distribuir os apps mais inovadores e confiáveis do mundo para bilhões de pessoas. Esse é um processo contínuo, e nós estamos sempre trabalhando para encontrar formas de aumentar a segurança dos apps em todo o ecossistema.
Além dos recursos e das políticas do Google Play que são fundamentais para o fornecimento de uma experiência segura para os usuários, todas as atualizações do SO Android trazem melhorias de privacidade, segurança e experiência do usuário. Para garantir que os usuários se beneficiem totalmente desses avanços e para manter a experiência confiável que as pessoas esperam do Google Play, colaboramos com os desenvolvedores para assegurar que os apps funcionem perfeitamente nas versões mais recentes do Android.
No momento, exigimos que os novos apps e as atualizações de apps sejam segmentados para um determinado nível de API do Android no máximo um ano depois do mais recente lançamento de uma versão principal do SO Android. Os novos apps e as atualizações de apps que não atendem a esse requisito não podem ser publicados no Google Play. Para ver os cronogramas exatos, consulte este artigo da Central de Ajuda.
Requisitos atuais de nível de API de destino para novos apps e atualizações de apps
Hoje, como parte das mais recentes atualizações de políticas do Google Play, estamos tomando medidas adicionais, por meio da expansão dos requisitos de nível de API de destino, para proteger os usuários contra a instalação de apps que podem não ter os recursos mais recentes de privacidade e segurança.
A partir de 1º de novembro de 2022, os apps existentes que não segmentarem um nível de API dentro de dois anos da mais recente versão principal do Android não serão disponibilizados para descoberta ou instalação por novos usuários com dispositivos que executem versões do SO Android superiores ao nível de API de destino do app. Quando novas versões do SO Android forem lançadas no futuro, a janela do requisito será ajustada adequadamente.
Requisitos de nível de API de destino para apps existentes a partir de 1º de novembro
A lógica por trás dessa decisão é simples. Os usuários com os dispositivos mais recentes ou que fazem todas as atualizações do Android esperam aproveitar todo o potencial de todas as proteções de privacidade e segurança oferecidas pelo Android. A expansão dos requisitos de nível de API de destino protegerá os usuários contra a instalação de apps mais antigos que podem não ter essas proteções implementadas.
A boa notícia é que a enorme maioria dos apps no Google Play já segue esses padrões. No caso de outros apps, sabemos que isso exigirá atenção adicional, e é por isso que estamos notificando os desenvolvedores com bastante antecedência e fornecendo recursos para aqueles que necessitam.
Encorajamos você a:
Os usuários atuais de apps mais antigos que tiverem feito a instalação pelo Google Play continuarão tendo a capacidade de descobrir, reinstalar e usar o app em qualquer dispositivo com qualquer versão do SO Android à qual o app dê suporte.
Essa política reforçada de nível de API de destino é apenas uma das atualizações de políticas que anunciamos hoje para expandir as proteções e melhorar as experiências dos usuários no Google Play. Continuaremos compartilhando atualizações sobre esse importante trabalho, que ajudará a elevar o nível de privacidade e segurança de apps em todos os aspectos, fazendo do Google Play e do Android locais mais seguros para todos.