Remove Apple Authentication and Add Name Settings Feature#28
Conversation
- Remove all Apple Sign-In components and dependencies - Delete AuthenticationView, AuthenticationManager, and KeychainService - Update MainContentView to skip authentication and go directly to dashboard - Create SimpleProfileView for non-authenticated profile management - Remove authentication references from DashboardView and DashboardViewModel - Clean up entitlements by removing Sign in with Apple capability - App now starts directly without any sign-in requirement - All user data stored locally using UserDefaults This change simplifies the app by removing the authentication barrier, allowing users to start using the app immediately without signing in. π€ Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Features: - Add name setting capability in AccountSettingsView with personalized dashboard greetings - Create NameInputSheet component for user-friendly name entry - Update TimeUtils to handle empty names gracefully (returns generic greetings) - Change UserProfile default name from "User" to empty string - Connect AccountSettingsView to SimpleProfileView for easy access Content Updates: - Update email addresses from sunshadeapp@gmail.com to sunshaidapp@gmail.com - Remove duplicate App Information section from HelpSupportView (available in Settings) - Update privacy FAQ to emphasize local data storage - Redesign PrivacyNoticeView with improved card-based layout Test Updates: - Fix UserProfileTests to allow empty default names - Update TimeUtilsTests to verify empty name handling returns generic greetings - All TimeUtils tests passing, core functionality verified π€ Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Wrap all UserDefaults writes in DispatchQueue.main.async to ensure they happen on main thread - Prevent recursive @published updates in skinType didSet handler - Resolves "Publishing changes from background threads is not allowed" warnings during tests - All UserProfile tests now pass without threading violations π€ Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
|
Claude finished @popand's task ββ View job Pull Request Review Complete βI've completed a comprehensive review of this PR. Overall, this is a well-executed major refactor that removes Apple authentication and adds name personalization features. Here's my detailed feedback: β StrengthsThreading Fixes (Excellent Work)
Clean Architecture
User Experience
|
- Remove duplicate SettingsTemperatureUnit enum - Use existing TemperatureUnit enum from UserProfile consistently - Direct binding to userProfile.temperatureUnit instead of separate state - Remove unnecessary loadCurrentSettings() function and onAppear call - Cleaner integration with existing data model - Uses temperatureUnit.displayName for better subtitle formatting Resolves duplication issue and simplifies temperature unit management. π€ Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
UserProfile Standardization: - Replace @StateObject with @ObservedObject for UserProfile.shared across all views - Ensures consistent usage of singleton pattern without creating new instances - Fixed in AccountSettingsView, MainContentView, and SimpleProfileView Name Length Validation: - Add maxNameLength constant (50 characters) to NameInputSheet - Implement real-time name truncation using modern onChange syntax - Add character counter with visual feedback (changes color when approaching limit) - Prevents names from exceeding maximum length during input - Uses iOS 17+ onChange syntax to fix deprecation warning Improvements: - Better user experience with clear length constraints - Consistent data management across all UserProfile usages - Visual feedback for users approaching character limit π€ Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
|
Claude finished @popand's task ββ View job Comprehensive PR Review βI've completed a thorough review of this merged PR that removes Apple authentication and adds name personalization features. Here's my detailed assessment: PR Review Tasks
β StrengthsExcellent Threading Fixes
Clean Architecture & Code Quality
User Experience Design
Complete Authentication Removal
|
Summary
This PR completely removes Apple authentication from the SunshAid app and introduces a comprehensive name settings feature that personalizes the user experience.
π« Authentication Removal
AuthenticationManager,KeychainService, and authentication viewsSimpleProfileView⨠Name Settings Feature
π¨ UI/UX Improvements
PrivacyNoticeViewwith modern card-based layoutHelpSupportViewto remove duplicate App Information sectionπ§ Content Updates
sunshadeapp@gmail.comtosunshaidapp@gmail.comπ§΅ Technical Fixes
UserProfileby wrapping UserDefaults operations inDispatchQueue.main.asyncπ§ͺ Test Updates
UserProfileTeststo allow empty default namesTimeUtilsTeststo verify empty name handlingTest plan
π€ Generated with Claude Code