Chris Stewart-

+ Follow
since Jul 19, 2017
Merit badge: grant badges
For More
Cows and Likes
Total received
In last 30 days
Total given
Total received
Received in last 30 days
Total given
Given in last 30 days
Forums and Threads
Scavenger Hunt
expand Ranch Hand Scavenger Hunt
expand Greenhorn Scavenger Hunt

Recent posts by Chris Stewart-

Agreed. Go with Android Studio.

That's what we recommend in the book and it's also what we all use in our consulting work.
6 years ago
It looks like you've got two libraries that have dependencies on the annotations library. Are you able to determine which other library has that dependency?

You could try excluding the dependency from the new library that you added or from the other library with the dependency on annotations. Here's some docs on excluding transitive dependencies in gradle:

I hope that helps. I don't really know what the answer is here, but that's what I would try to find out more about the problem.
6 years ago
Hi Pankaj,

Sorry, I don't have any experience with Liferay or BackBase. This is the first time that I've heard of either of those technologies.

6 years ago
In the book, we support a minimum API level of KitKat 4.4 (19). By that I mean that the code in the book will work correctly on KitKat and newer devices.

When we released the last edition of the book, I believe that Nougat was the latest known version of Android. The code and instruction in the book is up to date for KitKat through Nougat.

Does that answer your question? Is there something specific you're looking to know about our version decisions?
6 years ago
I'd check what Dave says, but if that doesn't work this may be a permissions problem as you hinted to.

What is your target api level (in the build.gradle file)? If you're targeting Marshmallow (23) or newer (and you're running this on a Marshmallow or newer device) you have to use Android's new on demand permissions modal where you prompt the user for permission.
6 years ago
No, we do not talk about game development in the book. There is a chapter on custom views and performing your own drawing, but it's very basic in comparison to what you're looking for (definitely no discussion of 3D).

If you are interested in game development, I'd suggest that you take a look at some of the game development frameworks that are out there. Unity is a popular choice.
6 years ago
Through our classes, one thing that I repeatedly see among new and existing Android developers is that they do not fully understand the Activity lifecycle and how rotation and low-memory states on the device affect this lifecycle.

For example, I see developers locking their activities to portrait because they have issues in their app when they rotate. This is really only putting a band aid on the problem instead of fixing the issue. The problem will still exist and will happen to end users during low-memory states on the device.

I can expand on this if you're curious, but that is the most common problem I see among beginner and experienced developers.
6 years ago
In the book, we do talk about using a SQLite database and go through how that works on Android. We also use a REST API later on in the book (to Tim's point about accessing a server-based DB).

Google also released a new layer on top of SQLite that you may want to look into. It's called Room ( Since this is so new, we don't yet talk about it in the book.
6 years ago
Hi Pankaj,

Before I answer your questions, you should know that I am biased. My career has been built on top of Android, so of course I think it's the future ;)

Android is the most popular mobile operating system. As it stands today, I think it's a safe bet that Android will be important for a while. As far as native/hybrid/web goes, I don't know what the future holds. It's been a dream for years and years that you can write your code once and run it everywhere. In my opinion, that dream isn't fully realized and the best mobile experience comes from native applications. Until that changes I am going to focus on Native apps.

I am also going to focus my time on learning Kotlin. I believe that Kotlin is the future of the Android platform.

I hope that helps. That's a big question. Feel free to post some follow up questions if you'd like for more of my opinion on other parts of it.
6 years ago
Hi Thomas,

Personally, I do not recommend Xamarin for Android development. Keep in mind that I am heavily biased because my career has been based on native Android development through consulting, teaching, and the Android book that I've helped to write. I do not have extensive personal experience with Xamarin, so you may want to gather information from other sources as well.

I can say that, through teaching our Android Bootcamp class, I've had many students in my class tell me that they started developing Android applications with Xamarin and decided that they had too many problems and wanted to learn native development (which is why they took the class).

I hope that helps. I would push you towards native development, but that is a decision you'll have to make for yourself.
6 years ago

For question 1, I think it depends on your skill level. For most people, experience with any OO language will be enough to comfortably work through our book. You may need to look up things here and there online so that you understand some of Java's features, but you should be OK.

As for question 2, Android Studio can be a resource hog and slow depending on your project. Google has been focused on build performance and it has improved over time. I'd recommend that you try out Android Studio 3.0 (it's in a canary/preview build right now). Also, there was a talk at Google IO this year about changes you can make to your gradle scripts to speed up your build process. Check it out:
6 years ago
In my opinion, Kotlin will become the standard for Android development within a few years. It is the future of the platform.

You should learn Kotlin if you are going to be an Android developer in a few years. That said, in my experience, the language is not the hard part for any mobile platform. The hard part to learn and understand is the framework. At this moment, I don't think there are many resources that teach you Kotlin and Android development at the same time.

Depending on your comfort level, I'd recommend a hybrid approach. Learn Android development (in Java) and also learn Kotlin at the same time. Perhaps converting what you are learning to Kotlin yourself so that you can see the differences. If you find this to be a little too much, then I would recommend learning Android in Java first and then learning Kotlin.

I posted a little bit about this here too, if it helps:
6 years ago

Pete Letkeman wrote:Google offers Android certification as noted here
Does this book help prepare you for this?

The book talks about most of the content in that certification. There are some things that we do not cover such as widgets and creating a Content Provider (we do talk about using one). See my response above about tailoring our book for certifications.
6 years ago
Google also recently put out their own certification:

Our stance when writing our books is to talk about the things that we think are most important for people to know about the platform. Things that we actually use day to day in our consulting work that we do. Sometimes this means we do not talk about things that Google thinks everyone should use (an example: Content Providers). So, we've never been too keen on certifications because they don't always align with what we think people should know (and really, what you need to know to be a part of our own Android team).

I can't comment on those certifications. I can tell you that we did not make the book to tailor towards any certification.
6 years ago

DavidJohn Raymond wrote:Could you give us a rundown about the main things we will learn from the book. Is there any missing pieces to Android development that the book doesn't cover?

The book is focused on the fundamentals of the platform. The most important things you need to know to be a good Android developer. That includes things like Activities and how to properly deal with rotation and low-memory. We talk about Fragments, RecyclerViews, Services, threading, networking, and the list goes on (it's a 600 page book). There's a full table of contents up on Amazon.

One thing we do not talk about is 3rd party libraries, mostly because of the speed at which they change. 3rd party libraries are a very common part of Android development for certain things. After understanding the material in the book, you'll be in a good place to properly evaluate and use 3rd party libraries.
6 years ago