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