Cronica is a minimalist watchlist app that reminds you about upcoming releases.
Cronica is built using Swift and SwiftUI, it uses Core Data to persist the user's watchlist, and CloudKit to sync the list effortlessly between the user's device.
To provide release notifications, the app takes advantage of local notifications to notify users about new episodes or a movie release. To keep notifications useful, there's a background task that updates item values with new information using TMDb API, if needed.
Thanks to CloudKit and SwiftUI, Cronica also can run on every Apple device, and the information will automatically sync.
If you want to contribute with code, here are some important details about the project's organization:
- The code-base for the Mac, iPhone, iPad, and Apple TV versions is shared and resides within the "Shared" folder.
- While the Apple Watch also utilizes the same networking as the other platforms, it has a different user interface (UI) design. The Apple Watch-specific UI components are located in the "Apple Watch" folder. However, certain UI components are shared among all platforms and can be found in the "Shared" folder.
- The views are organized based on their relationship with models or functionality. For instance, the "ItemContent" struct represents data fetched from the TMDb service, which can refer to a movie or a TV show. The UI elements associated with this struct are grouped under the "ItemContent" group in the "Views" folder. An example of such a UI element is the details page that users see when they open a movie.
- The logic for most of the views is separated using extensions, primarily to help maintain the project in the long run.
- If you have any questions, feel free to reach out to me via email, Twitter, or iMessage. I'll be happy to assist you.
Contribute to the localization efforts of our open-source project by assisting in the translation of the application into your native language. Utilize the provided xcstrings file, which contains all the strings requiring translation. Simply send your completed translations via email, and I will ensure their incorporation in the upcoming update. Your contributions play a crucial role in making Cronica accessible to everyone. Thank you for your support!
This project targets iOS 17, iPadOS 17, watchOS 10, macOS 14, tvOS 17, visionOS 1 and requires Xcode 15.
To get started you'll need to:
- Get an API key to use TMDb API, you can get yours at their website, after that, go to Shared/Configuration/Key and replace the value of tmdbApi with your own key.
- If you any question, you can send me an email at [email protected].
- Follow Cronica on Twitter: CronicaApp.