- Initialize iOS project with 6-tab navigation structure - Configure custom Light/Dark themes and AppColors - Define SwiftData models for Tasks, Tags, Goals, and TrackingRecords - Setup relationships (Super/Sub tags) and cascade delete rules - Implement Observable TrackingEngine for real-time timer updates
38 lines
1.1 KiB
Swift
38 lines
1.1 KiB
Swift
import SwiftData
|
|
import SwiftUI
|
|
|
|
struct RootTabView: View {
|
|
var body: some View {
|
|
TabView {
|
|
Tab(String(localized: "tab.main"), systemImage: "house.fill") {
|
|
MainTabView()
|
|
}
|
|
Tab(String(localized: "tab.tasks"), systemImage: "checkmark.circle.fill") {
|
|
TasksTabView()
|
|
}
|
|
Tab(String(localized: "tab.tags"), systemImage: "tag.fill") {
|
|
TagsTabView()
|
|
}
|
|
Tab(String(localized: "tab.goals"), systemImage: "target") {
|
|
GoalsTabView()
|
|
}
|
|
Tab(String(localized: "tab.stats"), systemImage: "chart.bar.fill") {
|
|
StatsTabView()
|
|
}
|
|
Tab(String(localized: "tab.settings"), systemImage: "gearshape.fill") {
|
|
SettingsTabView()
|
|
}
|
|
}
|
|
.tint(Color.tfPrimary)
|
|
}
|
|
}
|
|
|
|
#Preview {
|
|
RootTabView()
|
|
.modelContainer(
|
|
for: [TaskItem.self, TagEntity.self, GoalEntity.self, TrackingRecord.self],
|
|
inMemory: true
|
|
)
|
|
.environment(AppPreferences())
|
|
}
|