KMM (Android/Shared): - Add strings.xml with 200+ localized strings - Add translation files for es, fr, de, pt languages - Update all screens to use stringResource() for i18n - Add Accept-Language header to API client for all platforms iOS: - Add L10n.swift helper with type-safe string accessors - Add Localizable.xcstrings with translations for all 5 languages - Update all SwiftUI views to use L10n.* for localized strings - Localize Auth, Residence, Task, Contractor, Document, and Profile views Supported languages: English, Spanish, French, German, Portuguese 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
iOS Subviews
This folder contains all reusable SwiftUI view components, organized by feature area. Each file contains exactly one view with its own preview.
📁 Folder Structure
Subviews/
├── Common/ (Shared UI components)
├── Auth/ (Login/Register components)
├── Residence/ (Property-related components)
└── Task/ (Task-related components)
📋 Component List
Common (2 components)
- ErrorView.swift - Full-screen error display with retry button
- ErrorMessageView.swift - Inline error message with dismiss button
Auth (2 components)
- LoginHeader.swift - App logo and title for login screen
- RegisterHeader.swift - Icon and welcome text for registration
Residence (7 components)
- SummaryCard.swift - Overview card with property/task statistics
- SummaryStatView.swift - Individual stat display (icon, value, label)
- ResidenceCard.swift - Property card with address and task summary
- TaskStatChip.swift - Small chip showing task count by status
- EmptyResidencesView.swift - Empty state for no properties
- PropertyHeaderCard.swift - Detailed property header with address
- PropertyDetailItem.swift - Small property detail (beds, baths, sqft)
Task (6 components)
- TaskPill.swift - Small colored pill showing task counts
- StatusBadge.swift - Task status badge (pending, in progress, etc.)
- PriorityBadge.swift - Task priority badge (high, medium, low)
- EmptyTasksView.swift - Empty state for no tasks
- TaskCard.swift - Full task card with all details and actions
- TasksSection.swift - Complete tasks section with cancelled tasks
🎨 Preview Support
Every component includes a #Preview for easy testing in Xcode Canvas.
✅ Adding to Xcode Project
IMPORTANT: These files need to be added to the Xcode project to compile.
Steps:
- Open
iosApp.xcodeprojin Xcode - Right-click the
iosAppfolder in Project Navigator - Select "Add Files to 'iosApp'..."
- Navigate to and select the entire
Subviewsfolder - Make sure:
- ✅ "Create groups" is selected (NOT "Create folder references")
- ✅ "Add to targets: iosApp" is checked
- ❌ "Copy items if needed" is UNchecked
- Click "Add"
Verify
Build the project (⌘+B). All 17 subview files should compile successfully.
🗑️ Old Files to Delete
Delete these consolidated files from the root iosApp directory:
- ❌
AuthSubviews.swift - ❌
CommonSubviews.swift - ❌
ResidenceSubviews.swift - ❌
TaskSubviews.swift - ❌
DELETE_THESE_FILES.txt
These were temporary files and have been replaced by the individual files in this Subviews folder.
📝 Usage
All main views (LoginView, ResidencesListView, ResidenceDetailView, etc.) have already been updated to use these subviews. The components are automatically available once added to the Xcode project.
Example:
import SwiftUI
struct MyView: View {
var body: some View {
VStack {
LoginHeader() // Automatically available
ErrorMessageView(message: "Error", onDismiss: {})
}
}
}
Total Components: 17 individual view files Total Previews: 17 (one per file) Organization: Feature-based folder structure