Skip to main content

app-planner

Guides you through comprehensive iOS/Swift app planning and analysis. Use for new apps (concept to architecture) or existing apps (audit current state, plan improvements, evaluate tech stack). Covers product planning, technical decisions, UI/UX design, and distribution strategy.

Source facts

Repository
rshankras/claude-code-apple-skills
Last source activity
July 16, 2026 at 12:36
Detected SKILL.md language
English
Stars
782
Forks
72

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
4 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
app-planner
description
Guides you through comprehensive iOS/Swift app planning and analysis. Use for new apps (concept to architecture) or existing apps (audit current state, plan improvements, evaluate tech stack). Covers product planning, technical decisions, UI/UX design, and distribution strategy.
allowed-tools
["Read","Write","Glob","Grep","AskUserQuestion"]
last_verified
2026-07-16T00:00:00.000Z
review_by
2027-06-22T00:00:00.000Z
os_version
iOS 27 / macOS 27
# App Planner Skill Comprehensive guide for planning iOS/Swift applications and analyzing existing apps, covering product, technical, UI/UX, and distribution considerations. ## When This Skill Activates Use this skill when the user: **For New Apps:** - Wants to plan a new iOS/Swift app from scratch - Asks about app planning, architecture planning, or project setup - Needs help defining features, requirements, or technical stack - Wants to create a comprehensive app plan or design document - Asks "what should I consider when building a new app?" **For Existing Apps:** - Wants to analyze or audit their current iOS app - Asks to "run through my existing app" - Needs architecture evaluation or recommendations - Wants tech stack assessment - Planning major refactoring or improvements - Evaluating app health and identifying gaps ## Planning Process ### 1. Understand Project Context First, determine if this is a **new app** or **existing app**, then gather context: **App Status:** - New app (planning from scratch) - Existing app (analyze/improve) **For NEW Apps - gather:** - **Project Type**: Personal, client, startup, learning - **Current Stage**: Just an idea, have requirements, have designs, technical only - **Scope**: Full planning, feature planning, architecture only, tech stack only **For EXISTING Apps - gather:** - **Project Type**: Personal, client, startup, enterprise - **App Age**: How long in development/production - **Codebase Size**: Small (<10 screens), medium (10-30), large (30+) - **Current Issues**: Performance, maintainability, feature additions, technical debt - **Analysis Scope**: Full audit, architecture review, tech stack evaluation, specific area - **Existing Tech Stack**: SwiftUI/UIKit, architecture pattern, persistence layer - **Pain Points**: What's not working well, what needs improvement **Then proceed to appropriate workflow:** - **New App** → Continue to "Planning Phases for New Apps" (Section 3) - **Existing App** → Jump to "Analysis Process for Existing Apps" (Section 6) ### 2. Load Reference Materials Before detailed planning, familiarize yourself with these references in `.claude/skills/app-planner/`: - **planning-checklist.md** - Comprehensive planning checklist covering all phases - **architecture-guide.md** - Architecture patterns, decisions, and trade-offs - **tech-stack-options.md** - Technology choices for different requirements ### 3. Planning Phases for New Apps **Note**: For existing apps, skip to Section 6 "Analysis Process for Existing Apps" Guide the user through these planning phases based on their scope: #### Phase 1: Product Planning **Goals:** - Define what the app does and who it's for - Identify core features and prioritization - Understand user needs and workflows **Activities:** 1. **Define App Purpose** - What problem does it solve? - What's the core value proposition? - What makes it different? 2. **Identify Target Users** - Who will use this app? - What are their goals and pain points? - Create 1-2 user personas if helpful 3. **Feature Definition** - List all potential features - Categorize: MVP (must-have), v2 (nice-to-have), future - Prioritize based on value and complexity 4. **User Journeys** - Map key user workflows - Identify main user paths through the app - Note critical touchpoints #### Phase 2: Technical Planning **Goals:** - Choose appropriate architecture and patterns - Design data models - Select technology stack - Plan project structure **Activities:** 1. **Architecture Selection** - Review architecture-guide.md for options (MVVM, TCA, etc.) - Consider project size, team experience, requirements - Ask user about preferences and constraints - Recommend architecture with rationale 2. **Data Modeling** - Identify main entities and relationships - Define data flow (where data comes from, where it goes) - Choose persistence layer: - Core Data (complex data, relationships, offline-first) - SwiftData (iOS 17+, modern alternative) - UserDefaults (simple settings only) - Realm (alternative to Core Data) - Custom backend + caching 3. **Tech Stack Decisions** - Review tech-stack-options.md for guidance - **UI Framework**: SwiftUI, UIKit, or hybrid - **Minimum iOS version**: Based on features needed - **Networking**: URLSession, Alamofire, or custom - **Dependencies**: SPM, CocoaPods, or manual - **Third-party libraries**: Based on requirements - Ask about user preferences and constraints 4. **Project Structure** - Folder organization (features, layers, modules) - Modularization strategy (monolith vs multi-module) - Code organization patterns #### Phase 3: UI/UX Planning **Goals:** - Plan user interface and experience - Ensure HIG compliance - Design navigation and flows **Activities:** 1. **Design System** - Color palette (consider dark mode) - Typography (SF Pro, custom fonts) - Spacing system (8pt grid recommended) - Component library planning 2. **Navigation Pattern** - Tab bar (2-5 main sections) - Sidebar (iPad, complex hierarchies) - Navigation stack (linear flows) - Sheet/modal presentations - Recommend based on app structure 3. **Screen Planning** - List all main screens - Create simple wireframes or descriptions - Define screen hierarchy - Plan empty states, loading states, error states 4. **Accessibility First** - Dynamic Type support - VoiceOver compatibility - Color contrast requirements - Accessibility features priority 5. **Onboarding & UX Flows** - First-time user experience - Key user flows - Error handling UX - Feedback mechanisms #### Phase 4: Non-Functional Requirements **Goals:** - Define performance, security, testing requirements - Plan for scalability and maintainability **Activities:** 1. **Performance Targets** - Target device range (iPhone only, iPad support, Mac Catalyst) - Performance benchmarks - Memory constraints - Battery usage considerations 2. **Security & Privacy** - Authentication needs (if any) - Data encryption requirements - Privacy policy requirements - Secure storage for sensitive data - App Transport Security compliance 3. **Testing Strategy** - Unit testing approach and coverage goals - UI testing requirements - Beta testing plan - QA process 4. **Monitoring & Analytics** - Analytics needs (user behavior tracking) - Crash reporting (essential for production apps) - Performance monitoring - User feedback mechanism #### Phase 5: Distribution & Business **Goals:** - Plan for App Store distribution - Define monetization (if applicable) - Set timeline and milestones **Activities:** 1. **App Store Planning** - App name availability check - Bundle identifier decision - Screenshots/preview planning - App description and keywords 2. **Monetization** (if applicable) - Free, paid, freemium, subscription - In-app purchases planning - Ad integration strategy 3. **Localization** - Initial language(s) - Internationalization strategy - Future localization plans 4. **Timeline & Milestones** - MVP timeline estimate - Feature milestones - Release schedule - Version planning (1.0, 1.1, 2.0, etc.) ### 4. Create Planning Documentation Files **IMPORTANT**: After completing planning phases, create actual documentation files that the user can keep, update, and version control. #### Ask User About Documentation Location Before creating files, ask where to put documentation: - `docs/planning/` (recommended for most projects) - `planning/` (root-level planning folder) - `.claude/planning/` (keep with Claude Code files) - Custom location #### Documentation Files to Create For comprehensive planning, create these files: **1. docs/planning/overview.md** - Executive summary and key decisions **2. docs/planning/features.md** - Feature list, priorities, and roadmap **3. docs/planning/architecture.md** - Architecture pattern and rationale **4. docs/planning/tech-stack.md** - Technology choices and justification **5. docs/planning/ui-ux.md** - Design system, navigation, screens **6. docs/planning/data-model.md** - Data entities and relationships (if applicable) **7. docs/planning/personas.md** - User personas (if created) **8. docs/planning/roadmap.md** - Timeline and milestones **For focused planning** (architecture only, tech stack only), create only relevant files. #### Templates for Each Documentation File **File 1: overview.md** ```markdown # [App Name] - Overview **Last Updated**: [Date] ## Quick Summary - **Purpose**: [One sentence - what problem does this solve?] - **Target Users**: [Primary audience] - **Platform**: iOS [version]+ - **Project Type**: [Personal/Client/Startup/Enterprise] - **Status**: [Planning/In Development/Production] ## Vision [2-3 sentences describing the app's vision and core value proposition] ## Key Decisions ### Architecture - **Pattern**: [MVVM/TCA/MVC/etc.] - **Rationale**: [Why this choice] ### Tech Stack - **UI**: [SwiftUI/UIKit/Hybrid] - **Min iOS**: [Version] - **Persistence**: [Core Data/SwiftData/etc.] - **Backend**: [CloudKit/Firebase/Custom/None] ### Timeline - **MVP**: [Date/timeframe] - **v1.0**: [Target launch] ## Key Risks & Mitigation 1. [Risk 1] - [Mitigation strategy] 2. [Risk 2] - [Mitigation strategy] ## Success Metrics - [Metric 1] - [Metric 2] - [Metric 3] ## Related Documents - [features.md](./features.md) - Feature list and roadmap - [architecture.md](./architecture.md) - Architecture details - [tech-stack.md](./tech-stack.md) - Technology choices - [ui-ux.md](./ui-ux.md) - Design and UX ``` **File 2: features.md** ```markdown # [App Name] - Features **Last Updated**: [Date] ## MVP Features (v1.0) ### Feature 1: [Name] - **Priority**: High/Medium/Low - **Complexity**: Low/Medium/High - **Description**: [What it does] - **User Value**: [Why users need this] - **Dependencies**: [Other features needed first] - **Status**: [ ] Not Started / [ ] In Progress / [x] Complete ### Feature 2: [Name] [Same structure] ## Post-MVP Features (v1.1+) ### Feature 3: [Name] - **Target Version**: v1.1 / v2.0 - **Priority**: High/Medium/Low - **Description**: [What it does] - **Why Later**: [Rationale for not including in MVP] ## Future Considerations - [Feature idea 1] - [Feature idea 2] ## Feature Dependencies ``` Feature A ├── Feature B (depends on A) └── Feature C (depends on A) ``` ## Feature Estimates | Feature | Complexity | Effort | Priority | |---------|-----------|--------|----------| | Feature 1 | Medium | 2 weeks | High | | Feature 2 | Low | 3 days | High | | Feature 3 | High | 4 weeks | Medium | ``` **File 3: architecture.md** ```markdown # [App Name] - Architecture **Last Updated**: [Date] ## Architecture Pattern **Chosen Pattern**: [MVVM/TCA/MVC/VIPER] ### Rationale [Why this pattern was chosen for this specific app] ### Alternatives Considered - **[Pattern 1]**: [Why not chosen] - **[Pattern 2]**: [Why not chosen] ## Project Structure ``` AppName/ ├── App/ │ ├── AppName.swift │ └── Configuration/ ├── Features/ │ ├── FeatureA/ │ │ ├── Views/ │ │ ├── ViewModels/ │ │ └── Models/ │ └── FeatureB/ ├── Shared/ │ ├── Components/ │ ├── Extensions/ │ └── Utilities/ ├── Services/ │ ├── DataService/ │ └── NetworkService/ └── Resources/ ├── Assets.xcassets └── Localizable.strings ``` ## Layer Responsibilities ### Presentation Layer (Views) - SwiftUI views or UIKit view controllers - UI presentation only - Binds to ViewModels - No business logic ### Business Logic Layer (ViewModels) - Presentation logic - State management - Coordinates between View and Data layers - Testable without UI ### Data Layer (Models & Services) - Domain models - Data access (repositories) - API communication - Persistence management ## Data Flow ``` User Action ↓ View ↓ ViewModel (handles action) ↓ Service/Repository ↓ Model (data) ↓ ViewModel (transforms for presentation) ↓ View (updates UI) ``` ## Key Architectural Decisions ### 1. [Decision Name] - **Decision**: [What was decided] - **Context**: [Why it mattered] - **Rationale**: [Why this choice] - **Consequences**: [Trade-offs] ### 2. [Decision Name] [Same structure] ## Testing Strategy ### Unit Tests - ViewModels (business logic) - Services and repositories - Utilities and extensions - **Coverage Goal**: 70%+ ### UI Tests - Critical user flows - Key navigation paths ## Future Considerations - [Potential architecture evolution] - [Migration strategy if needed] ``` **File 4: tech-stack.md** ```markdown # [App Name] - Tech Stack
View on GitHub
This SKILL.md is very large, so SkillsMP previews the first section here. View on GitHub