Skip to content

muhittincamdali/iOSAppTemplates

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

59 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
 <p align="center"> <a href="README.md">πŸ‡ΊπŸ‡Έ English</a> | <a href="README_TR.md">πŸ‡ΉπŸ‡· TΓΌrkΓ§e</a> </p> ╔══════════════════════════════════════════════════════════════════════════════════╗ β•‘ β•‘ β•‘ β–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β•‘ β•‘ β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β•β•β• β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•— β•‘ β•‘ β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β• β•‘ β•‘ β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘β•šβ•β•β•β•β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•β• β–ˆβ–ˆβ•”β•β•β•β• β•‘ β•‘ β–ˆβ–ˆβ•‘β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘ β•‘ β•‘ β•šβ•β• β•šβ•β•β•β•β•β• β•šβ•β•β•β•β•β•β• β•šβ•β• β•šβ•β•β•šβ•β• β•šβ•β• β•‘ β•‘ β•‘ β•‘ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β•‘ β•‘ β•šβ•β•β–ˆβ–ˆβ•”β•β•β•β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β•šβ•β•β–ˆβ–ˆβ•”β•β•β•β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ•”β•β•β•β•β• β•‘ β•‘ β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•”β–ˆβ–ˆβ–ˆβ–ˆβ•”β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β•‘ β•‘ β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•”β•β•β• β–ˆβ–ˆβ•‘β•šβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•β• β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•”β•β•β• β•šβ•β•β•β•β–ˆβ–ˆβ•‘ β•‘ β•‘ β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘ β•šβ•β• β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘ β•‘ β•‘ β•šβ•β• β•šβ•β•β•β•β•β•β•β•šβ•β• β•šβ•β•β•šβ•β• β•šβ•β•β•β•β•β•β•β•šβ•β• β•šβ•β• β•šβ•β• β•šβ•β•β•β•β•β•β•β•šβ•β•β•β•β•β•β• β•‘ β•‘ β•‘ β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β• 

10 production-ready iOS app templates with Clean Architecture, MVVM-C, and TCA patterns.
Stop building boilerplate. Start shipping features.

Stars Swift iOS visionOS SPM License CI

Features β€’ Quick Start β€’ Templates β€’ Architecture β€’ Who Is This For? β€’ Docs


πŸ‘€ Who Is This For?

You are... This helps you...
πŸ§‘β€πŸ’» Solo indie developer Skip weeks of setup. Get a working app skeleton with auth, networking, and navigation in minutes.
πŸ‘₯ Small team / startup Align the whole team on architecture from day one. Every template follows the same conventions.
πŸ“š Student / learner Study real-world patterns (MVVM-C, TCA, Clean Architecture) in complete, runnable projects.
🏒 Agency developer Pitch faster. Prototype client apps with full-featured templates, then customize.
πŸ”„ Switching from UIKit Every template is 100% SwiftUI with modern concurrency. Learn by reading production-quality code.

✨ Features

  • πŸ—οΈ Clean Architecture β€” Domain-driven design with clear separation
  • πŸ“± 10 App Categories β€” E-Commerce, Social, News, Fitness, Finance, Education, Food, Travel, Music, Productivity
  • 🎯 Multiple Patterns β€” MVVM-C, TCA, and Clean Architecture support
  • πŸ§ͺ Fully Tested β€” Unit tests, UI tests, and snapshot tests included
  • πŸ“– Well Documented β€” Comprehensive guides and API reference
  • πŸŒ™ Dark Mode β€” Full dark mode support out of the box
  • β™Ώ Accessible β€” VoiceOver and Dynamic Type ready
  • πŸš€ Production Ready β€” Used in real App Store apps
  • πŸ› οΈ CLI Generator β€” One command to scaffold a new project
  • πŸ“± 150+ Screens β€” Total across all templates

πŸ—οΈ Architecture

graph TB subgraph Presentation["πŸ“± Presentation Layer"] V[View] VM[ViewModel] C[Coordinator] end subgraph Domain["🎯 Domain Layer"] UC[Use Cases] E[Entities] RP[Repository Protocol] end subgraph Data["πŸ’Ύ Data Layer"] RI[Repository Impl] NS[Network Service] SS[Storage Service] end V --> VM VM --> C VM --> UC UC --> E UC --> RP RI --> RP RI --> NS RI --> SS style Presentation fill:#4A90D9,stroke:#2E5A8B,color:#fff style Domain fill:#50C878,stroke:#3D9B5C,color:#fff style Data fill:#FF6B6B,stroke:#CC5555,color:#fff 
Loading

πŸš€ Quick Start

Option 1: Swift Package Manager

// Package.swift dependencies: [ .package(url: "https://github.com/muhittincamdali/iOSAppTemplates.git", from: "1.0.0") ]

Option 2: Template Generator CLI (Recommended)

Generate a complete, ready-to-run Xcode project in seconds:

# Clone the repo git clone https://github.com/muhittincamdali/iOSAppTemplates.git cd iOSAppTemplates # Interactive mode β€” pick a template, name your app, done swift Scripts/TemplateGenerator.swift --interactive # Or generate directly swift Scripts/TemplateGenerator.swift -t ecommerce -n "MyShop" -o ~/Desktop # See all available templates swift Scripts/TemplateGenerator.swift --list

Available templates: ecommerce Β· social Β· news Β· fitness Β· finance Β· education Β· food Β· travel Β· music Β· productivity

Option 3: Use as Code Reference

import iOSAppTemplates // Social Media App β€” ready in seconds let socialApp = SocialMediaTemplate() .withFeatures([.feed, .stories, .messaging, .profile]) .withArchitecture(.mvvm) .build() // E-Commerce App β€” complete shopping experience let shopApp = ECommerceTemplate() .withFeatures([.productList, .cart, .checkout, .orders]) .withPayment([.applePay, .stripe]) .build() // Finance App β€” bank-level security let financeApp = FinanceTemplate() .withFeatures([.dashboard, .transactions, .cards]) .withSecurity(.biometric) .build()

πŸ“¦ Templates (10 Complete Apps!)

# Category Screens Key Features Status
1 πŸ›’ E-Commerce 16+ Products, Cart, Checkout, Orders, Reviews, Wishlist βœ… Complete
2 πŸ“± Social Media 16+ Feed, Stories, Reels, Messages, Profile, Notifications βœ… Complete
3 πŸ“° News / Blog 14+ Articles, Categories, Bookmarks, Reader Mode, Search βœ… Complete
4 πŸƒ Fitness / Health 15+ Workouts, Activity, Nutrition, Progress, Achievements βœ… Complete
5 πŸ’° Finance 15+ Dashboard, Cards, Transactions, Budget, Investments βœ… Complete
6 πŸ“š Education 14+ Courses, Lessons, Quizzes, Progress, Certificates βœ… Complete
7 πŸ• Food Delivery 17+ Restaurants, Menu, Cart, Orders, Live Tracking βœ… Complete
8 ✈️ Travel 12+ Destinations, Flights, Hotels, Bookings, Itinerary βœ… Complete
9 🎡 Music / Podcast 14+ Player, Playlists, Library, Podcasts, Search βœ… Complete
10 βœ… Productivity 12+ Tasks, Projects, Notes, Focus Mode, Habits βœ… Complete

Every template includes: Dark Mode Β· Accessibility Β· Sample Data Β· Working Navigation Β· No Placeholders


πŸ“ Project Structure

iOSAppTemplates/ β”œβ”€β”€ πŸ“‚ Sources/ β”‚ β”œβ”€β”€ Core/ # Shared utilities & extensions β”‚ β”œβ”€β”€ SocialTemplates/ # Social media templates β”‚ β”œβ”€β”€ CommerceTemplates/ # E-commerce templates β”‚ β”œβ”€β”€ FinanceTemplates/ # Finance templates β”‚ β”œβ”€β”€ HealthTemplates/ # Health & fitness β”‚ β”œβ”€β”€ EducationTemplates/ # Education templates β”‚ β”œβ”€β”€ TravelTemplates/ # Travel & booking β”‚ β”œβ”€β”€ AITemplates/ # AI-powered templates β”‚ └── ProductivityTemplates/ # Productivity apps β”œβ”€β”€ πŸ“‚ Examples/ # Sample implementations β”œβ”€β”€ πŸ“‚ Tests/ # Unit & UI tests └── πŸ“‚ Documentation/ # Guides & API docs 

πŸ’» Code Examples

Social Feed

struct FeedView: View { @StateObject private var viewModel = FeedViewModel() var body: some View { ScrollView { LazyVStack(spacing: 16) { ForEach(viewModel.posts) { post in PostCard(post: post) .onTapGesture { viewModel.openPost(post) } } } .padding() } .refreshable { await viewModel.refresh() } } }

Shopping Cart

struct CartView: View { @StateObject private var viewModel = CartViewModel() var body: some View { List { ForEach(viewModel.items) { item in CartItemRow(item: item) .swipeActions { Button(role: .destructive) { viewModel.remove(item) } label: { Label("Remove", systemImage: "trash") } } } Section { HStack { Text("Total").font(.headline) Spacer() Text(viewModel.total, format: .currency(code: "USD")) .font(.title2.bold()) } } } } }

πŸ“‹ Requirements

Requirement Version
iOS 15.0+
macOS 12.0+
visionOS 1.0+
Swift 5.9+
Xcode 15.0+

πŸ“– Documentation

Guide Description
Getting Started Installation and first steps
Template Guide How to use each template
Architecture Guide MVVM-C, TCA, Clean Architecture
API Reference Complete API documentation
Best Practices Tips for production apps

🀝 Contributing

Contributions are welcome! Please read our Contributing Guide.

# Fork, clone, and create a branch git checkout -b feature/new-template # Make changes and commit git commit -m "feat(templates): add new template" # Push and open PR git push origin feature/new-template

πŸ“„ License

MIT License β€” see LICENSE for details.


πŸ‘¨β€πŸ’» Author

Muhittin Camdali

GitHub LinkedIn


⭐ Star this repo if you find it useful!


πŸ“ˆ Star History

Star History Chart

πŸ™ Contributors

Thanks to all the amazing people who have contributed!