Skip to content

Latest commit

 

History

History
147 lines (120 loc) · 5.97 KB

File metadata and controls

147 lines (120 loc) · 5.97 KB

Changelog

All notable changes to NativeAppTemplate will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

[3.2.3] - 2026-05-08

Fixed

  • EntityAdapterError (JSON:API parsing) now conforms to CodedError so failures — including login against an invalid server — surface with [NATIVEAPPTEMPLATE-2006..2008] prefixes instead of opaque descriptions
  • KeychainStoreError now conforms to CodedError with new [NATIVEAPPTEMPLATE-4001..4004] codes for persistence failures

[3.2.2] - 2026-05-04

Changed

  • Slim onboarding to a single welcome screen using the sparkles SF Symbol
  • Replace logo and hero imagesets on sign-up/sign-in with Strings.appName text and sparkles
  • Introduce Strings.appName ("Native App Template") as the single source of truth for the in-app product name
  • Set CFBundleDisplayName to "Native App Template"
  • Refresh AppIcon to the upstream nativeapptemplate-icon-composer-foreground artwork

Removed

  • Onboarding model, repository/protocol, view model, and related tests
  • Onboarding 1–4 imagesets, hero imageset, and Logo imageset

[3.2.1] - 2026-05-02

Changed

  • Clarify Shop list card tag labels as "completed item tags" / "all item tags"

[3.2.0] - 2026-05-02

Removed

  • NFC, QR code, and Scan functionality (Phase 2A-2)
  • tagsScanned count and howToUse fields from ItemTag
  • maximum_name_length from server permissions; moved to client Constants
  • Onboarding reload ceremony
  • Dead code: ImageSaver, composited(), unused colors and fonts, dead Date helper

Changed

  • Renamed "Number Tag" to "Item Tag" across labels and identifiers
  • Ported ItemTag schema and generic CRUD UI from paid iOS (Phase 2A-1, 2A-3)
  • Display completedAt as yyyy/MM/dd HH:mm regardless of locale
  • Added client-side length caps and truncation for Shop name/description
  • Wrapped String constants in enum Strings namespace
  • Slimmed onboarding to 4 slides; introduced ImageOrientation enum
  • Tightened ItemTag labels and silenced success toasts on complete/idle
  • Read API endpoint from env vars in Debug builds
  • Renamed error code prefix NATI- to NATIVEAPPTEMPLATE- and env var prefix NATEMPLATE_API_ to NATIVEAPPTEMPLATE_API_
  • Swiftier String predicates; replaced custom helpers with stdlib equivalents

Added

  • Unit tests for previously untested Models and Date extension
  • CONTRIBUTING.md and CODE_OF_CONDUCT.md

Fixed

  • Onboarding flow and asset cleanup
  • README: dropped stale NFC/QR feature lines and updated env var references

[3.1.1] - 2026-04-06

Changed

  • Replace PNG-based app icon with SVG-based .icon format
  • Move Assets.xcassets into Resources/ directory

[3.1.0] - 2026-04-05

Added

  • Pagination support for item tags list
  • CodedError system with NATIVEAPPTEMPLATE-XXXX prefixed error codes
  • App version display in settings
  • Design system constants (spacing, animation, glass, layout, corner radius)
  • GlassButtonStyle and GlassCard components with glassmorphism styling
  • Explicit Sendable conformance to model structs
  • SwiftFormat for code formatting (with --maxwidth 120)
  • SwiftFormat lint check to CI
  • @preconcurrency import CoreNFC and nonisolated(unsafe) for Sendable fixes
  • Model tests for ItemTagType, ItemTagState, and ScanState
  • Tests for TabViewModel, MessageBus, Utility, and String extensions

Changed

  • Update to iOS 26 and remove deprecated UIRequiresFullScreen
  • Replace asset catalog colors with palette-based color system
  • Replace Inter font with Apple system font
  • Replace confirmationDialog with alert for consistent centered presentation
  • Replace hardcoded spacing and corner radius values with NativeAppTemplateConstants
  • Apply ultraThinMaterial backgrounds to scan views and ItemTagDetailView
  • Use semi-transparent card background for list rows
  • Update Lock toggle to button style in ItemTagDetailView
  • Reorganize settings sections
  • Clean up Settings: remove Discussions, update contact, remove dead code
  • Remove SwiftyJSON dependency, use JSONSerialization
  • Moved .swiftlint.yml to repository root with updated rules
  • Applied SwiftFormat across all source files
  • Fixed all SwiftLint violations (line length, cyclomatic complexity, etc.)

Security

  • Prevent sensitive data from leaking to iOS console in Release builds
  • Replace #if DEBUG print() with os.Logger for structured, privacy-aware logging
  • Add TLS certificate pinning for API connections
  • Remove backdoor authentication bypass

Fixed

  • Fix accept privacy/terms views not displaying
  • Fix typo startSesstionstartSession in NFCManager
  • Fix typo prmissionsResponsepermissionsResponse in SessionController
  • Fix Event.refresh ignoring action parameter and hardcoding "Refresh"
  • Fix data race warning when sending NFCNDEFMessage across isolation boundaries
  • Remove unused navigationPathStats state variable from AppTabView
  • Remove hardcoded toolbar background from ScanView

[1.1.0] - 2025-07-26

Changed

  • Updated for iOS 18 support
  • Bug fixes

[1.0.0] - 2024-10-30

Added

  • Initial release of NativeAppTemplate
  • 100% Swift, 99% SwiftUI (UIKit only for email screen via MessageUI)
  • @Observable macro (iOS 17+) for state management
  • MVVM architecture with repository pattern
  • Onboarding flow
  • Sign Up / Sign In / Sign Out
  • Email Confirmation
  • Forgot Password
  • Input Validation
  • CRUD operations for Shops
  • URL path-based multitenancy
  • User invitation to organizations
  • Role-based permissions and access control
  • NFC tag reading and writing
  • SwiftLint integration
  • Swift Testing framework for unit tests
  • GitHub Actions CI for automated testing

Technical

  • Protocol-oriented repository pattern for testability
  • DataManager as central dependency injection container
  • Token-based authentication with automatic refresh
  • NavigationStack with path-based routing
  • JSON:API adapter layer