Centro de Competências de Ciências Exatas e da Engenharia da Universidade da Madeira

Sociable Reading

“A system for Supporting Sociable Reading in a Dual Screen Environment"

Roberto Caires

Supervisor Yoram Chisik, PhD Co-Supervisor: Monchu Chen, PhD

Funchal – Portugal

September 2015

State of Art

ABSTRACT

Exploring ways in which the social aspect of reading for pleasure can be supported and improved is the motivation for this project.

A system for supporting sociable reading in a dual screen environment was developed. The dual screen used was a mobile device (Tablet) and TV, in which the annotations created while reading a on Tablet could be displayed on the TV.

The OS of the devices is Android and for each one an application to be connected through Wi-Fi network was created. The Tablet app was developed using a library MuPDF to read , while the TV app was developed by the Phonegap framework.

Usability tests in two different locations were performed: In Madeira Interactive Technologies Institute (M-iti) and in the Library - Biblioteca Regional da Madeira.

After the tests with final users were concluded, the TV interface was considered adequate and very encouraged. We noted some difficulties in the first interpretation of the navigation commands but, once the commands were learnt, the system was easy to use. It was clear that possible places to implement the system would be in schools, work places and at home.

2 State of Art

RESUMO

Explorar formas em que o aspeto social de leitura por prazer poderá ser apoiada e melhorada, é a motivação para a elaboração desta dissertação.

Foi desenvolvido um sistema de apoio à leitura social num ambiente de dois ecrãs. Os dois ecrãs utilizados foram um Tablet e uma TV, sendo que à medida que fossem criadas notas no decorrer dessa leitura as mesmas fossem visualizadas na TV. Mais importa acrescentar que estas notas podem ser visualizadas em tempo real pelos restantes leitores/utilizadores.

O sistema operativo equipamentos é Android na qual foi criado uma aplicação para cada equipamento de modo a se conectarem através de uma rede Wi-Fi. A aplicação do Tablet foi desenvolvida com uma biblioteca MuPDF para ler livros, enquanto aplicação para a TV foi desenvolvida através da framework Phonegap.

Foram realizados testes de usabilidade em dois locais diferentes nomeadamente no M-iti - Interactive Technologies Institute e numa Biblioteca - Biblioteca Regional da Madeira.

Apos testes com utilizadores finais, a interface da TV foi considerada adequada e incentivadora. Notamos algumas dificuldades numa primeira interpretação dos comandos de utilização do sistema mas segundo os utilizadores apos aprender será de fácil uso. Foi claro os locais possíveis de implementação do sistema tal como na sala de aula de uma escola, num espaço de trabalho e numa casa.

3 State of Art

ACKNOWLEDGMENTS

As raízes do estudo são amargas, mas seus frutos doces.

(The roots of the study are bitter, but the fruit’s is sweet.)

(Aristóteles)

First of all, I would like to express my deepest gratitude to my wife and daughter by the fact of being a little absent to complete the course. Also thank my wife which gave me the motivation to start and end this cycle of studies.

I would like to express my gratitude to my supervisors Prof. Yoram Chisik and Prof. Monchu Chen for their continued support and guidance throughout this journey and during the thesis elaboration.

To all my family who helped me reach this far and for helping to succeed with my studies. Special thanks to my aunt Suzel for the help of correcting my document thesis.

Special thanks to “Biblioteca Regional da Madeira” and Madeira Interactive Technologies Institute (M-iti), for the possibility to realize usability tests.

A special thanks to Prof. Karolina Baras for motivating me for this final stage of thesis.

And finally, I would like to thank all my college friends for their support and continued encouragement during the course. Thank you very much!

4 State of Art

TABLE OF CONTENTS

ABSTRACT ...... 2 RESUMO...... 3 ACKNOWLEDGMENTS ...... 4 LIST OF FIGURES ...... 7 ACRONYMS ...... 9 1. INTRODUCTION ...... 10 1.1. BACKGROUND AND MOTIVATION ...... 11 1.2. OBJECTIVES OF THE PROJECT ...... 12 1.3. STRUCTURE OF THE REPORT ...... 13 2. STATE OF ART ...... 14 2.1. CONTEXTUALIZATION ...... 15 2.2. RELATED WORK ...... 16 2.2.1. Evernote...... 16 2.2.2. Kindle ...... 17 2.2.3. eReader ...... 18 2.2.4. WattPad ...... 19 2.2.5. Google Keep ...... 20

2.3. REVIEW OF THE WORK ...... 22 2.4. TECHNOLOGY ENVIRONMENT ...... 24 2.4.1. Electronic Book ...... 24 3. DEVELOPMENT APPLICATION ...... 26 3.1. INTRODUCTION...... 27 3.2. ANALYSIS ...... 28 3.2.1. Functional requirements ...... 28 3.2.2. Non-functional requirements ...... 29

3.3. SYSTEM ARCHITECTURE ...... 30 3.3.1. Android Platform [37] ...... 31 3.3.1.1. Library MuPDF [44] ...... 34 3.3.1.2. Classe MotionEvent [45]...... 36 3.3.2. Framework PhoneGap [46] ...... 36 3.3.3. Client-Server ...... 38 3.3.3.1. Communication between Tablet and TV; ...... 39 3.3.3.2. Communication between database on server and Tablet/TV;...... 40 3.4. MODELLING ...... 42 3.4.1. Entity-Relationship Model...... 42

5 State of Art

3.4.2. Relation Scheme ...... 43

3.5. PROTOTYPING OF APPLICATION ...... 45 3.5.1. TV Application...... 45 3.5.2. Tablet Application...... 47

3.6. UNDERSTANDING THE USERS ...... 50 3.7. TECHNOLOGIES USED ...... 52 3.7.1. Tools ...... 52 3.7.2. Language ...... 53 4. PRESENTATION OF APPLICATIONS ...... 55 4.1. INTRODUCTION...... 56 4.2. TABLET APPLICATION ...... 57 4.2.1. Navigation Map ...... 57 4.2.2. Functionalities of application ...... 58 4.2.2.1. Create new user or make authentication by login...... 58 4.2.2.2. Connect the Tablet and TV ...... 59 4.2.2.3. Select the book in PDF ...... 59 4.2.2.4. Reading the book ...... 60 4.2.2.5. Add annotations ...... 61 4.2.2.6. Change Page ...... 62 4.2.2.7. Scroll up and down on TV ...... 62 4.2.2.8. Visualize annotations on Tablet ...... 63 4.3. TV APPLICATION ...... 64 4.3.1. Navigation Map ...... 64 4.3.2. Functionalities of application ...... 64 4.3.2.1. Home “Welcome” ...... 64 4.3.2.2. One or more annotations ...... 65 4.3.2.3. Zero annotations ...... 67 5. TESTS AND RESULTS ...... 68 5.1. USER TESTS ...... 69 5.1.1. Method ...... 69 5.1.2. Discussions of the results ...... 71 6. CONCLUSIONS ...... 76 6.1. CONCLUSION ...... 77 6.2. FUTURE WORK ...... 79 7. REFERENCES ...... 80 APPENDIXES ...... 85 7.1. APPENDIX A – QUESTIONNAIRE ...... 86 7.2. APPENDIX B – POSTER - INTERMEDIATE EVALUATION ...... 88

6 State of Art

LIST OF FIGURES

FIGURE 1 – EVERNOTE FUNCTIONALITIES ...... 16

FIGURE 2 – ON ANDROID DEVICE...... 17

FIGURE 3 – KINDLE PAPER WHITE...... 18

FIGURE 4 – ALDIKO EREADER APP IN ANDROID DEVICE...... 19

FIGURE 5 – WATTPAD APP IN ANDROID DEVICE...... 20

FIGURE 6 – GOOGLE KEEP APP IN ANDROID DEVICE...... 21

FIGURE 7 – GOOGLE KEEP APP FOR CHROME BROWSER...... 21

FIGURE 8 - TV BOX MK809III ...... 21

FIGURE 9 - ANDROID OS TABLET 7 INCH ...... 22

FIGURE 10 - ARCHITECTURE OF THE PROJECT DEVELOPED ...... 30

FIGURE 11 - MARKET SHARE OF ANDROID DEVICES WITH VERSION OF THE OS...... 32

FIGURE 12 - ARCHITECTURE OF ANDROID PLATFORM ...... 32

FIGURE 13 - LIFE CYCLE OF AN ANDROID APPLICATION ...... 34

FIGURE 14 - DEVELOPMENT PROCESS OF THE FRAMEWORK PHONEGAP ...... 37

FIGURE 15 - COMMUNICATION BETWEEN TABLET AND TV USING SOCKETS...... 40

FIGURE 16 - COMMUNICATION BETWEEN ANDROID DEVICES AND MYSQL DATABASE ...... 41

FIGURE 17 - ENTITY-RELATION MODEL ...... 42

FIGURE 18 - RELATION SCHEME ...... 43

FIGURE 19 - GRID GALLERY STYLE ...... 46

FIGURE 20 - TV APPLICATION LAYOUT ...... 47

FIGURE 21 - AUTHENTICATION ...... 46

FIGURE 22 - CREATE NEW USER...... 47

FIGURE 23 - CONNECTION TO TV ...... 48

FIGURE 24 - LIST OF DEVICES SCANNED ON NETWORK ...... 47

FIGURE 25 - LIST OF BOOKS ...... 48

FIGURE 26 - READING BOOK MODE ...... 48

FIGURE 27 - MENU BUTTON OPTION ...... 49

FIGURE 28 - ADDING AN ANNOTATION ...... 48

FIGURE 29 - VIEW ANNOTATION ON TABLET ...... 49

FIGURE 30 - USE CASE OF THE USER ...... 51

FIGURE 31 - NAVIGATION MAP FROM THE READER APPLICATION ...... 57

FIGURE 32 - USER AUTHENTICATION ...... 56

FIGURE 33 - REGISTER A NEW USER ...... 58

FIGURE 34 - DISCOVER TV OR SKIP CONNECTION ...... 58

FIGURE 35 - LIST OF DEVICES ON NETWORK ...... 59

7 State of Art

FIGURE 36 - LIST WITH FOLDERS AND ...... 59

FIGURE 37 - ADD A BOOK TO SERVER ...... 60

FIGURE 38 - READING MODE OF THE BOOK ...... 60

FIGURE 39 - OPTION OF MENU BUTTON ...... 61

FIGURE 40 - ADDING AN ANNOTATION ...... 61

FIGURE 41 - CHANGE PAGE ON TABLET ...... 62

FIGURE 42 - SCROLL UP OR DOWN ON TABLET ...... 63

FIGURE 43 - VISUALIZE ANNOTATIONS ON TABLET ...... 63

FIGURE 44 - NAVIGATION MAP OF TV SYSTEM ...... 64

FIGURE 45 - "WELCOME" SCREEN FROM TV APP ...... 65

FIGURE 46 - VISUALIZE ON TV ONE OR MORE ANNOTATIONS ...... 65

FIGURE 47 - VISUALIZE INFORMATION OF THE BOOK ON TV...... 66

FIGURE 48 - VISUALIZE THE THUMBNAILS OF THE BOOK ON TV ...... 66

FIGURE 49 - VISUALIZE THE CONTENT OF THE ANNOTATION ON TV...... 66

FIGURE 50 - VISUALIZE TV SCREEN SCROLLED DOWN ...... 67

FIGURE 51 - VISUALIZE ZERO SCREEN ON TV ...... 67

FIGURE 52 – TESTS IN M-ITI...... 69

FIGURE 53 – TESTS IN REGIONAL LIBRARY OF MADEIRA ...... 70

FIGURE 54 – NUMBER OF PARTICIPANTS...... 71

FIGURE 55 – GRAPHIC OF USER AGES ...... 71

FIGURE 56 – GRAPHIC OF HOW MANY TIMES THE USER READ DURING A WEEK...... 72

FIGURE 57 – GRAPHIC OF THE USERS OPINION ABOUT THE SYSTEM ...... 72

FIGURE 58 – GRAPHIC OF HOW EASE WAS THE SYSTEM ...... 73

FIGURE 59 – GRAPHIC OF WHERE WOULD THE USER USE THE SYSTEM ...... 73

FIGURE 60 – GRAPHIC FROM THE M-ITI AND LIBRARY USERS ABOUT THE INTERFACE OF THE SYSTEM ...... 74

8 State of Art

ACRONYMS

OS – .

TV – Television.

PDF – Portable Document Format.

Wi-Fi – According to Wi-Fi Alliance: “Wireless Local Area Network”.

MVC – Model View Controller.

API – application programming interface.

HTML – Hypertext Markup Language.

CSS – Cascading Style Sheets.

WebOS – Web Operating System.

TCP – Transmission Control Protocol.

IP – Internet Protocol.

PHP – Hypertext Preprocessor.

JSON – JavaScript Object Notation.

SQL – Structured Query Language.

SDK – software development kit.

IDE – Integrated Development Environment.

ADT – Android Development Tools.

AVD – Android Virtual Device.

9

1. INTRODUCTION

State of Art

1.1. BACKGROUND AND MOTIVATION

In the last decades, societies concern for reading and writing is constantly growing mainly based on personal experience. Nowadays it’s not just for the work field, but also to expand social participation and right of citizenship, to be able to understand critically the social realities and to be able to interact therein, knowing as such how to organize such action. [1].

With the Digital Revolution referenced in the year 1980, it opened up the possibility of reproducing a picture from words, through a computer monitor, a display screen of a phone or , by e-readers, and more recently by Tablets that provides the written display.

Currently, the readers can count on new features on digital books, such as writing notes on keyboards with the correction of words, share notes on social networks, add audio or video, animation and interactivity.

However some fans of printed books claim that there’s still nothing like the smell of paper and the rustle of the as the reader flips gently through the book with their fingers. There’s something intimately rustic about the entire experience, they claim, and it’s one that cannot be derived from the cold, electronic book version.

So, the motivation for this dissertation will be to explore ways in which the social aspect of reading for pleasure can be supported and improved.

11 State of Art

1.2. OBJECTIVES OF THE PROJECT

We understand that reading is a process that begins before formal learning and is extended in time. From the simple pleasure of listening to reading, in an initial stage, goes through an itinerary, the reader, passing through several stages. In this progression, it is fundamental the accompaniment, so that there is a constant motivation that allows the construction of the reader [2].

Therefore, it was proposed to develop a system for supporting sociable reading in a dual screen environment. The dual screen used was a mobile device (Tablet) and TV, in which the annotations created while reading a book on Tablet could be displayed on the TV.

The main focus is on the display and interface component with the annotations coming from the Tablet and their interaction.

12 State of Art

1.3. STRUCTURE OF THE REPORT

The structure of this dissertation is based on the different stages of the project and its development.

This thesis is organized into six chapters. The first chapter is reserved for the presentation of the project proposal, the explanation of what motivated me to develop the system and explanation of the main objectives of the project.

The second chapter, the State of the Art, presents all the research that was conducted to develop the project. This study covers points such as how it fits into the society’s framework, the areas wherein it is applied, and also includes the technology tools used for its development.

The implementation stages of the project, and how it was tackled is discussed in the third chapter, i.e., the functional and non-functional requirements are presented, the cases used and the base model data created. It also presents the application prototypes and explains which technologies are used to develop the project.

The fourth chapter illustrates the presentation phase of the project, showing the functionality and navigation map of each application. Tests and questionnaires affected with some users as well as their results are also presented.

The fifth chapter demonstrates the usability tests with final users of the system.

The last chapter is the final stage, wherein the final conclusions about the project are presented as well as the future perspectives.

13

2. STATE OF ART

State of Art

2.1. CONTEXTUALIZATION

To carry out a project of this dimension, it is essential that the vast technological options that could be involved in its development be considered. Taking this into account, this chapter will be used to describe the state-of-the-art technologies that will be used in the context of this project.

Initially it will be represented based on works that are on the world market in line with this project, like adding annotations on books, reading books on digital equipment, as well as their reviews.

In the review, our decisions and choices on the equipment and the technology used to develop the system will be explained.

15 State of Art

2.2. RELATED WORK

The printed book influenced the culture at the beginning of the modern age allowing the manuscript book to be printed on a large scale and thus distributed among a greater number of readers [3].

Currently the book is reshaped and today can also be found in digital format, known as e-book.

Therefore, in order to understand what is already completed in the world market, some related works about reading and annotations made while reading will be presented.

2.2.1. Evernote.

Evernote is an American independent, private company offering a closed source free suite of software and services, designed for note taking and archiving [4]. The product allows users to create a "note" which can be a piece of formatted text, a full webpage or webpage excerpt, a photograph, a voice memo, or a handwritten "ink" note. Notes can also have file attachments. Notes can be sorted into folders, tagged, annotated, edited, given comments, searched, and exported as part of a notebook (Fig 1).

Figure 1 – Evernote Functionalities [5].

16 State of Art

Evernote supports Windows, OS X, Android, iOS (iPhone, iPad, iPod Touch), Windows Mobile, Windows Phone, [6] WebOS, Maemo, BlackBerry (including BlackBerry Playbook), and Google Wave platforms as well as a beta for Symbian S60 5th Edition. There are portable versions of Evernote available for flash drives and U3 drives. There is currently no officially supported native client for Linux or BSD.

The Basic Evernote (free version) has an upload limitation of 60 MB monthly, the Premium version offers 1 GB of uploads per month. Still, much of today’s research involves generating data files such as sequence data, in which one file individually may be greater than these restrictions. Although Evernote may be a simple, practical solution for some laboratories, for others it may be overly simplistic in format and does not offer features specialized for fields such as biology, chemistry, or quality assurance/quality control. Importantly, larger labs generating considerable amounts of data may find a simple program like Evernote to be too flexible or unstructured for efficient use [7].

2.2.2. Amazon Kindle

The Amazon Kindle is a series of e-book readers designed and marketed by Amazon.com. Amazon Kindle devices enable users to shop for, download, browse, and read e-books, newspapers, magazines and other digital media via wireless networking. The hardware platform, developed by Amazon.com subsidiary Lab126, began as a single device and now comprises a range of devices, including e-readers with E Ink electronic paper displays, and Android-based tablets with color LCD screens. As of June 2015, there are over 3.6 million e-books available in the [8].

Amazon kindle supports various devices and platforms, including , iOS, BlackBerry, Mac OS X (10.5 or later, Intel processor only), Android (Fig 2), webOS and Windows Phone [9]. Amazon also has a "cloud" reader to allow users to read and purchase Kindle books from any web browser such.

Kindle assumes that the new amazon kindle product “Paperwhite” (Fig 3) does not have audio or Text-to-Speech, the illumination at the bottom of the screen from the

17 State of Art built-in light is not perfectly, and it has 2 GB of storage. Some previous Kindle models had 4GB of storage. 2GB allows you to hold up to 1,100 books locally on your device.

Figure 2 – Amazon Kindle on Android device [10]. Figure 3 – Kindle paper white [11].

2.2.3. Aldiko eReader

Aldiko eReader is an app for android and a free reader that supports the ePub format and your own PDF files. There are thousands of books available and the vast majority of them are free. Many of them are older, classic titles that are either out of print or are not copyrighted. They are regularly used throughout education systems worldwide [12].

The application features a bookshelf-like user interface that lets user navigate their collection of . It also provides a customizable reading experience through configurable font and background colours, font size and type, margin size, display brightness, page turn mode, etc. Additionally, the application allows users to import their own books to read them on the go [13] (Fig 4).

Aldiko does not support font embedding, only available for android operating system.

18 State of Art

Figure 4 – Aldiko eReader app in Android device [14].

2.2.4. WattPad

The Wattpad is the biggest world's community of readers and writers [15] a company based in Toronto, Canada, founded in 2006 and funded by venture capital firms in New York, San Francisco and Toronto. Its resources are available in twelve languages and in ten nationalities [16].

According to Wattpad site, it’s a writing community in which users are able to post articles, stories, fan fiction, and poems, either online or through the mobile app. This gives people the opportunity to have their creative works available to a wider audience. The content includes work by undiscovered writers, published writers, new writers, with all users being given an equal opportunity to write popular works. Users are able to comment and like stories or join groups associated with the website. Around half of the users are US based; other users come from the UK, Canada, Philippines, Australia, United Arab Emirates and other countries [17].

The Wattpad is one of the few social networks (Fig 5) that are in constant contact with users to establish among its main links a page like a blog where the team updates it with posts and discussions about things that happen in the company's headquarters or related services. There is a kind of "humanizing" on the relation between platform and user, which is considered by many users, one of the most important features of this application [18].

19 State of Art

Figure 5 – Wattpad app in Android device [19].

2.2.5. Google Keep

The Google keep is a note taking application developed by Google. It is available as a mobile app for the Android operating system and as a web application. There are several features including colour coding notes, inserting images, creating lists, geo- fencing, shareable notes, and search by colour [20].

Google Keep allows users to categorize notes using folders or labels. On the Android app, swiping a note to the left or right in the notes list archives the note. Archived notes appear in the Archive section. Keep also allows users to create a copy (duplicate) of a note. Users can also choose between the List View or Grid View modes on the web. On Android, users can choose between the single-column view and the multi- column view (Fig 6).

20 State of Art

Figure 6 – Google Keep app in Android device [21].

Google Keep app for Chrome browser and Chrome OS are one of the early packaged apps provided by Google. The app works offline for creating, editing and deleting notes as well as for extra features such as adding images (Fig 7). The Google Keep Chrome app also works on Linux operating systems as well as Windows and Mac, despite Linux not having a native Google Drive app available.

Figure 7 – Google Keep app for Chrome browser [22].

21 State of Art

2.3. REVIEW OF THE WORK

After analysing the various related works and to attain the objective of the project, it could not be used none of these related works, because they are not open source and didn’t have feature to connect with other equipment such as a TV. As we wanted to find a reader that could connect with the TV, we at least had to be able to access their to implement connections, which it was not possible.

So by the way we had to start from the beginning finding equipment’s that would be possible to reach the objective of the project. To start, we had two equipment’s with Android system operation: TV Box Mk809III (Fig 8) and Tablet 7 inch (Fig 9), we just needed to create two apps: one to read the book and other to show the annotations on TV, and connect both devices.

Figure 8 - TV Box Mk809III Figure 9 - Android OS Tablet 7 inch

We started by finding a library open-source to read PDF books. From several libraries, the MuPDF was chosen to bee implement on the Tablet being the reader book. This library being open source, and easy to understand, it supports transparency, hyperlinks, annotations, search, speed, small code size, and high-quality anti-aliased rendering [23].

Having resolved the situation of reading, it was necessary to find a solution to demonstrate the notes from the Tablet, on TV. Working with two devices with the same OS Android, it became easier and had more options for connection.

22 State of Art

We started implementing a Wi-Fi Direct connection, which is a technology that lets you turn any Android device into an access point. It is a new specification created by the Wi-Fi Alliance that enables you to create adhoc network between Wi-Fi devices, instead of having to connect the devices to an external access point [24].

According to Alliance, devices on Wi-Fi Direct group can act either as an access point, or as a client [25].

For the proper functioning of the project, with two-way communication, it would be good because we could always confirm the request received from the Tablet.

But the required to share notes with others user in real time, meant that this solution was not possible.

Therefore, so that other users could interactively and in real time visualize the annotations on TV, an online database was created. The solution followed was connecting the two devices through Wi-Fi on an access point, using the client-server model. In this case, the first limitation of the project would be the condition of being able to connect both devices to a Wi-Fi access point with Internet for its operation. Nonetheless, since we are facing a situation where almost all of the possibility cases of use, such as houses, schools and libraries have access to wireless network, this decision was taken.

Being resolved the database and the client-server model over the Wi-Fi network, what was needed was to program both applications in java to guarantee the exchange information between Tablet and TV.

23 State of Art

2.4. TECHNOLOGY ENVIRONMENT

The changes that are taking place in the information society and knowledge in technology makes the man even more dependent on information, knowledge and technologies [26]. These technologies are currently already inserted in the day-to-day living, in which electronic books that are related directly with the project will be discussed.

2.4.1. Electronic Book

Electronic book readers have been defined as “mobile, physical devices to display electronic documents”. They have received a very mixed press, with some authors believing they represent the future of reading, and others claiming that reading long texts from a screen is an inherently unpleasant experience and, therefore, will never be popular [27].

But according to [28] it’s very difficult to say whether e-books will monopolize public attention to the point of making printed books be set aside and come to an end. There are those who say that factors such as cost, easiness and environmental consciences, naturally the advantage is the electronic book which "speaks" more loudly. There are others who like to read the book on paper, its more convenient for the view of the readers who have a greater attachment to this support [29].

It can be seen that even with the release of this new type of reading in the world the printed monopoly still has space in the market and only in the medium or long term will we see to what degree the digital reading device will reach the public [28].

Nowadays the companies are opening access to their systems to any devices, but with some caution, because they understand that access to the working tools on devices will increase productivity, motivate the employee and allow access anytime, anywhere and safely (taking due care) [30].

In order to understand differences between the printed book and a digital book, I will show some advantages and disadvantages [31].

24 State of Art

Advantage:

 The digital book can store in one device various works, than the traditional book

 According to Silva [32], the e-book reader can be easily transported anywhere.

 Related to the weight, the device can’t be compared, for example, the amount of heavy books that a child carries in a backpack to go to school.

 Spend fewer financial resources to produce an e-book than to make a printed book.

 The easy location of a specific term within the text, where the users spend less time finding it and avoids unnecessary full reading.

Disadvantage:

 According to Dziekaniak [33], the principal disadvantage responsible for low acceptance of readers is the eyestrain that exists after reading some time on the e-book or computer screen, and the fact that it provokes headaches.

 About the screen brightness of e-readers, there is already a technology called electronic paper, or known by other terms such as e-paper, electronic ink or e- ink. This is a technology that gives us the impression of reading an electronic text on a standard sheet of paper. Devices like the Amazon Kindle already have the technology, and unlike devices containing liquid crystal display, the e-ink that does not emit light that makes reading becomes uncomfortable. Thus it provides greater comfort in reading digital texts [34].

25

3. DEVELOPMENT APPLICATION

Development Application

3.1. INTRODUCTION

“The hardest part of building a software system is deciding what to build and how to build it. No other decision has a greater impact on the work. No other part is more difficult to correct the subsequent” [35].

The development of the project followed an interactive design approach which allowed to identify any usability issues that may arise in the user interface before it is put into wide use. For the best usability experts the perfect design interface cannot be made in a single attempt, so a usability engineering lifecycle should be built around the concept of iteration.

27 Development Application

3.2. ANALYSIS

The analyses of requirements is recognized as one of the most critical stages in the development of software because it is in this stage that we should understand all the user's needs (stakeholder), i.e. understand what is the aim of the project to be developed as well as the main objectives. To do this we need specifications of the requirements, i.e. identify, analyse, specify and define the user's needs.

3.2.1. Functional requirements

Functional requirements are requirements that expresses functions or services that software should or might be able to perform or provide. These functions or services are in general, processes that use inputs to produce outputs. Taking the definition into account, the following functional requirements were identified:

1. Allow the user to create an account;

2. Allow the user to edit their account;

3. Allow users to recover their account;

4. Allow registered users to access their books;

5. Allow registered user to read a book;

6. Allow registered user to add annotation on the page of the book;

7. The system should have an authentication procedure for users;

8. The system should show the book on the Tablet;

9. When reading a page of a book, the system should show on the TV the annotations posted by other users if they exist in the database;

10. When reading a page of a book, the system should display information about the book on the TV (Title, Author), as well as its thumbnail on the top right hand corner.

11. When reading a page of a book, the system should show on TV, by the thumbnails, the current, previous and next page;

28 Development Application

12. When reading a page of a book, the system should show on TV the thumbnails with the total number of annotations related to each page;

13. When reading a page of a book, if there are no annotations on that page, the system should display a zero on TV.

3.2.2. Non-functional requirements

Non-functional requirements are requirements that declare restrictions, or attributes of quality for software and/or the development process of the system. Taking into account the definition, were identified the following non-functional requirements:

1. The system must be connected to a WI-FI access point with Internet.

2. The user must learn to navigate the system in less than 10 minutes;

3. The system must display a welcome message on the beginning screen;

4. To create a user, you need to specify a username, password, a photo and valid- email;

1. To recovery a user account, a valid e-mail address is required;

2. Each user is identified on the system, using the username and password;

3. Text fields must have client side validation;

29 Development Application

3.3. SYSTEM ARCHITECTURE

The architecture of an application consists in the interconnection of various architectural elements. These elements can be databases, servers, clients, filters, among others, and the way how these elements are interconnected sets the architectural style, being that, in one application it can be built with only one or based on various styles [36].

To develop this project, it was necessary to use more than one architectural style as shown in Fig 10. Starting with the application developed for reading books on the tablet, which was developed through Java language from the Google Android platform, using architecture MVC (Model, View and Controller). On the other hand the application created for TV, was developed through the PhoneGap framework (framework for creating mobile applications through web APIs). In order to communicate between the two devices, the Client-Server style was used.

In the following chapters we will explain in more detail, the three styles used to develop the system implemented.

Figure 10 - Architecture of the project developed

30 Development Application

3.3.1. Android Platform [37]

According to Google [37], Android is an operating system customizable and easy to use that move more than one billion devices around the world, from and tablets to watches, televisions, cars. Being an operating system with free access to programming tools to develop applications for Android, it has become more and more interesting and challenging.

The Android platform has several versions, since the first version (Android 1.0 Base) to the last current version 5.1 (Lollipop) [38].

The version that boosted Android was the version 1.5 (Cupcake) in May 2009. This version, still primitive, already demonstrated several features that today can still be found in the new versions. It was available in 27 languages and already supported different sizes and screens resolutions.

Then it was followed by new versions, such as Android 1.6 (Donut), 2.1 (Eclair), 2.2 (Froyo), 2.3 (Gingerbread), 3.2 (Honeycomb), 4.0 (Ice Cream Sandwich), 4.2 (Jelly Bean), and 4.4 (KitKat), among others. These versions bring new features over previous versions and increasingly support new devices such as smartphones, tablets and even televisions of different sizes and with different resolutions [37].

With so many versions on the market it is normal to have segmentation. All this versions Android wanted that an application could support the maximum possible devices without losing functionality or capacity. Among the different versions, the dominating is the KitKat, with 39.3% of the market distribution, then afterwards the Jelly Bean version with 33.6% and Ice Cream Lollipop with 18.1% [38].

To develop the reading application, the version 4.0 (Ice Cream Sandwich) was used due to it being the minimum size version to install because of the OS devices.

31 Development Application

Froyo Gingerbread Ice Cream 0% 5% Sandwich 4%

Lollipop 18%

Jelly Bean 34%

KitKat 39%

Figure 11 - Market share of Android devices with version of the OS

As for the architecture, Android contains the following elements shown in Fig 12.

Figure 12 - Architecture of Android Platform [39].

At the base of the stack is a Linux Kernel version 2.6. Allowing an abstraction between the hardware and the software, it is responsible for the service in core system such as memory management and process management. While applications for Android are

32 Development Application written using the Java language, they are not performed in a traditional Java virtual machine but another, called Dalvik [40]. As various components of the platform, this virtual machine is optimized especially for mobile devices.

The platform also includes a collection of /C++ libraries used by various system components. They are responsible for providing, among others, audio, video, graphics, database, and browser and are exposed to developers through the framework application.

The architecture was designed to simplify the reuse and share of components. Therefore, the layer of application framework provides developers the same APIs used to create the original applications of the system.

Android is already equipped with various applications written in Java. Among others, there is e-mail client, browser and contact manager. These applications are located at the top of the stack along with other already created and installed in the system [41].

One of the key points for developing Android applications is the life cycle. With this concept it is possible to understand its operation and make changes as needed.

The developer has no control over the changes of state of an application, its operating system's responsibility, however, it can be notified when a state is about to change by calling a method on [Event] (). Overriding these methods in your Activity class, Android will run them at the appropriate time (Burnett, 2009). An overview of these methods is shown in Fig 13 [42].

33 Development Application

Figure 13 - Life cycle of an Android application [43]

Once the architecture and functionalities of the life cycle of an Android application was known, what was needed was an external library for reading PDF, since the Android operating system doesn’t bring any. After several research, we used the library MuPDF being an open source and easy to use. In order to have a better understanding of this library, its workings is explained in section (III.6.6.1.).

After the implementation of MuPDF library for reading PDFs, among several classes available in Android platform, we used the class MotionEvent to determine the movements performed on the screen of the Tablet during the reading. In section (III.6.1.2.) there is a brief explanation as to how the movements on the screen of the Tablet were defined.

3.3.1.1. Library MuPDF [44]

MuPDF is a library available for free uses "under the terms of the Affero GNU General Public License as published by the Free Software Foundation", written in C that implements a PDF and XPS parsing and rendering engine. It is used primarily to render

34 Development Application pages into bitmaps, but also provides support for other operations such as searching and listing the table of contents and hyperlinks.

The focus of MuPDF is on speed, small code size, and high-quality anti-aliased rendering. Since the 1.2 release, MuPDF has optional support for interactive features such as form filling, JavaScript and transitions [44].

About the features of MuPDFActivity, when it starts, the onCreate() method creates and builds the objects necessary to render and display a document. The core classes MuPDF uses to perform these tasks are MuPDFCore and MuPDFPageView. These classes contain the majority of the functional components that are used to display and annotate the PDF document.

When displaying a PDF, the MuPDF reader allows users to navigate the displayed document one page at a time. The core functionality required from the MuPDF reader is to provide annotation tools. But for the project development, we wanted to store the annotations on the server, so we didn’t use these tools for annotation.

According to MuPDFs [44] many functions in interface take a context argument. A context contains global state used by MuPDF inside functions when parsing or rendering pages of the document. It contains for example:

 an exception stack (see error handling below),

 a memory allocator (allowing for custom allocators)

 a resource store (for caching of images, fonts, etc.)

 a set of locks and (un-)locking functions (for multi-threading)

Other functions in MuPDF's interface take arguments such as document, stream and device, which contain state for each type of object. Those arguments each have a reference to a context and therefore act as proxies for a context.

Without the set of locks and accompanying functions the context and its proxies may only be used in a single-threaded application.

35 Development Application

3.3.1.2. Classe MotionEvent [45]

The Class MotionEvent is used to report movement (mouse, pen, finger, trackball) events [37]. The movements are described in terms of an action code and a set of axis values. The action code specifies the state change that occurred such as a pointer going down or up. The axis values describe the position and other movement properties.

Some devices can report multiple movement traces at the same time. Multi-touch screens emit one movement trace for each finger. The individual fingers or other objects that generate movement traces are referred to as pointers. Motion events contain information about all of the pointers that are currently active even if some of them have not moved since the last event was delivered [45].

The functions of the gesture detector used to read the books on the Tablet are: onLongPress() – To add a note; onDoubleTap() – To make zoom in and out of the page; onFling() – Got four cases on this gesture:

MOVING_DOWN – Scroll down the TV layout;

MOVING_UP – Scroll up the TV layout;

MOVING_LEFT – Go to next page;

MOVING_RIGHT – Go to previous page;

3.3.2. Framework PhoneGap [46]

PhoneGap is an open-source development framework that enables developers to program their applications using web technologies such as HTML5, JavaScript, CSS3 and then distribute them as native applications [47]. In Figure 14 illustrates the general concept of this framework.

36 Development Application

Figure 14 - Development process of the Framework PhoneGap [46].

The applications are developed as a web application using HTML5, JavaScript and CSS3. PhoneGap Build compiles them and the end of the result is a native application for the device [48].

PhoneGap supports multiple platforms such as iPhone, Android, Windows Phone, Blackberry, Symbian, Bada, and webOS. On the PhoneGap API its available several native features such as Accelerometer, Camera, Compass, Contacts, File, Geolocation, Media, Network, Notification (Alert, sound, vibration) and Storage.

There are many advantages, which currently make companies, and developers choose to use a framework like PhoneGap in detriment of developing applications using native languages.

One advantage is the fact that most of the developers already have knowledge of the technology and web languages (HTML and JavaScript) as opposed to native technologies of the various systems. Example of this case is the development for the iOS platform (iPhone, iPod, iPad), requires knowledge of Objective-C, and which is a little used and known language. Coupled with the fact that with the web language is able to develop an application that runs on many existing platforms where makes it more efficient to concentrate efforts and develop applications using this approach.

The second advantage is connected with the first and it’s the possibility of using tool- kits or JavaScript frameworks existents already such as jQuery Mobile, Sencha, Touch, Dojox Mobile, etc. This modularity and the fact that there are many JavaScript libraries, makes it more attractive to the developer. One of the strong points of this Framework is the APIs that provide access to principle functionalities from the devices.

37 Development Application

Another advantage concerns with the PhoneGap architecture that allows extension of functionalities for an application to have access to native functionality more than those that are present in the current Framework API's [46].

But there are also limitations in this Framework that must be taken into consideration. One that has more impact is that they are slower and less optimized than native applications for each OS. Another limitation is that not all features are supported in all platforms, which an application can work well in a system and not in another. About the interface, it has limitations inherent to web programming that makes it difficult to simulate a native interface [48].

Once decided, implementing this framework in the application for TV seems to bring several advantages to the project. The main advantage was, as we were using the web language, we could implement a responsive web design [49]. Using a responsive design, it would provide an optimal viewing and interaction experience—easy reading and navigation with a minimum of resizing, panning, and scrolling—across a wide range of screen dimensions. It was also taken into account the fact that as we are using web language, that this could, in the future, be implement to a Smart TV.

3.3.3. Client-Server

The required was the communication of two devices. There were various models that allow exchange information. The model used was client-server, it is a distributed application structure that partitions tasks or workloads between the providers of a resource or service, called server, and services requests, called client. It allows clients and servers to communicate over a computer network on separate hardware, but both client and server may reside in the same system.

In this model the protocol used for both mobile devices to communicate is TCP (Transmission Control Protocol). Through the TCP, it’s possible to create a flow between two or more devices on the same server, as is the case with many database, web servers, etc. The advantage of using TCP is that TCP will guarantee delivery of packets that we transfer [50].

38 Development Application

The TCP / IP protocol has 999999 ports available (empirical evidence), of which from port number 0 until port number 1023 are reserved for predetermined services, for example port 23 for Telnet service port 21 for FTP, and so for [51].

To develop the project, two ways of communications using TCP / IP protocol were created, which are explained in the next section.

3.3.3.1. Communication between Tablet and TV;

For the communication between the two devices, the Tablet was considered as a client, which only sends information, and the TV as the server that receives information and treats it. But to be connected, we would have to find the TV IP on the network. Furthermore, a system to scan the network in order to be able to find the TV IP was implemented on the Tablet. The access port used was port 6000 so there is no interference with other equipment.

This way, having defined the access door and the TV IP, we have the communication between both settled, missing only the mechanism to send the information.

To send information, Java Sockets were used. According to Oracle [52], a socket is one end-point of a two-way communication link between two programs running on the network. Socket classes are used to represent the connection between a client program and a server program. The java.net package provides two classes--Socket and Server—Socket that implement the client side of the connection and the server side of the connection, respectively.

More abstractly, Fig 15 demonstrates its operation.

39 Development Application

Figure 15 - Communication between Tablet and TV using Sockets.

3.3.3.2. Communication between database on server and Tablet/TV;

PHP and JSON technologies have been used to carry out the communication from the two devices to the database server. Both require certain information in order to operate and this information is stored in a MySQL database. The problem is that Android cannot communicate directly with a MySQL database; it needs the help of a web page that reads from database and converts to JSON, which is a language that Android can already decode.

This PHP pages are hosted in the server: http://robertocaires.softcode.org/TVApp/ and to be accessed by Android devices is necessary to make an HTTP request to the link http://robertocaires.softcode.org/TVApp/www and some POST variables to the server know what kind of information the device requires. The Fig 16 demonstrates how it works.

40 Development Application

Figure 16 - Communication between Android devices and MySQL Database

41 Development Application

3.4. MODELLING

3.4.1. Entity-Relationship Model

The Entity-Relationship model is a conceptual data model. This model aims to create a simulation of reality. The simulation is comprised from a group of entities interacting with each other through a set of relationships.

An entity (represented by a rectangle) is a group of people, places, objects, events or concepts of what we want to store.

A relationship (represented by a diamond) is an association between two entities.

An attribute (represented by an ellipse) is a specific characteristic of an entity.

Figure 17 - Entity-Relation Model

42 Development Application

3.4.2. Relation Scheme

The Relational Scheme is a type of modulation that appeared in 1970 when E.F. Codd published an article with the theoretical fundaments of the relational model [54].

After many arguments against the efficacy of this type of modulation for database, presently it is considered the best model among conventional models [55]. Over the time, the relational model was being used in the market, contributing to the widespread application of database technology in organizations [56].

Following the rules and guidelines for the implementation of relational modelling, the following scheme (Fig 18) was constructed based on the E-A model.

Figure 18 - Relation Scheme

43 Development Application

On the conversion of the E-A model to the relational scheme, each entity originated a table with the same name and the same attributes. It also took into account the type of relationship, the type of participation between entities and their restrictions.

The associations had various types of arity as result, which are presented below:

Relation One – to Many:

User => Notes

One user can have several notes, and one note is related to one user. From this association it result a foreign key User_idUser within the Notes entity.

Books => Notes

One book may have several notes, and one note can only be referring to a book. This association result the foreign key Book_idBooks within the Notes entity.

Relation Many – to - Many:

User <=> Books

One user may have several books and on books will be for multiple users. This combination resulted in the creation of User_has_Books entity established by foreign keys User_idUser and Books_IdBooks.

44 Development Application

3.5. PROTOTYPING OF APPLICATION

A prototype seeks to simulate the view and functionalities of the software, allowing stakeholders to interact, evaluate, modify and approve the most important features in the interface and functions. Based on the contact with some colleagues at the University and Supervisor, it was created prototype screens for the Tablet and TV, which will be demonstrated below.

3.5.1. TV Application.

Initially the Grid Galley format was considered (Fig 19) [57] with a header on the top of the layout with information about the book. On the header, the left side would have the name, authors and the picture of the book cover. To the right side it would have thumbnails of the pages of the book. The thumbnails would appear more to the center of the screen where the user could see the two next and previous pages. Below the header, the annotations according to the Grid Gallery style are shown. In each annotation, the user can see the picture of the user the posted the comment, the date and time, the name and the content of the information.

However, after testing with some users, we found out that it was difficult for the user to read the content. Various annotations were joined in the same horizontal line, making it confusing to read. We detected that the user losses the focus on the annotation that is being read.

45 Development Application

Figure 19 - Grid Gallery Style

Nonetheless, we needed to find out a way where the user would not loose focus of the contents and also know the order of the annotations. After searching and analysing various styles, we decided to implement a timeline format (Fig 20) [58]. This style seemed interesting because the annotations could be automatically ordered by the date and time, allowing the user simple and easy reading seeing that the comments would be displayed by one in each row.

After testing with some users, good feedback on the reading facility was given. The facts were that there is nothing close to distract the focus from the reading and also the facility of having bigger sized letters to read the annotations. We therefore chose this prototype style for the final version of the TV application.

46 Development Application

Figure 20 - TV Application Layout

3.5.2. Tablet Application.

On designing prototypes for the Tablet application, it was taken into account those common web formats that the users already know, such as the authentication system, the registration on the system, the list of books with a small photo, among others. Taken this into account, the prototypes of the screens for the Tablet application will be presented below.

Figure 21 - Authentication Figure 22 - Create new user

47 Development Application

Figure 23 - Connection to TV

Figure 24 - List of devices scanned on network Figure 25 - List of books

48 Development Application

Figure 26 - Reading book mode Figure 27 - Menu button option

Figure 28 - Adding an annotation Figure 29 - View annotation on Tablet

49 Development Application

3.6. UNDERSTANDING THE USERS

“A use case is a sequence of actions that one or more actors perform a system so as to obtain a particular result” [59].

Being a prototype to study, for the use cases it has been considered various scenarios:

1. Simple reader – one book or many books; 2. Multiple readers – one book or many books; 3. Each reader alone – one reader and one screen; 4. Multiple readers in company (example: classroom or library) 4.1. Small screen (TV) to multiple readers. 4.2. Big screen (Projector) to multiple readers.

The system was developed for the cases of a simple reader with one or many books and each reader alone. The multiple scenarios was to do afterwards, but due to the limited time given it was not possible to do. As the database is online, it’s was possible to test with multiple readers at the same time but in different TVs.

For the Use Case diagram, it was considered one main type of User. The system was prepared in a way that an administrator is unnecessary. Meaning that the user after authentication, will be able to access all features of the system. Standing by a prototype, the part that is currently done by an administrator is the part of the thumbnails to server, but there are systems in the market that transform the PDF into thumbnails automatically. No new Use Case for this effect was created. By this way, results in one use case that’s presented in Fig 30.

50 Development Application

Figure 30 - Use Case of the User

51 Development Application

3.7. TECHNOLOGIES USED

The choice of technologies to use is a very important factor because it helps in the future implementation of the application development. This section is divided into two subsections. In one section shows the tools used for designing prototypes, diagrams and application programming. The other section is about the languages used in programming.

3.7.1.Tools

Balsamiq Mockups [60]

It’s a graphical interface tool for building mockups (models) from the application. With this tool it was possible to create models very close to the final product results.

ConceptDraw Office [61]

The main feature of this tool is its display mode. However, it has a set of tools and tips that lead us through the models for representation. This tool was used in the creation of the following diagrams:

 Entity-Relationship model

 Use Case model

Server MYSQL

I used a space on the server (http://robertocaires.softcode.org/), with MySQL version 5.5.42 to put the database in operation. By this way, having hosted directly on a server, it was helpful to be able to identify some issues that could appear during the access to data through the Tablet or TV.

Eclipse ADT [62]

This was the software used to develop the reader application for the Tablet. It’s Java open-source software for IDE (Integrated Development Environment). To develop the application the Eclipse ADT version (Android Development Tools) was used, which

52 Development Application brings a plugin for the Eclipse IDE that is designed to build Android apps. This includes the libraries of Android devices (Android SDK) in order to build, test and debug.

Android SDK e AVD [62]

SDK is a software development kit that enables developers to create applications for the Android platform. The Android SDK includes sample projects with source code, development tools, an emulator, and required libraries to build Android applications. Applications are written using the Java programming language and run on Dalvik, a custom virtual machine designed for embedded use, which runs on top of Linux Kernel [38].

The Android Virtual Device (AVD) is an emulator configuration that lets you model an actual device by defining hardware and software options to be emulated by the Android Emulator.

Aptana Studio [63]

The software used to program the application for TV. It’s free open-source software for IDE that was developed in Java and supports many languages, used in the project, such as CSS, HTML, JavaScript, PHP, and AJAX libraries. Note that Aptana can be used as a standalone tool or as a plugin for Eclipse.

3.7.2. Language

JAVA

Java language was the main programming language developed the project. It’s a High- level programing language, expressly designed for use in the distributed environment of the Internet. Java is an object-oriented language similar to C++, but simplified to eliminate language features that cause common programming errors.

Java is fast, secure, and reliable. From laptops to datacentres, game consoles to scientific supercomputers, cell phones to the Internet, Java is everywhere! [53]

53 Development Application

HTML

(Hypertext Markup Language) Language mainly used to define the formatting and presentation of the page elements, in order to be interpreted by the browser.

PHP

It’s a free interpreted language and used to generate dynamic content on the WWW (World Wide Web). The code is interpreted on the server side by the PHP module, which generates the web page to be displayed on the client side. It was used for the both Android devices to access information on database.

SQL

(Structured Query Language) is used to communicate with a database. According to ANSI (American National Standards Institute), it’s the standard language for relational database management systems. SQL was used to perform queries to the database, and retrieve data from a database. jQuery Mobile

The use of this JavaScript library was the fact that it’s supported by all recent browsers (cross-browser), and has a very intuitive and easily syntax. It allows designing a single highly-branded responsive web site or application that will work on all popular smartphone, tablet, and desktop platforms. It was used to develop the TV application simplifying the client-side scripts (client-side) that interact with HTML.

54

4. PRESENTATION OF APPLICATIONS

Presentation of Applications

4.1. INTRODUCTION

In this chapter we present images and a brief explanation of the final interfaces. Note that during the development of the interface for TV application several changes in the interface were made until the best possible solution was found to implement tests with users.

In order to be able to organize the information, the Tablet and TV interfaces will be presented separately.

56 Presentation of Applications

4.2. TABLET APPLICATION

4.2.1. Navigation Map

The navigation map shown in Fig 31 shows a graphical representation of how the user can navigate between the various features available in the Tablet application. The navigation map sets in a certain way the graphical representation of the system architecture.

The illustrated map navigation seems to be very intuitive, given its high level of abstraction. It’s important to note that from the moment that the user makes Login, if for some reason has to go out of the application and re-enter, doesn’t need to go to the beginning screen, will be taken to phase of connection to TV.

Home Welcome

Registe Login New User

Discover Skip TV on connection Network to TV

Select Book to read

Visualize Edite Remove Add Notes Logout Notes Notes Notes

Figure 31 - Navigation map from the reader application

57 Presentation of Applications

4.2.2. Functionalities of application

This section presents the features of the reading application that have been implemented. Note that some functionality initially proposed were not done, such as add book to server, edit and delete an annotation. This decision was taken because it will not influence on the main focus of the project, the display and interface component with the annotations coming from the Tablet.

The rest of the functionalities were completed and will be subsequently shown to illustrate the final product design of the application, accompanied by a brief explaining.

4.2.2.1. Create new user or make authentication by login.

Initially the app presents the authentication screen Fig 32, where the user has to input the login and password to authenticate. In case of a new user, he has to register a new account to have access, as is shown on Fig 33.

Figure 32 - User authentication Figure 33 - Register a new user

58 Presentation of Applications

4.2.2.2. Connect the Tablet and TV

After authentication, a screen with two options appears: connect to TV or skip the connection (Fig 34). If you choose to connect to TV, the system will scan the network to detect the devices that are connected and present only the ones that have the port 6000 opened, in this case it will only appear the TV on the list as shown on Fig 35. Afterwards the user just needs to select the TV row and goes to the next activity.

If the user skips this connection, it is still possible to visualize the annotations on the Tablet.

Note that if the user already has been authenticated, when the app starts, he will be forward to the connection activity.

Figure 34 - Discover TV or Skip Connection Figure 35 - List of devices on network

4.2.2.3. Select the book in PDF

Once the authentication has been completed, and the communication made between the devices, then all that is needed is to select the book to start reading. As shown Fig 36 a common list is presented to the mobile device user that displays only folders or PDF files. This reduces the number of unnecessary files on the screen and becomes simple to select the book to read.

59 Presentation of Applications

Figure 36 - List with folders and PDFs Figure 37 - Add a book to server

After selecting the book, the reading app will make a connection to the database to verify if any information about the selected book exists.

If there is any information, the reader app starts sending information about the book (book_name; book_page) to the TV app. The TV app receives the information sent from the Tablet and makes a new connection to database to get all annotations linked to the book and page selected.

If there is no information about the book selected, the system suggests introducing it as shown in Fig 37. Note that this function wasn’t completed as only the layout with the basic information of the book was created. As a prototype system, the information and thumbnails of the book are entered manually in the server.

4.2.2.4. Reading the book

In reading mode, so that we can benefit the reader with maximum screen size, only one menu button was placed on the top as shown Fig 38. This menu button has the functions of log out, edit profile and show annotations on Tablet Fig 39.

60 Presentation of Applications

Figure 38 - Reading mode of the book Figure 39 - Option of menu button

4.2.2.5. Add annotations

To add an annotation the user just needs to do a long press on the screen and a box appears to write down the annotation as we see in Fig 40.

Figure 40 - Adding an annotation

61 Presentation of Applications

4.2.2.6. Change Page

To change page, the user just needs to slide left to go to next page or slide right to go to previous page as shown in Fig 41.

Figure 41 - Change page on Tablet

4.2.2.7. Scroll up and down on TV

This function was used to scroll the annotations up and down on TV. If the page that user is reading has more than three or four annotations depending how large is the TV, the user can scroll the annotations up or down on TV by the movements sliding down or sliding up on Tablet Fig 42.

62 Presentation of Applications

Figure 42 - Scroll up or down on Tablet

4.2.2.8. Visualize annotations on Tablet

This function was implemented for the instance when a user, for some reason cannot connect to TV and wants to view the annotations directly on the Tablet. It is possible to view the annotation with the same style as on the TV Fig 43.

Figure 43 - Visualize annotations on Tablet

63 Presentation of Applications

4.3. TV APPLICATION

4.3.1. Navigation Map

The navigation map shown in Fig 44 illustrates a graphical representation of the TV. This app will have three types of layouts: the first layout will be “welcome layout”, the other two will be to show the annotations depending on the quantity of them.

Home "Welcome"

Layout whith 1 or Layout whith 0 more annotations annotations

Figure 44 - Navigation map of TV system

4.3.2. Functionalities of application

This section will represent the TV application functions that have been developed. On the application three types of functions were created: the "Welcome" which stays waiting for the Tablet to send information; The “Zero Notes” for the case where there are no annotations on the page that the user is reading; and finally the case where there are one or more annotations to show on TV.

Next the final product design for the TV application will be shown, accompanied by a brief explanation.

4.3.2.1. Home “Welcome”

When the TV application starts, a welcome screen will appear to the user (Fig 45) while the Tablet is preparing the communication and the book to read. The TV being the Server application at this stage a cycle of waiting starts until it receives requests from the Tablet (Client). The “Welcome” screen will only change to the next screen when it

64 Presentation of Applications receives the book information (book_name; book_page). After receiving the request it verifies in the database if there is a book and consequently begins to show notes on whether it does or not exist.

Figure 45 - "Welcome" screen from TV App

4.3.2.2. One or more annotations

For the case that the page of the book that is being read has one or more annotations stored it will be presented by the following way of Fig 46.

Figure 46 - Visualize on TV one or more annotations

65 Presentation of Applications

After several research and testes with colleagues of the University, the implementation of the TV interface had some changes made before we got to the final version. Once done, the interface ended up in two parts, the upper part "Header" would be showing the information relating to the book that the user is reading, and the bottom was to show the annotations posted by users.

On the top left hand side the book cover was placed with the name and respective authors as shown in Fig 47.

Figure 47 - Visualize information of the book on TV

On the middle of the header, the thumbnails of the book pages were placed with the respective amount of notes on each of them (Fig 48). This way the user could view the current page, next and previous page, as well as which pages contains annotations.

Figure 48 - Visualize the thumbnails of the book on TV

After the header, we have the annotations part "content”, which was followed as a "Timeline" style. It seemed to be a simpler way for people to read and identify the chronology order of the annotations. This way the annotations were illustrated in an orderly manner and we could still see the published date and time, as well as the image and name of the user who posted it as shown in Fig 49.

The colours and fonts were also taken into account in order to be able to view better from a distance.

Figure 49 - Visualize the content of the annotation on TV

66 Presentation of Applications

If a page has more than two notes, it is possible from the Tablet to scroll up or down the page on TV as shown in Fig 50. Note that the header part stays fixed on the top and the part of the annotations pass underneath it.

Figure 50 - Visualize TV screen scrolled down

4.3.2.3. Zero annotations

O Zero screen annotations shown on Fig 51, is for the case of the page that does not have any annotations stored. This screen will display a big zero so that the user does not miss the reasoning of reading.

Figure 51 - Visualize zero screen on TV

67

5. TESTS AND RESULTS

Tests and Results

5.1. USER TESTS

5.1.1. Method

Given the importance of software testing in the development process, some tests with final users of the system were carried out.

The software tests were performed in two different locations with different characteristics: In Madeira Interactive Technologies Institute (M-iti) and in the Library - Biblioteca Regional da Madeira.

Although the two locations involve the same area (Readers), the characteristics of the users are different (one with students from college and other with people related to reading). It would be interesting to compare the implementation of the system at both locations.

The M-iti was implemented in the meeting room (Fig 52). It was to be carried out during two days and tested with users from this institute.

Figure 52 – Tests in M-iti

The testing was also to be carried out in the Library during two days in a recreation area for the users of that space, as shown in Fig 53. In this case the TV that exists there didn’t have the HDMI input port, so it was connected to a projector to test the system.

69 Tests and Results

Figure 53 – Tests in Regional Library of Madeira

Having the two locations defined, we set out to try the testing with users. After the users explored the system they were given a questionnaire (Appendix A) in order to be able to know there opinion about the system.

In order to evaluate the users equally, they were requested to perform the same sequence task:

1- Do authentication with data provided on a paper; 2- Make the connection to TV; 3- Select the book “Mentalidade para o sucesso”; 4- Navigate to page six to visualize an annotation with the name “Roberto Caires”; 5- On the same page look for David’s annotation that is below (Scroll down); 6- Add an annotation in page seven; 7- Show the annotations on the Tablet;

The sequence of tasks lasted an average of twenty minutes. It was possible to detect usability errors, clarify any question of the user during the test and interpret what kind of user that we were testing for further analysis of the results.

70 Tests and Results

5.1.2. Discussions of the results

After participating in the use of the system, the user was required to respond to a short satisfaction questionnaire to enable us to register their opinion. This questionnaire is divided into three topics that we wanted to analyse: User profile (find out the profile of user tests); Experience (determine their experience with the system) and System Interface (what do they think about the interface).

The results were collected on the basis of thirty users, being fifteen in the library and fifteen in M-iti. All questionnaires were conducted on paper form and subsequently inserted into digital format. Of the fifteen users of the Library, nine are male and six are female, while in M-iti ten are male and five female. I will then present an analysis of the results of both locations based on the three topics:

Total number of participants:

Male Female Total M-iti 10 5 15

Library 9 6 15

Figure 54 – Number of participants.

User test profile:

Ages of the Users

6

5

4

3

2

1

0 < 19 19 to 24 25 to 30 31 to 36 37 to 41 42 to 48 49 to 54 > 54 M-iti Library

Figure 55 – Graphic of User Ages

71 Tests and Results

The Fig 55 shows the results of the ages of the users tested on the system. Most of them are between twenty five and forty-one years old. In the case of the library it was not possible to evaluate users above the age of forty-two years.

How many times you read during a week?

60%

50%

40%

30%

20%

10%

0% 0 - 2 3 - 5 5 - 10 10 - 5 > 15 M-iti Library

Figure 56 – Graphic of how many times the user read during a week

According to Fig 56 and considering that more than three times a week is a regular reader, we can see that the users that carried out the tests were not the most assiduous book readers. In M-iti there was only forty percent and in the Library fifty percent of the users were regular readers.

Experience of the user with the system:

What is your opinion about the system?

60% 50% 40% 30% 20% 10% 0% very bad bad satisfation good very good M-iti Library

Figure 57 – Graphic of the Users opinion about the system

The Fig 57 shows that the opinion of the users was positive about the experience with the system.

72 Tests and Results

Was it ease to use?

50%

40%

30%

20%

10%

0% very ease ease medium dificult very dificult M-iti Library

Figure 58 – Graphic of how ease was the system

Regarding the facility in using the system, it was detected, mostly in the library users, that they did not find the system very easy (30%). They said that an initial tutorial was needed in order to learn the navigation commands before use. After the introduction of the commands they considered the system very easy to use. M-iti users did not show any difficulty since they are accustomed to these systems.

Where would you use the system?

35% 30% 25% 20% 15% 10% 5% 0% school library work house commercial other spaces

M-iti Library

Figure 59 – Graphic of where would the User use the system

As for the system utility, most users say it would be an added value in the implementation of schools, libraries and homes.

73 Tests and Results

System interface:

M-iti Library

Is it easy to read an annotationI 60% 40% 50% 50% on the TV?s…

The Information is organised?T 60% 40% 10% 60% 30% h…

Is it easy to add an annotation?I 10% 60% 30% 50% 50% s…

The colours and type o letter is T 40% 60% 20% 80% adequate?h…

0% 50% 100% 0% 50% 100%

No A little Reasonable Yes

Figure 60 – Graphic from the M-iti and Library users about the interface of the system

In Fig 60, two graphic are presented with the results from the opinion of the users about the system Interface. With this we can conclude that the facility to read annotations on TV is positive but not as easy as we expected. In the case of the Library the opinion is divided between easy and reasonable, while the students from M-iti considered it more reasonable (sixty percent).

About the information: if it is organised then both considered it positive but about ten percent of the Library users considered the information not too organised. This fact was because of when scrolling down the page on TV, the user could not see if the annotation that he is visualizing was on the end or not. They suggested fixing a way like for example: in case the user is visualizing an annotation on position four counting from the top to bottom, then on TV a number that shows there is five notes down and three up should appear.

The function to add an annotation was considered positive while some M-iti students considered not easy for first time. During the sequence of tasks we found out that mostly PDFs readers of the users have a bar on top with all option’s, that’s the reason why ten percent of users considered it a little easy.

74 Tests and Results

About the aspect of the system interface such as colours and fonts, the users gave a positive feedback according to the graphic Fig 60.

After completed the tasks, the users were able to explore the system. During that time some improvements to the system were suggested.

A change that was suggested was that, the way that the date and time of the annotation on TV should be displayed. It could be replaced by for example “Added last five minutes” or “added last two day and one hour”. It would be much easier for the user to identify the time of the annotation added.

Another suggestion was on TV when the page has for example ten annotations and the user slides down to the middle to see others below. It should be able to show the user that there are five annotations on top and five below. By this way the navigation stays more facilitated to the user.

75

6. CONCLUSIONS

Conclusions

6.1. CONCLUSION

The realization of this master thesis project was a big challenge which required the application of knowledge acquired in different areas during the course and also much more new knowledge acquired throughout the project..

Some difficulties were found when looking for solutions for the devices to be used in order to reach the main objective. This was necessary when acquiring the equipment to connect to the TV.

During implementation it was possible to get a deep understanding of how the SDK of Android works, and the impact that mobile technologies have on how you program and use an application. Another asset was the fact that we use the Phonegap framework which provides great advantages in the world software market because it is standardized to work with multiple platforms.

Regarding the communication with both devices, it should be noted that we used the TCP protocol that ensures delivery of the object, but the transmission speed will always depend on signal strength of the existing wireless network, i.e., the speed of execution of some existing functionality depends on the strength of the wireless signal.

Once the development of the two applications (TV and Tablet) was made, very little time for testing with final users was left due to the limited delivery time. For a real response about the system, it would be necessary to put the system testing during a longer period of time, maybe during two or three months, as well as in different types of places and users.

Due to the limited time given and with the possible tests performed, we conclude that the developed system corresponds to the expectations of book readers. It would be an asset to share information with others and have interactivity between the two devices.

Therefore, we must highlight that the experience reported relates primarily to experience of one time use and not a long term.

77

Conclusions

According to the analysis of the questionnaire the TV interface was adequate and colours were very encouraged. We noted some difficulties in the interpretation of the navigation commands such as adding notes and scrolling down/up on TV. The users expressed a need for an initial screen explaining the navigation commands. Once having learnt these commands the system was easy to use.

According to the users, it was clear that possible places to implement the system would be in schools, work places and at home.

As for the final goal, all was finished as planned along with the supervisors missing the long-term of tests.

The long-term tests could be realized in three different spaces:

1- School – Test with various professors where they can read a book and create annotations for other professors to read further. 2- Work places – Test with employees of a work group to share information about a book or even work reports. 3- Public library or Fnac Store – Test with the guests of the library or Fnac Store to report primarily experience of one time use of the system created.

This long-term test should be realized during two to three months, followed with logs on the database of each user's session. Should contain the usage time of each session, total number of annotation for each page, annotation time created, reading time per page, how many pages readied for each session, among others.

In order to evaluate better the perception of users of the system, should be able in each session record a video showing the two interfaces (Tablet and TV) at the same time for further analysis of usability.

78

Conclusions

6.2. FUTURE WORK

As for future perspectives, there are improvements to be implemented in the system, such as adding the features that were not foreseen for this phase of the project (Edit and Delete Annotations). There is also the possibility of implementing a group function that will allow for book sharing within a certain group.

The system could also be implemented in the classroom of a school. For now the present system is implemented in a way of “one tablet for one TV” which could be developed in the future to work in the way of “multiple tablets to one TV”.

For the social part and recreation, the system could be applied in a way as a plugin for Facebook. In the case of a user that is viewing the posts on the mobile device, he would be able to see the comments from that post on TV.

79

7. REFERENCES

References

[1] – Bräkling, K., “Sobre Leitura e a Formação de Leitores: Qual é a Chave que se Espera”, [Online], Available: http://www.itanhaem.sp.gov.br/teleduc4/cursos/diretorio/leituras_24_6/SOBRE%20LEITURA.pdf

[2] – Nina,I., “Da Leitura ao Prazer de Ler: Contributos da Biblioteca Escolar”, 2008, [Online], Available; https://repositorioaberto.uab.pt/bitstream/10400.2/1223/1/Dissertacao.pdf

[3] – Mucheroni, M. André, J., “PROPOSTA DE ANÁLISE DO EBOOK EM 4 ASPECTOS”, 2013, [Online], Available: http://enancib.ibict.br/index.php/enancib/xivenancib/paper/viewFile/4384/3507

[4] – “Evernote”, [Online], Available: https://evernote.com/corp/

[5] – “Evernote want to help us”, [Online], Available: http://www.androsupply.com/evernote-want-to-help- us.html

[6] – PC Mag, “Evernote Unveils Windows Phone 7 App”, [Online], Available: http://www.pcmag.com/article2/0,2817,2387176,00.asp

[7] – Walsh, E. Cho, l., “Using Evernote as an Electronic Lab Notebook in a Translational Science Laboratory”, [Online], Available: http://jla.sagepub.com/content/early/2012/12/26/2211068212471834.full.pdf+html]

[8] – “Amazon Kindle - Wikipedia, the Free Encyclopedia”, 2007, [Online], Available: https://en.wikipedia.org/wiki/Amazon_Kindle

[9] – Perez, S., "Kindle for Android Is Coming", 2010, [Online], Available: http://www.nytimes.com/external/readwriteweb/2010/05/18/18readwriteweb-kindle-for-android-is- coming-24445.html.

[10] – “The Best Ereader Apps for Android”, [Online], Available: http://www.technorms.com/11365/top- ereader-apps-android

[11] – “Minha experiência com o Kinlde Paperwhite”, [Online], Available: http://numinosumteologia.blogspot.pt/2015/08/minha-experiencia-com-o-kindle.html

[12] – Semedo, F., “Web App for Android”, 2013, [Online], Available: http://www.portaldoconhecimento.gov.cv/bitstream/10961/2583/1/Web%20App%20for%20A ndroid.pdf

[13] – Aldiko, [Online], Available: www.aldiko.com

[14] – “4 Android e-reader apps: The latest word in reading”, [Online], Available: http://www.computerworld.com/article/2487383/mobile-apps/mobile-apps-4-android-e-reader-apps- the-latest-word-in-reading.html

[15] – “Wattpad”, [Online], Available: http://www.wattpad.com/about.

[16] – Rodrigues, B. Gonçalves, B., “INTERFACES DE APLICATIVOS DE AUTOPUBLICAÇÃO PARA SMARTPHONES: avaliação heurística e comparativa”, 2014, [Online], Available: http://pdf.blucher.com.br/designproceedings/11ped/01185.pdf

[17] – “Wattpaad - Wikipedia, the Free Encyclopedia”, 2006, [Online], Available: https://en.wikipedia.org/wiki/Wattpad

[18] – Arruda, A. Silva, C., and R. Andrade, “APLICATIVO DE AUTOPUBLICAÇÃO: O Wattpad”, 2014, [Online], Available: http://www.ufal.br/seer/index.php/cir/article/view/1596/1087

81

References

[19] – “Wattpad – Free Books & Stories Screenshots”, [Online], Available: http://xmqad.com/?p=104

[20] – “Google Keep - Wikipedia, the Free Encyclopedia”, 2013, [Online], Available: https://en.wikipedia.org/wiki/Google_Keep

[21] – “Google Keep note-taking app goes official with Android and web versions”, [Online], Available: http://www.digit.in/apps/google-keep-note-taking-app-goes-official-with-android-and-web-versions- 13974.html

[22] – “4 Google Keep Tips And Tricks For Better Notes, Lists And To-Dos”, [Online], Available: http://www.makeuseof.com/tag/4-google-keep-tips-tricks-better-notes-lists-dos/

[23] – “MuPDF - Wikipedia, the Free Encyclopedia”, 2005, [Online], Available: https://en.wikipedia.org/wiki/MuPDF

[24] – Machado, F. Pinto, A. Teixeira, M., “Uma Rede de Compartilhamento de Conteúdo Multimídia em Dispositivos Móveis Baseados na Plataforma Android”, 2014, [Online], Available: http://www.sbrc2014.ufsc.br/anais/files/wocces/pp.pdf

[25] – Alliance, W.F., “Wi-Fi certified Wi-Fi direct, personal, portable Wi-Fi technology”, 2010, [Online], Available: http://www.wi-fi.org/knowledge-center/white-papers/wi-fi-certifed-wi-fi-direct-personal- portable-wi--technology-2010;

[26] – Bazzo, W., “CIÊNCIA, TECNOLOGIA E SOCIEDADE E SUAS IMPLICAÇÕES”, [Online], Available: http://www.oei.es/salactsi/bazzo03.htm

[27] – Wilson, R. Landoni, M., “Evaluate the Usability of Portable Eletronic Book”, 2003, [Online], Available: http://dl.acm.org/citation.cfm?id=952644

[28] – Silva, M., “Livro impresso versus livro eletrônico: um estudo de caso sobre a preferência dos usuários da Biblioteca do Tribunal Superior Eleitoral”, 2012, [Online], Available: http://bdm.unb.br/bitstream/10483/4214/1/2012_MayaraCristovaodaSilva.pdf

[29] – Mark T.J. Carden, “E-Books are not books”, 2008, [Online], Available: http://dl.acm.org/citation.cfm?id=1458416

[30] – Aquino, D. Santos, F. Silva, G., “O USO DO MOBILE MARKETING COMO FERRAMENTA DE INTERAÇÃO ENTRE AS EMPRESAS E SEUSCONSUMIDORES”, 2014, [Online], Available: http://aberto.univem.edu.br/bitstream/handle/11077/1163/TCC%20ETAPA%20FINAL%2020- 12.pdf?sequence=1

[31] –Dantas T., “The digital reading as a product of the evolution of information: books between screens”, 2013, [Online], Available: http://dl.acm.org/citation.cfm?id=2536593&dl=ACM&coll=DL&CFID=725814891&CFTOKEN=56914896

[32] – Silva, V., “O papel do e-book reader no presente e no futuro das bibliotecas”, 2010, [Online], Available: http://bdm.unb.br/bitstream/10483/2468/1/2011_ViniciusFariasdaSilva.pdf

[33] – DZIEKANIAK, G., “Considerações sobre o e-book: do hipertexto à preservação digital”, 2010, [Online], Available: http://www.brapci.ufpr.br/download.php?dd0=16400

[34] – “Papel Electônico - Wikipedia, the Free Encyclopedia”, 2013, [Online], Available: https://pt.wikipedia.org/wiki/Papel_eletr%C3%B4nico

82

References

[35] – Brooks, P., “No Silver Bullet: Essence and Accidents in Software Engineering”, [Online], Available: http://worrydream.com/refs/Brooks-NoSilverBullet.pdf

[36] – Hanmer, R., “Pattern-Oriented Software Architecture For Dummies, 1d. ed. For Dummies”, 2013.

[37] – “Android”, [Online], Available: https://www.android.com/.

[38] – “Android Developer.” [Online], Available: http://developer.android.com/

[39] – “Android (Operating System)”, [Online], Available: https://en.wikipedia.org/wiki/Android_%28operating_system%29

[40] – Pereira, L.C. O. Silva, M. L., “Android para Desenvolvedores”, 2009, [Online], Available: https://books.google.pt/books?hl=pt- PT&lr=&id=8u9wJowXfdUC&oi=fnd&pg=PA1&dq=android+arquitetura&ots=LTgg-4Zqk4&sig=3- fBkgufPAbBsjZt2sQUa0Tlaks&redir_esc=y#v=onepage&q=android%20arquitetura&f=false].

[41] – Martins, R. J. W. A., “Desenvolvimento de Aplicativo para Smartphone com Plataforma Android”, 2009, [Online], Available: http://www.icad.puc-rio.br/~projetos/android/files/monografia.pdf

[42] – Júnior, M. A. P. Castro, R. O., “Um estudo de caso da plataforma Android com interfaces Adaptivas”, [Online], Available: http://www.fgh.escoladenegocios.info/revistaalumni/artigos/Artigo_Marco%20Antonio.pdf.

[43] – “Cocos2D Sound in Android Tutorial”, [Online], Available: http://dan.clarke.name/tag/cocos2d/

[44] – Artifex Software, Inc.,[Online], Available: http://www.mupdf.com/

[45] – “Xamarin Inc.”, “Android Views MotionEvent Class” 2015, [Online], Available: http://developer.xamarin.com/api/type/Android.Views.MotionEvent/#Overview

[46] – “PhoneGap”, 2012, [Online], Available: http://phonegap.com/

[47] – Anacleto, J. A. C, “Desenvolvimento de uma aplicação web para dispositivos móveis – Monitorização e controlo de uma rede de digital signage”, 2012, [Online], Available: http://wiki.di.uminho.pt/twiki/pub/Research/APEX/Publications/tese.pdf

[48] – Wargo, J. M.,”PhoneGap Essentials”, 2012, [Online], Available: https://books.google.pt/books?hl=ptPT&lr=&id=3nXCsh_PhZwC&oi=fnd&pg=PR7&dq=PhoneGap&ots=v NXnUfCIZI&sig=VT8ipf3OA4tsroCIN_p5aw4aG_M&redir_esc=y#v=onepage&q=PhoneGap&f=false

[49] – “Responsive Design - Wikipedia, the Free Encyclopedia”, 2015, [Online], Available: https://en.wikipedia.org/wiki/Responsive_web_design

[50] – “Caelum”, “Java e Orientação a Objetos”, [Online], Available: http://www.caelum.com.br/apostila-java- orientacao-objetos/apendice-sockets/#19-2-protocolo

[51] – “Netsoft”, “Fundamentos da Arquitectura de Cliente/Servidor”, [Online], Available: http://www.netsoft.inf.br/aulas/4_SIN_Programacao_Cliente_Servidor/Fundamentos_de_Cliente- Servidor.pdf

[52] - “Oracle”, “All about Sockets”, [Online], Available: https://docs.oracle.com/javase/tutorial/networking/sockets/

83

References

[53] – “Java, What is Java technology and why do i need it?”, [Online], Available: https://java.com/en/download/faq/whatis_java.xml

[54] – Codd, E. F., “A Relational Model for Large Shared Data Banks", 1970, Communications of the ACM.

[55] – Bowers, D. S., “From Data to Database. Chapman & Hall, 2ª Edição”, 1993.

[56] – PEREIRA, J. L., “Tecnologias de Base de Dados. 3ª Edição”, 1998, FCA – Editora de Informática. Lisboa.

[57] – “Grid Graphic Design - Wikipedia, the Free Encyclopedia”, 2015, [Online], Available: https://en.wikipedia.org/wiki/Grid_%28graphic_design%29

[58] – “Timeline Design - Wikipedia, the Free Encyclopedia”, 2015, [Online], Available: https://en.wikipedia.org/wiki/Timeline.

[59] – Brooks, P., “No Silver Bullet: Essence and Accidents in Software Engineering”, [Online], Available: http://worrydream.com/refs/Brooks-NoSilverBullet.pdf

[60] – “Balsamiq”, “Balsamiq mockups”, [Online], Available: https://balsamiq.com/products/mockups/

[61] – “Conceptdraw”, “Conceptdraw office”, [Online], Available: https://java.com/en/download/faq/whatis_java.xml

[62] – “Android”, “Android Tools”, [Online], Available: http://developer.android.com/tools/

[63] – “Aptana”, “Aptana Studio”, [Online], Available: http://www.aptana.com/

84

APPENDIXES

Appendixes

7.1. APPENDIX A – QUESTIONNAIRE

86

Appendixes

87

7.2. APPENDIX B – POSTER - INTERMEDIATE EVALUATION