← Back to team overview

ubuntu-phone team mailing list archive

[Challenge] Ebook reader

 

Hello list

I love my Ubuntu phone, but there are still some glaring deficiencies in
the APIs, frameworks and lifecycle management which cause frustrations for
users and developers. I thought it would be fun to set a challenge to the
devs: can the infrastucture be improved so the app described below beomes
possible to implement...?

---
The app is an ebook reader, and should be capable of displaying books in a
variety of formats (epub, txt, mobi etc). It should also have a
text-to-speech engine, and the displayed text should follow the
text-to-speech engine in real time. These things are relatively trivial to
implement. However, some things are not so easy to achieve on Ubuntu:

1) It should be possible to add books from internet sites such as Project
gutenberg
2) It should be possible to add books via USB cable from computer
3) It should be possible to add books via Bluetooth from another device
4) It should be possible to add books over WiFi from computer
5) It should be possible to store or add books from an SD card
6) Text-to-speech should continue when screen is off and...
7) ...displayed text should be updated to match the location of
text-to-speech when the screen comes back on
8) The reading position should not be lost if the app is closed when
text-to-speech is running
9) It should be possible to sync the library, reading positions etc to a
central source
10) It should be possible to cut and paste from books in the app

Taking these in turn:
1) Good progress has been made in allowing the web browser to download
arbitrary filetypes. As app developers, we need simple and understandable
documentation on how we can use content-hub (or whatever) to expose these
files to our apps. I don't think the documentation on Content Hub is clear
or comprehensive enough, and I see that view echoed on the IRC channels.
it isn't clear whether content hub is _capable_ of dealing with these
filetypes.

2) (i) Transfers over MHL are restricted to folders such as "Documents". A
confined app cannot see these directories. It is not possible to add a
file to the confined app's data directory over MHL, nor is it trivial to
move a file from Documents to the app data dir using File Manager (see bug
#1521292).
(ii) MHL appears to baulk at some file types. I will need to experiment to
see if it is even _possible_ to transfer .epub files etc.

3) Bluetooth does not seem to work for file transfer yet, if it works at all

4) Something like Aquarius's WiFi Transfer app could help here, but has
the same caveats as (2), where one unconfined app cannot directly put data
somewhere useful to another unconfined app, and documentation of Content
Hub is missing as per (1)

5) There is no mechanism for an unconfined app to read or write to the SD
card

6) There is no mechanism for audio to be prepared and sent to the speaker
"on-the-fly" when screen is off. At present, a large buffer of audio would
need to be prepared and sent to media-hub by the TTS engine. When that
buffer was exhausted, audio would stop

7) If that buffer had been sent to media-hub, followed by the screen
turning off, when the screen turns back on there would be no way for the
app to know the reading location and update the displayed text accordingly

8) ditto

9) File sync is missing

10) Is this working for html apps now?

---

I would be interested to hear thoughts and strategies on how to take this
forward and make Ubuntu better.

Cheers

NMP



Follow ups