Should we design for Android L Material theme yet? - android

I just started designing my app for Android L Material theme. I understand that we have to first check whether our existing apps work fine with the ART, the new WebView and all that, but going a step further I want my app to be release-ready when Android L is officially released. But I see that there's very little documentation and I'm not able to get around to find answers to some questions I have -
Is the material theme itself going to be available for older versions of Android?
Is the Android L SDK that's publicly available right now good enough to start building apps using it? I found a few posts on stack overflow where commons guy has said to hold off until Android L is released.
There are a few things that are mentioned in the design specs but there's no documentation on it. Like "Toolbar", for example, is replacing the "ActionBar" according to Google IO 2014 App's source. But why is it not mentioned anywhere in the Android L getting started page? And is it going to be backward compatible with older versions through support library?
Any sample code on how to achieve extended app bar as mentioned in this page?

Is the material theme itself going to be available for older versions of Android?
There have been some comments from Google suggesting that they'll be doing some things in this area. Not everything is strictly possible to offer in the form of a backport. Hence, we won't really know until they ship.
Is the Android L SDK that's publicly available right now good enough to start building apps using it? I found a few posts on stack overflow where commons guy has said to hold off until Android L is released.
The reason for my advice is that we have no idea how stable the L APIs are, particularly with respect to Material Design. If you want to experiment with L for that sort of thing, great! But I'd leave such stuff on a development branch until the next shipping version of Android.
But why is it not mentioned anywhere in the Android L getting started page?
There are lots of things not mentioned in the docs, particularly in API level release notes. That's normal for Android, and it is why I and others write blog posts like this one and this one.
And is it going to be backward compatible with older versions through support library?
That has not been announced. We'll find out when the next production version of Android ships.
Any sample code on how to achieve extended app bar as mentioned in this page?
I am not aware of any, though I haven't been keeping an eye out for it either. My personal aesthetic says "yuck" for that particular aspect of Material Design. :-)

Related

How to decide the minSdkVersion value in Android app

I know that my question is quite generic and maybe there is more than one approaches to take that decision. But I would like to listen different approaches that maybe I haven't thought since now.
Also, forgive me if stack overflow is not the right place for questions like this (since it is not technical and specific) but I strongly believe that there is not more appropriate place for this question than here. Also I am pretty sure that this subject may be interesting for many android developers here.
So, when I have to make that call, first of all
I consider the official statistics of each distribution. So, I take a look in diagrams like this. Of course we have to keep an eye to the market and to consider very seriously what will be the future of our app one or two years later
A second factor can be the api restrictions, but if you face this problem, sometimes is easier to decide.
Least but not last is the specific market statistics and trends. For instance if the app is paid then you go to more specific statistics, for example Android L users spend more money on google play than the older version users.
All these thoughts became more strong after the release of Android L which is in my opinion the most competitive version against apple. Android L encourages the use of Material Design , contains cool animations and ifrom the point of view of speed , memory management and more technical stuff is way better than the older versions (as it supposed to be).
Thank you
All my apps are currently using api 15+.
Facebook SDK is supporting 15+ api too.
I would use api below 15 just if needed, you have more support and more easy methods to implement your app with 15+.
Well you definitely should install Android Studio and create new project in it. There will be a dialog, which will help you choose a version, giving a percentage of covered devices worldwide.

What are the things to follow to upgrade my android app to material design? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 8 years ago.
Improve this question
I want to update my old android application to support material design.Currently i'm using android eclipse to develop.I have following questions.
1.What are the things to follow to upgrade my android app to material design?
2.Do i need to use Android Studio to support for material design?
3.Is there any documentation about how to design material design?
4.Up to which older version does material design support?
1.What are the things to follow to upgrade my android app to material design?
All definitions and guidelines in the Material Design site. Personally, I believe the most important are the Metrics and Keylines section, as well as the Typography section. I mean, if I were to start learning Material Design, I would start there.
Of course, all other things are useful as well. For example, you must look at the Components group, and most important (in my humble opinion), how and when to use Cards (compare to Tiles). Again, metrics and typography play a huge role here. Some other things seem to be more useful to people implementing widgets and all, i.e., system programmers and designers.
Floating Action Button (a component for promoted actions), are also going to play a huge role in Material Design.
Finally, considering this is all very new, I strongly suggest you follow well known people on Google+, and subscribe to some communities there. There are new things, code samples and open source components appearing each day, that help easing this transition. One of the cool stuff I've found recently is one (“LDrawer“) that automatically deals with the icon morphing animation for the ActionBarDrawerToggle. I don't even know if this has already been put into the support libraries (or as easily as a one line import/change), just for you to see how this is all so new. Update: it is present in the support-v7 library now. Again, everything is changing very fast.
Android App Design is a good one. Roman Nurik is the moderator. There are good stuff that pops up on Android Projects on Github, and so on…
2.Do i need to use Android Studio to support for material design?
No. But I suggest you at least try it. It's going to be the future, it has a lot of useful features, and it's the "kinda official" IDE for Android development. Everything is going to be released for it (first, or only).
I stopped following Eclipse for Android development quite some time ago, so I can't really comment on what you're missing there, but last I've heard, even one of the Googlers that really used Eclipse finally migrated a few weeks ago. Some jokes flew on Google+ because of that :), so I would take that as a hint. ;)
3.Is there any documentation about how to design material design?
See 1. If you mean the javadocs, see classes mentioned in the links posted in 4, below.
4.Up to which older version does material design support?
By using a few support libraries, you can use most of the components down to API 7 (Eclair MR1/2.1), so that means everything, in practice. Not all, but Google is certainly putting a lot of effort to backport everything as transparently as possible. IIRC, they said that in one of the I/O sessions when someone asked one of the presenters.
I say “as transparently as possible” because some things won't be there, because they depend on new stuff added in 5.0 (for example, the shadow rendering for cards). But these are, as far as I know, specific issues that don't affect development.
Indeed, here we are: 5.0 is not really in the wild yet, and we already have most stuff all the way back to v7.
To use material design in your Android apps, follow the guidelines defined in the material design specification and functionality available in Android 5.0 (API level 21)
So update android sdk to api 21.
and check this

Android Notepad tutorial: Still "State of the art"?

I am going to make my first app for android (no fear it's just a school project and won't be another useless app in the market :>).
So, before starting this task I did some tutorials, one of these (and which I thought would be very useful, because of the sqlite part) was the Notepad Tutorial. While working through it I saw it was originally designed for Android 1.8 or something (certainly it still worked on my android 4.1).
What I'm really wondering now is:
Is this code still "state of the art" in android programming (especially sqlite, but also the rest :) or is it "deprecated"? If so, can you point me to something newer and better?
Thank you.
SQLite is definitely still the database available by default on every Android device. Also, the basics covered in this tutorial still apply to any Android version. Of course, every new version of the OS also provides new possibilities as to which controls you can use or other new APIs, but for very simple applications, this tutorial is still valid.
I skimmed the article; most of its content seem to be valid for Android 4.x.
Although I don't think the tutorial mention fragments anywhere : they were introduced with Android 3.0.
I think that an important exercise after this tutorial is to read the fragment documentation; have a look at some samples (like the gallery app) and rewrite the notepad in order to use fragments.
You will have to use the Support Library in order to use fragments if the minimum version of Android supported by your app is inferior to Android 3.0 but I think it is also an interesting exercise.
A little tip : many beginners (and experienced devs also :) ) mistakes come from adding a new element in an app but forgetting to declare it in the manifest.xml.

Implementing recently introduced Android design and UI guidelines on 2.x versions

Considering Android Design Guidelines announcement what is the best way to make apps which are compliant with them on Android 2.x phones? E.g. what is the best way to implement the ActionBar pattern?
ActionbarSherlock is a starting point. It includes the compatibility libraries from Google and comes provided as a project rather than JAR offering greater flexibility, should you need to alter anything. Version 4 is on the way which will also include ICS stuff.
As far as I am aware I believe ABS is backward compatible to 1.6, and makes use of the minSdkVersion and targetSdkVersion. It uses an extended version of the holo theme to create a light and dark version that includes the extra ActionBar goodness, which in turn you can extend to style your app.
I recorded a tutorial on YouTube to get people started.
I think it's better to use the compatibilty libraries directly, instead of another library based on those. Additionally, refer to the Google I/O App as stated at the bottom of the first link I gave. You can find the best practices about implementing a UI for several devices with compatibility libraries.
I found ActionBarSherlock to be pretty good. It will emulate ActionBar on older devices and use the native one on modern ones. It's an extension to Android compatibility library - so you will also get fragments and other ICS stuff.

Summary of changes for each API level?

As the title says, are there any sources (web pages etc) of summarised changes at each API level?
I have an app which I've put out to a small group of beta testers and I already fell foul of Context.getExternalFilesDir(), which I hadn't noticed was introduced in API Level 8, when a couple of the guys tried it on Android v2.1 devices.
The majority of my code should be pretty generic but it would be useful if I could find a condensed/summarised list/table or similar that I can quickly glance over.
The Android docs provide a diff between each major API revision. For example, here is the diff between API 10 and 11. Unfortunately, it looks like it's only sequentially available between revisions (not from 8 to 11). I can't find the landing page for the diffs, but you can change the API revision in the URL to see other reports.
You should be running the app yourself on the lowest version of the platform you are supporting. Always. Run it in the emulator. There is no replacement for doing this.
At a glance quick overview: https://developer.android.com/reference/android/os/Build.VERSION_CODES.html (quite well hidden, Google!). Clicking on a particular version will show a more detailed, but still quick overview on what's changed.
Not sure if this is exactly what you're looking for, but I have a look at the the API Overviews when a new version is out. It's a good start to see whats important and new. For example:
Android 2.3:
API Overview
Android 2.2:
API Overview
I also like to take a glance on the Platform Highlights when available.
Here is the analysis of changes performed with the help of the JAPI-CC tool: http://abi-laboratory.pro/java/tracker/timeline/android/

Categories

Resources