Recently I developed an Android application which is very difficult to maintain. We are stuck in a complicated situation. We developed Android Apps which contained 500k LOC and another team developed the same application for SetupBox which is 300k LOC.

These two applications share some logics and features but they have different UI. For the first phase of developed two applications. As a result we have two different APKs, one for Mobile and another for SetupBox.

Now we want to develop the next version of the Mobile Application where the UI has completely changed and is very similar to the Android TV. In addition both applications share same logics (e.g webService, databases,...).

I want to know: How can we develop the second version of Mobile with minimum effort according to explanation?


Sounds like this is a model-view-controller problem. See this Wikipedia article. What I suggest you do is to separate your concerns such that you have a data (model) layer which works separately from the views. That way, you can sub in different views. You should separate your business logic/data structures into its own module (or package) and provide access to it via an interface such that you can create different views. Basically, I think you need to merge your two different APIs into a single API which handles the data structures. Then you need to create your views separately and they should interact with your model via well-defined interfaces.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.