[aerogear-dev] AeroGear usage in the DevNexus app report

Andres Galante agalante at redhat.com
Mon Mar 16 10:42:01 EDT 2015


I don't think we can maintain a hole library. But having a layer of styling
over material design might be possible. Let me think about it, I just
wonder if its necessary, material design is excellent.

On Mon, Mar 16, 2015 at 11:31 AM, Daniel Passos <dpassos at redhat.com> wrote:

> Andres
>
> Somethings like this => https://github.com/navasmdc/MaterialDesignLibrary
>
> On Mon, Mar 16, 2015 at 11:27 AM, Summers Pittman <supittma at redhat.com>
> wrote:
>
>> Ahhh.
>>
>> There are a few libraries for widgets (especially for material design).
>> There are also some injection libraries for autowiring views to objects in
>> the Activity class.
>>
>> Picasso comes to mind for images, butter knife does view injection, and
>> there are too many Material Design libs to count/enumerate.  I also don't
>> make a list because I haven't tried enough to have an informed opinion.
>>
>> On Mon, Mar 16, 2015 at 10:19 AM, Andres Galante <agalante at redhat.com>
>> wrote:
>>
>>> You mention that "there are other VERY powerful libraries which help
>>> out in
>>> this regard." I was wondering which UI libraries we can base ours
>>>
>>>
>>>
>>> On Mon, Mar 16, 2015 at 11:02 AM, Summers Pittman <supittma at redhat.com>
>>> wrote:
>>>
>>>> I didn't catch what you are asking.
>>>>
>>>> On Mon, Mar 16, 2015 at 9:59 AM, Andres Galante <agalante at redhat.com>
>>>> wrote:
>>>>
>>>>> Which are the UI libraries though about as base?
>>>>>
>>>>> On Mon, Mar 16, 2015 at 10:47 AM, Summers Pittman <supittma at redhat.com
>>>>> > wrote:
>>>>>
>>>>>> If you mean implementing some stuff like what is on
>>>>>> http://brand.redhat.com/ for websites but for Android I would love
>>>>>> it :)
>>>>>>
>>>>>> On Fri, Mar 13, 2015 at 1:17 PM, Summers Pittman <supittma at redhat.com
>>>>>> > wrote:
>>>>>>
>>>>>>> On 03/13/2015 12:22 PM, Andres Galante wrote:
>>>>>>> > Summers, do you think that we can build an Aerogear UI based on a
>>>>>>> library? Like we do with Patternfly and Bootstrap.
>>>>>>> If you mean set up a bunch of default styles and some value add
>>>>>>> widgets/behaviors sure we can do that.
>>>>>>>
>>>>>>> >
>>>>>>> > ----- Original Message -----
>>>>>>> > From: "Summers Pittman" <supittma at redhat.com>
>>>>>>> > To: mobile-internal at redhat.com, "AeroGear Developer Mailing List"
>>>>>>> <aerogear-dev at lists.jboss.org>
>>>>>>> > Sent: Friday, March 13, 2015 1:09:51 PM
>>>>>>> > Subject: [aerogear-dev] AeroGear usage in the DevNexus app report
>>>>>>> >
>>>>>>> > I made the DevNexus[1] app the past two years and have tried to
>>>>>>> dogfood
>>>>>>> > as much of the Android AeroGear client library as I could.
>>>>>>> Consider this
>>>>>>> > a field report of sorts from a experienced user's perspective.
>>>>>>> >
>>>>>>> > # Server Background
>>>>>>> > The DevNexus website exposes its registration data as a series of
>>>>>>> JSON
>>>>>>> > documents.  It also exposes a custom Google+ authentication
>>>>>>> endpoint
>>>>>>> > used to identify users.  This was used by the app in 2014 for
>>>>>>> backing up
>>>>>>> > user's schedules but was not used in 2015.  The DevNexus website
>>>>>>> itself
>>>>>>> > is a Spring MVC application and is available on github[2].
>>>>>>> >
>>>>>>> > # App Background 2015
>>>>>>> > The 2015 app has custom schedules, a Google Maps view of the venue,
>>>>>>> > presentation viewing and discovery, a directory of previous years
>>>>>>> > devnexus presentations, and a podcast player with audio from
>>>>>>> previous
>>>>>>> > year's sessions.  It uses the AGDroid pipe and store libraries.
>>>>>>> In 2014
>>>>>>> > it also used the auth library but the feature using it was
>>>>>>> removed.  It
>>>>>>> > also uses Picasso for image management.
>>>>>>> >
>>>>>>> > # AGPipe usage review
>>>>>>> > The pipe library and its GSON marshalling are very nice and very
>>>>>>> easy.
>>>>>>> > Those were generally wrapped in a android SyncAdapter and fired at
>>>>>>> > regular intervals.  Pipe's callback mechanism poses some problems
>>>>>>> > however.  Because Android aggressively cleans up objects the code
>>>>>>> needed
>>>>>>> > to provide a lock that waited for the callbacks to finish.
>>>>>>> Without the
>>>>>>> > lock the code might call an object which has left Android's active
>>>>>>> state
>>>>>>> > and this causes an error.  Over all it is still a very good way to
>>>>>>> > handle http networking in Android.
>>>>>>> >
>>>>>>> > #AGAuth usage review
>>>>>>> > The auth module was used in the 2014 application but not in the
>>>>>>> 2015
>>>>>>> > application.  The code however remains and is functional.  I
>>>>>>> created two
>>>>>>> > custom AuthenticationModule objects.  One interacts with the
>>>>>>> Android
>>>>>>> > Account Manager system to get a session token from Google Plus.
>>>>>>> The
>>>>>>> > other attaches a cookie to http requests and handles auth
>>>>>>> failures.  In
>>>>>>> > general the architecture is sound, but it is a bit of a hack to get
>>>>>>> > around the fact that last year we did not have the authz library
>>>>>>> > finished at this point which has a better architecture for this
>>>>>>> type of
>>>>>>> > behavior.
>>>>>>> >
>>>>>>> > #AGStore usage review
>>>>>>> > The store library was wrapped in a content provider.  In Android
>>>>>>> the
>>>>>>> > content provider API provides a abstracted way to exposed data to
>>>>>>> > activities, services, etc while having the data management and
>>>>>>> lifecycle
>>>>>>> > happen in a controlled, centralized manner.  AG Store made handling
>>>>>>> > large JSON serializable objects pretty trivial and most of my
>>>>>>> issues
>>>>>>> > were around the fact that the JSON coming from the DevNexus server
>>>>>>> has
>>>>>>> > some weird architectures.  Additionally, the query mechanism
>>>>>>> doesn't let
>>>>>>> > you query properties of collections of objects.  This will need to
>>>>>>> be
>>>>>>> > addressed at some point.
>>>>>>> >
>>>>>>> > #Things AeroGear didn't do that would have been nice
>>>>>>> > I wanted to have offline support/file management for the podcasting
>>>>>>> > system, but there isn't a easy library for doing that (which I
>>>>>>> found in
>>>>>>> > my brief time looking) and we don't have a good solution for that
>>>>>>> yet
>>>>>>> > either.  Additionally wrapping the Stores in Content providers was
>>>>>>> very
>>>>>>> > labor intensive.  There are many projects to automate the various
>>>>>>> > Android patterns around Content Providers which we may be able to
>>>>>>> borrow
>>>>>>> > to make this easier.
>>>>>>> >
>>>>>>> > Additionally Aerogear provides nothing for the Android UI.  I
>>>>>>> think that
>>>>>>> > this is out of scope for our project but it is something to keep in
>>>>>>> > mind.  However there are other VERY powerful libraries which help
>>>>>>> out in
>>>>>>> > this regard.
>>>>>>> >
>>>>>>> >
>>>>>>> > #Conclusion
>>>>>>> > AeroGear Android doesn't suck to use and provided real value to
>>>>>>> me. I
>>>>>>> > feel like it is stable and well built especially as of 2.0.  Of
>>>>>>> course
>>>>>>> > I'm biased.  If we have a good offline story we will enhance what
>>>>>>> is
>>>>>>> > already a strong service and data connection to Android users.
>>>>>>> >
>>>>>>> > 1. https://github.com/secondsun/devnexus-android-2015
>>>>>>> > 2. https://github.com/devnexus/devnexus-site
>>>>>>> >
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Summers Pittman
>>>>>>> >>Phone:404 941 4698
>>>>>>> >>Java is my crack.
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> aerogear-dev mailing list
>>>>>>> aerogear-dev at lists.jboss.org
>>>>>>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>>>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> aerogear-dev mailing list
>>>>>> aerogear-dev at lists.jboss.org
>>>>>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> aerogear-dev mailing list
>>>>> aerogear-dev at lists.jboss.org
>>>>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> aerogear-dev mailing list
>>>> aerogear-dev at lists.jboss.org
>>>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>
>>>
>>>
>>> _______________________________________________
>>> aerogear-dev mailing list
>>> aerogear-dev at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>
>>
>>
>> _______________________________________________
>> aerogear-dev mailing list
>> aerogear-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>
>
>
>
> --
> -- Passos
>
> _______________________________________________
> aerogear-dev mailing list
> aerogear-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/aerogear-dev/attachments/20150316/d0ced66b/attachment-0001.html 


More information about the aerogear-dev mailing list