A simple To-do list app build for iOS 11+ in Swift 5.

Main features

  • [x] Basic 'to do list' features
    • [x] Persistent lists using Realm
    • [x] Add/delete tasks
    • [x] Edit task properties
    • [x] Complete tasks
    • [x] Date/Time for task
    • [x] Sort options
    • [x] Task filters
    • [x] Set task priority
  • [x] iCloud Kit support for syncing
  • [x] Push notifications for reminders
    • [x] Synced push notifications between devices
  • [x] Watch app
  • [x] Task comments (text and images)
  • [x] Widget for Today tasks
  • [x] Theme support with custom App Icons
  • [x] Multi-Language support
  • [x] 3D Touch shortcuts
  • [x] Dark mode


  • iOS 11.0+
  • Xcode 11.0+
  • Swift 5.0+

How to run

  1. Clone the repo
  2. Run pod install in terminal to install required pods. Make sure you have CocoaPods installed.
  3. Turn on iCloud option in Signing & Capabilities and check CloudKit. Turn on Background Modes and check Background fetch + Remote notification.
  4. Make sure to update your app group config (Signing & Capabilities, App Groups) and id string in RealmManager.swift.
  5. (Optional) You might want to update or remove Fabric script located Build Phases.

Live demo

  1. AppStore
  2. TestFlight - Use this invitation link to test the latest build.


  • [ ] Tutorial/Onboarding
  • [ ] Lockdown with FaceID/TouchID or passcode (BiometricAuthentication)
  • [ ] Smart dates (transform "'task name' today at 10:00" into a task with a date/time of today @ 10:00)
  • [ ] Rearrange tasks manually
  • [ ] iPad app
  • [ ] Marzipan support for macOS

Improvements/To Do

  • [ ] watchOS complications + sync improvements
  • [ ] Reload notifications after user gave push permissions
  • [ ] Better sync events and responses
  • [ ] Themes view controller with previews


  • [x] Changing a theme won't change settings nav controller until close/reopen screen
  • [x] App will crash if no internet connection is available (fixed in #955cc7d)
  • [x] Comments and Reminders are not showing up while adding a task (fixed in #955cc7d)
  • [ ] Found something? Let me know


  • If you found a bug, open an issue.
  • If you have a feature request, open an issue.
  • If you want to contribute, submit a pull request.

Acknowledgements & Frameworks used

An extensive list of acknowledgements for each external framework used for RSToDoList is also available in app by accessing the settings screen.