Code Monkey home page Code Monkey logo

todoapp-vippattern's Introduction

Todo App

A simple offline todo app where you can manage your tasks and set a reminder on to receive a notification built using VIP architecture. The data is persisted via CoreData.

Screens and Application Lifecycle

The application consists of two screens. Both screens follow the same pattern in which there is a unidirectonal control between ViewController, Interactor, and Presenter.

  1. Todo List

    The screen consists of a list of todo titles displayed in UITableView and can be searched through using UISearchBar with an additional sort button to enable sorting alphabetically in ascending or descending order.

  2. Todo Detail

    This is the screen that is navigated to when the user wants to add a new todo by pressing on Add ToDo button or on an existing todo itself. This screen is used for creating, as well as editing a todo.

    It basically consists of a form made up of two UITextFields for entering the title and detail about the todo, and a UIDatePicker to set a notification time only for future dates.

Todo Schema

Each and every todo is assigned a UUID, and must have a non-empty title. Additionally you can add detail, as well as set a date as to be reminded by receiving notification.

Here's the todo schema:

id title detail date
type String String String (Optional) Date (Optional)

Features

  • Create (add) a new task by entering a short descriptive title.

    You can also enter additional details and set a reminder.

  • Edit the task. You can edit all of the fields

  • See all your tasks.

    Tasks are sorted by the time created as default, but can be further sorted alphabetically in ascending or descending order.

  • Search among your tasks:

    If there is a match, then the app shows only the matches, and else, i.e., if there is no item matching your search, then all of the items are shown.

  • Remove the task by swiping left.

Screenshots

Demo NotificationDemo

todoapp-vippattern's People

Contributors

bilal-sagir avatar

Watchers

 avatar

Forkers

daserades

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.