GLibrary Mobile Browsing Component
gLibrary Mobile Browsing Component
This component provides customizable mobile clients both for iOS and Android devices able to access digital collections (aka, repositories) built with gLibrary services, consuming the gLibrary REST APIs (developed in T3.3).
Usage and the deployment (if publicly accessible)
The iOS and Android gLibrary mobile clients can be customized to access any gLibrary repository. The clients need to be compiled from source code and packaged with the iOS and Android toolchains, signed by proper distribution certificates before to be submitted to the App Store and Google Play.
Agricultural organizations wanting to provide their users with access to any kind of digital collections “from the go”. After a successful authentication, users can browse the pre-configured repositories, searching and downloading digital objects by querying their metadata. Digital objects can be stored on the device for offline access. Another use case is the access and management of collections captured by the device camera or stored in the gallery or documents from emails or other apps. Those assets could be annotated with the GPS location of where the data has been taken, allowing later for queries “by location”.
Currently, an instance of the gLibrary Mobile browser for Android has been published on Google Play store at: https://play.google.com/store/apps/details?id=it.infn.ct.aginfrasgmobile&hl=it
The source code of the iOS gLibrary Mobile client is available at: https://github.com/acaland/gLibrary-mobile while the Android gLibrary mobile can be found at: https://sourceforge.net/p/ctsciencegtwys/glibrary/HEAD/tree/gLibraryMobile%20Android/
Example Usage Scenario
Example usage scenario with the native app: the native app, working for iPhone, iPad and mobile Android-based smartphones and tablets, allows to access gLibrary-Framework-enables repositories on the go, with filtered browsing, metadata inspection, replica download on the local storage for offline access. The app allows for the creation of graphical annotations on digital images, highlighting with polygons, and adding named comments. Comments and highlights could be shared among other users interested (subscribed to) in a given digital resources, using a subscription and real-time pushing notification mechanisms (using Apple Push Notification service). Possible users are any scientists that need to have access on the go to repositories items and that wants to start discussion on selected item’s repository. In addition the app can be used to provide end users as farmers and scientists technical assistance while on the field.
agINFRA powered version
Example usage scenario with new apps: new apps can be built reusing the gLibrary Mobile Browser that combine (“mash-up”) searches on semantically enriched data/documents stored on repositories enabled with the gLibrary framework and other domain specific ones such as OpenAgris.
The next steps in the development are the following:
- Implementation of a feature that allows direct upload of pictures/documents from devices to the agINFRA infrastructure through the gLibrary REST APIs;
- Implementation of an HTML5 mobile browser to be used by non-Android/iOS devices;
- Implement of a feature to create, administer new repositories and edit metadata directly from the mobile device.
The gLibrary iOS mobile native client has been developed using the Appcelerator Titanium platform, using the MVC Alloy framework. Before building the app for distribution, developers need to configure the app with a gLibrary repository, editing the file app/alloy.js and the following properties:
// Configure the API gateway for gLibrary Alloy.Globals.gateway = "https:// aginfra-sg.ct.infn.it/"; // Configure the repository to be used Alloy.Globals.repository = 'aginfra';
Icons and spashscreens also need to be properly customized. The native Android mobile client has been developed using Android SDK and Java. Before building the app, a XML configuration file, located at res/values/array.xml, need to be properly edited to set the a list of gLibrary repositories that will be available to users, as in the following example.
<resources> <string-array name="def_repos"> <item name="0">aginfra</item> </string-array> </resources>