Skip to content

Releases: LEOYoon-Tsaw/Chinendar

Bug Fixes and Optimization

Choose a tag to compare

@LEOYoon-Tsaw LEOYoon-Tsaw released this 11 Oct 00:19
dd97d8a
  • 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

Choose a tag to compare

@LEOYoon-Tsaw LEOYoon-Tsaw released this 11 Sep 19:30
16628f0
  • 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 nativeLang applicable to date selection
    • Adopt @Query sections in favor of manual sorting
    • Use SpatialEventGesture for better WatchFace bouncing animation performance
    • Add SKILL for agentic coding

Bug fix and optimization

Choose a tag to compare

@LEOYoon-Tsaw LEOYoon-Tsaw released this 13 Feb 13:31
6a614d2
  • 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

Choose a tag to compare

@LEOYoon-Tsaw LEOYoon-Tsaw released this 03 Feb 22:59
ba99b25
  • 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

Choose a tag to compare

@LEOYoon-Tsaw LEOYoon-Tsaw released this 16 Sep 00:56
135cfbd
  • 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

Choose a tag to compare

@LEOYoon-Tsaw LEOYoon-Tsaw released this 06 Mar 01:27
c8b9782
  • 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

Choose a tag to compare

@LEOYoon-Tsaw LEOYoon-Tsaw released this 12 Jan 22:08
6bcfea2
  • 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
Screenshot 2025-01-12 at 17 07 15

Siri Integration and Calendar Conversion

Choose a tag to compare

@LEOYoon-Tsaw LEOYoon-Tsaw released this 10 Oct 18:38
a7fb44c
  1. Supports Siri / Shortcut, with both prebuilt and customizable shortcuts
  2. Supports Control Center and action button
  3. Supports dark icon and tinted icon/widget
  4. Adds conversion from Chinendar date to Gregorian date
    • Full support for both date and time
    • Easy-to-use UI resembles system date picker
  5. Adds next Chinendar holiday widget and Siri shortcut
  6. [dev] Adopts Swift 6 mode, eliminating potential data race
  7. [dev] Adds a few unit tests on ChineseCalendar struct
  8. [dev] Uses different Bundle ID and disables iCloud syncing for debug mode

IMG_3820

New Solar System Model

Choose a tag to compare

@LEOYoon-Tsaw LEOYoon-Tsaw released this 09 Jun 13:07
  1. Improves planet position accuracy, and also most noticeably, moon rise/set time accuracy.
    Now the moon time should be accurate to about 2 minutes.
  2. Refactors code in Calendar, grouped methods by functionality.

World Times

Choose a tag to compare

@LEOYoon-Tsaw LEOYoon-Tsaw released this 07 Apr 12:58
  1. Now you can manage multiple calendars, switch between different timezones at ease
  2. Starting angle of rings are now customizable
  3. Long press on a theme now shows a preview on a theme
  4. Bug fix

World Times Theme Preview