Pulsator
May 22, 2026 · View on GitHub
Pulse animation for iOS and macOS, usable from both UIKit and SwiftUI.
Great For:
- Pulses of Bluetooth, BLE, beacons (iBeacon), etc.
- Map Annotations
Installation
Swift Package Manager
In Xcode, choose File → Add Package Dependencies… and enter this repository's URL:
CocoaPods (deprecated)
Add into your Podfile.
pod "Pulsator"
Then $ pod install
How to use
SwiftUI
Just 1 line! Add the .pulsator() modifier to any view.
yourView
.pulsator()
UIKit
Initiate and add to your view's layer, then call start!
let pulsator = Pulsator()
view.layer.addSublayer(pulsator)
pulsator.start()
Customizations
SwiftUI example:
yourView
.pulsator(
numPulse: 3,
radius: 240,
animationDuration: 5,
color: pulseColor,
isPulsating: isPulsating
)
Number of Pulses
Use numPulse property.
pulsator.numPulse = 3
Radius
Use radius property.
pulsator.radius = 240.0
Color
Just set the backgroundColor property.
pulsator.backgroundColor = UIColor(red: 1, green: 1, blue: 0, alpha: 1).cgColor
Animation Duration
Use following properties
animationDuration: duration for each pulsepulseInterval: interval between pulses
Easing
You can set the timingFunction property.
Repeat
Use repeatCount property.
Demo
Try changing the radius, backgroundColor or other properties with the demo apps.
- SwiftUI:
Example/SwiftUI/PulsatorDemo.xcodeproj - UIKit:
Example/UIKit/PulsatorDemo.xcodeproj
macOS support
Add into your Podfile, then run pod install.
platform :osx, '10.9'
target 'Pulsator' do
use_frameworks!
pod "Pulsator"
end
The usage is same as iOS.
let pulsator = Pulsator()
view.layer?.addSublayer(pulsator)
pulsator.start()
Objective-C version
There is an ObjC version, but it's not maintained now.
You can use Pulsator also with Objective-C.
#import "Pulsator-Swift.h"
Author
Shuichi Tsutsumi
iOS freelancer in Japan. Welcome works from abroad!