On Mon, Mar 16, 2015 at 11:27 AM, Summers Pittman <supittma(a)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(a)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(a)redhat.com>
> wrote:
>
>> I didn't catch what you are asking.
>>
>> On Mon, Mar 16, 2015 at 9:59 AM, Andres Galante <agalante(a)redhat.com>
>> wrote:
>>
>>> Which are the UI libraries though about as base?
>>>
>>> On Mon, Mar 16, 2015 at 10:47 AM, Summers Pittman
<supittma(a)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(a)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(a)redhat.com>
>>>>> > To: mobile-internal(a)redhat.com, "AeroGear Developer Mailing
List" <
>>>>> aerogear-dev(a)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(a)lists.jboss.org
>>>>>
https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> aerogear-dev mailing list
>>>> aerogear-dev(a)lists.jboss.org
>>>>
https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>
>>>
>>>
>>> _______________________________________________
>>> aerogear-dev mailing list
>>> aerogear-dev(a)lists.jboss.org
>>>
https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>
>>
>>
>> _______________________________________________
>> aerogear-dev mailing list
>> aerogear-dev(a)lists.jboss.org
>>
https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>
>
>
> _______________________________________________
> aerogear-dev mailing list
> aerogear-dev(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/aerogear-dev
>
_______________________________________________
aerogear-dev mailing list
aerogear-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/aerogear-dev