At its core, Bookworm is a digital book reader. This app enables users to quickly lookup word definitions and create flashcards with them without having to navigate far from the reading. There are two main features. The first feature is presenting a dictionary lookup of words that the user selects. The other feature is allowing the user to create flashcards quickly by auto-filling definitions (synonyms, sentences, etc.), but the user can edit them if they so desire.
https://marvelapp.com/prototype/b6e7b4b
This is where the user’s digital books are listed and where they will access them. Two books are displayed per row allowing books to be easily identifiable by their cover. At the top right of the screen, there is an option for the user to import books. Only support for PDFs and EPUBs is planned.
The digital reader user interface is minimalistic yet intuitive. Icons for table of contents, font, search, and bookmarks are universal (or widely used). These tools will be displayed at the top of the screen for minimal interference with the reading. At the bottom of the screen, the page number and total book progression are displayed. The user can turn the page by tapping the left or right edges, or by swiping left or right.
The user selects a word and then a popup displays the word and its definition (including usage, synonyms, and other dictionary information). There will be a configurable option for how the user will select a word: tapping or holding. Other similar apps require the user to tap and hold, which some users can find to be cumbersome. The popup will be displayed over the document to allow for fast dictionary lookups. Uniquely, successive lookups will be supported for cases where the user needs to lookup unknown words in a definition of a previous word. Each successive lookup will be presented as a sheet view stacked on top of the previous lookup sheet view or presented in the old fashioned “new tab” way. This allows the user to propagate across words and then backtrack to the initial word after gaining a definitive understanding of its definition. Words and definitions will be sourced from third-party dictionaries.
In addition to the dictionary lookup feature, the user can add words and definitions from the dictionaries as flashcards. The option to do this is attached to the same sheet view that displays the lookup. The word and its definition are automatically filled based on the selected dictionary. These fields are left blank for the user to fill. Though, the user can modify any fields before creating the flashcard and adding it to the desired deck. If the user has no decks, they will be prompted to create one.
The user can create and manage their vocabulary decks in this tab. Decks can be renamed, exported to a third-party flashcard app (such as Anki and Quizlet), or deleted. The user can tap on a deck name or its container row to view the deck. Within the deck view, the user can view and manage the cards contained in the deck. Tapping on a card’s front side (displaying the term) reveals its definition and vice versa; tapping on the audio icon triggers text-to-speech; tapping on the gear icon displays a sheet view to modify the selected card. At the top of the deck view, there is a search feature to find terms or definitions.
In the search tab, the user can look for a specific book, deck, or card (word). Results are displayed in a sorted manner and have icons to show whether the result is a book, deck, or card.
Configurations for the app’s user interface, dictionaries, etc. are found here.
Install CocoaPods.
Install the dependencies in your project:
$ pod install
Make sure to always open the Xcode workspace instead of the project file when building your project:
$ open App.xcworkspace