<div dir="ltr">Thanks Dave - this nails it from my perspective.</div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><font color="#999999">--</font></div><div><div style="font-size:small"><font color="#999999">John Frizelle</font></div><div style="font-size:small"><font color="#999999">Chief Architect, Red Hat Mobile<br></font><span style="font-family:Helvetica,Verdana,sans-serif"><font color="#999999">Consulting Engineer</font></span><font color="#999999"><br><br></font><div><span style="font-size:12.8000001907349px;color:rgb(153,153,153)">mobile:</span><span style="font-size:12.8000001907349px;color:rgb(153,153,153)"> </span><span style="font-size:12.8000001907349px;color:rgb(153,153,153)"><font face="Tahoma, Arial, Helvetica, sans-serif"><b><a href="tel://+353872901644" target="_blank">+353 87 290 1644</a></b></font></span><br></div><div style="font-size:12.8000001907349px"><span style="font-family:Tahoma,Arial,Helvetica,sans-serif;color:rgb(153,153,153);font-size:12.8000001907349px">twitter:</span><b style="font-family:Tahoma,Arial,Helvetica,sans-serif;color:rgb(153,153,153);font-size:12.8000001907349px"> @johnfriz</b><br></div><font color="#999999" style="font-size:12.8000001907349px"></font><div><font color="#999999">skype: <font face="Tahoma, Arial, Helvetica, sans-serif"><b>john_frizelle</b></font></font></div><div><span style="color:rgb(153,153,153);font-size:12.8000001907349px">mail: </span><font color="#999999" style="color:rgb(17,85,204);font-size:12.8000001907349px"><b><a href="mailto:jfrizell@redhat.com" style="color:rgb(17,85,204);font-size:12.8000001907349px" target="_blank">jfrizell@redhat.com</a></b></font></div><div><font color="#999999" style="color:rgb(17,85,204);font-size:12.8000001907349px"><br></font></div><div><br></div><div><img src="cid:1deff70600823b9ebf187fa9e94df6ff10966d4e@zimbra"><font color="#999999" style="color:rgb(17,85,204);font-size:12.8000001907349px"><br></font></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div>
<br><div class="gmail_quote">On 10 January 2018 at 17:07, David Martin <span dir="ltr">&lt;<a href="mailto:davmarti@redhat.com" target="_blank">davmarti@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&#39;d like to to try bring this back to the Story that the investigation is helping to derisk [1]<div>&quot;As a developer I want to be able to visualise runtime metrics about what versions of the mobile service SDKs are in use so that I can track what versions are used and see uptake of new SDK versions in order to deprecate services linked to older SDKs [met]&quot;</div><div><br></div><div>Does the investigation work that was done [2] allow us to deliver that Story [1] and related Story [3] in the future?</div><div>The main value in those stories is:</div><div>- a developer seeing what versions of the Mobile SDK are in use (and probably OS/user agent)</div><div>- a developer seeing what app versions are in use</div><div><br></div><div>Some dicussions offline with John has suggested this information be automatically available to the developer if:</div><div>- the developer is using the Core SDK (They should be if they&#39;re using any Mobile Service, as its a pre-requisite for any other Mobile Service SDK)</div><div>- the developer has provisioned the Metrics Service</div><div><br></div><div>&#39;automatically available&#39; implies that it happens on app startup or in the background at some point.</div><div><br></div><div>If the developer hasn&#39;t provisioned the Metrics service, the Core SDK doesn&#39;t send any SDK or app version info (as it has nowhere to send it to)</div><div><div><div><br></div><div>[1] <a href="https://trello.com/c/lt4jc3h4/10-as-a-developer-i-want-to-be-able-to-visualise-runtime-metrics-about-what-versions-of-the-mobile-service-sdks-are-in-use-so-that" target="_blank">https://trello.com/c/<wbr>lt4jc3h4/10-as-a-developer-i-<wbr>want-to-be-able-to-visualise-<wbr>runtime-metrics-about-what-<wbr>versions-of-the-mobile-<wbr>service-sdks-are-in-use-so-<wbr>that</a></div></div></div><div>[2] <a href="https://issues.jboss.org/browse/AEROGEAR-1816" target="_blank">https://issues.jboss.org/<wbr>browse/AEROGEAR-1816</a></div><div>[3] <a href="https://trello.com/c/HZ5BTwZY/11-as-a-developer-i-want-to-be-able-to-visualise-runtime-metrics-about-what-versions-of-the-mobile-app-are-in-use-so-that-i-can-tra" target="_blank">https://trello.com/c/<wbr>HZ5BTwZY/11-as-a-developer-i-<wbr>want-to-be-able-to-visualise-<wbr>runtime-metrics-about-what-<wbr>versions-of-the-mobile-app-<wbr>are-in-use-so-that-i-can-tra</a></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On 10 January 2018 at 14:42, Wojciech Trocki <span dir="ltr">&lt;<a href="mailto:wtrocki@redhat.com" target="_blank">wtrocki@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"><div>Thanks David. Really good question. </div><div><br></div>I ignored mobile implementation in demo as most of the work for this was done on server side.<div>I&#39;m using different more extended use cases to drive SDK work.</div><div><br>For mobile application there were couple manual steps:<br></div><div><br></div><div>1) Generate mobile configuration using mobile-client (not mobile specific)</div><div>2) Drop configuration including URL into application (not mobile specific)</div><div>3) Extract URL from configuration.</div><div>4) Use AFNetworking framework (IOS) to make network request.</div><div><br>I did not implemented that on Android platform, but flow should be the same. <br>After obtaining URL/configuration to service users can make any API calls.</div><div>The only complexity will come with authentication - for example when using keycloak, but that will require additional effort.<br></div><div><br></div><div>IMHO At this point it&#39;s better to rely on sync service for initial SDK service as it has non trivial client implementation (business logic etc.)<br>It&#39;s also clear that Sync will be used with some modified form. </div><div>For SDK investigations we are focused on extending step 3 and 4 into core of our library.</div><div>Once that is done we can simply integrate two most important SDK&#39;s: Sync and Push.<br><br>Main goals are:</div><div><br></div><div>- Investigate/implement android core library that will create map of services from provided json/plist file. </div><div>- Integrate existing SDK sync and push</div><div>- Try to extract network into core (using aerogear-android-pipe from push server)</div><div><br></div><div>In the mean time we are working on SDK proposal and top level API (using annotations)</div><div>BOM style dependency management that will improve user experience and reduce versioning hell on Android platform.</div><div><br></div><div>After doing that we can drive this forward and run sync behind keycloak which should show us how we can provide authentication.</div><div>We may also extend mobile-cli to provide more service specific information that is needed. </div><div><br>I think that clearly summarizing entire SDK initiative at this moment. </div></div><div class="m_-2203298044838684199HOEnZb"><div class="m_-2203298044838684199h5"><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jan 10, 2018 at 12:37 PM, David Martin <span dir="ltr">&lt;<a href="mailto:davmarti@redhat.com" target="_blank">davmarti@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">Very nice Wojciech.<div><br></div><div>I&#39;d love to see/hear more about how it works from the Mobile App, if that piece is working.</div><div>Did you populate stats using the App, or by just curling an endpoint? (Maybe you said and I missed that)</div><div><br></div><div><br></div></div><div class="gmail_extra"><div><div class="m_-2203298044838684199m_4876927044260258987h5"><br><div class="gmail_quote">On 10 January 2018 at 12:22, Wojciech Trocki <span dir="ltr">&lt;<a href="mailto:wtrocki@redhat.com" target="_blank">wtrocki@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">Forwarding to internal list as AeroGear list seems to be having problems with mail delivery.<span><div><br><div class="gmail_quote">---------- Forwarded message ----------<br>From: <b class="gmail_sendername">Wojciech Trocki</b> <span dir="ltr">&lt;<a href="mailto:wtrocki@redhat.com" target="_blank">wtrocki@redhat.com</a>&gt;</span><br>Date: Tue, Jan 9, 2018 at 7:55 PM<br>Subject: Mobile Statistics using Grafana, Prometheus running on OpenShift<br>To: AeroGear Developer Mailing List &lt;<a href="mailto:aerogear-dev@lists.jboss.org" target="_blank">aerogear-dev@lists.jboss.org</a>&gt;<br><br><br><div dir="ltr"><div>Hi everyone</div><div><br>I have been working today on investigation for enabling mobile application statistics on top of OpenShift.</div><div>The main target was to enable mobile clients (using our SDK) to send statistics payload to server.</div><div>For this purpose we were sending back mobile.next() SDK version from different mobile clients and visualizing that data Grafana.</div><div><br></div><div><div><b>Demo: </b></div><div><b><br></b></div><a href="https://www.youtube.com/watch?v=zC95jJr1kcc" target="_blank">https://www.youtube.com/watch?<wbr>v=zC95jJr1kcc</a></div><div></div><div><br></div><div><b>Where is the value? </b></div><div><b><br></b>Grafana, can be used to showcase various statistics that mobile developers will need without extended development effort.</div><div><br></div><div><b>How we can extend this:</b></div><div><b><br></b></div><div>- Investigate different ways to store data in Prometheus (using labels etc.)</div><div>- Integrate with Keycloak to showcase SDK capabilities and permissions.</div><div>- Golang implementation for service</div><div><br></div><div>Regards</div><span class="m_-2203298044838684199m_4876927044260258987m_6245439398804348527m_6378947771407932494m_-2729729303323359759m_2881332518413468863HOEnZb"><font color="#888888">-- <br><div class="m_-2203298044838684199m_4876927044260258987m_6245439398804348527m_6378947771407932494m_-2729729303323359759m_2881332518413468863m_4348444656270229467gmail_signature"><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div style="font-size:12.8px"><p style="color:rgb(0,0,0);font-family:overpass,sans-serif;font-weight:bold;margin:0px;padding:0px;font-size:14px;text-transform:uppercase"><span>WOJCIECH</span> <span>TROCKI</span></p><p style="font-family:overpass,sans-serif;margin:0px;font-size:10px;color:rgb(153,153,153)"><a href="https://www.redhat.com/" style="color:rgb(0,136,206);margin:0px;text-decoration:none" target="_blank">Red Hat <span>Mobile</span></a></p><p style="font-family:overpass,sans-serif;margin:0px 0px 6px;font-size:10px;color:rgb(153,153,153)"><span>IM: <span>wtrocki</span></span></p><table border="0" style="color:rgb(0,0,0);font-family:overpass,sans-serif;font-size:medium"><tbody><tr><td width="100px"><a href="https://red.ht/sig" target="_blank"><img src="https://www.redhat.com/files/brand/email/sig-redhat.png" width="90" height="auto"></a></td></tr></tbody></table></div></div></div></div></div></div></div></div></div>
</font></span></div>
</div><div class="m_-2203298044838684199m_4876927044260258987m_6245439398804348527m_6378947771407932494m_-2729729303323359759m_2881332518413468863gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><br></div></div></div></div></div></div></div>
</div></span></div>
</blockquote></div><br><br clear="all"><div><br></div></div></div><span class="m_-2203298044838684199m_4876927044260258987HOEnZb"><font color="#888888">-- <br><div class="m_-2203298044838684199m_4876927044260258987m_6245439398804348527gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr">David Martin<div>Red Hat Mobile</div><div>Twitter: <span style="font-size:12.8px">@irldavem</span></div><div><span style="font-size:12.8px">IRC: @irldavem (#aerogear)</span></div></div></div></div></div></div></div>
</font></span></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="m_-2203298044838684199m_4876927044260258987gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div style="font-size:12.8px"><p style="color:rgb(0,0,0);font-family:overpass,sans-serif;font-weight:bold;margin:0px;padding:0px;font-size:14px;text-transform:uppercase"><span>WOJCIECH</span> <span>TROCKI</span></p><p style="font-family:overpass,sans-serif;margin:0px;font-size:10px;color:rgb(153,153,153)"><a href="https://www.redhat.com/" style="color:rgb(0,136,206);margin:0px;text-decoration:none" target="_blank">Red Hat <span>Mobile</span></a></p><p style="font-family:overpass,sans-serif;margin:0px 0px 6px;font-size:10px;color:rgb(153,153,153)"><span>IM: <span>wtrocki</span></span></p><table border="0" style="color:rgb(0,0,0);font-family:overpass,sans-serif;font-size:medium"><tbody><tr><td width="100px"><a href="https://red.ht/sig" target="_blank"><img src="https://www.redhat.com/files/brand/email/sig-redhat.png" width="90" height="auto"></a></td></tr></tbody></table></div></div></div></div></div></div></div></div></div>
</div>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="m_-2203298044838684199gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr">David Martin<div>Red Hat Mobile</div><div>Twitter: <span style="font-size:12.8px">@irldavem</span></div><div><span style="font-size:12.8px">IRC: @irldavem (#aerogear)</span></div></div></div></div></div></div></div>
</div>
</div></div></blockquote></div><br></div>