Mobile development has reached a high level of maturity. At first there were just the mobile operating system (OS) application programming interfaces (APIs). Then came the many libraries, for example the many Android libraries listed on Android Arsenal, that enable writing of much less code.

The main problem with abstraction is that the higher you go, the more you become constrained to a particular way of doing something. That particular way is usually tried and tested so it’s a compromise of reliability/time-to-market vs flexibility.

As your app matures, you will probably find you will want to do things differently or implement lower level things yourself to own the responsibility for aspects such as security. Starting simple maps well onto the lean startup way of doing things as it maximises learning velocity.