Logo

0x5a.live

for different kinds of informations and explorations.

GitHub - richardtop/CalendarKit: šŸ“… Calendar for Apple platforms in Swift

šŸ“… Calendar for Apple platforms in Swift. Contribute to richardtop/CalendarKit development by creating an account on GitHub.

Visit SiteGitHub - richardtop/CalendarKit: šŸ“… Calendar for Apple platforms in Swift

GitHub - richardtop/CalendarKit: šŸ“… Calendar for Apple platforms in Swift

šŸ“… Calendar for Apple platforms in Swift. Contribute to richardtop/CalendarKit development by creating an account on GitHub.

Powered by 0x5a.live šŸ’—

CalendarKit CalendarKit License SwiftPM compatible Swift Compatibility Platform Compatibility Tag Version

YouTube Channel Subscribers Twitter GitHub followers

Richard Topchii on Telegram

CalendarKit

CalendarKit is a Swift calendar UI library for iOS and Mac Catalyst. It looks similar to the Apple Calendar app out-of-the-box, while allowing customization when needed. CalendarKit is composed of multiple modules which can be used together or independently.

Tutorials

Need Help?

If you have a programming question about how to use CalendarKit in your application, Create a new GitHub Issue with the question tag.

Check out the Sample App for reference.

Create a new Issue from template to report a bug or request a new feature.

Examples

Video

Sample App

Installation

CalendarKit can be installed with Swift Package Manager or with CocoaPods.

Swift Package Manager (Xcode 12 or higher)

The preferred way of installing CalendarKit is via the Swift Package Manager.

  1. In Xcode, open your project and navigate to File ā†’ Swift Packages ā†’ Add Package Dependency...
  2. Paste the repository URL (https://github.com/richardtop/CalendarKit.git) and click Next.
  3. For Rules, select Version (Up to Next Major) and click Next.
  4. Click Finish.

Adding Package Dependencies to Your App

CocoaPods

āš ļø Warning: CocoaPods support is deprecated and will be removed at a later date. It's recommended to migrate your installation of CalendarKit to using Swift Package Manager.

To install it, add the following line to your Podfile:

pod 'CalendarKit'

Adding Pods to an Xcode project

Usage

  1. Subclass DayViewController
  2. Implement EventDataSource protocol to show events.

CalendarKit requires EventDataSource to return an array of objects conforming to EventDescriptor protocol, specifying all the information needed to display a particular event. You're free to use a default Event class as a model or create your own class conforming to the EventDescriptor protocol.

// Return an array of EventDescriptors for particular date
override func eventsForDate(_ date: Date) -> [EventDescriptor] {
  var models = myAppEventStore.getEventsForDate(date) // Get events (models) from the storage / API

  var events = [Event]()

  for model in models {
      // Create new EventView
      let event = Event()
      // Specify DateInterval
      event.dateInterval = DateInterval(start: model.startDate, end: model.endDate)
      // Add info: event title, subtitle, location to the array of Strings
      var info = [model.title, model.location]
      info.append("\(datePeriod.beginning!.format(with: "HH:mm")) - \(datePeriod.end!.format(with: "HH:mm"))")
      // Set "text" value of event by formatting all the information needed for display
      event.text = info.reduce("", {$0 + $1 + "\n"})
      events.append(event)
  }
  return events
}

After receiving an array of events for a particular day, CalendarKit will handle view layout and display.

Usage

To respond to the user input, override mehtods of DayViewDelegate, for example:

override func dayViewDidSelectEventView(_ eventView: EventView) {
  print("Event has been selected: \(eventview.data)")
}

override func dayViewDidLongPressEventView(_ eventView: EventView) {
  print("Event has been longPressed: \(eventView.data)")
}

Localization

CalendarKit supports localization and uses iOS default locale to display month and day names. First day of the week is also selected according to the iOS locale.

Styles

By default, CalendarKit looks similar to the Apple Calendar app and fully supports Dark Mode. If needed, CalendarKit's look can be easily customized. Steps to apply a custom style are as follows:

  1. Create a new CalendarStyle object (or copy existing one)
  2. Change style by updating the properties.
  3. Invoke updateStyle method with the new CalendarStyle.
let style = CalendarStyle()
style.backgroundColor = UIColor.black
dayView.updateStyle(style)

Requirements

  • iOS 11.0+, macOS (Catalyst) 10.15+
  • Swift 5.7+

Contributing

The list of features currently in development can be viewed on the issues page.

Before contributing, please review guidelines and code style.

Author

Richard Topchii

License

CalendarKit is available under the MIT license. See the LICENSE file for more info.

Swift Resources

are all listed below.

Resources

listed to get explored on!!

Made with ā¤ļø

to provide different kinds of informations and resources.