There are a lot of different parts of highlighting:
– Text selection, which is built into iOS.
– The annotation menu that pops up with options for highlighting, adding a note, etc.
– Code for rendering highlights on the page and annotation indicators in the margins.
– Change listeners for updating rendered annotations as the page adjusts width, or as annotations are added or removed.
– Tap listeners that allow the annotation menu to pop up again when you tap on a highlight.
– Code that ties the webview (where content is rendered) to the native app and its stored data.
– The sync service which keeps things synced between different devices and the Church's servers.
Samuel Bradshaw • If you desire to serve God, you are called to the work.