[aerogear-dev] Android Core Proposal Merged (and some follow up goals)

David Martin davmarti at redhat.com
Mon Jan 29 11:51:02 EST 2018


Hi all,

After a massive 100+ comments, I've decided to merge the Android Core SDK
Proposal
https://github.com/aerogear/proposals/pull/9

* Android Core SDK is available from Maven:
* Repo: https://github.com/aerogear/aerogear-android-sdk
* Example Android App that uses the core SDK:
https://github.com/secondsun/WipDemo/blob/master/app/src/main/java/org/feedhenry/mcp/prdemo/CoreActivity.java
* What you need to add to your gradle file:
https://github.com/secondsun/WipDemo/blob/master/app/build.gradle#L29


The amount of comments, calls and back&forth on irc has reached a
reasonable level of agreement, with some remaining points of contention.
The contention is mainly around the level of complexity that a developer
has to undertake to use the SDK.
After listening to the 3 main voices on this (Summers, Wojciech, Passos), I
can see both points of view.

(WARNING: A lot of paraphrasing below :) )

>From Passos & Wojciech's point of view, ease of use of the SDK is what's
most important. There should be practically no setup/init required other
than having a mobile-config.json file in the right place, and call a static
method to get an instance of a service (similar to Firebase).

>From Summers point of view, ease of use is also important, but something we
can improve on iteratively. For example, the default use of a Service will
be fine & possible to automate the setup for for 95% of cases. However, the
other 5% is what we need to take into account from the beginning.


So, based on this, I would like if the following 2 things were follow up
goals for the Core SDK.
I believe these changes will take whats currently there (and working), and
move it towards something that is easier to use for developers.


Goal 1:
https://issues.jboss.org/browse/AGDROID-712
Remove the need for static block initialisation/registration of service
classes & their dependencies. i.e. this:

static {
   ServiceModuleRegistry.registerServiceModule("keycloak",
KeyCloakService.class, "http");
 }

>From chatting with Summers, this should be possible now that this PR is
merged https://github.com/aerogear/proposals/pull/16 and the config file
format is nailed down.


Goal 2:
https://issues.jboss.org/browse/AGDROID-713
Allow a simpler way of getting an instance of a Service class other than
below.

   keycloakService = core.getService("keycloak", KeyCloakService.class);

If there are multiple instances registered for a particular Class, it may
still be necessary to use the above to get a 'named' instance (much like in
dependency injection libs like spring that use annotations).
However, in most cases, the below should be possible:

keycloakService = core.getService(KeyCloakService.class);




Thanks

-- 
David Martin
Red Hat Mobile
Twitter: @irldavem
IRC: @irldavem (#aerogear)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/aerogear-dev/attachments/20180129/4a72385b/attachment.html 


More information about the aerogear-dev mailing list