Skip to content

egger/cronica

Repository files navigation

Cronica

Cronica Icon

Cronica is a minimalist watchlist app that reminds you about upcoming releases.

Twitter: @CronicaApp GitHub license MIT badge

Cronica Home view Screenshot

About

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.

Project Organization

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.

Help Translate Cronica

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!

Build information

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.

App Store

iOS/iPadOS

Cronica running on iPad displaying the details page for the TV Show Kaguya-sama: Love Is War.

Badge for download Cronica on App Store

Apple Watch

Cronica running on Apple Watch S7.

Badge for download Cronica on Apple Watch App Store

Mac

Cronica running on MacBook Air displaying details for Top Gun: Maverick.

Badge for download Cronica on Mac App Store

Apple TV

Cronica running on Apple TV displaying details for Top Gun: Maverick.

Badge for download Cronica on Apple TV App Store

Apple Vision Pro

Cronica running on MacBook Air displaying details for Top Gun: Maverick.

Badge for download Cronica on Apple Watch App Store

QR Code

App Store QR Code

Contact