/SimpleNote

A note app using the Firebase Realtime Database.

Primary LanguageSwift

Test Challenge - Simple Note

Simple Note is a note app using the Firebase Realtime Database.

Time spent: 10 hours spent in total

User Stories

The following required functionality is completed:

  • All notes are saved in the Firebase Database.
  • User can view a list of all notes in the database.
  • User can edit the note title and detail, (both online and offline), by tapping on that note.
  • User can add a new note, (both online and offline), by tapping on the add button.
  • User can delete a note, (both online and offline), by swipping to left on that note.
  • App automatically syncs offline data to database (Firebase Offline Capabilities).
  • User sees loading state while waiting for the Firebase Database API.
  • Custom cells should have the proper Auto Layout constraints.

The following optional features are implemented:

  • Remove the separator for empty cells.
  • User can login/logout/signup using OAuth login flow.
  • Manually sync offline data to database.
  • Implement segmented control to switch between list view and grid view.
  • Add a search bar.
  • Customize the highlight and selection effect of the cell.
  • Table rows should be dynamic height according to the content height.
  • Customize the navigation bar.

The following additional features are implemented:

  • App shortcut to quickly create new note from Home screen.
  • Peek and Pop with 3D Touch to edit a note.
  • Display due date notifications.

For each note:

  • User can set color.
  • User can create checklist detail.
  • User can set reminding date time.
  • User can drag and drop to reorder notes.

Video Walkthrough

Here's a walkthrough of implemented user stories:

Video Walkthrough

GIF created with LiceCap.

Notes

Describe any challenges encountered while building the app.

License

Copyright [2017] [TRUNG]

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.