Skip to content

ievgentka/ToDoList

 
 

Repository files navigation

RSToDoList

A simple To-do list app build for iPhone, iPad and Apple Watch in Swift 5 (iOS 11+, watchOS 6+)

UITests

Tests requirements

  • iOS devices only (iPadOS devices do not supports yet)
  • Tests verified on target: Simulator iPhone 13 Pro iOS 15.5

Tests infrastructure

  • Added big list of AccessibilityIdentifiers for App elements, but not for all(this takes too much time, so temporary for some elements used they labels)
  • Created Page Object Model (UITests/Sources/Screens/)
  • Added support files and extensions (UITests/Sources)

Exist tests

This lists only part of possible UI Tests. It is possible to create many more tests with Create, Delete and Edit functionality. For example add to tests Priority, Comments, Reminder features validation or create tests with put the app in background, etc.

CreateEmptyTask

  • Validate error alert while saving empty task
  • Validate alert closing
  • Validate add content to the task and it save after alert closing

CancelCreateTask

  • Validate cancel create task
  • Validate ability to create task after cancel action

CreateTasksWithSameContent

  • Create two tasks with the same name
  • Validate that two new tasks have been created
  • Validate that the new task has identical names

CreateTasksWithHugeString

  • Validate ability to create task with 1000 symbols

CreateTaskForToday

  • Validate ability to create task for Today
  • Validate that task appears in the correct sections

CreateTaskForTomorrow

  • Validate ability to create task for Tomorrow
  • Validate that task appears in the correct sections

CreateTaskNextSevenDays

  • Validate ability to create task with due date in seven days
  • Validate that task appears in the correct sections

CreateTaskNextEightDays

  • Validate ability to create task with due date in eight days
  • Validate that task appears in the correct sections

EditTask

  • Create task
  • Open task and delete all text content
  • Add new text content to the task and save it
  • Validate that task is saved with correct content
  • Delete task

DeleteTasks

  • Create one task with English letters and special characters
  • Create one task with Cyrillic letters and special characters
  • Validate that both tasks have been created and have the correct content.
  • Delete both tasks and validate it deletion

Main features

  • Persistent task lists using Realm
  • iCloud Kit support for syncing
  • Push notifications for reminders (Synced between devices)
  • Add/delete/edit/complete tasks
  • Set task Date & Time + custom reminders and comments (images too)
  • Sort/Filter/Prioritise tasks
  • iPad app
  • Watch app
  • Widget for Today tasks
  • Theme support with custom App Icons
  • Multi-Language support
  • 3D Touch shortcuts
  • Dark mode
  • Onboarding/tutorial

Requirements

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

How to run

  1. Clone the repo
  2. Turn on iCloud option in Signing & Capabilities and check CloudKit. Turn on Background Modes and check Background fetch + Remote notification.
  3. Make sure to update your app group config (Signing & Capabilities, App Groups) and id string in RealmManager.swift.

Live demo

ToDoList - Task Manager by RanduSoft - AppStore

Roadmap

Features

  • Lockdown with FaceID/TouchID or passcode (using BiometricAuthentication)
  • Smart dates (transform "'task name' today at 10:00" into a task with a date/time of today @ 10:00)
  • Rearrange tasks manually
  • Catalyst support for macOS

Improvements/To Do

  • iOS 14 Widget
  • watchOS complications + sync improvements
  • Reload notifications after user gave push permissions if initially declined

Communication

  • 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.

RSToDoList is currently using:

All icons used in RSToDoList are designed by Icons8.com and available here. Colors for themes and app icon are picked from FlatUIColors.com.

License

RSToDoList is available under the GNU license. See the LICENSE file for more info.

About

A simple ToDoList written in Swift

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Swift 100.0%