Thunderstruck

Android development for you and me!

Five Ways To Improve Your Android App Quality

App quality is a super important component of what you do as an Android developer. You could design the most amazing features in an app, but if they aren’t adequately tested and part of an overall high quality app, people simply won’t use what you’ve put all your time and effort into. Ultimately, low app quality is one of my major criticisms of the Google Play Store. Google leaves it completely up to developers to ensure that their apps are of the highest quality possible. Unlike Apple’s rigorous review process for each and every app, Google requires none of that – your app simply needs to pass a few technical checks, and then it’s ready to be on the market. No peer reviews, no making sure it doesn’t contain bad code…nothing. So, app quality in the Google store suffers.

Fortunately, for the more serious developers, Google has published a “Core App Quality” guide that you can follow to ensure your apps are of the highest quality possible. This guide is what Google expects from each and every developer before they publish their apps. Knowing quite a few “developers” I can tell you that this rarely happens. Many people don’t go any further than running their apps in an emulator before they unleash them on the world. Coming from a test background in my professional life, I can tell you that it’s almost not possible to test too much…but you will have to draw a line in the sand at some point and call it ready for release. In any event, here are five things from the Core App Quality guide that I think can help make YOUR app better than it is today:

  • Visual Design and User Interaction: Basically, make sure that your app follows generally accepted design principles for an Android app, and that a user can navigate the app in an expected and consistent way. There are multiple test scenarios listed in the Core App Quality guide. Make sure you cover as many of them as possible, and try to have a novice user interact with your app and see where/if they run into trouble.
  • Functionality: There are lots of components to this and scenarios to test, but one thing that caught my eye was Permissions. In your AndroidManifest.xml file, make sure you are requesting only the absolute minimum permissions required for your app. By default, Buzztouch includes a number of permissions that attempt to cover all the possible plugins you may use. But, if you don’t need them, don’t include them. An app where the only function is to convert measurements absolutely does not need access to the phone, camera or contacts. Don’t give your potential users a reason to not install your app.
  • Performance and Stability: This seems obvious, but your app should be stable and should not crash. Testing your app on an emulator is simply not enough. Different devices react differently to your code, and you should test your app on as many devices as possible. One downside to Android, in my opinion, is the staggering number of devices that can run your app. I remember reading about one company that tests its app on 400+ devices! Most people can’t do that, but be sure to test yours on as many as you can get your hands on.
  • Ready for Google Play: Make sure you have all the required resources in place for submitting to Google Play. You’ll need screenshots from a variety of devices. Most you can get from an emulator. Make your app as attractive to potential users as possible.
  • Test Procedures: Test, test, and then test some more. Go through each and every screen of your app. Make sure you can easily navigate backwards and forwards. Try to input bad data into your app (where applicable) to ensure it can handle it. Have somebody with no familiarity with your app give it a run…developers make the worst testers because they know how it’s supposed to work, and so they naturally test it that way. At some point you’ll have to be happy with what you have produced, but give it as much testing as you possibly can.

So, those are just a few thoughts on testing to get your day started. I cannot underscore how important testing is to your apps success. It may work for you, but if it doesn’t work for your users, or they have a bad user experience, they’ll delete your app as fast as they installed it. Take the time to produce a high quality app, and you’re likely to experience much success!

 


Five Things I’ve Learned From The “Developing Android Apps” Class

Howdy! If you recall from an earlier post, I told you about the Developing Android Apps: Android Fundamentals offered by Google via Udacity. I signed up for the class, and while ultimately it’s a bit advanced for me at the moment, I have learned some things. I’ve just stated Lesson Three, but here are a few things I’ve learned along the way:

  • Target SDK : In you AndroidManifest.xml file, you’re going to specify a targetSDK. That level should be the latest SDK level available, and it should be the one you test on. This doesn’t limit support of your app to just this Android level, but it shows you’ve tested it on the latest and everything works. You’ll want to retest and republish your app each time a new SDK level comes out.
  • Minimum SDK : This is the oldest Android level you want your app to run on. You need to balance the reach of that level (how many devices are running it or newer versions) along with whether all those versions will support the features of your app. Google recommends Gingerbread API 10 as the oldest level you should use. It gives you support for like 99% of the devices that are out there, and has support for newer features like Google Play Services and fragments.
  • UI Thread : I learned that when an Android app is running, there is a main UI (user interface) thread that runs which shows the user interface to the app user. The goal in your development should be to not allow anything to interrupt of slow down this thread, as that will lead to UI stutter and a degraded user experience. So, in some instances, like downloading data from the Internet for your app, you’ll want to create an async thread that will run off the main UI thread and then ultimately feed the data to the main thread. This will ensure that your users have a clean experience.
  • Android Studio Works : I first tried Android Studio sometime last year (I can’t recall how long ago it was), and it was not a pleasurable experience. I quickly dumped it and moved back to Eclipse. For this class, I’m using the latest beta build, 0.8.2, and it seems to be working pretty well! I was able to import a Buzztouch project without any issues, though I haven’t tried to run it yet. But, the fact that I could import it is a huge first step!
  • Android Users : One of the presents in the video said that back in 2013, there were over a million Android activations per day! That’s a staggering number of new devices being sold and activated each year. I did some quick research, and found that as of 9/3/13 there were over a billion Android devices sold! And as of 5/15/13 there were over 48 billion total Android app installs. That’s pretty darn impressive, and something to think about as a developer, even if you prefer iOS over Android. For some more interesting facts, give this a read.

So, that’s some stuff I’ve learned so far. As I progress through the class, I’ll add more things that I find interesting. I’d highly encourage you to take the class even if you aren’t an experience developer…there’s lots of good stuff to be learnt.

 


Google Offers A Free Crash Course In Android Development

Courtesy of TechCrunch via a post at Buzztouch, here is some information on a course that Google is offering through Udacity on Android development. According to the TechCrunch article, “the course is called “Developing Android Apps: Android Fundamentals,” and it provides everything you need to learn how to make an Android app step-by-step; provided, that is, you already have a basic understanding of programming in general.”

Here’s the official announcement from Google.

Here’s the course at Udacity.

If you know enough Java to hang with the course, this looks like a great way to get up to speed on Android development!


Video Tutorial : Installing The New Android SDK on Windows 8

This video tutorial is slightly dated…it’s using an older version of the Eclipse ADT Bundle…but it’s still relevant and should help get you going. The only differences in what you see here and what you experience in real life may be the versions of Java and the ADT Bundle…they’re likely to have changed. The procedures should be the same. There should not be any issues if you are using Windows 8.1 as well.

You can find more awesome videos on my YouTube channel! Be sure to subscribe!


Hello world!

Hello world, indeed! If you’re new to programming, you’ll soon understand why “Hello world!” is an appropriate first post for this site! Gotta keep up with the traditions of programming!

The purpose of this site is simple – to share what I’m learning about Android programming (which ultimately means Java programming) with you, and to hopefully help you learn something as well. I am NOT a super programmer by any means….in fact, I often have to refer back to the basics over and over again. But, I do enjoy learning new things, and I like helping people learn things as well. So, I’ll share what I learn with you, and hopefully we both get better at this Android thing.

I’ll be using the Buzztouch.com platform to generate my program files and to use as examples. I cannot say enough about Buzztouch…it’s an amazing site with the best user forum you’ll find anywhere on the Internet. Full disclosure though…I am on the Top 25 list of forum people. That’s how much I love the site, and how much I love to help! If you want to sign up as a member at Buzztouch, let me know…I’m sure I can get you a discount.

I hope we all learn lots on this site. Let me know what you’re interested in learning, and I’ll see if I can add it to the queue. If nothing else…if this site can help you install the Android ADT Bundle…my work will be done!

Mark