Repository navigation
Releases: LEOYoon-Tsaw/Chinendar
Releases · LEOYoon-Tsaw/Chinendar
Release list
Bug Fixes and Optimization
- UI Optimizations
- Make Chinendar date picker position more flexible
- Fix tooltip writing direction for Vietnamese
- Optimize HoverView and make the disappearance animated
- Make watch face ignore horizontal safe area for better iPhone Duo experience
- Date-time bar on iOS will turn transparent briefly when tapped to avoid blocking the view
- Preview
- Fix widgets previews by not waiting for Location authorization in widget workflow
- Fix various issues with App previews
- Other optimizations and bug fix
- Force Calendar to use Georgian to fix issues where user uses a different calendar system
- Give config Intent a default value
- Remove reverseCount option from the calendar model
- Xcode settings
- Enable EXISTENTIAL_ANY
- Enable REGISTER_APP_GROUPS for macOS
- Update project file to JSON
Fine Polish
- Add Vietnamese localization
- Update icon for OS 27
- Add Calendar entity for Siri suggestions
- Improve memory safety and concurrency safety
- Use persistent observation tracking to auto-update states
- No longer expose the model actor's
modelContext - Ensure continuations are always consumed exactly once in WatchConnectivity
- Replace unsafe memory methods involving CGPath
- Various hang optimizations
- Reduce nested GeometryReaders
- Cache Theme and Config
- Only update gradients upon completion of user actions
- Check for ColorPanel existence before invoking the shared instance
- Precompute the timezone tree
- Combine WatchFace bouncing animations into one transaction
- Remove unnecessary macOS Setting frame configuration
- Improve task cancellation to prevent unnecessary task spawning
- Other improvements
- Prevent persistent data from syncing with iCloud in Widgets
- Make
nativeLangapplicable to date selection - Adopt
@Querysections in favor of manual sorting - Use SpatialEventGesture for better WatchFace bouncing animation performance
- Add SKILL for agentic coding
Bug fix and optimization
- Fixed a bug that crashes Widget due to SwiftData model context contestion
- Fixed Font selecion bug where sometimes font family is not correctly displayed
- Fixed bugs due to the use of class object as ForEach View's id
- Optimized location task, make sure new task cancels existing ones
- Optimized watch connection, make sure continuation does not leak
- Reduced the number of GeometryReader
- Removed autoUpdateStatusBar from iOS and visionOS, instead use variable inline
- Removed calendar selection in OpenApp intention, which cannot be consistently fulfilled
- Apply native language selection to alternative datetime selection
- Changed default visionOS Settings placement to be sideway instead of the front
Native Date Time
- Added local language display for Chinendar date and time, enable in Settings -> Layout. This preference applies everywhere but the watchface.
- [iOS] Added an option to turn on status bar in Settings -> Layout, displayed below the watchface, to quick look at festivals as well as (potentially localized) date and time
- [iOS/watchOS] Revamped WatchConnection layer, rewrite in async/await flavor
- Converted Location service into an async stream
- Enabled memory safty check
- Removed Timer in favor of Task.sleep
OS 26
- Adopts Liquid Glass for various controls
- Use Liquid Glass for watchface tooltips and macOS panel background
- Adds Widgets to visionOS
- New Icon using composer
- Use SwiftUI for macOS panel
- Concurrency and WidgetIntent updates
- Optimize toolbar in Reminders page
- Add open app action to macOS and watchOS
JSON serialization
- Refactored codes in Setting views, making them much cleaner, breaking down large structs
- Unified logic for Themes and Configs, the 2 pages support the same operation set
- Added import and export for Reminder list
- Changed the export and storage format to JSON
- Redesigned control bar for macOS, merging the 2 icons into one bar
- Added Theme list view for watchOS, enabling user to choose a different theme from their phone
- Automatically update chineseCalendar whenever the config changes, also added auto update for statusBar
- Extract core calculation code into standalone repo, CelestialSystem
- Fixed a few bugs
- Event indicator may not update timely
- Widget refresh after quitting App may not pick up latest changes made
- Importing wrong file may not raise correct error
- Some translation inconsistencies
- Reminder next date being wrong
Reminder and Notification
- Added Reminders to enable custom reminders based on Chinese calendar or Solar Terms
- Added shortcut support from Chinese calendar date to Gregorian calendar
- Adopts navigation path in all Settings views
- Expand toolbar buttons on macOS and visionOS
- Bug fixes:
- Fix a potential crash in Time Walls on watch
- Fix the alternative time on watch where UI may not update correctly

Siri Integration and Calendar Conversion
- Supports Siri / Shortcut, with both prebuilt and customizable shortcuts
- Supports Control Center and action button
- Supports dark icon and tinted icon/widget
- Adds conversion from Chinendar date to Gregorian date
- Full support for both date and time
- Easy-to-use UI resembles system date picker
- Adds next Chinendar holiday widget and Siri shortcut
- [dev] Adopts Swift 6 mode, eliminating potential data race
- [dev] Adds a few unit tests on ChineseCalendar struct
- [dev] Uses different Bundle ID and disables iCloud syncing for debug mode
New Solar System Model
- Improves planet position accuracy, and also most noticeably, moon rise/set time accuracy.
Now the moon time should be accurate to about 2 minutes. - Refactors code in Calendar, grouped methods by functionality.


