1. Home
  2. /
  3. Kivy
  4. /
  5. Stopwatch Example

Stopwatch Example - Kivy Typing CST Test

Loading…

Stopwatch Example — Kivy Code

A simple stopwatch that starts, stops, and resets using Clock scheduling.

from kivy.app import App
from kivy.clock import Clock
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
from kivy.uix.label import Label

class StopwatchApp(App):
	def build(self):
		self.time = 0
		self.running = False
		self.layout = BoxLayout(orientation='vertical', padding=20)
		self.label = Label(text='0.0', font_size=32)
		self.layout.add_widget(self.label)
		self.layout.add_widget(Button(text='Start', on_press=lambda x: self.start()))
		self.layout.add_widget(Button(text='Stop', on_press=lambda x: self.stop()))
		self.layout.add_widget(Button(text='Reset', on_press=lambda x: self.reset()))
		return self.layout

	def update(self, dt):
		self.time += dt
		self.label.text = f'{self.time:.1f}'

	def start(self):
		if not self.running:
		self.running = True
		Clock.schedule_interval(self.update, 0.1)

	def stop(self):
		self.running = False
		Clock.unschedule(self.update)

	def reset(self):
		self.time = 0
		self.label.text = '0.0'

if __name__ == '__main__':
	StopwatchApp().run()

Kivy Language Guide

Kivy is an open-source Python framework for building cross-platform multitouch applications on Android, iOS, Windows, macOS, Linux, and Raspberry Pi. It provides a UI toolkit, gesture support, animations, layouts, and a declarative KV language for rapid app development.

Primary Use Cases

  • ▸Mobile apps (Android/iOS)
  • ▸Touchscreen kiosks and dashboards
  • ▸Cross-platform GUI apps in Python
  • ▸Prototyping and educational tools
  • ▸Raspberry Pi and hardware interfaces

Notable Features

  • ▸KV language for declarative UI
  • ▸GPU-accelerated rendering
  • ▸Multitouch gesture framework
  • ▸Cross-platform build tools
  • ▸Rich widget and layout system

Origin & Creator

Kivy was created by Mathieu Virbel and the Kivy Organization, evolving from the PyMT project and released publicly in 2011 as a modern Python GUI + mobile app framework.

Industrial Note

Kivy is especially loved in education, research environments, rapid prototyping, Raspberry Pi projects, and Python-first development teams requiring cross-platform touch UIs.

Quick Explain

  • ▸Kivy uses Python for app logic and KV language for UI design.
  • ▸It includes a full widget toolkit, layout engine, GPU-accelerated rendering using OpenGL ES2, and support for multitouch events.
  • ▸Kivy is widely used for mobile apps, touchscreen kiosks, prototypes, educational tools, and Python-based cross-platform GUIs.

Core Features

  • ▸Widget & Layout system
  • ▸KV language
  • ▸Input & Gesture handling
  • ▸Animations & graphics instructions
  • ▸KivyMD Material Design components

Learning Path

  • ▸Learn widgets & layouts
  • ▸Understand KV language
  • ▸Manage events & properties
  • ▸Build simple screens
  • ▸Add animations, gestures, and packaging

Practical Examples

  • ▸Touchscreen photo gallery
  • ▸Android note-taking app
  • ▸Raspberry Pi control panel
  • ▸Material Design mobile UI
  • ▸Education/training UI prototypes

Comparisons

  • ▸Kivy vs Flutter: Python flexibility vs native performance
  • ▸Kivy vs React Native: Python ecosystem vs JavaScript + native
  • ▸Kivy vs PyQt: mobile-first vs desktop-first
  • ▸Kivy vs Tkinter: modern GPU UI vs basic desktop UI
  • ▸Kivy vs BeeWare: cross-platform GUI vs native widgets

Strengths

  • ▸Python-based - easy for Python developers
  • ▸Cross-platform mobile + desktop
  • ▸Lightweight and flexible
  • ▸Multitouch and gesture support
  • ▸Great for rapid development

Limitations

  • ▸Not ideal for heavy 3D or gaming
  • ▸UI performance can lag vs native frameworks
  • ▸iOS builds require complex setup
  • ▸Smaller ecosystem compared to Flutter/React Native
  • ▸Not suitable for high-performance animations

When NOT to Use

  • ▸High-performance native apps
  • ▸Heavy 3D or advanced animation apps
  • ▸Apps requiring pixel-perfect native UI
  • ▸Large-scale enterprise apps
  • ▸Games requiring high FPS

Cheat Sheet

  • ▸Widget = UI element
  • ▸KV = declarative UI
  • ▸Clock = async scheduling
  • ▸App.build() = entry point
  • ▸ScreenManager = navigation

FAQ

  • ▸Is Kivy free?
  • ▸Yes - completely open-source.
  • ▸Does Kivy support Android?
  • ▸Yes - via Buildozer.
  • ▸Can Kivy build iOS apps?
  • ▸Yes - but requires macOS setup.
  • ▸Is Kivy good for beginners?
  • ▸Yes - very Python-friendly.
  • ▸Is Kivy fast?
  • ▸Fast enough for typical apps, not for heavy animations.

30-Day Skill Plan

  • ▸Week 1: Python + Kivy basics
  • ▸Week 2: Layouts + widgets + KV
  • ▸Week 3: Screen Manager apps
  • ▸Week 4: Build Android APK
  • ▸Week 5: Integrate APIs/DB

Final Summary

  • ▸Kivy is a Python-powered, cross-platform UI framework supporting Android, iOS, desktop, and Raspberry Pi.
  • ▸Great for touch apps, prototypes, education, and rapid development.
  • ▸Uses Python for logic and KV for UI layout.
  • ▸Comes with widgets, multitouch, animations, and GPU-accelerated rendering.
  • ▸Best for Python developers wanting mobile/desktop apps without learning new languages.

Project Structure

  • ▸main.py - app logic
  • ▸app.kv - UI layout
  • ▸assets/ - images, fonts
  • ▸buildozer.spec - build config
  • ▸modules/ - additional Python files

Monetization

  • ▸In-app ads via Android APIs
  • ▸Paid app distribution
  • ▸Subscriptions via REST API
  • ▸Kiosk licensing
  • ▸SaaS dashboard products

Productivity Tips

  • ▸Use KivyMD for fast UI
  • ▸Use KV for all layouts
  • ▸Bind events declaratively
  • ▸Use reusable widget classes
  • ▸Use Python scripts for automation

Basic Concepts

  • ▸App Class: main application class
  • ▸Widget: core visual component
  • ▸KV Language: UI definition language
  • ▸Events: input, gestures, touch
  • ▸Layouts: BoxLayout, GridLayout, FloatLayout

Official Docs

  • ▸https://kivy.org/docs
  • ▸https://kivy.org
  • ▸https://github.com/kivy/kivy

More Kivy Typing Exercises

Kivy Counter ExampleKivy Todo List AppKivy Theme SwitcherKivy Slider ExampleKivy Login UI ExampleKivy Toggle Button ExampleKivy Color Picker ExampleKivy Calculator ExampleKivy Image Viewer Example

Practice Other Languages

CReactPythonC++RustTypeScriptKotlinPHPJavaC#RubyMqlCqlN1qlCypher