Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android AppCompat-v21 vs Pure Material

So the documentation and examples are few and sparse currently, with more being added, for Material based Android applications.

I've read all of the documentation to date, but have a more general question that I've heard from a lot of people:

  • Should apps below 5.0 conform to Holo-istic styles, and 5.0 make use of Material?

or

  • Should apps use AppCompat to make as much of the system Material as possible, and if so, what negative effects does this have on 5.0 and above devices?

My ocd developer mind would rather have the purest form of Material as possible, however with the Toolbar and other important factors it seems to make more sense to use AppCompat and revise the entire 4.0 application as well.

For those looking here are some of the documents that I've read on this:

http://antonioleiva.com/material-design-everywhere/

https://chris.banes.me/2014/10/17/appcompat-v21/

http://developer.android.com/training/material/theme.html

http://developer.android.com/training/material/compatibility.html

http://android-developers.blogspot.com/2014/10/implementing-material-design-in-your.html

like image 853
John Shelley Avatar asked Oct 27 '14 18:10

John Shelley


People also ask

Should I use appcompat or pure material on Lollipop?

You can use AppCompat while still supporting Pure Material on Lollipop via alternate resources. So you don't really have to choose to support one or the other. The reason that Google spent so much time developing AppCompat is so devs could embrace Material design and still support legacy devices. This is actually a little dangerous.

Should I use appcompat for Material Design?

So the answer is yes, use AppCompat to give your users a unified, stable experience rooted in Material Design. Show activity on this post. It's entirely up to you.

What is the latest version of appcompat?

AppCompat has updated its dependency from Fragment 1.1.0 to Fragment 1.3.0-alpha08. It is strongly recommended to read through the Fragment 1.2.0 release notes to understand the major changes introduced in the previous Fragment release. AppCompat has updated its dependency from Activity 1.0.0 to Activity 1.2.0-alpha08.

What version of lifecycle does appcompat depend on?

From AppCompat 1.5.0: AppCompat now depends on Lifecycle 2.3.1. ( Ia75a1) androidx.appcompat:appcompat:1.3.1 and androidx.appcompat:appcompat-resources:1.3.1 are released. Version 1.3.1 contains these commits.


2 Answers

Should apps use AppCompat to make as much of the system Material as possible, and if so, what negative effects does this have on 5.0 and above devices?

You can use AppCompat while still supporting Pure Material on Lollipop via alternate resources. So you don't really have to choose to support one or the other. The reason that Google spent so much time developing AppCompat is so devs could embrace Material design and still support legacy devices.

My ocd developer mind would rather have the purest form of Material as possible

This is actually a little dangerous. For example if you want to use ripples/other animations on devices pre 5.0 that lack a RenderThread it may affect performance on devices without a dedicated animation thread.

What it really comes down to is will I be able to give my users the same amazing experience using AppCompat as I will using the native themes. Google has done a phenomenal job with AppCompat-v21 and the other support libraries to enable a Material-esque design on pre 5.0 devices. So the answer is yes, use AppCompat to give your users a unified, stable experience rooted in Material Design.

like image 61
MrEngineer13 Avatar answered Sep 26 '22 23:09

MrEngineer13


It's entirely up to you.

Some developers may find it easier to develop without using appcompat and choose to do Holo for pre-21 and Material for 21+. Many developers will want their app to look (mostly) consistent across devices and choose to use appcompat for Material on pre-21.

like image 41
alanv Avatar answered Sep 22 '22 23:09

alanv