A simple Swift/iOS notes app with rich formatting based on TextKit APIs.
Rich formatting summary:
- Smart links for URLs and phone numbers
- Text formatting using
**bold**and*italic*simple markup - Support for bullet, dashed, and ordered lists (e.g.,
*,-,1.) - Checkmark ✔ lists as well
UI layer:
NotesListViewController. Displays all created notes in a table view.NoteEditorViewController. View controller to show and edit a given note.NoteTextStorage. Stores a given note text with rich formatting. This implements the core text formatting engine.CheckmarkView. Draws a Core Graphics based checkmark vector icon with a circular background. It also provides a simple animation for the checkmark.
Model layer:
Note. The note model layer object. For simplicity, this is designed as a plain value type. The actual note contents is stored in plain text, following a simple Markdown-ish format (more on that below).NotesManager. Manages a list of notes model objects. This class centralizes all communication with Firebase.
The following richly formatted note (using TextKit):
is then encoded as a Markdown-based, plain text string (for database storage):
Links & Lists
Some links:
* www.google.com
* www.swift.org
* (407) 939-7000
Text in **bold** too!
To do list:
[x] Add a nice icon (?)
[x] Upload to Github
[_] Notify Nikita
