Clendar - universal calendar app. Written in SwiftUI. Available on App Store. MIT License.

Overview

SwiftLint

Clendar - minimal calendar

Minimal Calendar & Widgets

Download on the App Store

Landing Page

About

This project is started out as an UIKit base app for me to learn new WWDC features over the years. But one day, I decided to convert the whole app from UIKit -> SwiftUI and boom, here we are.

This is the PR => https://github.com/vinhnx/Clendar/pull/35

SwiftUI

πŸ“– I believe the best way to Learn is by doing. SwiftUI is evolving and I think it's the future of writing apps.

SwiftUI is an innovative, exceptionally simple way to build user interfaces across all Apple platforms with the power of Swift. Build user interfaces for any Apple device using just one set of tools and APIs.

-- Apple

The true power of SwiftUI, to me, is it's flexibility, thanks to it's vast realm of view modifiers and expressiveness with property wrappers.

You can create an "Hello, World!" app with just a few lines of code (check out the new @main attribute!) or even, a calendar view.

SwiftUI give you the most flexible tool an Apple developer could ever ask for, all you need is a bit of creativity, and the possibilities, are, limitless.

Clendar would not be possible without the public knowledge of the community. To name a few, in no particular order:

my notes about SwiftUI:

By publishing Clendar, I would like to give back to the community. 😊

Tech stacks

Core:

  • SwiftUI (and UIKit interoperability)
  • iPadOS
  • WidgetKit
  • SiriKit
  • EventKit/EvenKit UI - wrapper with my own Shift package πŸ“†
  • WatchKit
  • Combine
  • Catalyst
  • StoreKit

Build delivery tool

  • Fastlane

Package Managers

  • Swift Package Manager
  • CocoaPods

Linter

  • SwiftLint

Formatter

  • SwiftFormat

Action

Requirements

(for async/await):

  • Xcode 13.1
  • iOS 15.0
  • watchOS 8.0
  • Ruby (for Fastlane build automation)

My own Swift Packages currently used in Clendar

  • Shift - Result-based wrapper for EventKit. SwiftUI supported!
  • Laden - SwiftUI loading indicator view

Contributing

Contributing is more than welcome, if you feel like helping the app, or want to add new feature, feel free to take a look at my issues page. Thanks!

Contributors

πŸ™πŸ» 🀯 πŸŽ‰ Huge thanks everyone who took their precious time and effort to contribute to the project:

πŸ’‘ 🧑

License

MIT License

You can do whatever you want with this source code: modify, tweak or use as learning resources, for example... πŸ›  πŸ‘¨πŸ»β€πŸ’»

But, please don't re-distribute the app on App Store with different name. πŸ₯Ί

And, if you like, you can purcahse the app on the App Store and leave me a tips via In-App Purchase options. Thank you in advance! πŸ“²

Open-source inspiration

What's 'Clendar'?

It's just Calendar, without an 'a'. I thought it's unique, but turns out it's not going well with ASO (App Store Optimization) and SEO (Search Engine Optimization).

But, whatever!


Thanks and take care! πŸ€

I'm on @vinhnx on almost everywhere.

Comments
  • App version 3.6.0 crash on iOS 15.6.1

    App version 3.6.0 crash on iOS 15.6.1

    App version 3.6.0 crashes on iOS 15.6.1. The app shortly shows white screen after opening and than closes/ crashes.. version 3.5.0 was fine. I just bought Clendar+.

    opened by chriscapisce 7
  • bugs

    bugs

    Love the app, but I’m encountering two bugs:

    • β€œFollow system” theme is not working: the app is stuck in Dark mode even when I’m Light mode (see attached video). check: https://sarunw.com/posts/what-is-environment-in-swiftui/
    • Home Screen Widgets for the app are not appearing as an option in the Widget selector.
    opened by vinhnx 4
  • mysterious SwiftUI crash

    mysterious SwiftUI crash

    seems like a wide spread issue

    https://inessential.com/2021/02/24/mysterious_swiftui_crash https://developer.apple.com/forums/thread/675006 https://twitter.com/brentsimmons/status/1364657204834439170

    Replying to brentsimmons

    Try auditing code for anything that can change @ State (all flavors) used by SwiftUI in a background thread.m, keeping in mind KVO, didSet, combine publisher change propagation, etc etc.

    Mar 1

    We did figure out the issue β€” blog post coming. https://twitter.com/brentsimmons/status/1366122263540498434


    bug help wanted 
    opened by vinhnx 3
  • Fixed

    Fixed "Follow System" in app theme

    UIApplication.shared.windows changed to self?.view.window?.windowScene? to remove deprecation message Removed checkUIMode function from subclasses because this function was called twice and the notifications were created twice. Background color changed to function : static var backgroundColor = { return Color(.backgroundColor) } . Without this the color is just plain variable on start and not dynamic. Now with function it responds to theme changes.

    opened by kapucnov2321 1
  • Bump addressable from 2.7.0 to 2.8.0

    Bump addressable from 2.7.0 to 2.8.0

    Bumps addressable from 2.7.0 to 2.8.0.

    Changelog

    Sourced from addressable's changelog.

    Addressable 2.8.0

    • fixes ReDoS vulnerability in Addressable::Template#match
    • no longer replaces + with spaces in queries for non-http(s) schemes
    • fixed encoding ipv6 literals
    • the :compacted flag for normalized_query now dedupes parameters
    • fix broken escape_component alias
    • dropping support for Ruby 2.0 and 2.1
    • adding Ruby 3.0 compatibility for development tasks
    • drop support for rack-mount and remove Addressable::Template#generate
    • performance improvements
    • switch CI/CD to GitHub Actions
    Commits
    • 6469a23 Updating gemspec again
    • 2433638 Merge branch 'main' of github.com:sporkmonger/addressable into main
    • e9c76b8 Merge pull request #378 from ashmaroli/flat-map
    • 56c5cf7 Update the gemspec
    • c1fed1c Require a non-vulnerable rake
    • 0d8a312 Adding note about ReDoS vulnerability
    • 89c7613 Merge branch 'template-regexp' into main
    • cf8884f Note about alias fix
    • bb03f71 Merge pull request #371 from charleystran/add_missing_encode_component_doc_entry
    • 6d1d809 Adding note about :compacted normalization
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
Releases(v3.6.1-108)
RCalendarPicker A date picker control, Calendar calendar control, select control, calendar, date selection, the clock selection control.

RCalendarPicker RCalendarPicker Calendar calendar control, select control, calendar, date selection, the clock selection control. ζ—₯εŽ†ζŽ§δ»Ά ,ζ—₯εŽ†ι€‰ζ‹©ζŽ§δ»ΆοΌŒζ—₯εŽ†οΌŒζ—₯ζœŸι€‰ζ‹©

ζœθ€€θΎ‰ 131 Jul 18, 2022
Malendar is a personal calendar app that connects to your default calendar and lets you add/delete events

Malendar is a personal calendar app that connects to your default calendar and lets you add/delete events. It will gather events from your default iOS calendar.

Chase 194 Jan 4, 2023
A declarative, performant, iOS calendar UI component that supports use cases ranging from simple date pickers all the way up to fully-featured calendar apps.

HorizonCalendar A declarative, performant, calendar UI component that supports use cases ranging from simple date pickers all the way up to fully-feat

Airbnb 2.2k Jan 4, 2023
Simple customizable calendar component in Swift :calendar:

Koyomi Koyomi is a simple calendar view framework for iOS, written in Swift ?? Content Features Demo App Usage introduction : Change displayed month,

Shohei Yokoyama 741 Dec 24, 2022
A custom visual calendar for iOS 8+ written in Swift (>= 4.0).

Overview Screenshots GIF Demo Installation Usage Architecture Version matrix Advanced API For contributors Screenshots GIF Demo Installation CocoaPods

null 3.5k Dec 24, 2022
A calendar control for iOS written in swift with mvvm pattern

ASCalendar try it on appetize Installation CocoaPods You can use CocoaPods to install ASCalendar by adding it to your Podfile: platform :ios, '8.0' us

Alberto Scampini 192 Jun 26, 2022
Calendar component with RTL languages written in swift

GDCalendar Calendar component with both RTL/LTR languages support with Swipe Gesture enabled navigation. Easy to use with Storyboard and Attributes In

Saeid 26 Jul 17, 2022
The elegant full screen calendar missed in SwiftUI.

ElegantCalendar ElegantCalendar is an efficient and customizable full screen calendar written in SwiftUI. ElegantTimeline - Shows what's possible usin

Kevin Li 553 Dec 27, 2022
SwiftUI Simple Calendar / Date Picker for iOS

RKCalendar RKCalendar is a SwiftUI Calendar / Date Picker for iOS. Features include: minimum and maximum calendar dates selectable, single date select

null 453 Dec 28, 2022
A customizable swiftui calendar

Description not available. Installation From Xcode 11, you can use Swift Package Manager to add Kingfisher to your project. Select File > Swift Packag

Heshan Yodagama 140 Dec 24, 2022
An easy to use SwiftUI date picker for Shamsi (Persian) calendar

ShamsiDatePicker An easy-to-use SwiftUI iOS/watchOS date picker for Shamsi (Persian) calendar. Features Pure (100%) SwiftUI implementation Full suppor

Seyyed Parsa Neshaei 20 Nov 24, 2022
SwiftUICalendar - SwiftUI simple calendar

SwiftUICalendar Installation CocoaPods pod 'SwiftUICalendar' import import SwiftUICalendar Features Infinite scroll Support horizontal and vertical sc

null 59 Dec 27, 2022
A SwiftUI calendar view that allows month switching and date picking.

Selectable Calendar View A SwiftUI calendar view that allows month switching and date picking. Usage You can simply add this repository to your projec

γ‚·γƒ₯ンジョーゑ 10 Jul 21, 2022
WatchYourCalendar - A minimal watch app that makes the flow of the school day conveniently available on your wrist

WatchYourCalendar A minimal watch app that makes the flow of the school day conv

Rohan Malik 3 Apr 23, 2022
CalendarApp Swift - Made a calendar app in swift, completely from scratch using UIStackView and UICollectionView

CalendarApp_Swift Made a calendar app in swift, completely from scratch using UI

Arnav Chhokra 1 Feb 4, 2022
Anime Calendar's iOS App - Schedule your seasonal anime to watch!

?? Anime Calendar Anime Calendar's iOS App - Schedule your seasonal anime to watch! Currently in progress UI Uses Xibs and some programmatic views. De

Leonardo 11 Jan 1, 2023
πŸ“… Calendar for iOS, iPadOS and macOS in Swift

CalendarKit CalendarKit is a Swift calendar UI library for iOS, iPadOS and Mac Catalyst. It looks similar to the Apple Calendar app out-of-the-box, wh

Richard Topchii 2.2k Jan 5, 2023
An Easy to Use Calendar for iOS (Swift 5.0)

This is an easy to use, "just drag and drop it in your code" type of calendar for iOS. It supports both vertical and horizontal scrolling, as well as

Michael Michailidis 525 Dec 23, 2022
Dead simple calendar implementation

Package provides a CalendarView which can be used to display simple calendar in your App.

Sergei Kononov 4 Oct 7, 2022