35
Adventures in Mobile Development, Harvard Library Corinna Baksik, Systems Librarian Bobbi Fox, Digital Library Software Engineer Library Technology Services Harvard University Information Technology (HUIT) Adventures in Mobile Development

Adventures in Mobile Development, Harvard Library Corinna Baksik, Systems Librarian Bobbi Fox, Digital Library Software Engineer Library Technology Services

Embed Size (px)

Citation preview

Page 1: Adventures in Mobile Development, Harvard Library Corinna Baksik, Systems Librarian Bobbi Fox, Digital Library Software Engineer Library Technology Services

Adventures in Mobile Development, Harvard Library

Corinna Baksik, Systems LibrarianBobbi Fox, Digital Library Software EngineerLibrary Technology ServicesHarvard University Information Technology  (HUIT)

Adventures in Mobile Development

Page 2: Adventures in Mobile Development, Harvard Library Corinna Baksik, Systems Librarian Bobbi Fox, Digital Library Software Engineer Library Technology Services

Adventures in Mobile Development, Harvard Library

Agenda

Corinna• Project Background and Overview• Phase I: Harvard Libraries Mobile

Bobbi• Phase II: Services for new Mobile Site/App

hosted by 3rd party vendor (Modo)• Web Services API overview

Page 3: Adventures in Mobile Development, Harvard Library Corinna Baksik, Systems Librarian Bobbi Fox, Digital Library Software Engineer Library Technology Services

Adventures in Mobile Development, Harvard Library

A Tale of Two Mobile Projects

Fall 2010 Winter 2010/2011Spring / Summer ‘10

Harvard University builds a mobile site/app, developed by Modo Labs

Harvard Libraries build a mobile site, developed by the library systems office

Harvard U. mobile site/app is released with a new library component, driven off of web services developed by the library systems office(The Harvard Libraries stand-alone

site is discontinued)

Page 4: Adventures in Mobile Development, Harvard Library Corinna Baksik, Systems Librarian Bobbi Fox, Digital Library Software Engineer Library Technology Services

Adventures in Mobile Development, Harvard Library

It started with a class project*…

* Janet Taylor’s presentation to the Digital Humanities Fair in partial fulfillment of her work for CSCI E-12 Introduction to Website Development, Harvard Ext. School

Page 5: Adventures in Mobile Development, Harvard Library Corinna Baksik, Systems Librarian Bobbi Fox, Digital Library Software Engineer Library Technology Services

Adventures in Mobile Development, Harvard Library

Initial Releases

• In July, we received a charge to implement a mobile site by September for Fall Term

• We leveraged work from Janet’s project

1st Release, Sept. 2010(on schedule!)

Scope:• Library/Archives hours

and directions (~85 libs)• Mobile research links• Link for Questions

2nd Release, Nov. 2010

Added:• HOLLIS searching• HOLLIS record presentation• HOLLIS availability display

Page 6: Adventures in Mobile Development, Harvard Library Corinna Baksik, Systems Librarian Bobbi Fox, Digital Library Software Engineer Library Technology Services

Adventures in Mobile Development, Harvard Library

Library Info/Hours

For the standard library portal, a MySQL database stores library info and hours, and a perl script runs nightly to generate static HTML pages

Page 7: Adventures in Mobile Development, Harvard Library Corinna Baksik, Systems Librarian Bobbi Fox, Digital Library Software Engineer Library Technology Services

Adventures in Mobile Development, Harvard Library

Library Info/Hours

Fall 2010 Winter 2010/2011

Perl script does a parallel output of Mobile-friendly XHTML

Script generates a static XML file, read by library web services, queried by Modo Labs for the Harvard U. mobile site/app

Page 8: Adventures in Mobile Development, Harvard Library Corinna Baksik, Systems Librarian Bobbi Fox, Digital Library Software Engineer Library Technology Services

Adventures in Mobile Development, Harvard Library

Mobile Research (Articles / Databases)• Most services are not mobile-friendly (e.g. federated

search tools such as Metalib)• We created a picklist of those e-resources that have

mobile interfaces, and linked to those only

Page 9: Adventures in Mobile Development, Harvard Library Corinna Baksik, Systems Librarian Bobbi Fox, Digital Library Software Engineer Library Technology Services

Adventures in Mobile Development, Harvard Library

The hard part: adding catalog searchingHOLLIS is based on Aquabrowser, 3rd party software, with no native mobile-friendly interface

Page 10: Adventures in Mobile Development, Harvard Library Corinna Baksik, Systems Librarian Bobbi Fox, Digital Library Software Engineer Library Technology Services

Adventures in Mobile Development, Harvard Library

Solution: retrieve XML output from HOLLIS and use XSLT to create HTML for mobile siteA parameter can be added to Aquabrowser URLs to retrieve XML output for search results, records, and item availability

Page 11: Adventures in Mobile Development, Harvard Library Corinna Baksik, Systems Librarian Bobbi Fox, Digital Library Software Engineer Library Technology Services

Adventures in Mobile Development, Harvard Library

How do you present availability information in a mobile-friendly way?

Page 12: Adventures in Mobile Development, Harvard Library Corinna Baksik, Systems Librarian Bobbi Fox, Digital Library Software Engineer Library Technology Services

Adventures in Mobile Development, Harvard Library

Answer: simplify and remove info• A new XSL file was added to Aquabrowser to provide

availability information exclusively for mobile use• This allows the System Librarian to develop and update the

logic, rather than defining for the developer MARC holding/item status complexities

Page 13: Adventures in Mobile Development, Harvard Library Corinna Baksik, Systems Librarian Bobbi Fox, Digital Library Software Engineer Library Technology Services

Adventures in Mobile Development, Harvard Library

All of the preceding was new development…

Enter Bobbi,Secret Master of Repurposing

Image created by Chris Traganos

Page 14: Adventures in Mobile Development, Harvard Library Corinna Baksik, Systems Librarian Bobbi Fox, Digital Library Software Engineer Library Technology Services

Adventures in Mobile Development, Harvard Library

Adding “Questions and Feedback”

We already had a configurable Feedback page:

http://nrs.harvard.edu/urn-3:hul.ois:harvlibmobilehelp

Using a combination of CSS classing, and Javascript, that page can take on the “Mobile” appearance, depending on the width of the “screen”.

Ref: van den Dobbelsteen, Marc. (2006,December 19). An Adaptive Layout Technique. A List Apart. Retrieved March 30, 2011, from http://www.alistapart.com/articles/switchymclayout/

Using “Switchy McLayout”

Page 15: Adventures in Mobile Development, Harvard Library Corinna Baksik, Systems Librarian Bobbi Fox, Digital Library Software Engineer Library Technology Services

Adventures in Mobile Development, Harvard Library

In a normal browser On a mobile device

Page 16: Adventures in Mobile Development, Harvard Library Corinna Baksik, Systems Librarian Bobbi Fox, Digital Library Software Engineer Library Technology Services

Adventures in Mobile Development, Harvard Library

Meanwhile, unbeknownst to our heroes…

… Harvard Public Affairs & Communications had been working with an outside vendor, MODO Labs, to create a mobile web and mobile app for Harvard University.

Page 17: Adventures in Mobile Development, Harvard Library Corinna Baksik, Systems Librarian Bobbi Fox, Digital Library Software Engineer Library Technology Services

Adventures in Mobile Development, Harvard Library

PHASE II – feed to MODO

PRESTO Library Tools

Data Lookup Web Service

We already were providing RESTful bibliographic data lookup in both XML and JSON formats …

http://hul.harvard.edu/ois/systems/webservices/datalookup-userguide.html

.. so we just extended our services.

Page 18: Adventures in Mobile Development, Harvard Library Corinna Baksik, Systems Librarian Bobbi Fox, Digital Library Software Engineer Library Technology Services

Adventures in Mobile Development, Harvard Library

Phase II – HOLLIS feed to MODO

We had been taking shortcuts by using an Aquabrowser “skin” to produce XHTML

Rather than Yet Another Skin for AB, we decided to refactor our code, providing an intermediate XML:• Modified the XSL for result, record, availability• Created new methods to render straight to XML

Page 19: Adventures in Mobile Development, Harvard Library Corinna Baksik, Systems Librarian Bobbi Fox, Digital Library Software Engineer Library Technology Services

Adventures in Mobile Development, Harvard Library

Search

Leveraging the XML produced by the original code, we performed one more XSL transform:

• to eliminate the extraneous data; and • to add links to availability

http://webservices.lib.harvard.edu/rest/hollis/search/dc/?q=organizational+dysfunction

Page 20: Adventures in Mobile Development, Harvard Library Corinna Baksik, Systems Librarian Bobbi Fox, Digital Library Software Engineer Library Technology Services

Adventures in Mobile Development, Harvard Library

We also provide information for visual items

Page 21: Adventures in Mobile Development, Harvard Library Corinna Baksik, Systems Librarian Bobbi Fox, Digital Library Software Engineer Library Technology Services

Adventures in Mobile Development, Harvard Library

“Availability” means different things to a librarian than to a mobile device developer…

Page 22: Adventures in Mobile Development, Harvard Library Corinna Baksik, Systems Librarian Bobbi Fox, Digital Library Software Engineer Library Technology Services

Adventures in Mobile Development, Harvard Library

They wanted simple answers to:• “Can I take out the book?”• “Is the book checked out?”• “If the book is checked out, can I

request it?”• “Can I request an electronic copy of

chapters of a book?”

“Availability” means different things to a librarian than to a mobile device developer…

Page 23: Adventures in Mobile Development, Harvard Library Corinna Baksik, Systems Librarian Bobbi Fox, Digital Library Software Engineer Library Technology Services

Adventures in Mobile Development, Harvard Library

Availability

Corinna modified the Aquabrowser “skin” to get a “Yes/No” for whether something was available.

http://webservices.lib.harvard.edu/rest/hollis/avail/008035521

Page 24: Adventures in Mobile Development, Harvard Library Corinna Baksik, Systems Librarian Bobbi Fox, Digital Library Software Engineer Library Technology Services

Adventures in Mobile Development, Harvard Library

Availability: Initial Screen

Page 25: Adventures in Mobile Development, Harvard Library Corinna Baksik, Systems Librarian Bobbi Fox, Digital Library Software Engineer Library Technology Services

Adventures in Mobile Development, Harvard Library

Availability: With Library Info

Page 26: Adventures in Mobile Development, Harvard Library Corinna Baksik, Systems Librarian Bobbi Fox, Digital Library Software Engineer Library Technology Services

Adventures in Mobile Development, Harvard Library

Availability: Scan & Deliver

Page 27: Adventures in Mobile Development, Harvard Library Corinna Baksik, Systems Librarian Bobbi Fox, Digital Library Software Engineer Library Technology Services

Adventures in Mobile Development, Harvard Library

Availability: A More Complex Example

Page 28: Adventures in Mobile Development, Harvard Library Corinna Baksik, Systems Librarian Bobbi Fox, Digital Library Software Engineer Library Technology Services

Adventures in Mobile Development, Harvard Library

Availability: More Complex: Requestability

Page 29: Adventures in Mobile Development, Harvard Library Corinna Baksik, Systems Librarian Bobbi Fox, Digital Library Software Engineer Library Technology Services

Adventures in Mobile Development, Harvard Library

Availability: More Complex: Requesting

Page 30: Adventures in Mobile Development, Harvard Library Corinna Baksik, Systems Librarian Bobbi Fox, Digital Library Software Engineer Library Technology Services

Adventures in Mobile Development, Harvard Library

Complex Example: Possible Availability

Page 31: Adventures in Mobile Development, Harvard Library Corinna Baksik, Systems Librarian Bobbi Fox, Digital Library Software Engineer Library Technology Services

Adventures in Mobile Development, Harvard Library

Architecture

We reused 95% (ok:90%) of the code written for Harvard Library Mobile -- far from a wasted effort!)

Page 32: Adventures in Mobile Development, Harvard Library Corinna Baksik, Systems Librarian Bobbi Fox, Digital Library Software Engineer Library Technology Services

Adventures in Mobile Development, Harvard Library

Lessons learned:

• We don’t always know the destination when we start

• “The perfect is the enemy of the good” -- iterative releases save time in the long run

• Getting feedback from people who aren’t as close to the project is crucial

• Coding with an eye to reuse possibilities leads to less re-factoring

Page 33: Adventures in Mobile Development, Harvard Library Corinna Baksik, Systems Librarian Bobbi Fox, Digital Library Software Engineer Library Technology Services

Adventures in Mobile Development, Harvard Library

Lessons learned (part deux)

Working with an outside vendor:

• Many things are no longer in our control• There have been no enhancements in the past

year:• Our new “Borrow Direct” service is not reflected• We can’t add new mobile e-resources

• Make sure librarians who know the data are part of the development team

Page 34: Adventures in Mobile Development, Harvard Library Corinna Baksik, Systems Librarian Bobbi Fox, Digital Library Software Engineer Library Technology Services

Adventures in Mobile Development, Harvard Library

Page 35: Adventures in Mobile Development, Harvard Library Corinna Baksik, Systems Librarian Bobbi Fox, Digital Library Software Engineer Library Technology Services

Adventures in Mobile Development, Harvard Library

Thanks!

• Janet Taylor – UI• Corinna Baksik – HOLLIS/Aquabrowser• Victoria Lin – Library Info/Hours DB• Michael Vandermillen – HOLLIS Mobile Developer• Bobbi Fox – PRESTO Web Services Developer• Wendy Gogel, Randy Stern – Project Managers

Corinna [email protected]

Harvard Libraries mobile team:

Bobbi [email protected]