English | 日本語
ZoomacIt is a native macOS menu bar app inspired by ZoomIt for Windows. The project aims for feature compatibility with ZoomIt, providing system-wide hotkeys, smooth zooming, and on-screen annotation while minimizing required permissions.
📖 Looking for installation, usage, or keyboard shortcuts? Visit the ZoomacIt Documentation Site.
demo_s.mov
| Feature | Status |
|---|---|
| Zoom (Still Zoom) | ✅ |
| Zoom (Live Zoom) | |
| Draw | ✅ |
| DemoType | |
| Break Timer | ✅ |
| Snip | |
| Record |
Pure Swift 6 + AppKit (SwiftUI used only for Settings UI). macOS 26+. No external dependencies. The Xcode project is generated by xcodegen from src/project.yml.
| Layer | Directory | Purpose |
|---|---|---|
| App | src/ZoomacIt/App/ |
Entry point (main.swift), AppDelegate, StatusBarController (menu bar) |
| Core | src/ZoomacIt/Core/ |
HotkeyManager — Carbon RegisterEventHotKey API |
| Overlay | src/ZoomacIt/Overlay/ |
Fullscreen overlay windows, zoom controllers, ZoomMath |
| Draw | src/ZoomacIt/Draw/ |
DrawingCanvasView (3-layer compositing), renderers, StrokeManager |
| Settings | src/ZoomacIt/Settings/ |
SwiftUI-based preferences with hotkey customization |
| Models / Utils | src/ZoomacIt/Models/, Utilities/ |
State models (DrawingState, Stroke, Settings), extensions |
Detailed design documents are in design/.
- macOS 26+
- Xcode (with Swift 6 toolchain)
- xcodegen (
brew install xcodegen) — only needed when editingsrc/project.yml
make build # Debug build
make test # Run unit tests
make run # Build and launch the app
make release # Release build (Developer ID signed)
make notarize # Release build + Apple notarization
make dmg VERSION=1.0.0 # Notarize + create distributable DMG
make clean # Clean build artifacts
make generate # Regenerate .xcodeproj (after editing src/project.yml)
make docs # Start local documentation dev server
make docs-build # Build documentation sitemacOS Gatekeeper blocks unsigned apps downloaded from the internet. To distribute ZoomacIt without requiring users to bypass Gatekeeper warnings, the app must be signed with a Developer ID certificate and notarized by Apple.
Copy .env.example to .env and fill in your credentials:
cp .env.example .env| Variable | Description |
|---|---|
APPLE_ID |
Your Apple ID email address |
TEAM_ID |
Your Apple Developer Team ID (used by make release / make notarize) |
APP_PASSWORD |
An app-specific password generated at appleid.apple.com |
DEVELOPER_NAME |
Your name as it appears on your Developer ID certificate |
Then run:
make dmg VERSION=1.0.0This builds a Release binary signed with your Developer ID, submits it to Apple for notarization, staples the notarization ticket, and packages the result into a distributable DMG.
Note: Notarization requires an Apple Developer Program membership. The
.envfile is gitignored and must never be committed.
This project is licensed under the GNU General Public License v3.0.
