<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.
Features β’ Quick Start β’ Templates β’ Architecture β’ Who Is This For? β’ Docs
| 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. |
- ποΈ 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
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 // Package.swift dependencies: [ .package(url: "https://github.com/muhittincamdali/iOSAppTemplates.git", from: "1.0.0") ]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 --listAvailable templates: ecommerce Β· social Β· news Β· fitness Β· finance Β· education Β· food Β· travel Β· music Β· productivity
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()| # | 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 | 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
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 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() } } }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()) } } } } }| Requirement | Version |
|---|---|
| iOS | 15.0+ |
| macOS | 12.0+ |
| visionOS | 1.0+ |
| Swift | 5.9+ |
| Xcode | 15.0+ |
| 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 |
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-templateMIT License β see LICENSE for details.