1. O documento resume as principais novidades do Android em 2023 anunciadas na conferência Google I/O, incluindo melhorias no Jetpack Compose como novos componentes, desempenho e bibliotecas.
2. Também apresenta novas funcionalidades para telas grandes como adaptação de apps, práticas recomendadas e ferramentas de teste.
3. O documento discute formas de lidar com mudanças de configuração e recriação de activities para manter o estado da aplicação, como View Model, Data Store e Saved State APIs.
Palestra que apresentei no FISL, para dúvidas, criticas ou sugestões enviem emails para FISL AT urubatan DOT com DOT br.
Todos os comentários são bem vindos.
Na palestra falo bastante sobre PhoneGap e um pouco sobre Titanium Mobile.
Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGapThiago Colares
Visão geral sobre HTML5, AngularJS e PhoneGap. E como combinar essas e outras ferramentas para criar aplicativos híbridos e multiplataformas. Aplicativos móveis híbridos são aplicativos nativos que empacotam aplicações web e oferecem a elas APIs dos dispositivos. Palestra apresentada no I WSORT, workshop do GSORT, no IFBA (Instituto Federal da Bahia).
Nessa palestra, mostrei um pouco mais que apenas um HelloWorld. Mostrei boas práticas para quem está iniciando e o cuidado com a mudança de paradigmas entre Web e Mobile.
Palestra que apresentei no FISL, para dúvidas, criticas ou sugestões enviem emails para FISL AT urubatan DOT com DOT br.
Todos os comentários são bem vindos.
Na palestra falo bastante sobre PhoneGap e um pouco sobre Titanium Mobile.
Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGapThiago Colares
Visão geral sobre HTML5, AngularJS e PhoneGap. E como combinar essas e outras ferramentas para criar aplicativos híbridos e multiplataformas. Aplicativos móveis híbridos são aplicativos nativos que empacotam aplicações web e oferecem a elas APIs dos dispositivos. Palestra apresentada no I WSORT, workshop do GSORT, no IFBA (Instituto Federal da Bahia).
Nessa palestra, mostrei um pouco mais que apenas um HelloWorld. Mostrei boas práticas para quem está iniciando e o cuidado com a mudança de paradigmas entre Web e Mobile.
Introdução à criação de aplicações Android. Aborda a parte inicial, de instalação dos pré-requisitos, faz uma geral sobre a plataforma e seus principais elementos, e finaliza com um exemplo. Muitas capturas de tela para facilitar o aprendizado.
O Visualg é uma excelente ferramenta para o aprendizado de algoritmos, tendo sido criada por Cláudio Morgado de Souza da Apoio Informática Ltda.
As apostilas foram elaboradas por Bruno Tonet e Cristian Koliver do Núcleo de Apoio à Aprendizagem de Programação (NAPRO) da Universidade de Caxias do Sul (UCS).
Apresentação Google Android - Universidade Metodista de São Paulo - SESTINFO 2011
Esta apresentação pode ser vista também pelo link http://www.slideshare.net/rafaelsakurai/sestinfo-2011-apresentacao-android
Palestra sobre Aplicações Responsivas, para o 15 Encontro Locaweb em Porto Alegre.
Você nao deve pensar so no fron-end mas em todo o conjunto do projeto.
E isso se aplica a Mobile em geral, Aplicações nativas ou web.
Apresentação dos conceitos de PWA e como isso impacta no desenvolvimento Web Mobile. Uma visão geral sobre desenvolvimento nativo usando React Native e o que muda com a oficialização de Kotlin como linguagem no Android.
Uma palestra para explorar o Google App Engine (GAE), uma plataforma de desenvolvimento e hospedagem de aplicações web na nuvem. Aplicativos fáceis de criar, manter e escalar.
Palestrante: Carlos Duarte do Nascimento
Matemático pelo IME/USP e Gerente de Produto no Apontador, faz "artesanato" de software há 20 anos, defendendo plataformas e conteúdo livres.
Apresentação realizada no Google IO Extended Brasil 2021.
Nessa palestra foram apresentadas as principais novidades nas bibliotecas Jetpack divulgadas no Google IO de 2021
Mais conteúdo relacionado
Semelhante a Novidades incríveis do Android em 2023
Introdução à criação de aplicações Android. Aborda a parte inicial, de instalação dos pré-requisitos, faz uma geral sobre a plataforma e seus principais elementos, e finaliza com um exemplo. Muitas capturas de tela para facilitar o aprendizado.
O Visualg é uma excelente ferramenta para o aprendizado de algoritmos, tendo sido criada por Cláudio Morgado de Souza da Apoio Informática Ltda.
As apostilas foram elaboradas por Bruno Tonet e Cristian Koliver do Núcleo de Apoio à Aprendizagem de Programação (NAPRO) da Universidade de Caxias do Sul (UCS).
Apresentação Google Android - Universidade Metodista de São Paulo - SESTINFO 2011
Esta apresentação pode ser vista também pelo link http://www.slideshare.net/rafaelsakurai/sestinfo-2011-apresentacao-android
Palestra sobre Aplicações Responsivas, para o 15 Encontro Locaweb em Porto Alegre.
Você nao deve pensar so no fron-end mas em todo o conjunto do projeto.
E isso se aplica a Mobile em geral, Aplicações nativas ou web.
Apresentação dos conceitos de PWA e como isso impacta no desenvolvimento Web Mobile. Uma visão geral sobre desenvolvimento nativo usando React Native e o que muda com a oficialização de Kotlin como linguagem no Android.
Uma palestra para explorar o Google App Engine (GAE), uma plataforma de desenvolvimento e hospedagem de aplicações web na nuvem. Aplicativos fáceis de criar, manter e escalar.
Palestrante: Carlos Duarte do Nascimento
Matemático pelo IME/USP e Gerente de Produto no Apontador, faz "artesanato" de software há 20 anos, defendendo plataformas e conteúdo livres.
Semelhante a Novidades incríveis do Android em 2023 (20)
Apresentação realizada no Google IO Extended Brasil 2021.
Nessa palestra foram apresentadas as principais novidades nas bibliotecas Jetpack divulgadas no Google IO de 2021
Jetpack Compose is the new Android UI framework that allows you to create rich user interfaces in a declarative way using Kotlin language. In this presentation, it will be demonstrated how to take the first steps with Compose, learn its main concepts and understand how to be prepared for this change of paradigm on the front-end development of native Android applications.
Nessa palestra, inicialmente é feita uma introdução à plataforma Android. Em seguida, são comentados os principais requisitos técnicos e não técnicos para se tornar um desenvolvedor Android. Finalmente, é analisado o mercado para esse tipo de profissional, seus benefícios e desafios.
Palestra apresentada na Faculdade de Juazeiro do Norte - FJN (14/02/2020) por Nelson Glauber de Vasconcelos Leal
Nessa apresentação demonstro como arquitetar uma aplicação Android utilizando MVVM+Clean Architecture no Android utilizando as bibliotecas do Jetpack (View Model, Room, LiveData, ...)
Nessa apresentação demonstro como arquitetar uma aplicação Android utilizando as bibliotecas do Jetpack. O exemplo apresentado utiliza MVVM+Clean:
- Na camada de dados local, Room com Coroutines e Flow;
- View Model, Live Data e Data Binding na camada de apresentação;
- Fragments com a Navigation API na camada de UI.
O app também conta com uma implementação de banco de dados remoto utilizando Firebase.
Aplicações Assíncronas no Android com Coroutines e JetpackNelson Glauber Leal
Para usufruir dos múltiplos núcleos existentes nos processadores dos smartphones atuais, podemos realizar chamadas assíncronas de modo a paralelizar o fluxo de execução da aplicação. Normalmente isso é feito por meio de threads e callbacks que acabam por adicionar uma complexidade ao código que pode comprometer sua leitura e manutenção. Nessa apresentação, veremos como utilizar a API de Coroutines do Kotlin em conjunto com diversas bibliotecas do Jetpack do Android de modo a implementar programação assíncrona forma simples e eficiente.
In this talk I presented three important topics in Kotlin Standard Library: Scope Functions (let, apply, also, run and with); Annotations (Deprecated, Experimental, Jvm*, DslMarker); and Delegates (lazy, vetoable, observable)
Aplicações assíncronas no Android com Coroutines & JetpackNelson Glauber Leal
Para usufruir dos múltiplos núcleos existentes nos processadores dos smartphones atuais, podemos realizar chamadas assíncronas de modo a paralelizar o fluxo de execução da aplicação. Normalmente isso é feito por meio de threads e callbacks que acabam por adicionar uma complexidade ao código que pode comprometer sua leitura e manutenção. Nessa apresentação, veremos como utilizar a API de Coroutines do Kotlin em conjunto com diversas bibliotecas do Jetpack do Android de modo a implementar programação assíncrona forma simples e eficiente.
Slides da apresentação no Meetup realizado no dia 13/04/2019 no CESAR.school, onde foi apresentada uma introdução ao desenvolvimento Android com Kotlin
Nessa apresentação demonstro como aplicar alguns dos Architecture Components disponíveis no Jetpack em uma arquitetura que segue o padrão Clean com MVVM.
Palestra apresentada no The Developers Conference São Paulo 2018 na Trilha Android.
A ideia dessa apresentação é dar uma visão geral sobre os principais tópicos do desenvolvimento Android utilizados atualmente, tais como: Kotlin, MVP, MVVM, Architecture Components, ConstraintLayout, RXJava, Firebase e testes.
Palestra realizada no DevFestXP em Recife (09/12/2017) apresentando as principais técnicas, APIs e ferramentas mais atuais utilizadas no desenvolvimento de aplicações Android
Slides da minha palestra sobre Constraint Layout apresentada no Android Dev Conference 2017.
Código-fonte disponível em:
https://github.com/nglauber/ConstraintLayoutAndroidDevConf2017
São Paulo, 25 de Agosto de 2017.
Este certificado confirma que Gabriel de Mattos Faustino concluiu com sucesso um curso de 42 horas de Gestão Estratégica de TI - ITIL na Escola Virtual entre 19 de fevereiro de 2014 a 20 de fevereiro de 2014.
Em um mundo cada vez mais digital, a segurança da informação tornou-se essencial para proteger dados pessoais e empresariais contra ameaças cibernéticas. Nesta apresentação, abordaremos os principais conceitos e práticas de segurança digital, incluindo o reconhecimento de ameaças comuns, como malware e phishing, e a implementação de medidas de proteção e mitigação para vazamento de senhas.
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...Faga1939
Este artigo tem por objetivo apresentar como ocorreu a evolução do consumo e da produção de energia desde a pré-história até os tempos atuais, bem como propor o futuro da energia requerido para o mundo. Da pré-história até o século XVIII predominou o uso de fontes renováveis de energia como a madeira, o vento e a energia hidráulica. Do século XVIII até a era contemporânea, os combustíveis fósseis predominaram com o carvão e o petróleo, mas seu uso chegará ao fim provavelmente a partir do século XXI para evitar a mudança climática catastrófica global resultante de sua utilização ao emitir gases do efeito estufa responsáveis pelo aquecimento global. Com o fim da era dos combustíveis fósseis virá a era das fontes renováveis de energia quando prevalecerá a utilização da energia hidrelétrica, energia solar, energia eólica, energia das marés, energia das ondas, energia geotérmica, energia da biomassa e energia do hidrogênio. Não existem dúvidas de que as atividades humanas sobre a Terra provocam alterações no meio ambiente em que vivemos. Muitos destes impactos ambientais são provenientes da geração, manuseio e uso da energia com o uso de combustíveis fósseis. A principal razão para a existência desses impactos ambientais reside no fato de que o consumo mundial de energia primária proveniente de fontes não renováveis (petróleo, carvão, gás natural e nuclear) corresponde a aproximadamente 88% do total, cabendo apenas 12% às fontes renováveis. Independentemente das várias soluções que venham a ser adotadas para eliminar ou mitigar as causas do efeito estufa, a mais importante ação é, sem dúvidas, a adoção de medidas que contribuam para a eliminação ou redução do consumo de combustíveis fósseis na produção de energia, bem como para seu uso mais eficiente nos transportes, na indústria, na agropecuária e nas cidades (residências e comércio), haja vista que o uso e a produção de energia são responsáveis por 57% dos gases de estufa emitidos pela atividade humana. Neste sentido, é imprescindível a implantação de um sistema de energia sustentável no mundo. Em um sistema de energia sustentável, a matriz energética mundial só deveria contar com fontes de energia limpa e renováveis (hidroelétrica, solar, eólica, hidrogênio, geotérmica, das marés, das ondas e biomassa), não devendo contar, portanto, com o uso dos combustíveis fósseis (petróleo, carvão e gás natural).
As classes de modelagem podem ser comparadas a moldes ou
formas que definem as características e os comportamentos dos
objetos criados a partir delas. Vale traçar um paralelo com o projeto de
um automóvel. Os engenheiros definem as medidas, a quantidade de
portas, a potência do motor, a localização do estepe, dentre outras
descrições necessárias para a fabricação de um veículo
7. Jetpack Compose
• Melhoria de 22% na performance dos Modifiers
• Melhorias e bug
fi
xes em Text e TextField
• Novos layouts:
• Pager (HorizontalPager e VerticalPager)
• Flow (FlowRow e FlowColumn)
• Novas bibliotecas:
• Glide (https://bumptech.github.io/glide/int/compose.html)
• Google Maps (https://github.com/googlemaps/android-maps-compose)
8. Jetpack Glance
• O Jetpack Glance é um framework sobre
o Compose que permite desenvolver e
projetar widgets.
• https://developer.android.com/jetpack/
compose/glance
10. Compose for TV (Alpha)
• Componentes especí
fi
cos pra TV
• TvLazyRow, TvLazyGrid,
TvLazyColumn, SideNavigation,
Content Cards, Carousel,
ImmersiveList, etc.
13. Crie experiências únicas em telas grandes
Usuários gostam de ter uma experiência diferenciada em dispositivos
maiores.
14. Adapte seu app para telas grandes
Quanto mais bem avaliado seu aplicativo for em um dispositivo, mais ele será
recomendado no Google Play em dispositivos da mesma categoria.
16. Práticas recomendadas pra telas grandes
• Testar aplicação usando mouse, trackpad, stylus e teclado físico.
• Usuários de tablets e foldables devem poder compartilhar informações
entre apps quando estiverem em split mode (drag and drop, copy & paste)
• Eventos de mouse devem funcionar, tais como menus secondários (right
click), scroll to zoom, mouse hover, etc.
• Tente fazer o app de modo a
fi
car como uma aplicação web ou desktop.
20. Activity Embedding
• Permite incluir duas activities na tela
• Útil para aplicativos que usam
navegação baseada em Activity
https://developer.android.com/guide/topics/large-screens/activity-embedding
23. Salve o estado do seu app!
• Quando a aplicação ou activity é destruída e recriada você deve restaurar o
estado anterior rapidamente para proporcionar uma boa experiência para o
usuário.
• Na maioria dos casos, os usuários esperam que o estado da UI permaneça
o mesmo.
24. Repitam comigo:
"É impossível evitar TODOS os casos
em que a activity deve ser recriada.”
Algumas con
fi
gurações SEMPRE
recriarão a activity.
26. Mudança de con
fi
guração
• Quando a aplicação está em execução e ocorre
uma mudança de con
fi
guração, a activity é
recriada com a nova con
fi
guração.
• Essas con
fi
gurações podem ser:
• Orientação da tela (portrait/landscape)
• Redimensionar a janela (Chromebook)
• Entrar ou sair do modo multi-window
• Alternar entre os modos Light e Dark.
• Entre outros…
27. Mudança de con
fi
guração
• View Model
• Recomendação do Google para manter o estado da UI, pois é o única maneira
suportada (o
fi
cialmente) para que objetos arbitrários sobrevivam às mudanças de
con
fi
guração.
• É mantido em memória
• Limitado apenas pela quantidade de memória do aparelho
• Muito rápido para ler/escrever os dados
• A biblioteca de navegação faz o cache dos View Models caso eles estejam na
backstack
28. Encerramento inesperado
• O usuário ou o S.O. pode encerrar a
aplicação abruptamente.
• O usuário pode remover a aplicação do
menu de recentes.
• Forçar a parada nas con
fi
gurações do
aparelho.
• A aplicação pode ter sido atualizada em
background.
29. Encerramento inesperado
• Armazenamento persistente
• Data Store
• Para dados simples e pequenos
• Room
• Para dados mais complexos
• Deve ser armazenado dados da aplicação, não de UI!
• Os dados são armazenados “em disco” limitando sua capacidade ao espaço disponível no
dispositivo
• Como necessita realizar operações de I/O, é mais lento
30. Sistema precisa de recursos
• Quando sua aplicação está em
background e o sistema precisa de
recursos.
• Quando o sistema está
fi
cando sem
memória, ele fará o possível para manter
seu app em memória, mas isso não é
garantido
• O S.O. pode “matar" a aplicação para
liberar memória, tendo em vista que o
usuário está interagindo com outras
aplicações.🤷
31. Sistema precisa de recursos
• Saved State APIs possui opções pra Compose, View system e View Model
• Sobrevive às mudanças de con
fi
guração e quando o sistema necessita de recursos.
• Os dados são armazenados em memória, mas caso haja necessidade, são persistidos em
arquivo.
• Tem um tamanho limitado. A recomendação é não exceder 50Kb
• A leitura/escrita pode ser lenta dependendo da complexidade do que está sendo armazenado
• Não armazene objetos grandes ou listas! O processo de serialização e deserialização é feito na
main thread!
• Armazene dados transientes que dependem da navegação ou input do usuário, como: posição
do scroll, ID do item na tela de detalhes, Texto de um input do usuário, etc.
32. Saved State APIs
• Jetpack Compose
• rememberSaveable
• Teste com StateRestorationTester
• View system
• onSaveInstanceState
• Teste com ActivityScenario.recreate()
• View Model
• SavedStateHandle (a informação só é salva no onStop)
34. Con
fi
g changes
• Dispositivos têm
con
fi
gurações diferentes e
essas con
fi
gurações podem
mudar durando o uso.
• Essas con
fi
gurações podem
ser obtidas na Activity, via
atributo resources.
35. Con
fi
g changes
• No Compose, as con
fi
gurações podem ser obtidas via
LocalConfiguration.
Dispara recomposição quando a
con
fi
guração muda
36. Modo Compatibilidade
• Acontece quando você coloca restrições às mudanças de con
fi
guração.
• Duas maneiras de entrar no modo de compatibilidade
37. Modo Compatibilidade
• Se uma restrição for aplicada e a
con
fi
guração do dispositivo não for
compatível, o sistema colocar o
aplicativo no modo compatibilidade.
• Isso permitirá todas as aplicações
executarem tanto em portrait
quanto em landscape, e também no
modo multi-window.
• As mudanças de con
fi
guração
serão recebidas da mesma forma.
38. Recomendação
• Não estabelecer restrições
de orientação ou
redimensionamento de tela.
• Adicionar essas restrições
não é a maneira de evitar o
ciclo de vida da aplicação.
39. Ferramentas
• Use o foldable emulator para testar como sua aplicação funciona ao dobrar
e desdobrar o aparelho.
• Use o Freeform/Desktop emulator (Chromebook) para testar o
redimensionamento da janela do aplicativo, minimizar, maximizar, eventos
de mouse (hover, right-click, scroll, scroll-to-zoom) e teclado físico.
• Resizable emulator é um "3 em 1": phone, tablet e unfolded foldable
40. Ferramentas
• Device Mirroring in Android Studio (requires Electric Eel or later). Permite
interagir com o device dentro do Android Studio. 🤔
• É tipo o scrcpy (https://github.com/Genymobile/scrcpy) dentro do Android
Studio
• Rotação da tela; Alterar o volume; Lock/Unlock the phone; Turn the
display on/off; acessar os controles de navegação; e fazer screen
recording
41. Multi Previews for Jetpack Compose
annotation class Preview(
val name: String = "",
val group: String = "",
@IntRange(from = 1) val apiLevel: Int = -1,
val widthDp: Int = -1,
val heightDp: Int = -1,
val locale: String = "",
@FloatRange(from = 0.01) val fontScale: Float = 1f,
val showSystemUi: Boolean = false,
val showBackground: Boolean = false,
val backgroundColor: Long = 0,
@UiMode val uiMode: Int = 0,
@Device val device: String = Devices.DEFAULT,
@Wallpaper val wallpaper: Int = Wallpapers.NONE,
)
44. Automated Testing Tools
• É possível usar Gradle Managed Devices para iniciar emuladores com
con
fi
gurações diferentes e rodar a suíte de testes em todos eles.
• Diferentes dispositivos requerem testes diferentes baseado no tamanho da
tela. Mas como de
fi
nir os testes que rodarão em cada device?
46. Espresso Device API
• Permite controlar o emulador diretamente do código de teste. Pode-se usar
telefones, tablets, foldables rodando Android API 24 ou superior.
• Com essa API é possível de forma síncrona: rotacionar, dobrar/desdobrar e
redimensionar o dispositivo durante o teste. Garantindo que seu aplicativo
trata as mudanças de con
fi
guração corretamente.
• Permite de
fi
nir regras para que não sejam executados testes em
dispositivos onde o teste certamente falhará. Por exemplo: não executar
testes de dobrar/desdobrar em dispositivos que não sejam foldables.
55. Soluções de Teste
• É possível escalar os testes para uma diversidades de dispositivos
utilizando o poder do Gradle Managed Devices e Firebase Test Lab.
• Com os testes de screenshot é possível veri
fi
car rapidamente regressões
em UIs feitas em Compose, pois as mudanças são apontadas visualmente.
56. Firebase Test Lab
• É possível rodar testes em dispositivos reais disponíveis no Firebase Test
Lab. Inclusive é possível criar grupos de aparelhos para rodar os testes.
• Os resultados podem ser visualizados em HTML, proto
fi
le no Android Studio
ou no Firebase Console
• Fique atento aos custos de rodar testes em vários aparelhos.
57. Screenshot tests
• Como feature experimental do Android Gradle Plugin será possível
converter os Previews dos Composables do Android Studio em imagens
de referência para testes de screenshot.
• Os screenshots
fi
carão em
Projeto/app/src/screenshotTest
• O comando do Gradle gerará as imagens de referência baseado nos
@Preview
60. Roadmap
• Network Inspector Tra
ffi
c Interception
• Themed App Icons Preview
• Lint Support for SDK Extensions
• Dynamic Color in Compose Preview
• Build Analyzer Task Categorization
• App Quality Insights v2
• Templates: Compose & Material 3
61. Next releases
Giraffe - Stable!!!🎉 Hedgehog - Canary
https://developer.android.com/studio/preview
62. New features
• Device Explorer
• New UI
• Kotlin DSL & Version Catalog Build
• Per-app language preferences
support in Android Gradle plugin
• Live Edit for Jetpack Compose
• Gradle Version Catalog
• Download Impact in Build Analyzer
• Jetpack Compose Animation Preview
• Integrated Bug Report
• Studio Bot
• Lite Mode
• Build Analyzer
• Jetpack Compose Visual Lint & Accessibility Test
• Wear OS 4 Emulator with Bluetooth & DWF Support
• Host-side Screenshot Testing
• Gradle Managed Devices on Firebase
• Baseline Pro
fi
les Gradle Plugin
• App Quality Insights + Android Vitals
• Espresso Device API
• Power pro
fi
ler
• Layout inspector integrado com o dispositivo
conectado
Giraffe Hedgehog
63. Android Studio (New Features)
• Novo visual (New IntelliJ UI)
• Target SDK Migration analisa o projeto e gera uma lista de etapas para serem realizadas
para migrar o projeto para um novo targetSdk.
• Compose é o default para novos projetos, assim como KTS é novo padrão para build scripts
(com opção de version catalog)
• Device Streaming (tipo um scrcpy) integrado com layout inspector para Compose
• Per-app language preferences support in Android Gradle plugin
• Live Edit impressionante 🤯
• Studio Bot 🤖
69. Recomposition State Debugger
• Agora no Debugger temos um Recomposition State ao inserir um breakpoint em um
Composable (Android Studio Hedgehog).
• Esse estado pode ser:
• Unchanged: o argumento dessa composable function não mudou
• Changed: o argumento agora tem um valor diferente
• Uncertain: o Compose ainda está avaliando se o argumento mudou
• Static: Compose determinou que esse
argumento nunca mudará
• Unstable: o argumento é um tipo instável
(unstable)
70. Travamentos na UI
• Listas são tipos instáveis. Kotlin possui a PersistentList
(experimental). Uma lista estável que pode resolver problemas de
recomposição causadas por listas.
• Layout inspector mostra o número recomposições
• Recomposições durante scroll é um "code smell”
• A ferramenta de Macrobenchmark dará um resultado de performance para
que você possa con
fi
rmar a melhoria de performance após a resolução do
problema.
76. Play’s Data Safety
• O desenvolvedor deve informar se coleta,
usa e/ou compartilha dados do usuário.
• As informações sobre privacidade no uso
dos dados virão no dialog de solicitação
de permissão.
• Essas informações de privacidade virão
do próprio Google Play e são preenchidas
no momento da publicação do app na
loja.
77. Granular Media Permissions
• A permissão READ_EXTERNAL_STORAGE está marcada como deprecated
em apps targeting Android 13 (API Level 33)
• Novas permissões:
READ_MEDIA_IMAGES para imagens e fotos
READ_MEDIA_VIDEO para vídeos
READ_MEDIA_AUDIO para arquivos de áudios
• Nenhum diálogo de permissão será exibido para o usuário se a permissão
de armazenamento já tiver sido concedida.
78. Photo Picker
• Não requer permissão em tempo de execução
• Melhor UX para acessar fotos e vídeos
• Muito fácil de integrar (< 5 linhas de código)
• Suporte a Android KitKat (API 19) ou superior
• 😔 Integração com serviços de mídias na cloud em
breve.
79. Reduza o pedido de permissão
• Se possível, diminua a precisão da localização. "Coarse location" muitas vezes é o
su
fi
ciente.
• Use as intents de câmera (ACTION_IMAGE_CAPTURE e ACTION_VIDEO_CAPTURE),
já que elas não precisam de permissão.
• Pre
fi
ra identi
fi
cadores com escopo de aplicação ao invés do ID do aparelho.
• Faça o pareamento Bluetooth e Wi
fi
usando a permissão dedicada adicionando a
fl
ag
“neverForLocation" se aplicável.
• Use SMS retriever API para OTP; e ACTION_DIAL para fazer chamadas.
• Remova permissões quando elas não forem mais necessárias.
80. Privacidade & Segurança
• Apps com target para Android 14 (API
34) devem usar a
fl
ag
RECEIVER_EXPORTED ou
RECEIVER_NOT_EXPORTED ao registrar
um runtime broadcast receiver (que não
seja de sistema). Não fazer isso, gerará
uma SecurityException.
• Implicit Intents só serão entregues para
componentes exportados. Apps terão
que usar Intents explícitas se quiserem
disparar componentes não exportados.
81. Target SDK Version
• A partir do Android 14, aplicativos com targetSdkVersion < 23 (Android
6) não poderão ser instalados. Esse requisito visa melhorar a segurança e
privacidade dos usuários.
• Várias mudanças de segurança e privacidade estão ligadas à target version
do Android de
fi
nida pela aplicação. Por exemplo, as permissões em tempo
de execução introduzidas no Android 6.
• Em aparelhos atualizados pro Android 14, todos os apps que tenham o
targetSdkVersion < 23 permanecerão instalados.
• Novos aplicativos devem usar targetSdk 33 (Android 13) desde 01/08/2023
e atualizações de apps devem fazer o mesmo até 01/11/2023.