454680 Enhance Javascript ebook reader Monocle (open-source) 2

This project is now closed with a project budget of N/A.

Get free quotes for a project like this
Project Budget
Project Description

Job description


Enhance open source Javascript reader of HTML-based ebooks [Monocle][] to support additional features as seen on [[url removed, login to view]][] (developers of Monocle, with custom features added) for Webkit-based iPhone app:

[Monocle]: [url removed, login to view]

[[url removed, login to view]]: [url removed, login to view]

- Add touch-scrollable Table of contents when list of chapters is longer than vertical screen size.

Monocle already comes with [[url removed, login to view]]([url removed, login to view]), which creates an onscreen tappable widget which brings up a TOC's pop-up. When the TOC is longer than its popup, though, overflowing chapters are not accessible, since the list is only scrollable on a regular browser, not on iPhone/iPad's touch-based Webkit. [url removed, login to view]'s version is scrollable on the iPhone.

- Add bookmarking system, which the reader can use to return to specific reading points at any moment. Bookmarks should be kept after after quit/reopen.

- Add variable font sizing that stays after quit/reopen. Monocle comes with [[url removed, login to view]]([url removed, login to view]) to alternate between two fixed CSS font sizes (100%, 115%). Turn it into controls that make the current font-size "bigger" or "smaller", instead of fixed values.

- Add cover animation based on CSS 3D Transforms (this one is not required but definitely a plus).

- Add state saving so that reading point is restored upon quit/reopen (via Monocle's [[url removed, login to view]]([url removed, login to view]), or cookies, or persistent storage or any trick you provide).

All these features are already implemented in [url removed, login to view]'s enhanced version of Monocle. I.e. This [Monocle sample book][] does not have them, while this [[url removed, login to view] sample book][] does (and then some others that I do not need).

[Monocle sample book]: [url removed, login to view]

[[url removed, login to view] sample book]: [url removed, login to view]


- Integrate [[url removed, login to view]]([url removed, login to view]), which will dinamically re-hyphenate text on change of line length (because of font-size, orientation and screen size). I.e. the hyphenating engine is already implemented, you just need to make Monocle load the script. See Monocle's main developer [hint]([url removed, login to view]) on possible approach.

- Change lateral tap/click behaviour to not slide page to tapped/clicked coordinates while on hold (it causes jerky motion on slower iPhones), while keeping the on-release effect of sliding to next/previous page by touch-based gestures of lateral tapping or sliding to move to next/previous page.

Required skills (do not apply if you do not master them)


- High profiency in Javascript programming.

- Experience implementing DOM Touch events targetting Mobile Safari for iOS (see <> if you think you can learn that up and master it **before** applying).

- Having had a deep look at Monocle's code and see how it works (uncompressed it is barely 100KB).

- Need to have an iPhone or iPod touch or iPad, since even if web-based, those are the intended platforms.

Not required but definitely a plus:

- Experience implementing CSS 3D Transforms targetting Mobile Safari (in order to deck up some transitions between pages, such as that of [url removed, login to view] cover and backcover).

- Experience with web-to-native app frameworks such as PhoneGap, NimbleKit, Appcelerator Titanium or others that will allow to wrap the web project inside an iOS App.

Looking to make some money?

  • Set your budget and the timeframe
  • Outline your proposal
  • Get paid for your work

Hire Freelancers who also bid on this project

    • Forbes
    • The New York Times
    • Time
    • Wall Street Journal
    • Times Online