ToDo

App
  Require High Sierra
  Use new app icon
  Set -NSApplicationCrashOnExceptions YES
  Store colors in accent catalog
  Use NSBox for container
  Restorable state
  Use new build system
  NSError.setUserInfoValueProvider
  NSDictionary.sharedKeySet
  Periodic refresh
  Commands
    Star
    Import OPML from File
    Import OPML from URL
    Toggle sidebar
  Main window
    Toolbar
      Share menu
    Keyboard navigation between panes
    Source list
      Space out feed list more to match Finder (see text message from Brad)
      Contextual menu
      Gear menu
    Timeline
      Variable height cells
      Microblog post detection
      Microblog post layout
      Contextual menu
    Detail
      Design
  Feeds window
    Source list
    Inspector
  Menubar
    Wire up commands
    File
Frameworks
  Account
  Database
    Get it building again
    Database.swift
      updateFeedWithParsedFeed
      Handle accountInfo in statuses
      Send notification on saving/updating
    ArticlesTable
      Fetch related objects for articles in time for Article.init, so Article can be immutable
      mark articles
      Delete old articles
      Update cutoff date periodically
    StatusesTable
      Update cached statuses on marking
      Delete old and unused statuses
    AuthorsTable
      Save
      Delete unused authors
    Author+Database
      Don’t use cache — cache goes in AuthorsTable
    AttachmentsTable
      Delete unused attachments
    Tags table
      Search on tags using COLLATE NOCASE
    DatabaseLookupTable
      Fetch relationships using unique IDs instead of objects
    Unit tests
      fetching articles
      fetching unread articles
      fetching unread counts
      saving articles
      saving updated articles
      mark as read
      mark as starred
      mark as userDeleted
      article.changesFrom(otherArticle)
        No changes
        Related objects changes (should result in empty changes)
        Date changes, including where dates disappear
        String changes
  RSDatabase
    DatabaseRelatedObjectsTable.save implementation should use cache
  Data
    Make model classes quicklookable
  RSParser
    ParsedItem == should compare all properties
    Parse attachments - Atom
    Parse attachments - RSS
  RSWebImages
    Create
    Download favicons
    Download apple touch images
    Download images from articles
  RSImageCache
    Create