Insights no desenvolvimento
Android para 2024
Novidades apresentadas no Google I/O
Nelson Glauber
Android GDE
@nglauber
What’s new in Android
https://youtu.be/_yWxUp86TGg
Gemini
• Gemini Nano - modelo mais e
fi
ciente criado para tarefas no próprio
dispositivo.
• Gemini Flash - modelo multimodal mais rápido com ótimo desempenho
para diversas tarefas.
• Gemini Pro - melhor modelo multimodal de melhor desempenho com
recursos para uma ampla variedade de tarefas de raciocínio.
• Gemini Ultra - maior modelo multimodal para tarefas de grande escala e
altamente complexas
Gemini Nano
• Melhor opção para desenvolver aplicações de IA
no próprio aparelho.
• Integrado com o sistema operacional via AICore
no Android 14 ou superior.
• Google AI Edge SDK fornece acesso a essas APIs
(atualmente em private preview)
• https://developer.android.com/ai/aicore
On-device Gen AI
• Casos de uso comuns para AI Generativa no dispositvo:
• Prover a sumarização ou overview de um texto
• Sugerir respostas para mensagens ou refrasear texto
• Detectar sentimento/humor em conversas de texto
Casos de uso
On-device gen AI models
• Limitações:
• Menor poder de processamento (comparado com modelos na cloud)
• Consequentemente, uma janela de contexto menor e menos generalizado
• Implicações:
• Um ajuste
fi
no é essencial para para obter uma boa precisão
• Ele não será bom para todos os casos de uso
E na Cloud? Por onde começar?
• Google AI Studio (ai.google.dev/aistudio)
para especi
fi
car e testar seus prompts
• Google AI client SDK (em Preview)
developer.android.com/ai/google-ai-client-sdk
• Vertex AI for Firebase (em Preview)
developer.android.com/ai/vertex-ai-
fi
rebase
A foto mostra um grupo de homens em um campo de futebol, usando
uniformes de futebol. Eles parecem ser um time de futebol, pois estão
todos usando o mesmo uniforme. Eles estão sorrindo para a câmera e
parecem estar felizes. Há um menino pequeno na frente do grupo, que
também está usando um uniforme de futebol.
Android on-device gen AI under the hood
https://youtu.be/nOinQrCvZkM
Build your own generative AI powered Android
app
https://youtu.be/L2ORMj0yak8
Construa excelente experiências
em diferentes dispositivos
Otimização para telas grandes
• Mais de 300 milhões de dispositivos com telas grandes ativos, incluindo:
Foldables, Tablets e Chromebooks
• Previsão de mais de 100 milhões de foldables até 2027
• Mais de 50 aplicações do Google foram otimizadas para telas grandes
• Google Play possui uma seção exclusiva para aplicativos otimizados para
foldables
Adaptive apps
• Apps que ajustam seu layout de acordo com o tamanho da janela atual
disponível, exibindo e ocultando conteúdo baseado no tamanho da janela
(ao invés de simplesmente esticar o conteúdo).
• Não assuma que o app sempre ocupará toda a tela. O que realmente
importa é o tamanho da janela atual.
• 47% dos usuários do Pixel Fold, usam o recurso de split-mode.
Adaptive apps
• A TELA VAI REDIMENSIONAR! Aceite! Não assuma que o app terá um
tamanho
fi
xo. Usar android:screenOrientation fará com que o app
entre em modo de compatiblidade. E isso pode ser recon
fi
gurado pelo
usuário a partir do Android 14.
• Não leve em consideração a orientação do aparelho, e sim a largura da
janela.
• Para que tudo isso funcione, é essencial tratar as mudanças de
con
fi
guração, mantendo estado corretamente fornecendo uma
fl
uidez
desejada.
< <
<
<
Uma mudança de conceito…
• Atualmente não temos “ListScreen" e “DetailsScreen”. Temos várias telas
podendo ser exibidas ao mesmo tempo. Por isso, usamos o termo
“ListPane" e “DetailsPane”, indicando paineis que podem ser exibidos juntos
ou isoladamente.
• Então pense em painéis onde você “write once, adapt anywhere”.
• Essa abordagem ainda permite que os painéis sejam redimensionados e
até reordenados pelo usuário.
M3 Adaptive Libraries
• Utilizar as "Material 3 adaptive layout libraries”
• Adaptive navigation library gerencia automaticamente o tipo de
navegação da aplicação de acordo com o tamanho da janela do app.
• NavigationSuiteScaffold
• ListDetailsPaneScaffold
• SupportingPaneScaffold
NavigationSuiteScaffold
NavigationBar NavigationRail
ListDetailPaneScaffold
SupportingPaneScaffold
Inputs
• Tenha em mente que o usuário poderá utilizar mouse, trackpad, stylus e
teclado físico.
• Por exemplo, você pode de
fi
nir teclas de atalho no teclado.
• Stylus handwriting é um recurso introduzido no Android 14 que permite
escrever “à mão” em campos de texto.
Escrevendo com a stylus
• A partir do Android 14, o usuários podem escrever nos text
fi
elds usando a
stylus.
• A escrita funcionará automaticamente se você estiver utilizando os
componentes de texto padrão
• TextField no Compose (1.7)
• EditText no ViewSystem
• Text input elements in WebViews
Tests
• DeviceConfigurationOverride permite sobrescrever a con
fi
guração
do aparelho atual para rodar os testes na con
fi
guração desejada.
• Screenshot tests está disponivel!
./gradlew updateReleaseScreenshootTest
./gradlew releaseScreenshotTest
• Emulators: Fold, Tablet, Desktop e Resizable (3 em 1)
• Remote Device screen integrado no Android Studio permite conectar com
um dispositivo real (incluindo os do Firebase).
Building adaptive Android apps
https://youtu.be/wBc6oMVAP60
Building UI with the Material 3 adaptive library
https://youtu.be/xPUZENis4gc
Increase user productivity with large screens and
accessories
https://youtu.be/ygPlp5IEldo
Edge to edge
• Padrão no Android 15
• Use enabledEdgeToEdge() no onCreate da
activity para garantir a retrocompatibilidade.
• Para capturar os insets do teclado, adicione
windowSoftInputMode="adjustResize" da
activity.
• A menos que o conteúdo aplique insets ou
padding, o conteúdo será desenhado atrás das
barras de sistema.
Edge to Edge API
• Ao utilizar os componentes da biblioteca do Material 3 como TopAppBar e
NavigationBar já trata os insets automaticamente.
• O Scaffold fornece um innerPadding para serem aplicados a componentes que
não são da biblioteca do Material Design.
• É possível usar os insets (da classe WindowInsets)
• De alto nível como: safeDrawing, safeGestures e safeContent
• De baixo nível como: statusBars, navigationBars, systemBars, ime,
systemGestures.
• Ambos possuem a respectiva implementaçãopara Modifier (do Compose).
Improve the user experience of an Android app
https://developer.android.com/
courses/pathways/improve-user-
experience
Predictive Back
• Animações do sistema estarão disponíveis para
aplicações que migraram para o Predictive Back a partir
do Android 15
• Back-to-Home
• Cross Activity
• Cross Task
• Shared Element transitions
Predictive Back API
• android:enableOnBackInvokedCallback="true" para dar suporte
para animação back-to-home.
• Para animações de back dentro da própria aplicação, basta utilizar as
animações do próprio NavHost (popEnterTransition e
popExitTransition).
Implement predictive back animations
https://developer.android.com/
codelabs/predictive-back#2
Widgets
• Jetpack Glance é a maneira recomendada para criar widgets no Android.
• A criação de widgets é 25% mais rápida com Jetpack Glance
• É possível inclusive criar o preview do widget usando o Glance.
• Google disponibilizou um guia de boas práticas para widgets
(d.android.com/design/ui/widget).
Build Android widgets with Jetpack Glance
https://youtu.be/jI1LKN7jBVk
Camera and Media
Camera and Media
• Seção especí
fi
ca no site do Android:
d.android.com/media
• Socialite (github.com/android/socialite) é um
sample app apresentando as melhores
práticas para Camera e Media.
Câmera
• Melhoria da qualidade da câmera no escuro em real-time
• Android 15 (API 35): Low Light Boost ajusta automaticamente o brilho do
preview em condições de pouca luz.
• Feature Combination Query: Permite checar quais recursos da câmera
podem ser usados juntos. Então determinar a ordem de prioridade para
usar cada recurso.
• Jetpack Camera App (github.com/google/jetpack-camera-app)
Jetpack CameraX
• UI Preview Components: camera-view e camera-view-finder
• Video capture: camera-video
• MLKit analysers: camera-mlkit-vision
• Test: camera-testing
• Advanced functionality: camera-effects e camera-extensions
Camera View Finder
• Suporte para Jetpack Compose (camera-viewfinder-compose)
• Biblioteca que fornece um preview apropriado para diferente tamanhos e
formatos de tela e vídeo.
CameraX 1.3
• Concurrent camera (usar ambas câmeras de uma vez)
• HDR video capture
• Video Con
fi
guration
• Camera effects
• Troca de câmera durante a gravação de vídeo
• Audio feedback
CameraX 1.4
• Captura em UltraHDR, e Stabilization tanto no preview quanto na captura.
• Camera-effects (mais efeitos e mais e
fi
ciente)
• Preview e Captura podem usar diferentes con
fi
gurações em HDR
• Long image capture duration feedback: fornece um feedback enquanto uma
imagem é salva
• Kotlin-friendly APIs
Jetpack Media3
• Maneira recomendada para construir aplicações de mídia.
• Para execução de mídia: media3-exoplayer
• Para sessões de mídia: media3-session
• Para edição de mídia: media3-transformer
Building modern Android media and camera
experiences
https://youtu.be/98QtLRrwyt8
Performance
Escolha a API correta para background
yes
no
Boas práticas para agendamento de tarefas
• Declare as restrições (constraints) para garantir que a tarefa execute no
melhor cenários, baseado em NetworkType, BatteryNotLow,
RequiresCharging, DeviceIdle, StorageNotLow.
• Você pode fazer uma tarefa executar mais rapidamente, mas só deve fazer
isso se o fator tempo for essencial.
• Use getStopReason() para saber porque sua tarefa foi parada.
Boas práticas para Foreground Services
• Evite desnecessariamente usar wakelocks (previne que a CPU “durma"
quando a tela está apagada).
• Foreground Services devem executar enquanto o usuário tem algum tipo de
interação com a aplicação… Ao pausar a música, o serviço deveria ser
parado.
• Não con
fi
e em fazer a inicialização de um Foreground Service a partir de
um background service. Por exemplo, BOOT_COMPLETED broadcast não
permite lançar um serviço de alguns tipos a partir do Android 15
(dataSync, camera, mediaPlayback, phoneCall, microphone,
mediaProjection)
Battery performance
• Use perfetto
• Dispositivo deve possuir ODPM
(On Device Power Monitoring)
• Android 14+
• Habilitar Depuração USB
Improving battery e
ffi
ciency of background work
on Android
https://youtu.be/jS46zP8kQ3k
Practical performance problem solving in Jetpack
Compose
https://youtu.be/c3gdS42TJmI
Segurança
• Play Integrity API permite baixar um “integrity token” do Google. Então seu app envia
esse token para o backend para garantir que é realmente seu app que está fazendo o
request.
• App access risk (BETA) checa se outros apps que estão em execução podem
controlar o dispositivo ou capturar a tela e informa ao usuário, que pode encerrar
esses outros apps.
• É possível checar se o Google Play Protect está ativado no aparelho e se há algum
app malicioso no dispositivo. Então o usuário pode instalar o Play Protect ou
desinstalar os apps suspeitos.
• Private Space é um novo recurso que permite adicionar apps que só podem ser
acessados depois de autenticação.
Mudanças no Android 15
• Não é possível instalar apps com targetSdk menor que 24 (Android 7)
• Intents explícitas devem fazer o match com o component target da intent
fi
lter.
• Enviar intents com ação nula não vai ser capturada por nenhum intent-
fi
lter.
• Apps que usam BINDING_NOTIFICATION_LISTENER_SERVICE
receberão as noti
fi
cações com OTPs (One Time Passwords) com o
conteúdo removidos.
• PendingIntents que abrem activity serão bloqueadas por padrão.
Fotos e vídeos
• Nova política do Google Play: apps devem demonstrar porque
precisam de um amplo acesso aos arquivos de mídia.
• Alguns apps simplesmente ainda usam as permissões de mídia
legadas mesmo não sendo mais necessárias.
• PhotoPicker é a recomendação do Google.
• Não requer permissão em tempo de execução
• Inclui automaticamente fotos da nuvem e albuns do Google
Photos.
• Busca e novas customizações serão adicionadas em breve.
Safeguarding user security on Android
https://youtu.be/RccJYep2v5I
Uni
fi
ed sign in with Credential Manager
• API que agrega o login usando conta do Google,
passwords (Android >= 4.4) e passkeys (Android >= 8)
em uma única interface.
• Para reduzir a complexidade, o próprio sistema exibe
automaticamente a forma mais segura e relevante
opção de login.
• Caso o usuário tenha fechado o Credential Manager
por acidente, ele será exibido no Auto
fi
ll do teclado no
Android 15
Passkeys and digital identity best practices
https://youtu.be/fgTOeLShcrY
Jetpack Compose
Compose
• Compilador do Compose distribuído com o release do Kotlin a partir da versão
2.0.0
• Melhorias de performance:
• Skiping mode mais e
fi
ciente fazendo com que as recomposições sejam
cerca de 20% mais rápidas.
• Lambdas agora sempre são “lembradas" (remember) automaticamente;
• A necessidade de adicionar @Stable aos parâmetros vai diminuir.
• Primeiro frame desenhado 17% mais rápido.
Compose
• Modifier.animateItem() para animar itens de uma lista.
• Shared element transitions com suporte para predictive back.
• Novos recurso de texto: Rich Content (como GIFs) e Link/HTML
Acessibilidade no Compose
• Accessibility Scanner
https://play.google.com/store/apps/details?
id=com.google.android.apps.accessibility.auditor
• Accessibility Test Framework
• “UI Check Mode” no preview do Android Studio
Updates to Android accessibility features and API
https://youtu.be/qLCK0HO_tNQ
Kotlin Multiplatform
• Bibliotecas do Jetpack com suporte ao KMP
• Annotation (a partir da 1.4.0-dev01)
• Collections (a partir da 1.3.0)
• DataStore (a partir da 1.1.0)
• Lifecycle / ViewModel (a partir da 2.8.0-alpha03)
• Paging (a partir da 3.3.0-alpha01)
• Room (a partir da 2.7.0-alpha01)
• SQLite (a partir da 2.5.0-alpha01)
io.google/2024/explore
What's new in Android development tools
https://youtu.be/2wOfYgIMf-A
Obrigado!
Dúvidas?
Nelson Glauber
Android GDE
@nglauber

Insights no desenvolvimento Android para 2024

  • 1.
    Insights no desenvolvimento Androidpara 2024 Novidades apresentadas no Google I/O Nelson Glauber Android GDE @nglauber
  • 2.
    What’s new inAndroid https://youtu.be/_yWxUp86TGg
  • 5.
    Gemini • Gemini Nano- modelo mais e fi ciente criado para tarefas no próprio dispositivo. • Gemini Flash - modelo multimodal mais rápido com ótimo desempenho para diversas tarefas. • Gemini Pro - melhor modelo multimodal de melhor desempenho com recursos para uma ampla variedade de tarefas de raciocínio. • Gemini Ultra - maior modelo multimodal para tarefas de grande escala e altamente complexas
  • 6.
    Gemini Nano • Melhoropção para desenvolver aplicações de IA no próprio aparelho. • Integrado com o sistema operacional via AICore no Android 14 ou superior. • Google AI Edge SDK fornece acesso a essas APIs (atualmente em private preview) • https://developer.android.com/ai/aicore
  • 7.
    On-device Gen AI •Casos de uso comuns para AI Generativa no dispositvo: • Prover a sumarização ou overview de um texto • Sugerir respostas para mensagens ou refrasear texto • Detectar sentimento/humor em conversas de texto
  • 8.
  • 9.
    On-device gen AImodels • Limitações: • Menor poder de processamento (comparado com modelos na cloud) • Consequentemente, uma janela de contexto menor e menos generalizado • Implicações: • Um ajuste fi no é essencial para para obter uma boa precisão • Ele não será bom para todos os casos de uso
  • 10.
    E na Cloud?Por onde começar? • Google AI Studio (ai.google.dev/aistudio) para especi fi car e testar seus prompts • Google AI client SDK (em Preview) developer.android.com/ai/google-ai-client-sdk • Vertex AI for Firebase (em Preview) developer.android.com/ai/vertex-ai- fi rebase
  • 11.
    A foto mostraum grupo de homens em um campo de futebol, usando uniformes de futebol. Eles parecem ser um time de futebol, pois estão todos usando o mesmo uniforme. Eles estão sorrindo para a câmera e parecem estar felizes. Há um menino pequeno na frente do grupo, que também está usando um uniforme de futebol.
  • 12.
    Android on-device genAI under the hood https://youtu.be/nOinQrCvZkM
  • 13.
    Build your owngenerative AI powered Android app https://youtu.be/L2ORMj0yak8
  • 14.
    Construa excelente experiências emdiferentes dispositivos
  • 15.
    Otimização para telasgrandes • Mais de 300 milhões de dispositivos com telas grandes ativos, incluindo: Foldables, Tablets e Chromebooks • Previsão de mais de 100 milhões de foldables até 2027 • Mais de 50 aplicações do Google foram otimizadas para telas grandes • Google Play possui uma seção exclusiva para aplicativos otimizados para foldables
  • 16.
    Adaptive apps • Appsque ajustam seu layout de acordo com o tamanho da janela atual disponível, exibindo e ocultando conteúdo baseado no tamanho da janela (ao invés de simplesmente esticar o conteúdo). • Não assuma que o app sempre ocupará toda a tela. O que realmente importa é o tamanho da janela atual. • 47% dos usuários do Pixel Fold, usam o recurso de split-mode.
  • 17.
    Adaptive apps • ATELA VAI REDIMENSIONAR! Aceite! Não assuma que o app terá um tamanho fi xo. Usar android:screenOrientation fará com que o app entre em modo de compatiblidade. E isso pode ser recon fi gurado pelo usuário a partir do Android 14. • Não leve em consideração a orientação do aparelho, e sim a largura da janela. • Para que tudo isso funcione, é essencial tratar as mudanças de con fi guração, mantendo estado corretamente fornecendo uma fl uidez desejada.
  • 18.
  • 19.
  • 20.
    Uma mudança deconceito… • Atualmente não temos “ListScreen" e “DetailsScreen”. Temos várias telas podendo ser exibidas ao mesmo tempo. Por isso, usamos o termo “ListPane" e “DetailsPane”, indicando paineis que podem ser exibidos juntos ou isoladamente. • Então pense em painéis onde você “write once, adapt anywhere”. • Essa abordagem ainda permite que os painéis sejam redimensionados e até reordenados pelo usuário.
  • 21.
    M3 Adaptive Libraries •Utilizar as "Material 3 adaptive layout libraries” • Adaptive navigation library gerencia automaticamente o tipo de navegação da aplicação de acordo com o tamanho da janela do app. • NavigationSuiteScaffold • ListDetailsPaneScaffold • SupportingPaneScaffold
  • 22.
  • 23.
  • 24.
  • 25.
    Inputs • Tenha emmente que o usuário poderá utilizar mouse, trackpad, stylus e teclado físico. • Por exemplo, você pode de fi nir teclas de atalho no teclado. • Stylus handwriting é um recurso introduzido no Android 14 que permite escrever “à mão” em campos de texto.
  • 26.
    Escrevendo com astylus • A partir do Android 14, o usuários podem escrever nos text fi elds usando a stylus. • A escrita funcionará automaticamente se você estiver utilizando os componentes de texto padrão • TextField no Compose (1.7) • EditText no ViewSystem • Text input elements in WebViews
  • 27.
    Tests • DeviceConfigurationOverride permitesobrescrever a con fi guração do aparelho atual para rodar os testes na con fi guração desejada. • Screenshot tests está disponivel! ./gradlew updateReleaseScreenshootTest ./gradlew releaseScreenshotTest • Emulators: Fold, Tablet, Desktop e Resizable (3 em 1) • Remote Device screen integrado no Android Studio permite conectar com um dispositivo real (incluindo os do Firebase).
  • 28.
    Building adaptive Androidapps https://youtu.be/wBc6oMVAP60
  • 29.
    Building UI withthe Material 3 adaptive library https://youtu.be/xPUZENis4gc
  • 30.
    Increase user productivitywith large screens and accessories https://youtu.be/ygPlp5IEldo
  • 31.
    Edge to edge •Padrão no Android 15 • Use enabledEdgeToEdge() no onCreate da activity para garantir a retrocompatibilidade. • Para capturar os insets do teclado, adicione windowSoftInputMode="adjustResize" da activity. • A menos que o conteúdo aplique insets ou padding, o conteúdo será desenhado atrás das barras de sistema.
  • 32.
    Edge to EdgeAPI • Ao utilizar os componentes da biblioteca do Material 3 como TopAppBar e NavigationBar já trata os insets automaticamente. • O Scaffold fornece um innerPadding para serem aplicados a componentes que não são da biblioteca do Material Design. • É possível usar os insets (da classe WindowInsets) • De alto nível como: safeDrawing, safeGestures e safeContent • De baixo nível como: statusBars, navigationBars, systemBars, ime, systemGestures. • Ambos possuem a respectiva implementaçãopara Modifier (do Compose).
  • 33.
    Improve the userexperience of an Android app https://developer.android.com/ courses/pathways/improve-user- experience
  • 34.
    Predictive Back • Animaçõesdo sistema estarão disponíveis para aplicações que migraram para o Predictive Back a partir do Android 15 • Back-to-Home • Cross Activity • Cross Task • Shared Element transitions
  • 35.
    Predictive Back API •android:enableOnBackInvokedCallback="true" para dar suporte para animação back-to-home. • Para animações de back dentro da própria aplicação, basta utilizar as animações do próprio NavHost (popEnterTransition e popExitTransition).
  • 36.
    Implement predictive backanimations https://developer.android.com/ codelabs/predictive-back#2
  • 37.
    Widgets • Jetpack Glanceé a maneira recomendada para criar widgets no Android. • A criação de widgets é 25% mais rápida com Jetpack Glance • É possível inclusive criar o preview do widget usando o Glance. • Google disponibilizou um guia de boas práticas para widgets (d.android.com/design/ui/widget).
  • 38.
    Build Android widgetswith Jetpack Glance https://youtu.be/jI1LKN7jBVk
  • 39.
  • 40.
    Camera and Media •Seção especí fi ca no site do Android: d.android.com/media • Socialite (github.com/android/socialite) é um sample app apresentando as melhores práticas para Camera e Media.
  • 41.
    Câmera • Melhoria daqualidade da câmera no escuro em real-time • Android 15 (API 35): Low Light Boost ajusta automaticamente o brilho do preview em condições de pouca luz. • Feature Combination Query: Permite checar quais recursos da câmera podem ser usados juntos. Então determinar a ordem de prioridade para usar cada recurso. • Jetpack Camera App (github.com/google/jetpack-camera-app)
  • 42.
    Jetpack CameraX • UIPreview Components: camera-view e camera-view-finder • Video capture: camera-video • MLKit analysers: camera-mlkit-vision • Test: camera-testing • Advanced functionality: camera-effects e camera-extensions
  • 43.
    Camera View Finder •Suporte para Jetpack Compose (camera-viewfinder-compose) • Biblioteca que fornece um preview apropriado para diferente tamanhos e formatos de tela e vídeo.
  • 44.
    CameraX 1.3 • Concurrentcamera (usar ambas câmeras de uma vez) • HDR video capture • Video Con fi guration • Camera effects • Troca de câmera durante a gravação de vídeo • Audio feedback
  • 45.
    CameraX 1.4 • Capturaem UltraHDR, e Stabilization tanto no preview quanto na captura. • Camera-effects (mais efeitos e mais e fi ciente) • Preview e Captura podem usar diferentes con fi gurações em HDR • Long image capture duration feedback: fornece um feedback enquanto uma imagem é salva • Kotlin-friendly APIs
  • 46.
    Jetpack Media3 • Maneirarecomendada para construir aplicações de mídia. • Para execução de mídia: media3-exoplayer • Para sessões de mídia: media3-session • Para edição de mídia: media3-transformer
  • 47.
    Building modern Androidmedia and camera experiences https://youtu.be/98QtLRrwyt8
  • 48.
  • 49.
    Escolha a APIcorreta para background yes no
  • 50.
    Boas práticas paraagendamento de tarefas • Declare as restrições (constraints) para garantir que a tarefa execute no melhor cenários, baseado em NetworkType, BatteryNotLow, RequiresCharging, DeviceIdle, StorageNotLow. • Você pode fazer uma tarefa executar mais rapidamente, mas só deve fazer isso se o fator tempo for essencial. • Use getStopReason() para saber porque sua tarefa foi parada.
  • 51.
    Boas práticas paraForeground Services • Evite desnecessariamente usar wakelocks (previne que a CPU “durma" quando a tela está apagada). • Foreground Services devem executar enquanto o usuário tem algum tipo de interação com a aplicação… Ao pausar a música, o serviço deveria ser parado. • Não con fi e em fazer a inicialização de um Foreground Service a partir de um background service. Por exemplo, BOOT_COMPLETED broadcast não permite lançar um serviço de alguns tipos a partir do Android 15 (dataSync, camera, mediaPlayback, phoneCall, microphone, mediaProjection)
  • 52.
    Battery performance • Useperfetto • Dispositivo deve possuir ODPM (On Device Power Monitoring) • Android 14+ • Habilitar Depuração USB
  • 53.
    Improving battery e ffi ciencyof background work on Android https://youtu.be/jS46zP8kQ3k
  • 54.
    Practical performance problemsolving in Jetpack Compose https://youtu.be/c3gdS42TJmI
  • 55.
    Segurança • Play IntegrityAPI permite baixar um “integrity token” do Google. Então seu app envia esse token para o backend para garantir que é realmente seu app que está fazendo o request. • App access risk (BETA) checa se outros apps que estão em execução podem controlar o dispositivo ou capturar a tela e informa ao usuário, que pode encerrar esses outros apps. • É possível checar se o Google Play Protect está ativado no aparelho e se há algum app malicioso no dispositivo. Então o usuário pode instalar o Play Protect ou desinstalar os apps suspeitos. • Private Space é um novo recurso que permite adicionar apps que só podem ser acessados depois de autenticação.
  • 56.
    Mudanças no Android15 • Não é possível instalar apps com targetSdk menor que 24 (Android 7) • Intents explícitas devem fazer o match com o component target da intent fi lter. • Enviar intents com ação nula não vai ser capturada por nenhum intent- fi lter. • Apps que usam BINDING_NOTIFICATION_LISTENER_SERVICE receberão as noti fi cações com OTPs (One Time Passwords) com o conteúdo removidos. • PendingIntents que abrem activity serão bloqueadas por padrão.
  • 57.
    Fotos e vídeos •Nova política do Google Play: apps devem demonstrar porque precisam de um amplo acesso aos arquivos de mídia. • Alguns apps simplesmente ainda usam as permissões de mídia legadas mesmo não sendo mais necessárias. • PhotoPicker é a recomendação do Google. • Não requer permissão em tempo de execução • Inclui automaticamente fotos da nuvem e albuns do Google Photos. • Busca e novas customizações serão adicionadas em breve.
  • 58.
    Safeguarding user securityon Android https://youtu.be/RccJYep2v5I
  • 59.
    Uni fi ed sign inwith Credential Manager • API que agrega o login usando conta do Google, passwords (Android >= 4.4) e passkeys (Android >= 8) em uma única interface. • Para reduzir a complexidade, o próprio sistema exibe automaticamente a forma mais segura e relevante opção de login. • Caso o usuário tenha fechado o Credential Manager por acidente, ele será exibido no Auto fi ll do teclado no Android 15
  • 60.
    Passkeys and digitalidentity best practices https://youtu.be/fgTOeLShcrY
  • 61.
  • 62.
    Compose • Compilador doCompose distribuído com o release do Kotlin a partir da versão 2.0.0 • Melhorias de performance: • Skiping mode mais e fi ciente fazendo com que as recomposições sejam cerca de 20% mais rápidas. • Lambdas agora sempre são “lembradas" (remember) automaticamente; • A necessidade de adicionar @Stable aos parâmetros vai diminuir. • Primeiro frame desenhado 17% mais rápido.
  • 63.
    Compose • Modifier.animateItem() paraanimar itens de uma lista. • Shared element transitions com suporte para predictive back. • Novos recurso de texto: Rich Content (como GIFs) e Link/HTML
  • 64.
    Acessibilidade no Compose •Accessibility Scanner https://play.google.com/store/apps/details? id=com.google.android.apps.accessibility.auditor • Accessibility Test Framework • “UI Check Mode” no preview do Android Studio
  • 65.
    Updates to Androidaccessibility features and API https://youtu.be/qLCK0HO_tNQ
  • 66.
    Kotlin Multiplatform • Bibliotecasdo Jetpack com suporte ao KMP • Annotation (a partir da 1.4.0-dev01) • Collections (a partir da 1.3.0) • DataStore (a partir da 1.1.0) • Lifecycle / ViewModel (a partir da 2.8.0-alpha03) • Paging (a partir da 3.3.0-alpha01) • Room (a partir da 2.7.0-alpha01) • SQLite (a partir da 2.5.0-alpha01)
  • 67.
  • 68.
    What's new inAndroid development tools https://youtu.be/2wOfYgIMf-A
  • 69.