SlideShare a Scribd company logo
1 of 26
O que há de novo nas
Android Support Libraries
Marcelo Quinta (@mrquinta)
Isso é montagem né, por favor... =P
Diferentes sabores, mesmo objetivo
● recommendation (2015 - TV)
● preference-v7 (2015)
● preference-v14 (2015)
● preference-v17 (2015)
● preference-leanback-v17 (2015 - TV)
● vector-drawable (2016)
● v4 support (2016 - revisão)
● dynamic-animation (2017)
● emoji (2017)
...e logicamente foram sendo feitas
atualizações sobre cada uma delas
● v4 (2011)
● v13 (2011)
● v7 gridlayout (2013)
● v7 appcompat (2013)
● v8 renderscript (2013)
● v7 cardview (2014)
● v7 recyclerview (2014)
● v7 palette (2014)
● v7 leanback (2014)
● wear UI (2014)
● annotation (2015)
● design (2015)
● customtabs (2015)
● percent (2015) ?
compile 'com.android.support:appcompat-v7:26.0.1'
nome da biblioteca
minSDK
targetSdkVersion
versão
Agora tudo no repositório Maven do Google
maven {
url 'https://maven.google.com'
}
Seja organizad@
ext{
supportLibrary = '25.1.0'
playServices = '9.8.0'
firebase = playServices
}
dependencies {
...
compile "com.android.support:appcompat-v7:${supportLibrary}"
compile "com.android.support:design:${supportLibrary}"
compile "com.android.support:palette-v7:${supportLibrary}"
compile "com.google.android.gms:play-services-location:${playServices}"
compile "com.google.firebase:firebase-core:${firebase}"
compile "com.google.firebase:firebase-messaging:${firebase}"
}
Seja espert@ com exceções na configuração
defaultConfig {
renderscriptTargetApi 18
renderscriptSupportModeEnabled true
}
Seja espert@ com exceções na configuração
defaultConfig {
minSdkVersion 15
targetSdkVersion 25
multiDexEnabled true
...
}
dependencies { compile 'com.android.support:multidex:1.0.1' }
./gradlew app:dependencies
Que limpinho!
● 1400 métodos a menos
● Deprecation de 30
classes/interfaces e 400 métodos
● Novo Issue Tracker
● Pulll-requests da comunidade
maven {
url 'https://maven.google.com'
}
android:minSdkVersion = "14"
25.3 vai continuar funcionando até Honeycomb
(faça um novo branch)
public <T extends View> T findViewById (int id);
Fim do casting no findViewById
Toolbar toolbar = findViewById(R.id.toolbar);
setActionBar( toolbar);
TextView com tamanho de fonte automático
<?xml version="1.0" encoding="utf-8"?>
<TextView
android:layout_width="match_parent"
android:layout_height="400dp"
android:autoSizeTextType="uniform"
android:autoSizeMinTextSize="12sp"
android:autoSizeMaxTextSize="20sp"
android:autoSizeStepGranularity="2sp" />
Fontes como um tipo de recurso
Typeface tf = Typeface.createFromAsset(getAssets(), "fonts/Arial.otf");
TextView tv = (TextView) findViewById(R.id.CustomFontText);
tv.setTypeface(tf);
Typeface tf = ResourcesCompat.getFont(context, R.font.myfont);
tv.setTypeface(tf);
Criando fontes
<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:android="http://schemas.android.com/apk/res/android">
<font
android:fontStyle="normal"
android:fontWeight="400"
android:font="@font/comicsans_regular" />
<font
android:fontStyle="italic"
android:fontWeight="400"
android:font="@font/comicsans_italic" />
</font-family>
comicsans.xml
Referenciando via XML
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/comicsans"
android:textStyle="italic" />
Downloadable fonts
FontRequest request = new FontRequest("com.example.fontprovider.authority",
"com.example.fontprovider", "my font", certs);
FontsContract.FontRequestCallback callback =
new FontsContract.FontRequestCallback() {
@Override
public void onTypefaceRetrieved(Typeface typeface) {
//Fazer o que eu quiser com a fonte baixada
}
@Override
public void onTypefaceRequestFailed(int reason) {
//Deu ruim
}
};
FontsContract.requestFonts(context, request, callback , handler);
Downloadable fonts
Downloadable fonts
Android Wear UI atualizada
Muitas APIs deprecated! Veja as novas!
WearableRecyclerView BoxInsetLayout SwypeDismissFrameLayout
PreferenceDataStore não é exatamente para substituir SharedPreferences
https://developer.android.com/reference/android/preference/PreferenceManager.html#setPreferenceDataStore
%28android.preference.PreferenceDataStore%29
Quer saber mais?
https://developer.android.com/topic/libraries/support-library/index.html?hl=pt-br
Quer saber mais?
https://www.youtube.com/watch?v=V6-roIeNUY0
https://devfestcerrado.com.br/
Obrigado pela atenção
@mrquinta
Gostou? É trabalho voluntário. Dê
um tweet ou publique no Facebook

More Related Content

Similar to Novas funcionalidades nas Android Support Libraries

Curso de Introdução ao Android Básico
Curso de Introdução ao Android BásicoCurso de Introdução ao Android Básico
Curso de Introdução ao Android BásicoLuiz Carvalho
 
Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sitesthiagolima
 
Aumentando a produtividade com Android Libs
Aumentando a produtividade com Android LibsAumentando a produtividade com Android Libs
Aumentando a produtividade com Android LibsNelson Glauber Leal
 
2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao androidMessias Batista
 
Aula 1 view model livedata e databinding.pptx
Aula 1   view model livedata e databinding.pptxAula 1   view model livedata e databinding.pptx
Aula 1 view model livedata e databinding.pptxRicardo Ogliari
 
Programando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkProgramando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkPablo Dall'Oglio
 
Desenvolvendo aplicacoes mobile_com_html_css_
Desenvolvendo aplicacoes mobile_com_html_css_Desenvolvendo aplicacoes mobile_com_html_css_
Desenvolvendo aplicacoes mobile_com_html_css_Rodrigo Urubatan
 
Dev401 novos recursos do microsoft visual basic 2010
Dev401 novos recursos do microsoft visual basic 2010Dev401 novos recursos do microsoft visual basic 2010
Dev401 novos recursos do microsoft visual basic 2010Alexandre Tarifa
 
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3André Luiz Forchesatto
 
Android com estilo - GDG Dev Fest 2015
Android com estilo - GDG Dev Fest 2015Android com estilo - GDG Dev Fest 2015
Android com estilo - GDG Dev Fest 2015Nathalie Lima
 
Material Design - Melhorando a experiência de seu App
Material Design - Melhorando a experiência de seu AppMaterial Design - Melhorando a experiência de seu App
Material Design - Melhorando a experiência de seu Appalissin
 
Desenvolvimento Ágil com Grails.
Desenvolvimento Ágil com Grails.Desenvolvimento Ágil com Grails.
Desenvolvimento Ágil com Grails.Alex Guido
 
Treinamento básico de Android
Treinamento básico de AndroidTreinamento básico de Android
Treinamento básico de AndroidTiago Barreto
 
Introdução aos aplicativos tipo canvas
Introdução aos aplicativos tipo canvasIntrodução aos aplicativos tipo canvas
Introdução aos aplicativos tipo canvasGuilherme
 
InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer
InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecerInterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer
InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouqueceriMasters
 
Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)
Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)
Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)Rafael Ponte
 

Similar to Novas funcionalidades nas Android Support Libraries (20)

Curso de Introdução ao Android Básico
Curso de Introdução ao Android BásicoCurso de Introdução ao Android Básico
Curso de Introdução ao Android Básico
 
Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sites
 
Android FREETEC
Android FREETECAndroid FREETEC
Android FREETEC
 
Aumentando a produtividade com Android Libs
Aumentando a produtividade com Android LibsAumentando a produtividade com Android Libs
Aumentando a produtividade com Android Libs
 
Phonegap
PhonegapPhonegap
Phonegap
 
2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android
 
Workshop frontend
Workshop   frontendWorkshop   frontend
Workshop frontend
 
Aula 1 view model livedata e databinding.pptx
Aula 1   view model livedata e databinding.pptxAula 1   view model livedata e databinding.pptx
Aula 1 view model livedata e databinding.pptx
 
Programando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkProgramando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um Framework
 
Desenvolvendo aplicacoes mobile_com_html_css_
Desenvolvendo aplicacoes mobile_com_html_css_Desenvolvendo aplicacoes mobile_com_html_css_
Desenvolvendo aplicacoes mobile_com_html_css_
 
Dev401 novos recursos do microsoft visual basic 2010
Dev401 novos recursos do microsoft visual basic 2010Dev401 novos recursos do microsoft visual basic 2010
Dev401 novos recursos do microsoft visual basic 2010
 
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
 
Android com estilo - GDG Dev Fest 2015
Android com estilo - GDG Dev Fest 2015Android com estilo - GDG Dev Fest 2015
Android com estilo - GDG Dev Fest 2015
 
Material Design - Melhorando a experiência de seu App
Material Design - Melhorando a experiência de seu AppMaterial Design - Melhorando a experiência de seu App
Material Design - Melhorando a experiência de seu App
 
Desenvolvimento Ágil com Grails.
Desenvolvimento Ágil com Grails.Desenvolvimento Ágil com Grails.
Desenvolvimento Ágil com Grails.
 
Grails
GrailsGrails
Grails
 
Treinamento básico de Android
Treinamento básico de AndroidTreinamento básico de Android
Treinamento básico de Android
 
Introdução aos aplicativos tipo canvas
Introdução aos aplicativos tipo canvasIntrodução aos aplicativos tipo canvas
Introdução aos aplicativos tipo canvas
 
InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer
InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecerInterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer
InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer
 
Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)
Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)
Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)
 

More from Marcelo Quinta

Dicas de otimização e planejamento de apps para o mercado brasileiro
Dicas de otimização e planejamento de apps para o mercado brasileiroDicas de otimização e planejamento de apps para o mercado brasileiro
Dicas de otimização e planejamento de apps para o mercado brasileiroMarcelo Quinta
 
Bibliotecas Google para iOS: Fanboy é a sua vó
Bibliotecas Google para iOS: Fanboy é a sua vóBibliotecas Google para iOS: Fanboy é a sua vó
Bibliotecas Google para iOS: Fanboy é a sua vóMarcelo Quinta
 
Android N, Java 8, Android Studio 2.2?
Android N, Java 8, Android Studio 2.2?Android N, Java 8, Android Studio 2.2?
Android N, Java 8, Android Studio 2.2?Marcelo Quinta
 
Arquitetura móvel para diferentes contextos
Arquitetura móvel para diferentes contextosArquitetura móvel para diferentes contextos
Arquitetura móvel para diferentes contextosMarcelo Quinta
 
Conhecendo e utilizando Beacons e a Nearby API para Android
Conhecendo e utilizando Beacons e a Nearby API para AndroidConhecendo e utilizando Beacons e a Nearby API para Android
Conhecendo e utilizando Beacons e a Nearby API para AndroidMarcelo Quinta
 
Boas práticas de desenvolvimento Móvel
Boas práticas de desenvolvimento MóvelBoas práticas de desenvolvimento Móvel
Boas práticas de desenvolvimento MóvelMarcelo Quinta
 
Games and Java ME - Have fun and earn some money
Games and Java ME - Have fun and earn some moneyGames and Java ME - Have fun and earn some money
Games and Java ME - Have fun and earn some moneyMarcelo Quinta
 
iOS no TDC Florianópolis
iOS no TDC FlorianópolisiOS no TDC Florianópolis
iOS no TDC FlorianópolisMarcelo Quinta
 
Introdução ao Arduino e robótica
Introdução ao Arduino e robóticaIntrodução ao Arduino e robótica
Introdução ao Arduino e robóticaMarcelo Quinta
 
Desenvolvimento de aplicações para dispositivos móveis
Desenvolvimento de aplicações para dispositivos móveisDesenvolvimento de aplicações para dispositivos móveis
Desenvolvimento de aplicações para dispositivos móveisMarcelo Quinta
 

More from Marcelo Quinta (18)

Dicas de otimização e planejamento de apps para o mercado brasileiro
Dicas de otimização e planejamento de apps para o mercado brasileiroDicas de otimização e planejamento de apps para o mercado brasileiro
Dicas de otimização e planejamento de apps para o mercado brasileiro
 
Bibliotecas Google para iOS: Fanboy é a sua vó
Bibliotecas Google para iOS: Fanboy é a sua vóBibliotecas Google para iOS: Fanboy é a sua vó
Bibliotecas Google para iOS: Fanboy é a sua vó
 
Android N, Java 8, Android Studio 2.2?
Android N, Java 8, Android Studio 2.2?Android N, Java 8, Android Studio 2.2?
Android N, Java 8, Android Studio 2.2?
 
Arquitetura móvel para diferentes contextos
Arquitetura móvel para diferentes contextosArquitetura móvel para diferentes contextos
Arquitetura móvel para diferentes contextos
 
Conhecendo e utilizando Beacons e a Nearby API para Android
Conhecendo e utilizando Beacons e a Nearby API para AndroidConhecendo e utilizando Beacons e a Nearby API para Android
Conhecendo e utilizando Beacons e a Nearby API para Android
 
Boas práticas de desenvolvimento Móvel
Boas práticas de desenvolvimento MóvelBoas práticas de desenvolvimento Móvel
Boas práticas de desenvolvimento Móvel
 
iOS libraries
iOS librariesiOS libraries
iOS libraries
 
Android libraries
Android librariesAndroid libraries
Android libraries
 
Android bluetooth
Android bluetoothAndroid bluetooth
Android bluetooth
 
Mobile
MobileMobile
Mobile
 
Games and Java ME - Have fun and earn some money
Games and Java ME - Have fun and earn some moneyGames and Java ME - Have fun and earn some money
Games and Java ME - Have fun and earn some money
 
iOS no TDC Florianópolis
iOS no TDC FlorianópolisiOS no TDC Florianópolis
iOS no TDC Florianópolis
 
Jquery Mobile
Jquery MobileJquery Mobile
Jquery Mobile
 
Introdução ao Arduino e robótica
Introdução ao Arduino e robóticaIntrodução ao Arduino e robótica
Introdução ao Arduino e robótica
 
Ria e Java FX
Ria e Java FXRia e Java FX
Ria e Java FX
 
Desenvolvimento de aplicações para dispositivos móveis
Desenvolvimento de aplicações para dispositivos móveisDesenvolvimento de aplicações para dispositivos móveis
Desenvolvimento de aplicações para dispositivos móveis
 
Minicurso Java Me
Minicurso Java MeMinicurso Java Me
Minicurso Java Me
 
Hello World JavaFX
Hello World JavaFXHello World JavaFX
Hello World JavaFX
 

Novas funcionalidades nas Android Support Libraries

  • 1. O que há de novo nas Android Support Libraries Marcelo Quinta (@mrquinta)
  • 2. Isso é montagem né, por favor... =P
  • 3. Diferentes sabores, mesmo objetivo ● recommendation (2015 - TV) ● preference-v7 (2015) ● preference-v14 (2015) ● preference-v17 (2015) ● preference-leanback-v17 (2015 - TV) ● vector-drawable (2016) ● v4 support (2016 - revisão) ● dynamic-animation (2017) ● emoji (2017) ...e logicamente foram sendo feitas atualizações sobre cada uma delas ● v4 (2011) ● v13 (2011) ● v7 gridlayout (2013) ● v7 appcompat (2013) ● v8 renderscript (2013) ● v7 cardview (2014) ● v7 recyclerview (2014) ● v7 palette (2014) ● v7 leanback (2014) ● wear UI (2014) ● annotation (2015) ● design (2015) ● customtabs (2015) ● percent (2015) ?
  • 4. compile 'com.android.support:appcompat-v7:26.0.1' nome da biblioteca minSDK targetSdkVersion versão
  • 5. Agora tudo no repositório Maven do Google maven { url 'https://maven.google.com' }
  • 6. Seja organizad@ ext{ supportLibrary = '25.1.0' playServices = '9.8.0' firebase = playServices } dependencies { ... compile "com.android.support:appcompat-v7:${supportLibrary}" compile "com.android.support:design:${supportLibrary}" compile "com.android.support:palette-v7:${supportLibrary}" compile "com.google.android.gms:play-services-location:${playServices}" compile "com.google.firebase:firebase-core:${firebase}" compile "com.google.firebase:firebase-messaging:${firebase}" }
  • 7. Seja espert@ com exceções na configuração defaultConfig { renderscriptTargetApi 18 renderscriptSupportModeEnabled true }
  • 8. Seja espert@ com exceções na configuração defaultConfig { minSdkVersion 15 targetSdkVersion 25 multiDexEnabled true ... } dependencies { compile 'com.android.support:multidex:1.0.1' }
  • 10.
  • 11. Que limpinho! ● 1400 métodos a menos ● Deprecation de 30 classes/interfaces e 400 métodos ● Novo Issue Tracker ● Pulll-requests da comunidade maven { url 'https://maven.google.com' }
  • 12. android:minSdkVersion = "14" 25.3 vai continuar funcionando até Honeycomb (faça um novo branch)
  • 13. public <T extends View> T findViewById (int id); Fim do casting no findViewById Toolbar toolbar = findViewById(R.id.toolbar); setActionBar( toolbar);
  • 14. TextView com tamanho de fonte automático <?xml version="1.0" encoding="utf-8"?> <TextView android:layout_width="match_parent" android:layout_height="400dp" android:autoSizeTextType="uniform" android:autoSizeMinTextSize="12sp" android:autoSizeMaxTextSize="20sp" android:autoSizeStepGranularity="2sp" />
  • 15. Fontes como um tipo de recurso Typeface tf = Typeface.createFromAsset(getAssets(), "fonts/Arial.otf"); TextView tv = (TextView) findViewById(R.id.CustomFontText); tv.setTypeface(tf); Typeface tf = ResourcesCompat.getFont(context, R.font.myfont); tv.setTypeface(tf);
  • 16. Criando fontes <?xml version="1.0" encoding="utf-8"?> <font-family xmlns:android="http://schemas.android.com/apk/res/android"> <font android:fontStyle="normal" android:fontWeight="400" android:font="@font/comicsans_regular" /> <font android:fontStyle="italic" android:fontWeight="400" android:font="@font/comicsans_italic" /> </font-family> comicsans.xml
  • 18. Downloadable fonts FontRequest request = new FontRequest("com.example.fontprovider.authority", "com.example.fontprovider", "my font", certs); FontsContract.FontRequestCallback callback = new FontsContract.FontRequestCallback() { @Override public void onTypefaceRetrieved(Typeface typeface) { //Fazer o que eu quiser com a fonte baixada } @Override public void onTypefaceRequestFailed(int reason) { //Deu ruim } }; FontsContract.requestFonts(context, request, callback , handler);
  • 21. Android Wear UI atualizada Muitas APIs deprecated! Veja as novas! WearableRecyclerView BoxInsetLayout SwypeDismissFrameLayout
  • 22. PreferenceDataStore não é exatamente para substituir SharedPreferences https://developer.android.com/reference/android/preference/PreferenceManager.html#setPreferenceDataStore %28android.preference.PreferenceDataStore%29
  • 26. Obrigado pela atenção @mrquinta Gostou? É trabalho voluntário. Dê um tweet ou publique no Facebook