MijickTimer

2.0.0

Timers Made Simple. The Ultimate Swift Framework with advanced timer management, state control and reactive programming support.
Mijick/Timer

What's New

2.0.0

2024-12-12T23:00:15Z

It's been a long journey!

We have just released the latest version of our library labelled as 2.0.0. The new number in front means that we unfortunately had to make some changes to the public API, for which we sincerely apologize. In the next section you will find migration tips to help you make the transition to the new version as painless as possible.

Migration Guide

Overall:

  • We decided to change the way we work with timers. Each new instance of the timer must be registered.
  • The MijickTimer now allows you to observe state changes in very different ways. Just choose which one you prefer more.

Updates of old features

  • There are no more static methods to control the state of the timer. It is necessary to create an object and only then call set-up and state control methods.
  • The initialization of the new MTimer object has been changed: MTimer.createNewInstance() -> MTimer(MTimerID(rawValue: "Your_Custom_ID"))
  • Method stop() renamed to cancel()

New Features

  • Added new control method skip() that allows to skip timer to it's final state.
  • It is no longer necessary to call the publish() function to make the timer work. All you need to do is initialize MTimer and call start(). The state will be updated when the timer expires.
  • The status of the timer is expanded. Available statuses: notStarted, running, finished, paused.
  • MTimer has become an ObservableObject. This means that you can observe updates to its Published values: timerTime, timerStatus, timerProgress.
  • Added visionOS support.

Visit the framework's documentation to learn how to integrate your project with MijickTimer.

MijickTimer Hero

Timers made simple

Easy to use yet powerful Timer library. Keep your code clean.

Try demo we prepared | Framework documentation | Roadmap


Labels


Timer Examples


Join us on Discord Follow us on LinkedIn See our other frameworks Read us on Medium Buy us a coffee

✨ Features

Countdown Timer (Down-Going)
⏱️ Count-Up Timer (Elapsed Time)
⏸️ Pause Timer
▶️ Resume Timer
⏭️ Skip Timer
⏮️ Cancel Timer
Reactive programming friendly

☀️ What Is MijickTimer?

MijickTimer library is Swift-based library that offers powerful and flexible timer features for iOS and macOS and visionOS apps. It allows to create both countdown and count-up timers with enhanced state management and observation options.

💡 Feature Insights

Count-Up Timer

Track elapsed time seamlessly with a count-up timer. Ideal for productivity, logging or workout apps.

Take a look at the implementation details here.

A demonstration of the code used to compare the implementation of the native iOS timer framework with the custom MijickTimer.

Countdown Timer

Easily create countdown timers to track remaining time. Perfect for games, events or task apps.

Take a look at the implementation details here.

An illustration of how to create a countdown timer using only a few lines of code with the MijickTimer library.

Control Timer state

Pause timers and resume them later without losing progress. It also allows to skip and cancel the progress.

Take a look at the implementation details here.

Demonstrates code for controlling the Timer state via the MijickTimer library: stop, pause, resume, skip, and cancel or stop the Timer.

Observe Timer State

Monitor timer state with a variety of different approaches: binding, callbacks, combine, state value updates.

Take a look at the implementation details here.

The code illustrates various methods for monitoring the current timer state, including binding, callbacks, combining, and state observation

✅ Why MijickTimer?

Multiple Apple Platform Support:

  • iPhone, iPad. Requires iOS 13.0+ .
  • Mac. Requires macOS 10.15+.
  • Apple Vision Pro. Requires visionOS 1.0+.

Built for Swift 6:

  • Modern, efficient, and designed for performance.

All-in-One Timer Solution:

  • Handles countdowns, count-ups, pausing, resuming and state management seamlessly.

Versatile Observation:

  • Choose callbacks, bindings or Combine for the implementation that works best for you.
  • Provides the ability to access the state of a specific timer from any part of the code base.

It's just a cool library 😎

🚀 How to use it?

Visit the framework's documentation to learn how to integrate your project with MijickTimer.
See for yourself how does it work by cloning project we created

🍀 Community

Join the welcoming community of developers on Discord.

🌼 Contribute

To contribute a feature or idea to MijickTimer, create an issue explaining your idea or bring it up on Discord.
If you find a bug, please create an issue.
If you would like to contribute, please refer to the Contribution Guidelines.

💜 Sponsor our work

Support our work by becoming a backer.

Description

  • Swift Tools 6.0.0
View More Packages from this Author

Dependencies

  • None
Last updated: Sat May 17 2025 03:26:04 GMT-0900 (Hawaii-Aleutian Daylight Time)