Skip to content

Commit c236453

Browse files
committed
chore: Add comprehensive changelog and update README for v1.5.1 release
- Add CHANGELOG.md with detailed version history from v1.3.0 to v1.5.1 - Update README.md with 'What's New in v1.5.1' section - Document smart delete features and photo library integration - Include technical improvements and user experience enhancements
1 parent ebe7f58 commit c236453

File tree

2 files changed

+205
-0
lines changed

2 files changed

+205
-0
lines changed

CHANGELOG.md

Lines changed: 185 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,185 @@
1+
# Changelog
2+
3+
All notable changes to the Frame Extraction Tool will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
## [1.5.1] - 2025-08-20
9+
10+
### 🗑️ Enhanced Delete Functionality
11+
- **BREAKING ENHANCEMENT**: Delete button now removes frames from BOTH app AND Photos library
12+
- Long-press delete removes frames from Photos library automatically
13+
- Multi-select delete removes all selected frames from Photos library
14+
- No more orphaned photos cluttering your library!
15+
16+
### 🔧 Technical Improvements
17+
- Store photo asset identifiers when saving frames for proper deletion tracking
18+
- Enhanced `saveImageToPhotos()` method to return asset identifiers
19+
- Added `deleteFromPhotoLibrary()` method with proper authorization handling
20+
- Improved delete methods to handle both app memory and photo library deletion
21+
- Support for both regular photos and custom album deletion
22+
- Added comprehensive error handling for photo library operations
23+
24+
### 📱 User Experience
25+
- Seamless deletion experience - users don't need manual photo cleanup
26+
- Automatic photo library permission requests for write access
27+
- Maintains haptic feedback for all delete operations
28+
- Graceful handling when photo assets are already deleted or unavailable
29+
30+
### ⚡ Performance
31+
- Asynchronous photo library deletion prevents UI blocking
32+
- Background deletion tasks for smooth bulk operations
33+
- Proper async/await implementation with continuation-based error handling
34+
35+
## [1.5.0] - 2025-08-19
36+
37+
### ✨ Major New Feature: Advanced Delete Controls
38+
- **Long-press to delete**: Long-press any extracted frame for instant deletion with confirmation
39+
- **Multi-select mode**: Tap "Select" button to enter bulk selection mode
40+
- **Visual selection indicators**: Blue checkmarks and overlays show selected frames
41+
- **Smart toolbar**: Dynamic buttons that adapt based on selection state
42+
43+
### 🎨 UI/UX Enhancements
44+
- Enhanced FrameLibraryView with comprehensive selection state management
45+
- Blue selection overlay with rounded corners for selected frames
46+
- Checkmark circles in top-right corner of selected frames
47+
- "Cancel" button appears during selection mode for easy exit
48+
- "Delete" button only enabled when frames are selected
49+
- Confirmation dialogs prevent accidental single-frame deletion
50+
51+
### 🔧 Technical Architecture
52+
- Added `deleteExtractedFrame()` method to VideoManager
53+
- Added `deleteExtractedFrames()` for efficient bulk deletion
54+
- Added `clearAllExtractedFrames()` method for future use
55+
- Enhanced FrameThumbnailView with selection state support
56+
- Comprehensive state management with `Set<UUID>` for efficient lookups
57+
58+
### 🎯 Haptic Feedback
59+
- Contextual haptic feedback for all delete operations
60+
- Light feedback for single deletion
61+
- Medium feedback for bulk deletion
62+
- Heavy feedback for clear all operations
63+
- Respects user's haptic feedback preference settings
64+
65+
## [1.4.2] - 2025-08-18
66+
67+
### 🛠️ Build System Improvements
68+
- Fixed app icon configuration for CodeMagic CI/CD builds
69+
- Changed `ASSETCATALOG_COMPILER_APPICON_NAME` from 'FrameExtractionTool' to 'AppIcon'
70+
- Updated AppIcon.appiconset with proper icon sizes for all iOS devices
71+
- Added complete icon assets (20x20 to 1024x1024) for iPhone, iPad, and App Store
72+
- Resolved CodeMagic build failures related to missing app icon assets
73+
74+
### 📱 App Icon Support
75+
- Generated all required app icon sizes using automated tools
76+
- Support for iPhone, iPad, and marketing icons
77+
- Proper asset catalog structure for consistent builds across platforms
78+
79+
## [1.4.1] - 2025-08-18
80+
81+
### 🔧 CI/CD Configuration
82+
- Removed email notifications from CodeMagic builds to prevent delivery issues
83+
- Simplified build artifact workflow for better reliability
84+
- Updated bundle identifier for CodeMagic builds: `caspernyong.FrameExtractionTool.CMTest`
85+
- Removed Slack integration from CI/CD workflows
86+
87+
## [1.4.0] - 2025-08-14
88+
89+
### 🎨 iOS Design Language Update
90+
- Comprehensive UI refresh using iOS SDK design patterns
91+
- Updated all buttons to use `.borderedProminent` style
92+
- Enhanced material design with proper system colors
93+
- Improved accessibility and visual consistency
94+
- Modern iOS 17+ design language throughout the app
95+
96+
### 🎯 Video Player Enhancements
97+
- **16 video scaling options**: From 0.25x to 4.0x zoom levels
98+
- Custom video player without default Apple controls for professional look
99+
- Enhanced timeline controls with better touch targets
100+
- Improved video player overlay UI with floating controls
101+
- Better gesture handling for seek operations
102+
103+
### 🏠 Custom Album Feature
104+
- **Save to custom photo albums**: Create and organize extracted frames
105+
- Settings integration for custom album name configuration
106+
- Album creation and management through Photos framework
107+
- User preference persistence for album settings
108+
109+
### ⚠️ Discard Changes Protection
110+
- **Unsaved changes detection**: Warns users before leaving video player
111+
- Smart detection of marked frames that haven't been extracted
112+
- Confirmation dialog prevents accidental loss of work
113+
- Seamless integration with navigation flow
114+
115+
### 🎛️ Settings & Configuration
116+
- Enhanced SettingsView with custom album controls
117+
- Haptic feedback toggle for user preference
118+
- Album name configuration with validation
119+
- App version display and developer information
120+
121+
## [1.3.0] - 2025-08-14
122+
123+
### 📱 Core App Foundation
124+
- Initial SwiftUI-based iOS application
125+
- Video selection from photo library using PhotosPicker
126+
- Custom video player with AVKit integration
127+
- Frame marking during video playback
128+
- High-quality frame extraction using AVFoundation
129+
- Photo library integration for saving extracted frames
130+
131+
### 🎯 Key Features
132+
- Video timeline with visual frame markers
133+
- Extraction progress tracking with animated UI
134+
- Frame library for viewing extracted images
135+
- Full-screen image viewing with zoom and pan
136+
- Onboarding tutorial for new users
137+
- Comprehensive help system
138+
139+
### 🛠️ Technical Foundation
140+
- Modern Swift concurrency with async/await
141+
- MainActor isolation for UI operations
142+
- ObservableObject pattern for state management
143+
- Photos framework integration
144+
- Core Image processing pipeline
145+
- Haptic feedback system
146+
147+
### 📖 Documentation & Setup
148+
- Comprehensive README with screenshots
149+
- GitHub Actions CI/CD pipeline
150+
- Developer documentation
151+
- Project roadmap and contribution guidelines
152+
153+
---
154+
155+
## Development Information
156+
157+
### 🏗️ Architecture
158+
- **Framework**: SwiftUI for modern iOS development
159+
- **Video Processing**: AVFoundation for high-quality frame extraction
160+
- **Photo Integration**: Photos/PhotosUI for library access
161+
- **State Management**: Combine with ObservableObject pattern
162+
- **Concurrency**: Modern Swift async/await patterns
163+
164+
### 🚀 CI/CD Platforms
165+
- **GitHub Actions**: Automated builds on push/PR with iOS 26 SDK support
166+
- **CodeMagic**: Professional CI/CD with unsigned build artifacts
167+
- **Build Outputs**: Unsigned IPA files for development and testing
168+
169+
### 📄 Developer Account Status
170+
- **No Apple Developer Program membership**: All builds are unsigned
171+
- **Open Source**: Full source code available for learning and contribution
172+
- **Educational Focus**: Designed for development learning and exploration
173+
174+
### 🎯 Project Goals
175+
- Demonstrate modern iOS development practices
176+
- Showcase SwiftUI and AVFoundation capabilities
177+
- Provide practical video frame extraction utility
178+
- Maintain clean, documented, and teachable codebase
179+
180+
---
181+
182+
## Links
183+
- **Repository**: [GitHub - FrameExtractionTool](https://github.com/CasperOng/FrameExtractionTool)
184+
- **Issues**: [Report bugs or request features](https://github.com/CasperOng/FrameExtractionTool/issues)
185+
- **Developer**: Built with ❤️ by Casper N.Y. Ong using SwiftUI and GitHub Copilot

README.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,28 @@ A powerful iOS app for extracting high-quality frames from videos with precision
1010
📍 **Frame Marking** - Mark specific frames during playback
1111
💾 **High-Quality Extraction** - Extract frames at original video quality
1212
📚 **Custom Album Support** - Save extracted frames to custom photo albums
13+
🗑️ **Smart Delete** - Remove frames from both app AND Photos library
14+
📱 **Long-Press & Multi-Select** - Advanced deletion with haptic feedback
1315
**Modern UI** - Built with SwiftUI and iOS design guidelines
1416

17+
## 🆕 What's New in v1.5.1
18+
19+
### 🗑️ **Complete Photo Library Integration**
20+
- **Smart Delete**: Deleting frames now removes them from BOTH the app AND your Photos library
21+
- **No More Clutter**: No orphaned photos left behind in your camera roll
22+
- **Seamless Experience**: Automatic photo library cleanup with proper permissions
23+
24+
### 📱 **Enhanced Delete Features**
25+
- **Long-Press Delete**: Hold any frame to delete it instantly (with confirmation)
26+
- **Multi-Select Mode**: Tap "Select" to choose multiple frames for bulk deletion
27+
- **Visual Feedback**: Blue selection overlays and haptic feedback for all operations
28+
- **Smart Controls**: Context-aware toolbar that adapts to your selection
29+
30+
### **Performance & Reliability**
31+
- **Background Deletion**: Photo library cleanup happens asynchronously
32+
- **Error Handling**: Graceful handling of already-deleted or missing assets
33+
- **Permission Management**: Automatic photo library write access requests
34+
1535
## ⚠️ Developer Account Status
1636

1737
**Important Notice**: This project is developed without an Apple Developer Program membership. This means:

0 commit comments

Comments
 (0)