<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.