Sunday, December 7, 2014

What We Have Learned From Writing Android App

  Writing Android App is an interesting experience. It is rewarding to see that your product is used by folks from South Africa to Canada. In the last a few months as I worked on the application “Magnetic Stud Finder”, I learned a few things, and I am willing to share with you. In fact, I am still learning and there is a long way to go.
  • Consider the variety of Android device
Android is promising because so many vendors provide solutions based on it. It guarantee that your Android apps have a large user base. However, it also poses problem to developers. Unlike iPhone developers who only need to consider 2 or 3 phones, Android developers need to face some many different devices. It is very difficult. For example, you wrote some code to provide location service. It worked quite well in your Nexus one phone. But later you find that it failed to work on Samsung Galaxy-S. Why? Is Android operation system supposed to be uniform? The reality is that phones from different vendors have subtle difference. All phones are based on Android. But because Android is open source, vendors can modify it to adapt to their needs. Vendors are motivated to customize because that is how they differentiate themselves. My observation is that for high level API such as drawing pictures or placing buttons, phones from multiple vendors behave quite consistently. The variation appears when some lower level APIs are touched such as location service or wireless network access. There is no easy solution to this problem. One way is to conceive various situations and write codes in a robust way. But things can be hard to predict. The ultimate solution is to own phones from major vendors and test on all of them. But for individual developers it means hard choice.
  • Don’t assume too much on users
People are busy nowadays. There are so many wonderful applications for them to explore. In addition, there are TV, Youtube and Facebook etc. So don’t expect that they will use 30 mins to learn how to use your app. For 95% users, if they can’t use the app in 2 minutes smoothly, your app is done! You might wonder that why people don’t look at those fantastic help information. They just don’t have time. So make sure that you put critical information in the premium location. Also use alert to deliver the message so that there is no way to avoid it. Many Android developers are technically savvy. They are proud of the smart design of the software. But make sure that your user interface and assistance information are equally smart.
  • Be cautious on cloud service
In order to design a successful and user-friendly application, you need to test , test, test! But sometimes testing is hard. For example, your app need to access some cloud service. At the time you released the app, service was tested and everything is fine. However, a week later, the server started to hiccup. Users complained and single-star ratings added. What can you do? At the end of the day, cloud service and server are not controlled by you. So the lesson learned is that if you have to pick up add some cloud service, you better be cautious. Before deciding to use it, you should monitor it for some time and make sure that the service provided is consistent and reliable.

(original post published in Jan 23, 2011)

No comments:

Post a Comment