primom - a mobile interface for primo - igelu 2012

32
Bodleian Digital Library Systems and Services (BDLSS) Bodleian Libraries University of Oxford 6/14/22 Primom: A Mobile Interface for Primo Masud Khokhar Applications Developer Bodleian Libraries University of Oxford [email protected] @mkhokhar Andrew Isherwood ICT Development Information Services Aberystwyth University [email protected] @andrewish

Upload: masud-khokhar

Post on 30-Jun-2015

152 views

Category:

Education


1 download

DESCRIPTION

Primom - A first attempt at a mobile interface for Primo. Prototype developed for Bodleian Libraries and presented at IGeLU 2012.

TRANSCRIPT

Page 1: Primom - A mobile interface for Primo - IGeLU 2012

Bodleian Digital Library Systems and Services (BDLSS)Bodleian LibrariesUniversity of Oxford

April 14, 2023

Primom: A Mobile Interface for Primo

Masud KhokharApplications DeveloperBodleian LibrariesUniversity of [email protected]@mkhokhar

Andrew IsherwoodICT DevelopmentInformation ServicesAberystwyth [email protected]@andrewish

Page 2: Primom - A mobile interface for Primo - IGeLU 2012

April 14, 2023Primom: A Mobile Interface for PrimoPage 2

University of Oxford Libraries

University of Oxford More than 100 libraries Hold collectively approx. 11.1 million catalogued book stock 470000+ ebooks 50000+ electronic journals 460+ databases 66591 patrons (University and Library)

The Bodleian group is the second largest library in the UK after the British Library

Ex Libris products in Oxford Primo, Primo Central, Aleph, MetaLib, bX, ARC and SFX.

Page 3: Primom - A mobile interface for Primo - IGeLU 2012

Oxford’s Primo (SOLO)

Two environments (Production and Test with plan to have a Dev soon)

Primo topology One BE server, two load balanced FE servers, two SE servers, one

NFS server, and one DB server. All virtualized except for the DB server

Approx. 8M records.

Multiple sources Aleph, MetaLib, Fedora and more in future

April 14, 2023Primom: A Mobile Interface for Primo

Page 3

Page 4: Primom - A mobile interface for Primo - IGeLU 2012

April 14, 2023Primom: A Mobile Interface for Primo

Page 4

Page 5: Primom - A mobile interface for Primo - IGeLU 2012

Why develop for mobile?

April 14, 2023Primom: A Mobile Interface for Primo

Page 5

More and more users are using their smart phones/tablets to access library resources

Exponential growth in the users Approximately 20% growth every 2 years in the UK for the last 4

years.

Attitude towards web based resources People expect a mobile/tablet ready version Disappointed when everything looks the same as desktop version Don’t care about webapp vs native as long as the experience is fast

and responsive Not always true (we love our iPhones)

Page 6: Primom - A mobile interface for Primo - IGeLU 2012

Primo’s mobile interface?

Out of the box ------------

CSS based ------------

Doesn’t play well with local customizations ------------

Network traffic issues ------------

Not tested enough -----------

April 14, 2023Primom: A Mobile Interface for Primo

Page 6

Page 7: Primom - A mobile interface for Primo - IGeLU 2012

OOTB Ex Libris CSS

April 14, 2023Primom: A Mobile Interface for Primo

Page 7

For some customers, works quite nicely.

Page 8: Primom - A mobile interface for Primo - IGeLU 2012

OOTB Ex Libris CSS

April 14, 2023Primom: A Mobile Interface for Primo

Page 8

For Oxford, not so nicely...

Page 9: Primom - A mobile interface for Primo - IGeLU 2012

What about custom developments?

April 14, 2023Primom: A Mobile Interface for Primo

Page 9

Page 10: Primom - A mobile interface for Primo - IGeLU 2012

Network Traffic

Surely interfaces can be improved, you just need to work on your CSS

What about network traffic though?

A quick analysis on Firebug reveals: Opening http://solo.bodleian.ox.ac.uk takes 57 requests Doing a search for “oxford” takes a further 66 requests Network latency can be a major issue

Almost all instances of Primo launch 25+ network requests for home page and 35+ network requests for brief search

April 14, 2023Primom: A Mobile Interface for Primo

Page 10

Page 11: Primom - A mobile interface for Primo - IGeLU 2012

Network based issues

Asynchronous vs synchronous calls?

Your mobile search interface should not hang/die if: Your PDS is down (SSO check) Google or Amazon images is down Some third party tool you use is down etc, etc

Similarly, not everything is required to be loaded after a search. Load only what is required.

What about caching?

April 14, 2023Primom: A Mobile Interface for Primo

Page 11

Page 12: Primom - A mobile interface for Primo - IGeLU 2012

Common feelings..

We don’t have enough resources to invest in mobile even though we would like to have a mobile webapp, an iPhone/iPad app, and an Android app.

And then after 10 days, you face an angry reader using Kindle Fire.

How will we ever maintain so many developments, probably best to develop just a webapp.

Or if you can afford it, ask an external company to develop native apps (which has unfortunately its own set of problems)

We want to develop a webapp, what’s next? How to develop it (responsive vs framework)? How to link it with Primo functionality? How to maintain it? (growth and requirement changes)

April 14, 2023Primom: A Mobile Interface for Primo

Page 12

Page 13: Primom - A mobile interface for Primo - IGeLU 2012

Blockers

Responsive layouts vs frameworks HTML5/CSS3 (e.g.Twitter bootstrap) Frameworks (50+, we will talk about jQuery mobile and Sencha

Touch 2)

Primo/LMS API Documentation Almost non-existent till developers showed keen interest Still quite poor Confusing – X-services, Web services, RESTful APIs, Plug-ins, what

to use when and how? Some good work being done by Barak Hecht but more is needed

a lot more...

April 14, 2023Primom: A Mobile Interface for Primo

Page 13

Page 14: Primom - A mobile interface for Primo - IGeLU 2012

Primo mobile development in Oxford

Oxford started working on this informally about a year ago We face similar issues, not enough resources, not enough time

We tried looking into iOS development but stopped Steep learning curve Only impacts Apple users

Selected jQuery mobile to experiment with Low learning curve as we work with jQuery anyway Fairly stable framework Does quite a lot of things nicely

April 14, 2023Primom: A Mobile Interface for Primo

Page 14

Page 15: Primom - A mobile interface for Primo - IGeLU 2012

First attempt – jQuery Mobile

April 14, 2023Primom: A Mobile Interface for Primo

Page 15

Page 16: Primom - A mobile interface for Primo - IGeLU 2012

First attempt – jQuery Mobile

April 14, 2023Primom: A Mobile Interface for Primo

Page 16

Page 17: Primom - A mobile interface for Primo - IGeLU 2012

First attempt – jQuery Mobile

April 14, 2023Primom: A Mobile Interface for Primo

Page 17

Page 18: Primom - A mobile interface for Primo - IGeLU 2012

First attempt – jQuery Mobile

April 14, 2023Primom: A Mobile Interface for Primo

Page 18

Page 19: Primom - A mobile interface for Primo - IGeLU 2012

First attempt – jQuery Mobile

April 14, 2023Primom: A Mobile Interface for Primo

Page 19

Page 20: Primom - A mobile interface for Primo - IGeLU 2012

Collaboration – Oxford and Aberystwyth

Primo-Discussion-List questions about APIs lead to a collaborative effort

Quick to start on collaborative working Some issues persisted

Lack of quality API documentation Busy schedules

New issues emerged Multi-lingual needs Complexity of Oxford against Simplicity of Aberystwyth The idea to develop a webapp that all Ex Libris customers can

use – everything controlled by setting files, etc.

April 14, 2023Primom: A Mobile Interface for Primo

Page 20

Page 21: Primom - A mobile interface for Primo - IGeLU 2012

Collaboration – Oxford and Aberystwyth

April 14, 2023Primom: A Mobile Interface for Primo

Page 21

Page 22: Primom - A mobile interface for Primo - IGeLU 2012

Collaboration – Oxford and Aberystwyth

Did anything change? A lot in the background Extreme control over every parameter

We soon realised that there are limits to what we can do with limited screen space

Facets? Page numbers? Search details? Number of results per page?

Resulted in a re-think of the whole idea

April 14, 2023Primom: A Mobile Interface for Primo

Page 22

Page 23: Primom - A mobile interface for Primo - IGeLU 2012

Oxford – Since the re-think

Change in framework From jQuery mobile to Sencha Touch 2 Pure MVC, far more responsive, the possibility of generating native

apps (with native device APIs), ease of using HTML5 local storage, etc

And it looks nicer (full support for theming with Sass and Compass)

Considering Ex Libris was asked a lot of CSS based questions, may be its time to look at Sass or Less (reduced CSS size)?

Change in development methodology Agile (Functionality based sprints)

April 14, 2023Primom: A Mobile Interface for Primo

Page 23

Page 24: Primom - A mobile interface for Primo - IGeLU 2012

Oxford – Since the re-think

April 14, 2023Primom: A Mobile Interface for Primo

Page 24

Page 25: Primom - A mobile interface for Primo - IGeLU 2012

Oxford – Since the re-think

April 14, 2023Primom: A Mobile Interface for Primo

Page 25

Page 26: Primom - A mobile interface for Primo - IGeLU 2012

Oxford – Since the re-think

April 14, 2023Primom: A Mobile Interface for Primo

Page 26

Page 27: Primom - A mobile interface for Primo - IGeLU 2012

Oxford – Since the re-think

April 14, 2023Primom: A Mobile Interface for Primo

Page 27

Page 28: Primom - A mobile interface for Primo - IGeLU 2012

Oxford – Since the re-think

April 14, 2023Primom: A Mobile Interface for Primo

Page 28

Page 29: Primom - A mobile interface for Primo - IGeLU 2012

What’s missing?

My Account (Loans, Holds, Requests, Fines, etc)

E-Shelf

Facets (Can we afford them in a mobile app?) Modern browser and platform detection

Feature detection Modernizr.js

Balancing act (between functionality, screen sizes, processing power, network traffic, memory, etc).

April 14, 2023Primom: A Mobile Interface for Primo

Page 29

Page 30: Primom - A mobile interface for Primo - IGeLU 2012

Does it stack up?

Reminder: Primo OOTB for SOLO: Opening http://solo.bodleian.ox.ac.uk takes 57 requests Doing a search for “oxford” takes a further 66 requests

With our jQuery mobile prototype, opening up the main page takes 13 requests and 76KB of data.

A search for “oxford” takes a further 2-10 requests (depending on how many different icons are being loaded)

April 14, 2023Primom: A Mobile Interface for Primo

Page 30

Page 31: Primom - A mobile interface for Primo - IGeLU 2012

Does it stack up?

With our ST2 prototype, opening up the main page takes 11 requests for 223KB of data

A search for “oxford” takes a further 2-7 requests (depending on how many different icons are being loaded)

All further requests take 1-2 network requests Because of aggressive local storage based caching

You do the math

And if it matters, Facebook’s biggest mistake was that “we burned two years not working on mobile”. (Forbes, 9/11/2012)

April 14, 2023Primom: A Mobile Interface for Primo

Page 31

Page 32: Primom - A mobile interface for Primo - IGeLU 2012

Thank you

Questions?

April 14, 2023Primom: A Mobile Interface for Primo

Page 32