Back to Projects
Ken - LeetCode Progress Widgets for iOS
In-progressSwiftSwiftUIWidgetKit+1 more

Ken - LeetCode Progress Widgets for iOS

A productivity-focused iOS app that helps users track their daily LeetCode problem-solving progress through home screen widgets built with SwiftUI WidgetKit.

2 min read
Timeline

Ongoing

Role

Solo iOS Developer

Team

Solo

Status
In-progress

Technology Stack

Swift
SwiftUI
WidgetKit
Combine

Key Challenges

  • Sharing live progress data between the main app and the widget in real time without a backend
  • Designing widget layouts that stay legible and useful across small, medium, and large sizes
  • Keeping widget data fresh under WidgetKit's limited background refresh budget

Key Learnings

  • Structuring an app around App Groups and shared UserDefaults for cross-target data sharing
  • Building timeline providers that balance freshness against WidgetKit's refresh budget
  • Designing SwiftUI views that adapt cleanly across widget size classes

Ken - LeetCode Progress Widgets for iOS

Overview

Ken is a productivity-focused iOS app that helps users track their daily LeetCode problem-solving progress directly from their home screen. Instead of opening an app to check your streak or stats, Ken surfaces them as a widget you glance at throughout the day.

Key Features

  • Home screen widgets built with SwiftUI WidgetKit, showing live stats and quick actions without opening the app
  • App Groups + UserDefaults for secure, real-time data sharing between the main app and the widget extension
  • Adaptive layouts for small, medium, and large widget sizes using SwiftUI's dynamic views
  • Timeline-based background refresh so widgets display the latest data with minimal latency

Tech Stack

LayerTechnology
UISwiftUI
WidgetsWidgetKit
Reactive stateCombine
Data sharingApp Groups, UserDefaults

Challenges

Getting widget data to feel "live" without a backend meant leaning on App Groups and UserDefaults for fast, secure sharing between the app and the widget extension, and designing timeline providers that request refreshes often enough to feel current while respecting WidgetKit's background execution budget.

Design & Developed by Lakshay Gupta
© 2026. All rights reserved.