← Back to index

WatchHomeView

Spots Watch App
CodeWhat It DoesHow It Does It
▶ IMPORTS
import SwiftUIFramework importsImports SwiftUI.
private func circleIcon(_ systemName: String, color: Color, size: CGFloat) -> some View { Image(systemName: systemName) .font(.system(size: size)) .foregroundColor(color) .frame(width: size * 2, height: size * 2) .background(Circle().fill(.white)) }`circleIcon()` functionImplements `circleIcon`. Returns `some View`.
struct WatchHomeView: View { var body: some View { VStack(spacing: 7) { Text("SPOTS") .font(.system(size: 13, weight: .semibold)) .foregroundColor(lavender) .padding(.top, 2) // ── Row 1: Schedule · Status · Bus ──────────────────────── HStack(spacing: 5) { NavigationLink(destination: WatchScheduleView()) { VStack(spacing: 4) { circleIcon("tram.fill", color: Color(red: 0, green: 0.224, blue: 0.651), size: 18) Text("Schedule") .font(.system(size: 9, weight: .semibold)) .foregroundColor(.primary) } .frame(maxWidth: .infinity) .padding(.vertical, 6) } .buttonStyle(.bordered) .tint(.clear) NavigationLink(destination: WatchStatusView()) { VStack(spacing: 4) { circleIcon("antenna.radiowaves.left.and.right", color: .cyan, size: 18) Text("Status") .font(.system(size: 9, weight: .semibold)) .foregroundColor(.primary) } .frame(maxWidth: .infinity) .padding(.vertical, 6) } .buttonStyle(.bordered) .tint(.clear) NavigationLink(destination: WatchBusView()) { VStack(spacing: 4) { circleIcon("bus.fill", color: Color(red: 0, green: 0.224, blue: 0.651), size: 18) Text("Bus") .font(.system(size: 9, weight: .semibold)) .foregroundColor(.primary) } .frame(maxWidth: .infinity) .padding(.vertical, 6) } .buttonStyle(.bordered) .tint(.clear) } // ── Row 2: Sites · Shows · Food ─────────────────────────── HStack(spacing: 5) { NavigationLink(destination: WatchSitesView()) { VStack(spacing: 4) { circleIcon("mappin", color: .orange, size: 20) Text("Sites") .font(.system(size: 10, weight: .medium)) .foregroundColor(.primary) } .frame(maxWidth: .infinity) .padding(.vertical, 5) } .buttonStyle(.bordered) .tint(.clear) NavigationLink(destination: WatchShowsView()) { VStack(spacing: 4) { circleIcon("theatermasks.fill", color: .purple, size: 20) Text("Shows") .font(.system(size: 10, weight: .medium)) .foregroundColor(.primary) } .frame(maxWidth: .infinity) .padding(.vertical, 5) } .buttonStyle(.bordered) .tint(.clear) NavigationLink(destination: WatchFoodView()) { VStack(spacing: 4) { circleIcon("fork.knife", color: .green, size: 20) Text("Food") .font(.system(size: 10, weight: .medium)) .foregroundColor(.primary) } .frame(maxWidth: .infinity) .padding(.vertical, 5) } .buttonStyle(.bordered) .tint(.clear) } } .padding(.horizontal, 5) } }`WatchHomeView` structDefines the `WatchHomeView` struct. Conforms to View.
#Preview { WatchHomeView() }Code blockSee source code for full implementation.