For starters, I would suggest you to start reading about Page Object Model - which is a great way to introduction abstraction in your Selenium tests and provides a programmatic way to drive and interact with UI.
Each page of your AUT (Application Under Test) is mapped to a class file in your code and each method within the class file can be treated as a service offered by the PageObject.
A simple example is provided here.
If you like to read about pro's and con's , there is a great thread in SO that talks in length about POM. Also you can go through this link in SQA which talks about the same topic.
Note : If you want to involve Python, a very good starting tutorial is here. This example takes a mobile apk, so it is be relatable with what you are asking for.