Android library for displaying data based on JSON configuration fetched from server.
With this library, you can kiss goodbye to string.xml, dimen.xml, arrays.xml. Keep all your string/integer/array config in one file. The library will automatically fetch the data from the url you provide.
For example, all my app messages are kept in string.xml file. Suppose they were kept in a json file in the backend.
And everytime the app is opened the latest data is downloaded and cached locally in the app.
For example, in the sample app, you will see the url that I have given is
https://s3-ap-southeast-1.amazonaws.com/android-optimize/optimize.json
This is used to fetch my data from the backend asynchrously and cache it in app.
Everytime the app is opened the data is fetched and based on the whether the content is changed or not, the data is cached locally.
Note: The library is implemented using the Work Manager API provided by Google.
Gradle Dependecy
dependencies {
implementation 'com.an.optimize:optimize:0.1.0'
}
Maven Dependecy
<dependency>
<groupId>com.an.optimize</groupId>
<artifactId>optimize</artifactId>
<version>0.1.0</version>
<type>pom</type>
</dependency>
<uses-permission android:name="android.permission.INTERNET" />
Step 2: Add the following code to your Application class or your Main Activity file
Optimize.getInstance().init(getApplicationContext(), "<Add the url of the json file>");
Step 3: All you have to do now to display a value from the json file is to call the below code
String stringData = Optimize.getInstance().getStringValue("<the name of the param key>", "<Default value to be displayed in case the backend data does not contain this key>");
//The same can be applied for Integers:
Optimize.getInstance().getIntegerValue("<the name of the param key>", <Default value in case the backend data does not contain this key>);
//The same can be applied for Double:
Double doubleData = Optimize.getInstance().getDoubleValue("<the name of the param key>", 0.00);
//The same can be applied for Boolean:
Boolean booleanData = Optimize.getInstance().getBooleanValue("boolean_data", false);
//The same can be applied for Number:
Number floatData = Optimize.getInstance().getNumberValue("float_data", -1.1);
//The same can be applied for a List:
List<String> listData = Optimize.getInstance().getList("list_data", Collections.emptyList());
And that's it! It's super simple.