Please fork and clone this repository, then watch the screen recording provided before starting. The included screen recording demonstrates the application you are to create for this challenge.
Note the following requirements:
- Initial screen shows a list of notes. Each row shows as much of the note text as will fit.
- Tapping the plus button in the top right corner brings up a screen with a text view to enter text for a new note.
- Tapping the Save button saves the new note and returns to the list of notes.
- If the app is killed and restarted, previously saved notes must continue to be shown.
- Tapping on an existing note in the list returns to the detail view and shows the full text of the note.
- User can swipe to delete existing notes.
- The detail view for an existing note should allow editing the text of the note.
- Add a search bar to the notes list view to allow the user to search for specific notes.
- Allow rearranging notes in the notes list.
This challenge is intended to assess your ability to build applications that make use of simple UITableViews, exhibit proper Model View Controller (MVC) architecture, and are built using Storyboards, segues, persist data using UserDefaults, etc. It covers the following concepts taught in Unit 1:
- Basic Model View Controller architecture
- The role and use of
UIViewController - The role and use of
UINavigationController - Use of
IBOutlets - Use of
IBActions - Implementation of
UITableViewDataSourceandUITableViewDelegate - Creation of custom model classes
- Data persistence using
UserDefaults - Conversion of custom model objects to dictionaries and vice versa
- Basic model controller design and implementation
- Use of the singleton/shared instance design pattern
Note: You may not copy and paste code from previous projects.
You will have 3 hours and 30 minutes to complete this challenge.