Skip to content

Releases: jacuzzicoding/AnimalCrossingGCN-Tracker

v0.7.0-alpha-preview-5

23 Apr 07:07
3ffb6c7

Choose a tag to compare

Pre-release

Released: April 23, 2025 3:03 AM

This release implements a comprehensive error handling strategy across the application with standardized error types and presentation components. It also introduces several reusable UI components that improve code organization, maintainability, and user experience.

Major Architecture Implementation: Error Handling Strategy

This update fully implements the error handling architecture defined in ADR-002:

  • Added: Domain-specific error types with RepositoryError and ServiceError
  • Added: Standardized error propagation with Swift's throws mechanism
  • Added: Consistent error handling patterns across all application layers
  • Added: User-friendly error presentation components in the UI layer

What's New

Error Handling Components

  • Implemented ErrorState Enum: Added a standardized way to represent different error states:

    • Supports various error types (loading, data failures, operation failures)
    • Provides consistent properties for messages, recovery suggestions, icons, and colors
    • Enables a unified approach to error presentation throughout the app
  • Added ErrorBanner Component:

    • Creates a consistent visual representation for error states
    • Includes support for recovery actions with retry functionality
    • Implements proper animations and accessibility features
    • Adapts to different types of errors with appropriate styling

Reusable UI Components

  • Added ProgressBar Component:

    • Provides a customizable progress indicator for completion tracking
    • Supports custom colors, heights, and styling options
    • Includes percentage display and optional labeling
    • Implements proper animations and accessibility labels
  • Added ActivityItem Component:

    • Displays recent activity entries with consistent styling
    • Includes title, timestamp, and color coding
    • Supports optional dividers for list presentation
    • Follows the app's design language with proper accessibility
  • Added CategoryIcon Component:

    • Creates standardized visual representation for museum categories
    • Supports custom sizes, colors, and optional backgrounds
    • Designed to work with SF Symbols for a native look and feel
    • Enables consistent category representation across the app

Service Layer Improvements

  • Enhanced ExportService:

    • Implemented proper error handling with ServiceError pattern
    • Updated protocol methods to use throws instead of optional returns
    • Replaced print statements with proper error propagation
    • Prepared for future PNG/PDF export implementation
  • Refined AnalyticsService:

    • Transformed silent error handling to proper ServiceError propagation
    • Updated method signatures to use throws
    • Fixed downstream impacts in DataManager and UI views
    • Improved error context for better debugging

UI Error Handling

  • Fixed AnalyticsDashboardView:

    • Added proper error handling with try/catch blocks
    • Implemented graceful degradation with empty states
    • Fixed icon issue ("museum.fill" replaced with "building.columns.fill")
    • Resolved issues with Timeline, Categories, and Seasonal tabs
  • Updated HomeView:

    • Fixed conditional binding issues with proper do-catch blocks
    • Implemented consistent error handling for data loading
    • Added appropriate error messaging and recovery options
    • Improved accessibility with better error state descriptions

Technical Details

Error Handling Implementation

The standardized approach follows this pattern:

// Service method with proper error handling
func getCollectionData() throws -> [CollectionItem] {
    do {
        let items = try repository.getAll()
        return items.map { mapToCollectionData($0) }
    } catch let error as RepositoryError {
        // Transform to domain-specific error with context
        throw ServiceError.dataFetchFailed(
            \"Failed to retrieve collection data: \\(error.localizedDescription)\"
        )
    } catch {
        // Handle unexpected errors
        throw ServiceError.unexpected(
            \"An unexpected error occurred: \\(error.localizedDescription)\"
        )
    }
}

// UI implementation with error state management
@State private var errorState: ErrorState = .none
@State private var items: [CollectionItem] = []

func loadItems() {
    errorState = .loading
    
    do {
        items = try dataManager.getCollectionData()
        errorState = .none
    } catch {
        errorState = .dataLoadFailed(\"Failed to load collection data: \\(error.localizedDescription)\")
    }
}

Component Integration

  • ErrorBanner and ErrorState are integrated throughout the app for consistent error presentation
  • ProgressBar is used in collection status displays and analytics dashboards
  • ActivityItem provides consistent display of recent donation activities
  • CategoryIcon is used in navigation, lists, and dashboard components

Developer Notes

  • ADR-002 Implementation: This release completes the error handling strategy outlined in ADR-002
  • Component Architecture: Progress made on ADR-004 with new reusable UI components
  • Compiler Performance: Fixed issues in ContentView with component extraction
  • UI Consistency: Improved consistency with standardized UI components

Known Issues

  • HomeView modularization is still in progress
  • Donate Tab implementation is planned for a future release
  • Dependency injection approach (ADR-003) is not yet implemented
  • Minor UI adjustments may be needed on smaller devices

Installation

  • Clone the repository
  • Check out the code-cleanup branch
  • Build and run on iOS 17.0+, macOS 14.0+, or visionOS 1.0+
  • Xcode 15.5+ is req
Screenshot 1 Screenshot 2

What's Changed

Full Changelog: v0.7.0-alpha-preview-4...v0.7.0-alpha-preview-5

v0.7.0-alpha-preview-4

06 Apr 22:11
9568ce8

Choose a tag to compare

Pre-release

Animal Crossing GCN Tracker v0.7.0-alpha-preview-4 Release Notes

Date: April 6, 2025

This fourth preview of v0.7.0-alpha adds CSV export to the Analytics functionality. This allows exporting collection data and analytics in standard CSV format for use in external applications.

New Feature: Analytics Data Export

Added the ability to export collection data and analytics in CSV format:

  • Export donation history, category completion stats, and seasonal collection data
  • Set custom filenames and select which data to export
  • Works on iOS and macOS with platform-specific sharing methods
  • Formatted with clear section headers for easy spreadsheet import

Implementation Notes

Export Service

  • Implemented a protocol-based export service architecture
  • CSV output includes proper headers, delimiters, and text enclosure
  • Currently supports:
    • Monthly donation activity by category
    • Category completion percentages
    • Seasonal collection analysis
    • Overall collection statistics

Platform-Specific Implementation

  • iOS: Uses standard iOS share sheet
  • macOS: Options to reveal in Finder or copy file path
  • UI adapts to different screen sizes

User Interface

  • Basic controls for selecting export options
  • Loading indicators and success/error messages
  • Custom filename support with reasonable defaults

Development Process

This is the first feature I built using a Claude-Gemini assisted development approach:

  • Designed the high-level architecture
  • Implemented following my established design patterns
  • Tested across iOS and macOS

Technical Notes

  • Protocol-based architecture for the export functionality
  • Separated data preparation from file operations
  • Platform-specific code isolated with conditional compilation
  • Foundation code structure will support future PNG/PDF export

Known Issues

  • PNG/PDF chart export not implemented yet
  • No progress indicator for large dataset exports
  • Basic UI that will need enhancement later
  • Manual exports only (no automated/scheduled exports)
  • No caching for exported data
  • Brief UI freezing possible with large datasets
  • Platform quirks:
    • iOS: Share sheet doesn't remember recent destinations
    • macOS: No direct email/message integration in share options
    • iOS: No direct iCloud Drive save (must use share sheet)
  • CSV format limitations:
    • Standard double quotes for all fields
    • No header customization
    • No options to combine/separate data sections
  • UI limitations:
    • Export options don't save between sessions
    • No data preview before export
    • Basic error handling
  • Other analytics issues:
    • No advanced filtering yet
    • Possible UI alignment issues on small iPhone screens
    • Chart label overlap with many data points
    • Northern hemisphere only for seasonal analysis

What's Changed

Full Changelog: v0.7.0-alpha-preview-3...v0.7.0-alpha-preview-4

v0.7.0-alpha-preview-3

27 Feb 07:29
b0630ba

Choose a tag to compare

Pre-release

Animal Crossing GCN Tracker v0.7.0-alpha-preview-3 Release Notes

Released: February 27, 2025, 2:28am

This hotfix release resolves the critical analytics functionality issue found in v0.7.0-alpha-preview-2. The analytics features now properly display donation data, progress information, and time-based statistics.

Major Fix: Town-Item Linking Resolution

This update addresses the core issue that prevented analytics features from displaying data correctly:

  • Fixed: Analytics dashboard showing "0/0" for all categories
  • Fixed: Timeline charts not displaying donation history
  • Fixed: Seasonal analysis showing no data
  • Fixed: Category progress charts not reflecting actual progress

What's New

Core Data Handling

  • Implemented Town-Item Linking System: Added ensureItemsAreLinkedToCurrentTown() method that:

    • Properly links collectible items to the current town
    • Uses efficient lookup sets to prevent duplicate operations
    • Only links items compatible with the town's game version
    • Automatically runs when the app starts or town changes
  • Enhanced Analytics Service:

    • Completely rewrote the analytics data processing
    • Added robust handling for items with and without donation dates
    • Implemented better seasonal data calculations
    • Improved filtering for timeline data
    • Added caching for better performance

UI Improvements

  • Refined Timeline View:

    • Simplified the interface for better usability
    • Added "All Time" as default filter for better initial experience
    • Fixed date range filtering to include items when appropriate
    • Improved empty state display with helpful messages
  • Enhanced Dashboard:

    • Optimized data loading for better performance
    • Added more reliable progress displays
    • Fixed category progress bar rendering
    • Improved error handling for edge cases

Technical Details

Core Fix Implementation

The fix focused on proper relationship management:

func ensureItemsAreLinkedToCurrentTown() {
    guard let town = currentTown else { return }
    
    // Get all items and currently linked items
    let allFossils = fossilRepository.getAll()
    let townFossils = donationService.getFossilsForTown(town: town)
    
    // Create lookup set for efficient filtering
    let fossilSet = Set(townFossils.compactMap { $0.id })
    
    // Link compatible items not already linked
    for fossil in allFossils where !fossilSet.contains(fossil.id) {
        if let townGame = town.game, fossil.games.contains(townGame) {
            donationService.linkFossilToTown(fossil: fossil, town: town)
        }
    }
    
    // Similar process for bugs, fish, and art...
    // ...
}

Data Flow Improvements

  • Donation dates are now properly utilized for timeline analysis
  • Seasonal data processing correctly handles various season formats
  • Empty data states are handled more gracefully with helpful user guidance
  • Caching mechanism implemented for better performance

Developer Notes

  • Critical Integration: When implementing new features, always ensure proper item-town linking
  • Documentation Update: Analytics Implementation Guide has been updated with detailed information
  • Performance Consideration: The linking solution uses lookup sets for efficient filtering
  • Game Compatibility: Only items compatible with the town's game version are linked

Known Issues

  • Export functionality for analytics data is still pending
  • Advanced filtering options are not yet implemented
  • Minor UI alignment issues may exist on smaller iPhone screens
  • Chart labels may overlap with many data points

Installation

  • Clone the repository
  • Check out the feature-analytics branch
  • Build and run on iOS 17.0+, macOS 14.0+, or visionOS 1.0+
  • Xcode 15.5+ is required

Released: February 27, 2025

What's Changed

Full Changelog: v0.7.0-alpha-preview-2...v0.7.0-alpha-preview-3

v0.7.0-alpha-preview-2

27 Feb 06:16
5eeb2cf

Choose a tag to compare

Pre-release

Animal Crossing GCN Tracker v0.7.0-alpha-preview-2 Release Notes

Released: February 27, 2025
1:15am

This release builds upon the first v0.7.0-alpha preview build by introducing an early implementation of the Analytics GUI with significant UI layout enhancements. While the analytics functionality is not fully operational yet, this release establishes the framework for the upcoming v0.7.0-alpha full release.

Note: This is a preview build of the analytics feature. Some UI elements may not function as expected, but the core structure is in place.

What's New

  • Analytics Dashboard: New visualization components for donation tracking.
  • Timeline Charts: Track donation activity over time with customizable date ranges.
  • Category Completion Charts: Visual representation of museum completion progress.
  • Seasonal Analysis: Visualize bug and fish collection patterns by season.
  • Floating UI Enhancement: Improved category switcher with better layout and usability.

Technical Improvements

Analytics Service

  • Implemented a comprehensive Analytics Service:
    • Created MonthlyDonationActivity tracking for timeline visualization.
    • Added CategoryCompletionData for progress tracking by category.
    • Implemented SeasonalData for seasonal collection analysis.
    • Added data transformation pipelines for chart-ready formats.

UI Components

  • Enhanced UI with new chart components:
    • DonationTimelineView with time period filtering.
    • CategoryCompletionChartView with pie chart visualization.
    • SeasonalAnalysisView for monthly collection breakdown.
    • CategoryProgressView with detailed progress indicators.
    • CategoryMiniProgress for dashboard overviews.

Layout Enhancements

  • Improved floating category switcher:

    • Added proper spacing between category buttons.
    • Enhanced visual separation with dividers.
    • Fixed UI overlap issues with proper z-indexing.
    • Added minimum size constraints to prevent button squashing.
    • Added horizontal scrolling for smaller screens.
  • Optimized ContentView layout:

    • Added proper padding to prevent UI element overlap.
    • Enhanced analytics dashboard integration.
    • Improved tool placement for different platforms.

Cross-Platform Support

  • Enhanced compatibility across platforms:
    • Added hierarchical background support for iOS/macOS.
    • Implemented platform-specific styling.
    • Fixed layout constraints for multi-platform alignment.

Developer Notes

  • The Analytics Service is located in the Services directory.
  • Analytics UI components are in the Views/Analytics directory.
  • The FloatingCategorySwitcher has been completely refactored for better layout. Still needs a lot of work.
  • Platform-specific code is properly isolated with compiler directives.
  • The CategoryManager now tracks analytics mode state.

Future Plans

This is an interim release that moves us closer to the full v0.7.0-alpha release, which will include:

  • Fully functioning analytics with real data integration.
  • Performance optimizations for analytics calculations.
  • Export functionality for analytics data.
  • New Home Screen design.
  • Global search functionality.
  • Villager support with GameCube villagers database.

Known Issues

  • Some UI elements in the analytics dashboard may overlap or appear improperly positioned.
  • Analytics charts may not display real data correctly in all scenarios.
  • The analytics dashboard sheet may have positioning issues on smaller screens.
  • Not all analytics features are fully functional yet.

Installation

  • Clone the repository.
  • Check out the feature-analytics branch.
  • Build and run on iOS 17.0+, macOS 14.0+, or visionOS 1.0+.
  • Xcode 15.5+ is required.

Released: February 27, 2025

What's Changed

Full Changelog: v0.7.0-alpha-preview...v0.7.0-alpha-preview-2

v0.7.0-alpha-preview

26 Feb 08:25
8109307

Choose a tag to compare

v0.7.0-alpha-preview Pre-release
Pre-release

Animal Crossing GCN Tracker v0.7.0-alpha-preview Release Notes

Released: February 26, 2025 3:22 AM

This release represents a significant architectural upgrade from v0.6.2-alpha, introducing major improvements to the model relationship system, a new service layer for business logic, and enhanced progress tracking functionality.

Important Notice: This version breaks save compatibility with previous versions. Users upgrading to v0.7.0-alpha-preview will need to set up their towns and collections again.

What's New

  • Enhanced Town Management: Towns now store player name, game version, and creation date.
  • Progress Tracking: Visual progress indicators for donation completion by category.
  • Service Layer Implementation: New DonationService for centralized business logic.
  • Data Transfer Objects: Added DTOs for cleaner view presentation.
  • ID-based Relationships: Improved model relationships using ID references.

Technical Improvements

Service Layer

  • Implemented a comprehensive Service Layer pattern:
    • Created DonationService to manage relationships between towns and collectibles.
    • Added methods for linking and unlinking items to towns.
    • Implemented progress tracking functions to calculate completion percentages.
    • Created clean separation between data access and business logic.

Data Transfer Objects

  • Introduced a DTO layer for transforming models into view-friendly objects:
    • Defined CollectibleDTO protocol to ensure consistency.
    • Implemented FossilDTO, BugDTO, FishDTO, and ArtDTO.
    • Created TownDTO with progress information.
    • Added formatters for consistent date presentation.

Enhanced Model Relationships

  • Updated data models with expanded relationships:
    • Expanded Town model with playerName, gameVersion, and creationDate.
    • Added townId to all collectible models for clean relationships.
    • Implemented efficient filtering by town.
    • Improved type safety with explicit protocol conformance.

DataManager Updates

  • Enhanced DataManager implementation:
    • Updated to use the service layer for business logic operations.
    • Added methods for town-specific queries.
    • Implemented DTO conversion methods.
    • Added progress tracking access points.
    • Created initialization function for new towns.

Developer Notes

  • The Service Layer is located in the new Services directory.
  • DTOs are found in Models/DTOs directory.
  • All collectible models now have a townId property linking them to towns.
  • The DataManager now uses the service layer for business logic.
  • Progress tracking can be accessed via methods in the DataManager.

Future Plans

This release (v0.7.0-alpha-preview) is setting the foundation for:

  • Analytics GUI with data visualization in the full v0.7.0-alpha release.
  • Expanded multi-game support beyond GameCube version in v0.7.x.
  • Hand-drawn icons and thumbnails in v0.8.0.
  • Enhanced iOS features (haptics, widgets) in v0.9.0.
  • A full-featured Animal Crossing companion app by v1.0.0.

Known Issues

  • Unit tests are still being developed for the new service layer.
  • UI has not been fully updated to leverage all new features.
  • Performance with very large datasets (1000+ items) may need optimization.

Installation

  • Clone the repository.
  • Check out the code-cleanup branch.
  • Build and run on iOS 17.0+, macOS 14.0+, or visionOS 1.0+.
  • Xcode 15.5+ is required.

What's Changed

Full Changelog: v0.6.2-alpha...v0.7.0-alpha-preview

v0.6.2-alpha

26 Feb 05:57
642d698

Choose a tag to compare

v0.6.2-alpha Pre-release
Pre-release

Animal Crossing GCN Tracker v0.6.2-alpha Release Notes

Released: February 26, 2025 12:52 AM

This release introduces significant architectural improvements aimed at enhancing code maintainability, testability, and future feature development. While user-facing changes are minimal, these structural updates lay a strong foundation for upcoming enhancements.

What's New

  • Repository Pattern Implementation: Introduced a structured abstraction layer between the data model and application logic.
  • Model-View Separation: Successfully separated view code from data models for better modularity.
  • Code Organization: Refactored project structure to improve clarity and maintainability.

Technical Improvements

Repository Pattern

  • Implemented a structured Repository Pattern:
    • Defined base repository protocols for standard CRUD operations.
    • Developed CollectibleRepository protocol with extended functionality for collectible items.
    • Introduced concrete repository implementations for all model types.
    • Centralized error handling for better debugging and stability.

Model-View Separation

  • Extracted views from model files to maintain a clear separation of concerns:
    • Created dedicated DetailView files for each collectible type.
    • Updated binding implementations to preserve functionality.
    • Removed SwiftUI dependencies from model files to streamline architecture.

Code Quality Enhancements

  • Fixed circular references in CollectibleItem extensions.
  • Resolved model ambiguity by eliminating redundant model files.
  • Improved documentation for better developer accessibility.
  • Strengthened error handling for increased application stability.

Developer Notes

  • The Repository Pattern implementation is located in the new Repositories directory.
  • Base repository functionality is centralized in BaseRepository.swift.
  • Each model now has its dedicated repository with model-specific methods.
  • DataManager now delegates data operations to repositories, enhancing modularity and scalability.

Future Plans

This release (v0.6.2-alpha) is a key step toward my big planned v0.7.0-alpha update, paving the way for:

  • Enhanced model relationships in v0.6.5-alpha.
  • Improved donation tracking in v0.6.5-alpha.
  • Advanced filtering and sorting capabilities.
  • Multi-town support for expanded gameplay tracking.
  • New user interface with hand drawn icons.

Known Issues

  • No major new issues introduced in this release.
  • Refer to GitHub Issues for ongoing enhancements and bug fixes.

Installation

  • Clone the repository.
  • Open in Xcode 15.0 or later.
  • Build and run on iOS 17.0+, macOS 14.0+, or visionOS 1.0+.

What's Changed

Full Changelog: v0.6.1-alpha...v0.6.2-alpha

v0.6.1.-alpha; Donation Date Tracking

18 Dec 23:16
0c0bc9c

Choose a tag to compare

Pre-release

v0.6.1-alpha Pre-release

The Donation Timestamp Update
Released: December 18, 2024 2:05 AM

Major Features

Donation Timestamp System

  • Added timestamp tracking for all museum donations
  • Built DetailMoreInfoView to display donation info and (soon) much more
  • Smooth SwiftData integration for persistent tracking
  • Works great across iOS, iPadOS, and macOS

DetailMoreInfoView Updates

  • New expandable info panel in item details
  • Currently shows donation timestamps
  • Built to be expandable - will be adding way more item info soon
  • Clean, simple interface that works well on all devices
    Screenshot 2024-12-18 at 5 17 42 PM

Backend & Technical

  • Enhanced SwiftData models for timestamp support
  • Better organized data model structure
  • Improved donation toggles and state management
  • Added debug logging because why not

UI Improvements

  • New "More info" button when you click on an item. Currently shows the date, but will house all the new item info I mentioned earlier in the coming updates.

Technical Stuff

  • New timestamp protocol and extensions
  • Updated core models to support timestamps
  • DetailMoreInfoView component for future expansion
  • Organized everything better for easier updates
  • Works perfectly across all Apple platforms (seriously, tested extensively)

Known Issues

  • Search still only works in current category (just haven't gotten around to it)

Coming Soon

  • The DetailMoreInfoView is going to become a central hub for all item information. I'm planning to include:
    • Which games each item appears in (since we now track multiple AC games)
    • For fish: Everything you need to know - seasons, time of day, shadow size
    • For fossils: Whether it's standalone or part of a larger set, and thinking about adding some cool trivia like what prehistoric era it's from
    • For art: Authentication tips and details
  • Adding the ability to set custom donation dates - this way if you're coming from another tracking method or just logging based off of when you previously donated something, you can save it properly
  • Python version dropping this week - I'm making this half for fun and half for practice, but there's actually a practical reason too: Swift apps are a pain to self-install, so this will let people actually test it out. Thinking about sharing it on Reddit to get some early feedback before the App Store release.
  • More improvements as I think of them - I'm always open to suggestions!

Development Notes

  • Xcode 15+ required
  • iOS/iPadOS 17.0+ or macOS 14.0+
  • Uses SwiftData & SwiftUI
  • Complete feature parity across platforms

Installation

  1. Clone the repo
  2. Open in Xcode 15+
  3. Build and run on any supported platform

What's Changed

Full Changelog: v0.6.0-alpha...v0.6.1-alpha

v0.6.0-alpha

16 Dec 07:05
8240281

Choose a tag to compare

v0.6.0-alpha Pre-release
Pre-release

The Town and Games Update

Released: December 16, 2024 2:05 AM

Major Features

Town System Implementation

  • Added new Town feature allowing players to name their town
  • Implemented SwiftData integration for town persistence
  • Cross-platform town editing interface for both iOS and macOS

Multi-Game Support Framework

  • Implemented ACGame enum system for game version tracking
  • Added foundational multi-game support structure
  • Prepared database schema for cross-game item tracking
  • Updated all item models with game version support
  • Reformatted data structures for better maintainability
  • Added ACGCN tags to all existing items (fossils, bugs, fish, and art)

Backend Improvements

  • New DataManager system for centralized data handling (mostly for the town struct for now)
  • Enhanced SwiftData integration with proper error handling
  • Improved cross-platform compatibility
  • Optimized data fetching and persistence

UI/UX Enhancements

  • Platform-specific town editing interfaces
  • Custom macOS window sizing and controls
  • Improved form handling and data validation

Technical Details

New Components

  • Town.swift: Core town data model with SwiftData integration
  • DataManager.swift: Centralized data management system
  • EditTownView.swift: Cross-platform town editing interface
  • Games.swift: Game enumeration and configuration system

Architecture Changes

  • Implemented ObservableObject pattern for UI state management
  • Added proper main thread handling for UI updates
  • Enhanced error handling for database operations
  • Improved model container initialization
  • Restructured data models to support game versioning
  • Enhanced fish collection with game-specific data
  • Prepared for expansion from 40 to 80 fish entries
  • Added support for multiple Animal Crossing titles:
    • Animal Crossing GameCube (ACGCN)
    • Wild World (ACWW)
    • City Folk (ACCF)
    • New Leaf (ACNL)
    • New Horizons (ACNH)

Cross-Platform Support

  • Platform-specific UI implementations using #if os(macOS)
  • Consistent behavior across iOS and macOS
  • Optimized layouts for different screen sizes
  • Modern navigation APIs for iOS

Known Issues

  • Search still limited to current category
  • No transition animations for category switches

Future Plans

  • Complete New Horizons fish data integration
  • Expand fish collection to 80 entries
  • Add sea creatures category
  • Implement game-specific filtering system
  • Consider project rebranding to reflect broader scope
  • Expanded town customization options
  • Multi-town support preparation
  • Enhanced data migration system
  • Additional platform-specific optimizations
  • Villager management system (up to 15) with birthday tracking
  • Calendar system with game-specific holiday tracking
  • Special event tracking (fishing tourneys, etc.) based on selected game
  • Donation date tracking with visual progress graphs
  • Haptic feedback support for iOS
  • Potential Python port for expanded desktop user base

Development Notes

  • Built with Xcode 15+
  • Requires iOS 17.0 or macOS 14.0 and above
  • Uses SwiftData for persistence
  • Implements SwiftUI for all user interfaces

Installation

  1. Clone the repository
  2. Open in Xcode 15 or later
  3. Build and run on iOS 17.0+ or macOS 14.0+

Feedback and Contributions

  • Report issues on GitHub
  • Pull requests welcome

Screenshots:

iOS


Released by Brock Jenkinson (@jacuzzicoding)
December 16, 2024

What's Changed

Full Changelog: v0.5.1-alpha...v0.6.0-alpha

v0.5.1-alpha Mac OS Fix

07 Dec 08:59
ab498c4

Choose a tag to compare

Pre-release

Release Date: December 7, 2024, 3:51 AM EST

This update resolves the critical macOS category switching bug while implementing a more organized project structure. Stable across iOS, iPadOS, and macOS platforms.


TL;DR:

  • Fixed macOS category switching bug (#17)
  • Implemented new modular file organization
  • Enhanced FloatingCategorySwitcher with improved state management
  • Added macOS-specific UI improvements
  • Better code organization and documentation

Technical Details:

  • CategoryManager for state handling
  • Enhanced hit testing and button interaction on macOS
  • Reorganized project into clear directory structure (App/, Models/, Views/)
  • Added Constants.swift for utility constants
  • Improved navigation destination logic
  • Optimized FloatingCategorySwitcher layout for both iOS and macOS

Screenshots:

iOS Museum Tracker

iOS Museum Tracker

macOS Museum Tracker

macOS Museum Tracker

Known Issues:

  • Search still limited to the current category.

What's Changed

Full Changelog: v0.5.0-alpha...v0.5.1-alpha

v0.5.0-alpha UI Update

23 Nov 08:23
6f57a8c

Choose a tag to compare

Pre-release

Release Date: November 23, 2024 3:18 am

This update brings the first major UI overhaul while building on the code cleanup from v0.4.3-alpha. Stable on iOS/iPadOS, but has some known issues on macOS.

TLDR;

New floating category buttons instead of the top selector
Each category now has a unique icon
Main view defaults to fossils and can be switched. It is no longer a toggle on/off selection.
Enhanced search and navigation
Minor animation improvements
Foundation for future UI improvements

Technical Details:

Enhanced CollectibleItem protocol now conforms to Hashable
Added symbolName to category enum for icons
New FloatingCategorySwitcher and CollectibleRow structs
Updated CategorySection for better item presentation
Maintained existing SwiftData integration

Known Issues:

macOS breaks when switching categories (#17)
Search limited to current category
Needs additional macOS testing

What's Changed

Full Changelog: v0.4.3-alpha...v0.5.0-alpha

What's Changed

Full Changelog: v0.4.3-alpha...v0.5.0-alpha