For a relatively unexperienced programmer (say, University students or graduates), it is particularly hard because you need to spend a lot of time and effort studying something very fundamental and particular to Android programming: The lifecycle of activities and fragments, and maintaining state impecably on …