Ribbon Reminder - A reminder app with a twist

Ribbon Reminder - Free - Open source

Ribbon Reminder is a reminder app that functions like a ribbon tied around your finger.

A lot of times, the problem with using a reminder application is the resulting "out of sight, out of mind" effect it seems to have on your tasks. Ribbon Reminder aims to manage this by displaying up to five reminders directly in your Notification Center. That way, your tasks are available with a swipe down on your screen - wherever you are. Perfect for when you have a small piece of text you will be reusing all day, or need to remember something and don't want it out of your sight.

Ribbon Reminder is completely written in Swift. Mainly, it taught me how to support Today View widgets in the Notification Center.

Code example

First, you must register the NCWidgetProviding delegate. Then, you must add the delegate function. In this case, I am also creating a UITableView, that is why I am also conforming to the UITableViewDataSource and UITableViewDelegate delegates. The setting of the preferredContentSize proved critical as well, as it helped keep tableNC's size under control. Just set your UITableView's contentSize to the preferredContentSize of the View Controller and you'll be all set. This is how it looks:

1class TodayViewController: UIViewController, NCWidgetProviding, UITableViewDataSource, UITableViewDelegate { 2 @IBOutlet weak var tableNC: UITableView! 3 4 func widgetPerformUpdateWithCompletionHandler(completionHandler: ((NCUpdateResult) -> Void)!) { 5 6 // Perform any setup necessary in order to update the view. 7 self.preferredContentSize = self.tableNC.contentSize; 8 completionHandler(NCUpdateResult.NewData) 9 } 10 11 // Do all other necessary code here. 12}

If you have any questions on setting up a Today View widget don't hesitate to ask. Thank you for checking out Ribbon Reminder and the other work here at Inner Monk Design.

EDIT: Ribbon Reminders is now open source software! From the images to the code, go ahead and take a look around for yourself. Hopefully this can help someone else who's looking to learn about Today View widgets in Swift!