Skip to content

Commit 5bedfad

Browse files
Revise README for clarity and completeness
Updated README to enhance feature descriptions and installation instructions.
1 parent b650296 commit 5bedfad

File tree

1 file changed

+67
-21
lines changed

1 file changed

+67
-21
lines changed

README.md

Lines changed: 67 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,87 @@
1+
![iOS CI](https://github.com/Navin-Rai-Developer/DynamicTabKit/actions/workflows/main.yml/badge.svg)
12
# DynamicTabKit
2-
A production-ready SwiftUI project demonstrating a fully dynamic, user-customizable tab bar. Users start with 3 default tabs and can add, remove, or reorder tabs anytime from the Settings screen - all powered by a centralized TabStore using ObservableObject.
33

4-
✨ Features
4+
A production-ready SwiftUI project demonstrating a fully dynamic, user-customizable Tab Bar architecture.
55

6-
3 default tabs on first launch (Home, Profile, Settings)
6+
Users start with 3 default tabs and can add, remove, or reorder tabs anytime from the Settings screen — powered by a centralized state manager built with ObservableObject.
77

8-
✅ Add or remove tabs dynamically from Settings
8+
---
99

10-
✅ Core tabs (Home, Profile, Settings) are protected — cannot be removed
10+
## ✨ Features
1111

12-
✅ Tab selection state resets safely when an active tab is removed
12+
- ✅ 3 default tabs on first launch (Home, Profile, Settings)
13+
- ✅ Add or remove tabs dynamically from Settings
14+
- ✅ Core tabs (Home, Profile, Settings) are protected — cannot be removed
15+
- ✅ Tab selection resets safely when the active tab is removed
16+
- ✅ SF Symbols support for every tab item
17+
- ✅ Centralized state via `TabBarManager` (No `@Binding` prop drilling)
18+
- ✅ Full SwiftUI Previews on all views
19+
- ✅ Clean MVVM-style architecture
20+
- ✅ CI-enabled with GitHub Actions
1321

14-
✅ Label with SF Symbols icon on every tab item
22+
---
1523

16-
✅ Centralized state via TabStore — no @Binding prop drilling
24+
## 🏗 Architecture
1725

18-
✅ Full SwiftUI Previews on every view
26+
**Pattern:** MVVM
27+
**State Management:** ObservableObject-based TabStore
28+
**UI Framework:** SwiftUI
1929

20-
✅ Clean MVVM-style architecture, ready to extend
30+
Project Structure:
31+
DynamicTabKit/
32+
├── Model/
33+
├── View/
34+
│ ├── Setting/
35+
│ └── Tab/
36+
├── ViewModel/
37+
└── DynamicTabKitApp.swift
38+
---
2139

22-
🚀 Setup & Installation
40+
## 🚀 Setup & Installation
2341

24-
Requirements
42+
### Requirements
2543

26-
ToolMinimum
44+
| Tool | Version |
45+
|------|----------|
46+
| Xcode | 15.0+ |
47+
| iOS Deployment Target | 17.0+ |
48+
| Swift | 5.9+ |
49+
| macOS (Development) | Ventura 13.0+ |
2750

28-
VersionXcode15.0+
51+
### Run Locally
2952

30-
iOS Deployment Target17.0+
53+
1. Clone the repository
54+
2. Open `DynamicTabKit.xcodeproj`
55+
3. Select the `DynamicTabKit` scheme
56+
4. Run on iOS Simulator
3157

32-
Swift5.9+
58+
---
3359

34-
macOS (for development)Ventura 13.0+
60+
## 🧠 Engineering Highlights
3561

36-
🙋‍♂️ Author
37-
Navin Rai
62+
- Safe state reset handling
63+
- Clean separation of concerns
64+
- Extensible tab architecture
65+
- Production-ready folder structure
66+
- No prop-drilling anti-pattern
67+
- CI pipeline enabled
3868

39-
GitHub: @Navin-Rai-Developer
69+
---
4070

41-
LinkedIn: https://www.linkedin.com/in/navinkumarrai
71+
## 📦 CI Status
72+
73+
GitHub Actions automatically builds the project on every push to `main`.
74+
75+
---
76+
77+
## 🙋‍♂️ Author
78+
79+
**Navin Rai**
80+
Senior iOS Developer
81+
82+
- GitHub: [@Navin-Rai-Developer](https://github.com/Navin-Rai-Developer)
83+
- LinkedIn: https://www.linkedin.com/in/navinkumarrai
84+
85+
---
86+
87+
⭐ If you find this useful, consider starring the repository.

0 commit comments

Comments
 (0)