1. Home
  2. /
  3. Swiftui
  4. /
  5. Dark Mode Counter

Dark Mode Counter - Swiftui Typing CST Test

Loading…

Dark Mode Counter — Swiftui Code

Counter app with light/dark theme toggle.

import SwiftUI

struct DarkModeCounterView: View {
	@State private var count: Int = 0
	@Environment(\.colorScheme) var colorScheme
	@State private var isDark: Bool = false

	var body: some View {
		VStack(spacing: 20) {
		Text("Counter: \(count)")
		.font(.largeTitle)
		HStack {
		Button("+") { count += 1 }
		Button("-") { count -= 1 }
		Button("Reset") { count = 0 }
		}
		Button("Toggle Theme") { isDark.toggle() }
		}.padding()
		.preferredColorScheme(isDark ? .dark : .light)
	}
}

@main
struct DarkCounterApp: App {
	var body: some Scene {
		WindowGroup {
		DarkModeCounterView()
		}
	}
}

Swiftui Language Guide

SwiftUI is Apple’s declarative framework for building user interfaces across iOS, macOS, watchOS, and tvOS using Swift. It allows developers to create fully native apps with less code and real-time previews.

Primary Use Cases

  • ▸Native iOS apps with modern UI
  • ▸macOS desktop apps
  • ▸watchOS and tvOS apps
  • ▸Rapid prototyping for Apple platforms
  • ▸Apps leveraging Swift ecosystem and Apple frameworks

Notable Features

  • ▸Declarative syntax for UI building
  • ▸Live preview in Xcode
  • ▸Cross-Apple-platform support
  • ▸Seamless integration with Swift and Combine
  • ▸Supports animations, gestures, and adaptive layouts

Origin & Creator

Created by Apple in 2019, SwiftUI was introduced to unify UI development across Apple platforms and replace UIKit/AppKit with a declarative approach.

Industrial Note

Perfect for Apple ecosystem apps where full native performance, Swift language, and declarative UI are priorities.

More Swiftui Typing Exercises

SwiftUI Simple Todo AppSwiftUI Counter AppSwiftUI Step CounterSwiftUI Multi CounterSwiftUI Auto Increment CounterSwiftUI Todo With PrioritySwiftUI Countdown TimerSwiftUI Counter With Alert

Practice Other Languages

CReactPythonC++RustTypeScriptKotlinPHPJavaC#RubyMqlCqlN1qlCypher