Interview with Joel Murach - Author of Murach's Android Programming
Murach's Android Programming by Joel Murach provides a comprehensive coverage of the various concepts associated with the development of Android applications with the help of source codes, screenshots and demo apps.
Android is a mobile operating system used in majority of smartphones and tablet devices. You need to make use of mobile apps available in Google Play Store to interact with these devices. It is easy to develop apps if you know the basic steps and techniques involved with Android programming.
Joel Murach in his latest book, Murach’s Android programming provides a comprehensive coverage of the various aspects involved with the development of Android apps.
Section 1 introduces you to the world of Android in addition to usage of Eclipse, development, test and debugging of your first Android app. Section 2 examines the usage of layouts, widgets, themes, styles, menus, preferences, fragments including the techniques to handle events.
The author examines the usage of threads, files, adapters, intents, services, notification and broadcast receivers with the help of a news reader app in section 3.
The chapters in section 4 provides the steps required to work with SQLite databases, tabs, custom adapters, content providers and app widgets with the help of a task list app.
“Some Android apps are mind-blowingly good. Others are terrible. Fortunately, the good ones tend to rise to the top,” said Joel in response to a query regarding the quality of current apps.
In the final section, the author has examined the steps required to deploy an Android app in addition to usage of app widgets, where you will learn the basic steps to add the Google Play services library to a project including the retrieval of SHA-1 fingerprint, MAP API key and current location. Joel also discusses the steps required to register the Maps API key in addition a note which examines whether the GPS has been enabled or not.
You will also learn the basic technique to display a map, add markers and lines including the usage of Run Tracker app, activity_run_map layout, RunMapactivity and RunTrackerService classes.
The book also includes an appendix which provides the usage of IntelliJ with Android programming.
Chapter 1 can be downloded here.
InfoQ had a chat with Joel Murach to know information about his book and also on the latest trends on Android mobile apps.
InfoQ: How does the Murach Android Programming book help mobile developers?
First, this book helps developers by teaching them basic Android development skills, even if they don't have any previous experience with Android development. Second, thanks to the way we designed this book, it helps developers by working really well for reference.
InfoQ: How easy it is to build Android apps?
If you already have basic Java skills, it's pretty easy to build a simple Android app. Of course, even for a simple app, there are some tricky parts to getting started. For example, you have to handle lifecycle events that may occur on the app such as the user switching screen orientation or navigating to another app to send a text message.
Another challenge is getting an app to work correctly for the wide variety of screen sizes and shapes that are available from Android devices. Finally, since the Android operating system provides another API that sits on top of the Java API, there's a whole new API to learn (and it’s a large API).
Fortunately, this API is designed to make it as easy as possible for a developer to code a mobile app that runs on an Android device.
InfoQ: Do you see Google adopting Java 8 in the near future?
I don't. For the foreseeable future, I see Android continuing to use its current subset of Java SE 6 features and APIs. Eventually, I think Google will be forced by popular demand to add Java 8 features and APIs to Android, but I think that is at least a few years away.
InfoQ: Can you share with us the purpose for covering the topics using News Reader and Task List apps?
The purpose is to make it easier for the reader to understand how to use features within the context of an app. You could present the features out of context, but then the reader has to figure out how to put the feature in context. This is an extra step that makes it more difficult to understand the feature. The trick, of course, is to keep the sample apps small and simple, so the feature that you're trying to illustrate doesn't get lost in all the other code of the app. I did my best to strike the right balance.
InfoQ: Can you disclose the reason for not covering development of a game app in your book?
I considered covering a game app in this book, but I decided not to because I think it's more common for developers to need to create apps like the ones in this book. These apps display and work with data. If I get feedback from my readers that they would really like to see a game app, I will do my best to add one in the next edition of this book.
InfoQ: Is it possible to build Android applications using Visual Studio 2013?
To be honest, I'm not sure about this. With previous editions of Visual Studio, it was possible to build Android apps if you installed certain plug-ins. However, I wouldn’t recommend using Visual Studio for Android development. For now, I'd recommend using Eclipse. Or, if you can’t stand Eclipse, you might want to use IntelliJ, which works more like Visual Studio. In the future, you might want to check out Android Studio, which is currently being developed jointly by IntelliJ and Google, and should be available within the next year or so.
InfoQ: There is a general theory that Android based mobile devices consumes more battery power when compared with Windows Phone 8. What is your take on this issue?
I think both of these operating systems handle battery life adequately for most users. I think the battery life for a particular device probably depends more on what apps are running on the device than on the OS. However, I don’t know the low-level technical details of both operating systems, so this is just my take on this issue.
InfoQ: Is it possible to build a mobile app which works with both Android and Windows Phone 8 devices?
Yes, you can build the app for one of these devices and then manually port the code to the other. If you structure your code well, this shouldn't be too difficult. Or, if you prefer, you can try using a product that's designed to create cross-platform mobile apps. For example, you can use Xamarin to develop apps that work for Windows Phone, Android, or iOS. These apps can share most of their code, though the code for the user interface is specific to each OS. I don't have experience with of these cross-platform products, so I can't vouch for how well they work.
InfoQ: Do you think Murach Android Programming is a complete resource for developers?
No, I didn't design this book as a complete resource for developers. The goal of this book is to help a developer who already has basic Java skills get to a point where he or she has all the fundamental Android development skills. At the end of this book, the reader should have a solid base and should be primed to learn more about whatever part of Android he or she wants to.
InfoQ: How do you see the growth and potential of Android apps after 5-10 years?
I see the number of Android apps continuing to grow for the foreseeable future. At some point, maybe in 5-10 years or so, I see growth on smartphones and tablets stagnating. At that point, I see Android apps continuing to grow other types of devices.
About the Book Author
Joel Murach has been writing and editing books about computer programming for over 10 years. During that time, he has written extensively on a wide range of Java, .NET, web, and database technologies. When he's not programming or writing books about programming, he can be found surfing or writing music.