WorldTime

A timezone scrubber app that lets you visualise time across cities with an interactive dial.

Why a Dial?

Most timezone apps use static displays or linear sliders. But time is cyclical — so WorldTime uses a dial interaction that mirrors how we actually think about time. Rotating the dial scrubs through hours, and concepts like “yesterday” and “tomorrow” become intuitive as you cross midnight.

Features

Architecture

WorldTime follows the MVVM pattern:

Layer Component Responsibility
Model CityTime Data structure for city and timezone
View ContentView, TimeRow, EmptySlot, TimeDialView UI rendering
ViewModel TimeViewModel Time logic and scrubbing state
Service LocationManager Location permission and reverse geocoding

Tech Stack

Requirements

Getting Started

  1. Clone the repository
    git clone https://github.com/runorhasit/WorldTime.git
    
  2. Open WorldTime.xcodeproj in Xcode
  3. Select a simulator or connected device
  4. Build and run (⌘R)

Future Improvements

Medium Priority

Low Priority

Case Study

Read the full design and development story: WorldTime: From Slider to Dial, Visualising Time the Way We Think About It

License

MIT License — see LICENSE for details.

Author

Built by Runor Jiroma as a learning project to explore SwiftUI development.