Sunday, February 21, 2016

Usability Issues With The University Of Ottawa's Blackboard Learn

By Borke Obada-Obieh

Blackboard is a company that develops learning management systems for institutions. They offer many software solutions and boasts of having a very large customer base. Based on their official website, 80% of the world’s academic institutions that were highly ranked by Times Higher Education, made use of their solutions as at 2014 [1]. They further explain that their solutions are being used in 1 of 3 US school districts and they currently have a subscriber base of 20 million students [1]. It is however unclear what exact solution is being utilized by such large amount of people. 

The University of Ottawa (uOttawa) makes use of a customized version of one of their software solutions, Blackboard Learn, for the school’s Student Portal. A user interface evaluation was carried out on uOttawa’s customised version of Blackboard Learn and a number of usability issues were discovered. However, it is unclear if these issues are peculiar to uOttawa’s Blackboard Learn or the generalised version. 

The participants involved in the evaluation were six students from another university who have previously never used Blackboard Learn. This blog post presents the major problems that were identified by participants in the user evaluation and also by the researcher. The problems identified have been grouped based on the usability principles described in Dr. Timothy C. Lethbridge class notes [2]. The post also illustrates instances of how these principles were violated, and possible solutions to the problems that were identified.

Friday, February 19, 2016

The Undo History of the Windows Notepad should not be Limited

By Segun Odunade

For users of the Windows operating system, the Windows notepad may be very useful such that users can easily create and edit unformatted text. I happen to use this utility a lot for my word document editing because it has an exceptional feature of removing all formatted text file pasted on it’s interface. For instance, say, you are working on word and you want to copy a specific amount of text from the internet to your document, copying the text directly to word will cause the format you are working on to change, the user is then left with either editing the changes or using the “paste special – unformatted option” on Microsoft word; both options don’t always yield optimum solution. The problem with the paste special – unformatted option on word in Windows is that it sometimes fails to remove all formatting, which can mess up the whole document. However, copying the text to notepad first will assure the user a clean unformatted text which when copied to word will adjust to what format the user was using. The notepad has its usefulness beyond text editing, however, this blog will focus on the undo functionality of the notepad.
While considering the above mentioned text editing benefits of the Windows notepad, I find it very frustrating that till this day, the notepad can only undo once. This extremely limited undo functionality can give users like me a lot of headache because often times users may want to return several steps back from the changes they have made while editing on notepad.

1. Requirement
The Windows notepad is included in all of Microsoft windows since Windows 1.0 in 1985 [2].

2. Snippet Illustration of the Windows Notepad Undo Problem
1. For instance, if the user type’s “My name is John and I am 50 years old” on the notepad interface as shown below in figure 1. This snippet was taken from the Windows 10 Operating System.

Fig 1: Snippet Illustration of the initial text typed by user

2. And the user decides to change “John to Adam” and “50 to 40”, we have:

                            Fig 2: Snippet Illustration showing text changes made by user

3. If the user decides to go back to the initial state i.e. going back two steps by pressing the undo key “control Z”. Windows notepad only goes one step back such that only the last change made is reverted.

     Fig 3: Snippet Illustration showing notepad not being able to go more than one step back

Assuming the user had forgotten what he or she typed initially or the user had made multiple changes, the information the user needed at that time would have been lost.

3. Likely Cause of the Windows Notepad Undo Problem
One of the likely causes could be that the first versions of the Windows notepad were made to perform only a step back ability of keeping track of user’s records [1]. Modifying the windows notepad now to accommodate unlimited undo functionality may affect many parts of it’s source code which would cost the Organization “Microsoft” more money to implement. Due to the reason mentioned above, the Windows notepad undo problem is a foundational problem.

4. Suggestion
Although, there are now alternatives to the Windows notepad such as notepad++, notepad2 and freeware which are designed and developed by third party organizations. Since this third party organizations have gotten it right, I suggest that Microsoft should adopt one of this text editing applications as a form of software update that overwrites the notepad because most users don’t even know this third party text editing applications exist and some of this applications may be difficult to install for non tech-savvy users.

5. Conclusion
The Windows notepad is an essential utility for text editing in the Windows operating system.  The extremely limited undo functionality of the notepad is a fundamental problem has discussed above and updating this utility to include unlimited undo functionality, syntax coloring, code folding, color schemes e.t.c. [2], with a similar and outstanding application will boost the usability of the Windows notepad as a whole.

[1]  Eelke Folmer, Jan Bosch “Architecting for usability: a survey” Science Direct Journal of Systems and Software, Volume 70, Issues 1-2, February 2004, Pages 61-78.

[2] “Notepad”, from Wikipedia, the free encyclopedia. Available Online:

JPA/Hibernate Usability Issues and Solution

By Neha Dhingra

It is not progressive to believe that Java Persistence API (JPA) is ineffective without JPA implementations, but I do consider that we need to determine the appropriate framework depending upon the usability of the API. Although every JPA implementation commercial or open source has some intricacies and defects to be accepted and amendments to be implemented.

JPA/Hibernate Usability Issue

There are moments that JPA can do further harm than good. Following you will comprehend the JPA/Hibernate usability defects and some clarifications to these problems:

Composite Key: These are the significant problem for a JPA developers. Mapping a  composite key is a  huge complexity to the project and the process needed to persist or locate an object in the database using Java classes adds further steps. When you apply a composite key in Hibernate several problems will happen one of them is implementation bugs and handle Java Hash codes for mapping. 

Legacy Database: A  developer often builds a project on a lot of business rules in the database with Hibernate's abstraction level this can be an intricacy while invoking a simple StoredProcedures or  a Functions.

Artifact size:  In Hibernate the artifact size increases a lot with dependencies, that further increases the size of the created jar/war/ear file in the project. For a developer increase in the size of artifacts is difficult to manage if the application is remotely accessed by several servers in low Internet band (or a slow upload). For example, If in an API it is mandatory to add and modify  10 customers servers across the continent. One of the notable problem with slow upload, loss of Internet  and corrupted file can happen to make the development team to lose time in handling discrepancies.

Complex Query: In projects that have high-level  complex queries with accessing database resources like   MIN, SUM, COUNT, HAVING, MAX, etc. If we consolidate those high-end complex queries through Hibernate JPA the task becomes complex using Java classes it's difficult for an unfamiliar developer to handle.

Object Oriented Programming (OOPs) complexity: Performing CRUD operations with Hibernate JPA is a very simple process, however, the  problems appear when we commence using entities relationships mapping through inheritance, caching, PersistenceUnit creations, PersistenceContext among several entities, etc. A team of developers without a with a good JPA experience will dissipate a lot of time  and effort to develop and understand  JPA ‘guidelines‘.

After examining all the obstacles above you might consider a question: “Is Hibernate JPA good?”. JPA has a lot of benefits but that is not to be considered in this post because that is not the theme of the post, JPA is a tool that is indicated for a lot of circumstances. Some of the Hibernate JPA advantages are portability among implementation, reducing development time, making database creation very easy,  2 level cache for optimization, and several tutorial and community support, etc.

In the next section, we will discuss some of the solutions for the problems mentioned above, the solutions could accommodate you to avoid a huge persistence framework problems.

Solutions to  JPA/Hibernate usability Issues

Composite Key
A possible good solution to the composite key would be functional support in JPA though methods and interfaces. Furthermore, If a developer wants to add the composite key in the projects; they can do so using @Embeddable classes. Although the process to create Embedded classes is complex but through these entities a developer can customize the application based on specific business rules. Fig. 1 shows a small example of Embedded classes between Employee and EmployeeID. In the example below EmployeeID is embedded to persist a composite key roleID and EmployeeID.
Fig. 1 Embedded Class

Legacy Databases
To develop an application, in Hibernate JPA, a developer often chooses version  an implementation based functionality support,  to ease the problem the best solution would be to use Eclipse IDE, which adds implicit upgrade support for developers. If a JPA version upgrade is not supported then I don't think JPA would perform optimally. Fig.2 display the easiest way to upgrade version in Eclipse IDE.
Fig .2 Upgrade JPA version In Eclipse IDE

Artifact Size
The easiest solution to artifact size problem would be to develop the JPA implementation using other implementations which suit best in the scenario such as EclipseLink, OpenJPA or Data Nucleus. Although refactoring is a  problem while using hibernate annotation/resources; the change would be advantageous before further load increases.

Generated SQL and Complexes Query
Hibernate solves the complex query problem through its native and JPA specific Query language. Through Hibernate, a developer can create customized named NativeQuery. With so many resources, a developer  could create a simplified query or optimized SQL complex Joins, but because of Hibernate's over ambitious nature a developer has to manage too  much caching while loading objects.

In a project with only one database vendor, the NativeQuery support will not be a difficulty.The advantage of this composite approach Java Persistence Query Language (JPQL) and Hibernate Query Language (HQL) NativeQuery would help the developer to create a complex Stored procedure and Join with such ease and possibly adds to JPA advantages.

OOPs complexity
A possible solution to the problem can be use optimized queries (with NativeQuery), query pagination and small transactions in Hibernate which are easy to implement by an unfamiliar developer.
By avoiding the use of  using EJB with PersistenceContext,  a developer can further extend and reduce memory consumption by increasing processing of the server.A possible solution would get an entity from the database in a read-only format. For example, an entity can be accessed only as a report. Following code below create a read-only entity:

String Qty = "select EDesignation from Employee E";
EntityManager entityManager = entityManagerFactory.createEntityManager();
TypedQuery<Employee> typedQuery = entityManager.createQuery(Qtyquery, Employee.class);
List<Employee> resultList = typedQuery.getResultList();

The code above has no open transaction, all the returned  values in the entities above would not be monitored by JPA. In the case of Enterprise Java Bean (EJB) container a developer has to mark the transaction with @Transactional(readOnly=true).

Wednesday, February 17, 2016

Usability Issues in Data Nucleus Plug-in configuration in Eclipse IDE

By Neha Dhingra

Plugin in an API is mainly configured to set up libraries and additional functionality in the application. In this post, I am trying to uncover the defects in an API plugin in Data Nucleus implemented though EclipseIDE.

Problems In the Plugin

Firstly plugins in any API are additions to whatever already exist in the API or in particularly a java based project. These are Jar files which are added to the classpath based on the developers configuration and compatibility. In Data Nucleus adding a plugin is an additional complexity because the process is explicitly defined by the developer; it's divided in two step the first is adding Data nucleus Enhancer and the second includes a Data Nucleus Schema tool Fig .4 and Fig .5 shows how to configure Data Nucleus in a JPA implementation.

After the plugin configuration, you can now add DataNucleus support on your projects. Simply right-click on your project in Package Explorer [1]and select DataNucleus->" Add DataNucleus Support"[1] from the context menu as depicted in Fig .1 and after adding the Support the user will have Data Nucleus support as shown in Fig 2. For an unfamiliar developer, the process of enhancement and schema configuration becomes so complex and lacks in properly documented help regarding the issues that arise in the metadata creation.
Fig. 1 Package Explorer>Data Nucleus>Add Data Nucleus Support
Fig . 2 Data Nucleus Support Added

This addition in EclipseIDE further adds the complexity by forcing the developer to enhance the Java classes manually or by using a command line before creating any schema to persist in the database. The implementations add more de-facto problems with compatibility issues between EclipseIDE and JPA implementation. Fig. 3 shows how to manually enhance the Data Nucleus Enhancer Tool and Chema Tool using File>Data Nculeus>Run Enhancer Tool. Data Nucleus increases the further complexity of performing this task every time a developer Runs the API. Even though the automatic enhancement has been chosen the developer still has to perform these steps for metadata creation.

Once you have defined your entities in JPA, the developer has to  enhance the classes in order to create metadata. Then,  the developer has to configure database creation through schema (assuming you will be adopting a new schema   disregard this step if you previously have your schema).  The process seems easy but it has several usability issues for an unfamiliar API developer.

Fig. 3Manually Enhancing in Data Nucleus Enhancer
1)The developer has to check whether metadata is created before using the schema tool. Metadata in Data Nucleus is created by Enhancer Fig. 4 shows the options to configure the enhancer using Data Nucleus through JPA/ JDO implementation.
Fig .4 Adding JPA Implementation in Data Nucleus Enhancer

2)The developer has to Click on the project under "Package Explorer" [1] and under "DataNucleus" there is an option "Run SchemaTool" [1] as executed in Fig. 4. This brings up a panel to define your database location (URL, login, password etc) shown in Fig.5.  Even through entering these details in the persistence file the developer has the hassle to enter the same information twice in the panel for schema generation. In Fig. 6  the schema is configured to configure the connection to the database. The process adds further complexity by requiring the developer to explicitly choose .class files.
Fig. 5  Data Nucleus Enhancer 

3)In the same panel even if the developer modifies the enhancer  as showing in Fig. 4 when a developer changes JDO implementation to JPA, the panel switched back to JDO by default. This is a huge trouble for an unfamiliar developer because of lack of experience in the application. Even its complicated for a developer to troubleshoot the problem arising from the switch.

Fig. 6  Data Nucleus Schema Tool
The second thing to note is that the DataNucleus plugin is for Eclipse only using "Java project". Although Data Nucleus is a Java persisting API  but this restriction affects the "API adoption" strategy.

The Solution

The Data Nucleus development team are currently busy on improving  the implementations by increasing the level of abstraction in the API,  improvement in efficiency  and so on.

However, it would be beneficial to providing an official guide to plugin UI and the best practice would be more advantageous in the long run than the sum of all the improvements that they are currently managing to achieve. Another alternative would be to reduce the number of  persistence steps to be performed manually.  To persist Java classes into the database the developer is dependent on plugins, and I consider that everyone who has  experienced disappointment as a result of poor plugin UI usability would agree.

Plugins play an integrate component of an API. They are an enormous part of the reason as to why JPA implementations are the most popular Java APIs. If Data Nucleus developer wants to truly increase the usage of the implementation, it to create a complete package – plugins and all.


1)Data Nucleus

Monday, February 15, 2016

Usability Issues in Flat Design

By Mohammad Rehaan

Flat design is the latest trend in the field of website design and it is being widely used by freelance designers and big name companies like Microsoft. Flat design is a style in which a sense of three-dimensionality is absent. This enables the designers, including myself, to create beautiful UI designs which are minimalistic in nature. But the overuse of the flat design can cause serious usability issues and I am going to share my observations where I believe flat design, despite of having beautiful presentation, is actually abusing the user experience.

1.     Absence of familiar patterns (underlined text for links, borders for buttons etc.):

VWO is one of the websites which is heavily based on the flat design concept. Although they have tried to solve the usability issues to a great extent, there are few places where components totally fail to convey their actual meaning. One of the places is when we go to create a new AB test campaign. It provides a functionality of switching between two different modes of working i.e. ‘SIMPLE’ or ‘ADVANCED’. This feature was the first ever feature I developed when I used to work on this product at the company. Since then, I always wanted to change the way this button looked. There was only a text like button which actually does the job of switching modes and it is pretty hard to say by only looking at it that it’s actually a button.

Fig 1 : Create new campaign view with a button component with no important signifiers

Suggestions: Although it is clear that having a button with dark background above the search bar would hurt the aesthetics but having a thin border around the text or a line under the text would have successfully delivered the meaning of this button, thereby enhancing the user experience.

2.     Absence of important signifiers (gradients, shadows, highlights etc.):

Another instance where flat design came in the way of smooth user experience would be the home page itself. This is a special example where in spite of solving the problem of flat design, it still somehow failed to deliver the actual meaning of the components. The list item contains a lot of components including links, and buttons, which are consistent with other part of the website. The list item also has a thick border at the bottom giving it a three-dimensional feel. Still, it is not clear at the first glance that the complete list item is itself a clickable area and the whole list item has a uniform clickable area. Also, few components inside the list item individually represent clickable items if we assume them as consistent with other areas of the website, but they are also disabled which creates a huge sense of confusion at first.

Fig 2 : Home page with list item and possible sub components

Suggestions: Traditional methods (background highlight on hover) of delivering the actual meaning of actionable items would have easily saved the confusion of clickable list. Changing the styles of individual items inside the list can also help to reduce the initial traction.

3.     Absence of contextual Indications (CTA placement, actionable copy etc.):

The approach of minimalism might also affect negatively on the conversion rate of a website by hurting the positive impact of a button on a user who might be a potential customer. Flat design, if done wrong, could result in to designs which may look minimalistic and free from all the clutter, but they actually render the whole design as boring. One such example is shown below where conversion rate dropped by 12.29% [3], just by removing the green arrow icon on the button.

Fig 3: Results showing the considerable decrease in conversion rate [3]

One more example is the ignorance of CTA buttons that are supposed to be the first point of contact for the potential customers. While following minimalism, often times designers tend to ignore CTA buttons on a page. However, ignoring the power of CTA buttons should not be underestimated which is demonstrated by the following experiment. In this experiment, the button text changed having more words. Clearly, the attempt to make the button smaller and having less text was not proving as fruitful as it it was expected to be. It is necessary to convey more value and relevance via CTA buttons to achieve more conversion [4].

Fig 4: Results showing the increase in conversion rate with more meaningful text on the button [4]

4.     Conclusion:

Flat design has changed website design completely by implementing minimalistic design and beautiful user interfaces. Flat has enabled the developers to create more efficient pages (case study) with comparatively smaller loading times.  But the current flat design has some serious usability issues that needs to be addressed. One of the major drawback of flat design is the lack of the sense of three dimensional components which makes it hard to notice the actionable components. A possible solution could be to implement flat shadows that solves the problem of adding z-axis while maintaining the aesthetics of the flat design. One such example can be seen in the latest Flat 2.0 approach introduced by the Google material design.

Fig 5: An example of google material design [5]

5.     References:

[1] Design Trends: Flat Design 2.0,, Accessed: 09/02/2016

[2] Flat Design: Its Origins, Its Problems, and Why Flat 2.0 Is Better for Users,, Accessed: 05/02/2016

[3] How To Design Call to Action Buttons That Convert,, Accessed: 12/02/2016

[4] How To Write Call To Action That Converts With Case Studies,, Accessed: 12/02/2016

[5] Material Design,, Accessed: 14/02/2016

The Usability of IBooks Application

                          The Usability of IBooks Application            

                                                                             By Yiheng, Zhao

Besides Amazon Kindle and Kobo, IBooks is one of the most popular reader applications provided by Apple Inc. It has friendly and succinct UIs (user-interfaces) containing many convenient and useful functions. Although many similar and related applications are emerging, IBooks still occupies the considerable market. However, there are several sophisticated rivals that cannot be ignored. One is Kindle, which dominates the half market [5]. Since Apple Company published IBooks in 2010, many articles, blogs and websites have been published to give both general and specific sense of benefits and shortages of these two applications and compare which one is the best. [2][3][4][5][8]

To make a brief summary, I list some similarities and significant differences between Kindle and IBook from [2][3][4][5][8]

1)      They all provide reading functions including downloading books from office bookstore or      anywhere else.
2)      They all allow users to preview samples to decide whether the book satisfies them.
3)      They all allow users classify and arrange books that have been stored on the application.
4)      They all provide portrait and landscape mode for reading.
5)      They all provide settings to change brightness of screen, background color, and so on.
6)      They all allow users to create bookmarks, highlights and personal notes.

1)      Kindle contains more than 950,000 ebooks whereas IBook only has around 200,000 [4]
2)      Kindle allows to label one book into many categories while IBook allows assign to only one
3)      Kindle supports more than ten types of file, such as .docx, .pdf, .txt. However IBook only supports .pdf and .epub (Ipad can convert .txt document to .pdf document automatically)
4)      Kindle allows change margin and format of the article which is not available in IBook.
5)      IBook supports continuously reading mode (no gap between pages), but Kindle doesn’t have.
6)      IBook contains audio reading function while users of Kindle have to download this function themselves
7)      In IBook, it is convenient to copy selected content to other software, applications or even websites. On the contrary, Kindle doesn’t allow.
8)      IBook provides in-app store integration [7]

There are also some articles make full comparisons with IBook and Kobo [9][10], and YouTube video to compare all of these three applications [1]. The discussion about which one is more useful and popular is still continuing. Kindle, Kobo and IBook all have attractive features and flaws. In this article, I will focus on IBook, because I have been using this application for a long time and found some aspects, which are not mentioned by other papers, need to improve. The functions of IBook listed above are mainly for books or articles with .epub format. When it comes to .pdf documents that are downloaded from internet or itunes, many functions become invalid. Because of the convenience and portable of Ipad (IBook is the default reader application on Ipad), I always use it to read academic papers and articles (primary with .pdf format) that download from website, such as Elsevier and ACM. Compared to Adobe Reader on the computer, IBooks are much less convenient for using. I summarize defects that could be further improved

1. Insufficient supported document formats:
IBook only supports .txt, .pdf and .epub documents. Many files saved by .docx or .pptx (e.g. course materials) cannot be opened with IBooks. I have to download other applications to scan these unsupportable documents or find software to convert these documents into available formats.

Suggestion: extends the type of supporting documents. It may be difficult to achieve this goal due to the security problems of documents or lack of data structure. However, it could try to provide automatic-conversion function. There are many available online converters they can imitate.

2. Functions missing:

      Apple has provided detailed introductions on how to take fully use of IBook [6]. However many           functions are only available for .epub files. When it comes to books that are downloaded from             internet privately with .pdf type, they do not work. Now I list some missing functions that I found       when using IBook:

1)  No way to change fonts, size, background color in .pdf documents:
Figure 1 contains two screenshots of application settings with previewed book (.epub type) downloaded from apple bookstore (left side) and a .pdf article from (right side). By pressing a small button “AA” of the first screenshot, it is very easy to find settings for change article styles. (“AA” is not an appropriate label for settings, because it always means some settings related to font size. Within this button, there are many settings, such as change background color, are not even related to font); in the opposite, I can only find settings to change brightness of .pdf document (right side). Other settings (the font size, background color, scrolling view) are missing.
                                                               Figure 1

I feel very tired with my eyes when reading papers with the default settings (small black words with white background) for a long time. Although users can scale  the sentences of article by stretching the screen with two fingers, the content is not completed, which means users have to move to other regions back and forth to read the whole content, which is very inconvenient (Figure 2). 
                                                                            Figure 2

2)   No way to highlight, underline regions and take notes:
Figure 3 shows the opened .epub document panel (left and middle screenshots).  By press the word for seconds, there is tool bar emerging, which provides functions, such as highlighting selected regions and taking notes. Unfortunately, these functions don’t appear in .pdf document panel (Figure 4). Screenshot of the right side illustrates that only “copy”, “define” and “search” functions can be applied for this model. This is inconvenient because most of academic papers are in the form of .pdf. Without notes or highlights, it is very hard to remember or review the paper.
                                                              Figure 3

                                                                           Figure 4

Maybe .pdf documents have security issues or don’t give any access to modify the original contents, which makes it difficult to repair missing functions, but it is possible to create a new file to store additional modifications that could overlap the original contents.

3. No instruction for re-name document:
Sometimes, when I input a paper into IBook, I forget to change the name of that paper, which is consisted by a sequence of numbers and letters. When finding the paper in IBook, I can’t remember the name of paper. At the beginning, I have no idea to change the file’s name, because there is no such instruction or button in the IBook. After trying for sometimes, I found the way. The steps are shown as below:

Step 1: open IBook and select the list viewpoint by press button on the up-left corner

Step 2: press “select” button

Step 3: press any title that you want to change and type new name (there is no hint or tip for rename the document)

Step 4: press “done” to complete the re-naming

There are two problems I found in this function:
1)      Downloaded books or novels with .epub format cannot change the name.
2)      Different articles can have the same name without any warning. Regardless of the forbidden duplication of name to keep the uniqueness of article’s title (like ID) for user to quickly recognize what is this article about, at least, there should be warming about redundant name exists in the list.

1)   Create a button to allow re-name the title. For instance, add an additional tool bar with re-name button on it.
2)    Re-name function should be accessed for books of all types.
3)    Duplication of name should not be accepted; just like windows did (second document will be named “_copy” automatically). At least, there should be a warming dialog showing “The file’s name: - has already existed in the list!” in case they make wrong names by accident.

4. No multiple view:

When I read a paper, page separation always bothers me, because some explanations of figures or graphs are in the different pages and I have to turn back to find exact graphs. This is significantly troublesome when numerous features need to be compared and they are all in different pages. E.g. After trying to find a reference from the last page, I have to scroll back to previous pages. Besides, scrolling view model is also not available in this case.

Make it possible to have two or more viewpoints, similar to view models in Power Point and Eclipse. Each view can scroll up and down independently, so that users can find different contents without operating pages.

5. Outline occupies the whole page:
In order to accelerate the scanning process of the general structure of article, firstly, I always look at outline (catalogue) of the paper (especially for e-books), and then read useful chapters by click that title (application can switch the current viewpoint to corresponding contents). Indeed, it is a very useful and efficient function to read books or articles with hundreds of pages. However, sometimes it is not obvious to get main idea of one chapter only through title. After I click that title to get more information about that chapter, I have to re-open outline again for the next chapter, which is inconvenient. Furthermore, many articles have no outline, because the hyperlinks of outline are not automatically created. Authors have to create outlines and hyperlinks themselves.

1)      Outlines can be shown on only a half screen. Another half screen shows the corresponding contents.
2)      It will be better to create an outline automatically, or provide a wizard functions to help writers create a simple outline, just like the function in Microsoft Word.

Although lots of shortcomings still exist in IBook, it is worth regarding IBook as a preference of reader application according to its features and advantages. I also use Adobe Acrobat on the computer (win 10 system), which offers more attractive functions refer to .pdf documents. IBook can be more perfect and attract more users by overcoming its shortages, expending book market and adding more creative functions (take advantages of adobe’s functions).

1.       AppTV: Your Ultimate App Guide. (2011, 6 3). Comparison of 3 Reading Apps: Kindle, Kobo and iBooks. Retrieved from YouTuBe:
2.       Calimlim, A. (2015, 4 28). Apple's iBooks versus Amazon's Kindle. Retrieved from AppAdvice:
3.       Chavanu, B. (2014, 9 8). Kindle vs. iBooks: Which Is The Best eReader For Your iPad or iPhone? Retrieved from makeuseof:
4.       Friedman, L. (n.d.). Reading on the iPad: Kindle vs. iBooks. Retrieved from
5.       GARRETT, C. (2010, 11 8). iBooks vs Kindle app- Which one should you use? Retrieved from iMore:
6.       Inc., A. (n.d.). IBooks. Retrieved from iOS Apps Support:
7.       KOWALCZYK, P. (2015, 9 8). 12 things to know about iBooks and iBooks Store. Retrieved from EBOOK GEEK HEAVEN:
8.       Lovejoy, B. (2015, 8 11). Opinion: Is iBooks really gaining ground on Kindle,or do iBooks sales lag behind users? Retrieved from 9TO5Mac:
9.       Quatermain, A. (2011). Why Buy Kobo over iBooks? Retrieved from tumblr.:
10.   SORREL, A. C. (2010, 5 28). Kobo Beats iBooks with International iPad Bookstore, App. Retrieved from WIRED: