• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Android - programming with modules

 
Redan Hassoun
Greenhorn
Posts: 26
Android AngularJS Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi, i am a beginner in developping android applications...
This is not really a question, i simply have a project to do, and i need an advice from the big guys

The application i am interested to develop has too many features - like: news, reports, payments , messaging ...
My boss suggested an approach that is new for me;
He wants the application to be modular - in other words, we need to have a main application that has a general functionality, and to have the ability to add whatever modules
to the application whenever we want.

For example; assuming a have one feature in the application : NEWS , and a want to add another feature : Payments , so i need to have the ability to build the Payments module as a
separate project, and then simply add this feature to the application by adding this module to the "Used modules list".
This way we can add/remove features in the application by simply adjusting some list which has the different modules used in the application.

Our purpose is to have a dynamic application, so if we have two clients :
1.  A client who wants to see : News and Payments.
2.  A client who wants to see : News and Reports.
Both clients will have the same application but with different modules in each one.

I saw that in Android-Studio the project can be divided into modules, but i want to learn the BEST way to use this thing for my purpose.


So ...
1. Is this a good approach ?
2. Is there a better approach for the same purpose ?
3. How can i implement this ?

 
Tim Moores
Bartender
Posts: 3127
50
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I don't think that would be a good way to go about it. Every time you wanted to change the feature set for a particular user, you would have to create a new build and get it out to them.

A better approach would be to build all features (and thus all code) into the app, and only selectively enable those a particular user is allowed to access. That check could come in the form of a required login within the app, at which point the app would inquire from the server whether the user account is still valid, and what features it should present to the user.
 
Brian Tkatch
Bartender
Posts: 567
25
Linux Notepad Oracle
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Before i say anything, i must tell you that i have no idea what i am talking about. Well, i might have some idea, but i'm just throwing around ideas i've heard, read, or seen, even though i understand them very little.

There seems to be two aspects. One, developing separate modules. Two, allowing different user different things.

For developing modules, it matters what you mean to do. But with no experience, it might get really confusing. I'd start with a small example to test, and go from there. I keep thinking of using services or apps with no front end that can be called from your app.

For allowing different users to do different things, the standard insecure way for doing that is to put everything in the app, and have a separate license file or key which are understood by your app to allow this or that. Some apps use that to go from "free" to "pro" versions, by just purchasing the license file. Titanium Backup uses that method, as Titanium Backup Pro is only a key file. Even Windows NT did something like that (iirc, 3.51 server/workstation was a difference in a file read during bootup. That's it.)
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic