Happier Reminders is an app designed to send inspirational/encouraging reminders to users. It allows you to add quotes to collections, configure push notifications and view saved quotes.
- macOS
- Xcode
- Optional: an iPhone/iPad running iOS/iPadOS 15 or above, if you want to test it on an actual device (rather than the simulator).
Note that by Apple's design notifications don't get sent in the Simulator, so in order to test the notifications feature, you have to run the app on an iPhone/iPad.
- Download or clone the repo.
- cd into the project directory.
- Open happierReminders.xcodeproj.
- Click the build button and use the app on your device / in the built-in simulator.
The project currently uses three quotes APIs:
Check out the projects for more information about each of them.
The project currently contains several view controllers, custom views, controllers for data, Core Data store, and more.
- CollectionsViewController - Contains the table view displaying the user's collections, as well as the ability to add and delete collections.
- CollectionTabBarViewController - The tab bar controller for the collection view (contains the QuotesViewController and the ManageViewController).
- QuotesViewController - Contains the table view displaying the quotes in the current collection, as well as the ability to trigger adding/editing quotes and delete quotes.
- ManageViewController - Contains the manage view, which allows editing the collection's details.
- AddQuoteViewController - Contains the form for editing/adding a new quote.
- FetchQuoteViewcontroller - Contains the form for fetching a quote from the network.
- ViewQuoteViewController - Contains a simple text view and labels to show the quote, its type and its source.
- CollectionTableViewCell - Contains the custom cell for the CollectionViewController's table.
- AlertFactory - A factory for generating UIAlertControllers.
- Select - A custom Select UIControl, which allows multiple or single selection from a list of values.
- ErrorHandler - Empty protocol with an extension for generating error alerts.
- happierReminders.xcdatamodeld - The app's Core Data store.
- DataManager - The class responsible for setting up and managing the Core Data Stack. Also contains some helpers for NSFetchedResultsController and NSManagedObject handling.
- CollectionArrayTransformers - Contains the transformers for the Core Data "Transformable" attributes.
- NotificationController - The class responsible for setting up and managing push notifications.
- Collection+Extensions - Extension for the Collection class. Contains a helper for generating a random qutoe.
- Quote+Extensions - Extension for the Quote class. Contains common setup for new quotes.
- APIClient - API Client for interacting with the different APIs and processing the results.
- MotivationalQuote - Contains Codable-conforming models for one of the APIs' data.
There are no current issues at the time.