DEV Community

hiyoyo profile picture

hiyoyo

Indie macOS developer. Building utilities for Android + Mac users. Rust / Tauri / React — @hiyokoko 7 apps shipped. Writing about all of it.

Complete Guide to Building a macOS Menu Bar App with Tauri v2

Complete Guide to Building a macOS Menu Bar App with Tauri v2

Comments 1
5 min read

Want to connect with hiyoyo?

Create an account to connect with hiyoyo. You can also sign in below to proceed if you already have an account.

Already have an account? Sign in
My $0/Month AI Stack as a Solo Mac Dev — What I Actually Use in 2026

My $0/Month AI Stack as a Solo Mac Dev — What I Actually Use in 2026

Comments 1
2 min read
Menubar Apps Are Underrated. Here's Why I Keep Building Them.

Menubar Apps Are Underrated. Here's Why I Keep Building Them.

Comments 1
2 min read
Storing API Keys Safely in a Tauri App — Don't Just Use LocalStorage

Storing API Keys Safely in a Tauri App — Don't Just Use LocalStorage

1
Comments 1
2 min read
Product Hunt Launch for an Indie Mac App — What I Did and What Happened

Product Hunt Launch for an Indie Mac App — What I Did and What Happened

Comments 1
2 min read
Rust Ownership Made Practical — Patterns I Use in Every Tauri App

Rust Ownership Made Practical — Patterns I Use in Every Tauri App

Comments 1
2 min read
I Built a Feature That Automatically Switches Android from USB to Wi-Fi — Here's How It Works

I Built a Feature That Automatically Switches Android from USB to Wi-Fi — Here's How It Works

2
Comments 1
2 min read
Gemini Streaming in Rust + Tauri — Real-Time AI Responses Without the Jank

Gemini Streaming in Rust + Tauri — Real-Time AI Responses Without the Jank

1
Comments 3
2 min read
Building a Mini Dashboard Widget in Tauri — The Menubar Mini-Dash Pattern

Building a Mini Dashboard Widget in Tauri — The Menubar Mini-Dash Pattern

Comments 1
3 min read
QuickLook Integration in a Tauri App — Native macOS File Preview

QuickLook Integration in a Tauri App — Native macOS File Preview

Comments 1
2 min read
I Spent 2 Weeks Trying to Make OpenCV Recognize Game Cards — Here's Why It Failed All tests run on an 8-year-old MacBook Air.#3

I Spent 2 Weeks Trying to Make OpenCV Recognize Game Cards — Here's Why It Failed All tests run on an 8-year-old MacBook Air.#3

Comments
3 min read
Wi-Fi ADB Lies to You: The Silent Disconnect Problem No One Talks About

Wi-Fi ADB Lies to You: The Silent Disconnect Problem No One Talks About

3
Comments 1
3 min read
Tauri v2 State Management: Patterns From 7 Shipped Apps

Tauri v2 State Management: Patterns From 7 Shipped Apps

Comments
4 min read
Why NSOpenPanel Can't See Your Android Device

Why NSOpenPanel Can't See Your Android Device

Comments 1
2 min read
Why MTP Batch Transfers Slow Down Between Files

Why MTP Batch Transfers Slow Down Between Files

Comments 1
2 min read
MTP on Android Is a Minefield — What I Learned After Building My Own Mac Client

MTP on Android Is a Minefield — What I Learned After Building My Own Mac Client

1
Comments 1
2 min read
Tauri Sandbox Permissions — Why Your Command Silently Does Nothing

Tauri Sandbox Permissions — Why Your Command Silently Does Nothing

1
Comments 1
2 min read
I Can Copy on My Phone and Paste on My Mac Instantly — Across 10 Devices at Once

I Can Copy on My Phone and Paste on My Mac Instantly — Across 10 Devices at Once

Comments
2 min read
Claude API Cheatsheet 2026 — Models, Pricing, Limits in One Place

Claude API Cheatsheet 2026 — Models, Pricing, Limits in One Place

Comments 5
3 min read
Gumroad Cut Off My Payments Without a Word. Their Support Never Replied.

Gumroad Cut Off My Payments Without a Word. Their Support Never Replied.

Comments 1
3 min read
I Fed 100 Files to Claude and Gemini to Find Bugs — Here's Why It Failed

I Fed 100 Files to Claude and Gemini to Find Bugs — Here's Why It Failed

Comments
3 min read
I Built a macOS ADB GUI Tool with Tauri v2 + Rust — Here's What I Actually Implemented

I Built a macOS ADB GUI Tool with Tauri v2 + Rust — Here's What I Actually Implemented

Comments 1
2 min read
Building a Card Game AI with Reinforcement Learning — Implementation Details#2

Building a Card Game AI with Reinforcement Learning — Implementation Details#2

1
Comments
2 min read
I'm Building a GUI Tool for ADB Commands on macOS (Work in Progress)

I'm Building a GUI Tool for ADB Commands on macOS (Work in Progress)

Comments
2 min read
Code Signing a Tauri App for macOS — The Complete Flow

Code Signing a Tauri App for macOS — The Complete Flow

Comments
2 min read
I Used Gemini 3.5 Flash via Direct API for a Week — An Honest Report on Its Speed Trade-offs and Real-World Pitfalls

I Used Gemini 3.5 Flash via Direct API for a Week — An Honest Report on Its Speed Trade-offs and Real-World Pitfalls

Comments
4 min read
What I Learned Shipping 7 Mac Apps in 12 Months — The Honest Retrospective

What I Learned Shipping 7 Mac Apps in 12 Months — The Honest Retrospective

1
Comments
2 min read
MTP Explained — And Why It Matters for Android on Mac

MTP Explained — And Why It Matters for Android on Mac

Comments
2 min read
MTP Explained — And Why It Matters for Android on Mac

MTP Explained — And Why It Matters for Android on Mac

Comments
2 min read
My Screenshot Tool Broke on Android 16 — Here's What Actually Happened

My Screenshot Tool Broke on Android 16 — Here's What Actually Happened

1
Comments
2 min read
I Built a Mac App That Keeps Your Clipboard in Sync Across All Your Android Devices

I Built a Mac App That Keeps Your Clipboard in Sync Across All Your Android Devices

1
Comments
2 min read
scrcpy Integration in a Tauri App — Android Screen Mirroring on Mac

scrcpy Integration in a Tauri App — Android Screen Mirroring on Mac

1
Comments
2 min read
My Old MacBook Air Couldn't Handle It — So I Used Google Colab to Train an AI#1

My Old MacBook Air Couldn't Handle It — So I Used Google Colab to Train an AI#1

Comments
3 min read
Is Gemini 3.5 Flash Actually Better at Coding Than 3.1 Pro? I Tested It with Real Rust Code

Is Gemini 3.5 Flash Actually Better at Coding Than 3.1 Pro? I Tested It with Real Rust Code

Comments 6
5 min read
AppleScript Injection and Directory Traversal — Security Bugs I Fixed in My Own Apps

AppleScript Injection and Directory Traversal — Security Bugs I Fixed in My Own Apps

1
Comments
2 min read
Localizing a Tauri App for Japanese and English — What Actually Works

Localizing a Tauri App for Japanese and English — What Actually Works

1
Comments
2 min read
Clipboard Monitor + Gemini in a Tauri App — Building a Smarter Dev Tool

Clipboard Monitor + Gemini in a Tauri App — Building a Smarter Dev Tool

1
Comments
2 min read
Claude API Cheatsheet 2026 — Models, Pricing, Limits in One Place

Claude API Cheatsheet 2026 — Models, Pricing, Limits in One Place

Comments
2 min read
Detecting Dangerous Shell Commands in Rust — Building a Safety Layer

Detecting Dangerous Shell Commands in Rust — Building a Safety Layer

Comments
2 min read
File Watching in Rust with notify-rs — Hot Folders for a Sync App

File Watching in Rust with notify-rs — Hot Folders for a Sync App

Comments 2
2 min read
Building a Menubar App with Tauri v2 — What Nobody Tells You

Building a Menubar App with Tauri v2 — What Nobody Tells You

Comments
2 min read
Global Keyboard Shortcuts in Tauri v2 — The Right Way and the Wrong Way

Global Keyboard Shortcuts in Tauri v2 — The Right Way and the Wrong Way

Comments
2 min read
Rust Async in Tauri v2 — What Tripped Me Up and How I Fixed It

Rust Async in Tauri v2 — What Tripped Me Up and How I Fixed It

1
Comments
2 min read
Rust Error Handling in Tauri Commands — The Pattern That Actually Works

Rust Error Handling in Tauri Commands — The Pattern That Actually Works

Comments
2 min read
Building a Universal Binary with Tauri v2 — It's Easier Than You Think

Building a Universal Binary with Tauri v2 — It's Easier Than You Think

Comments
2 min read
One Input Box, Two AI Modes — Detecting Whether the User Wants Error Help or Command Explanation

One Input Box, Two AI Modes — Detecting Whether the User Wants Error Help or Command Explanation

Comments
1 min read
AI Overlay UI in Tauri — Designing the "Ask AI" Button That Doesn't Annoy Users

AI Overlay UI in Tauri — Designing the "Ask AI" Button That Doesn't Annoy Users

Comments
2 min read
"You Got This Error Last Week" — Building an AI That Remembers Your Past Errors

"You Got This Error Last Week" — Building an AI That Remembers Your Past Errors

Comments 5
2 min read
Detecting Dangerous Terminal Commands Before Sending Them to an AI — My Safety Layer

Detecting Dangerous Terminal Commands Before Sending Them to an AI — My Safety Layer

Comments
2 min read
Offline-First Architecture in a Tauri App — What It Actually Means

Offline-First Architecture in a Tauri App — What It Actually Means

Comments
2 min read
How I Price My Indie Mac Apps — The Thinking Behind $7, $39, and $50

How I Price My Indie Mac Apps — The Thinking Behind $7, $39, and $50

Comments 1
2 min read
What I Learned Building HiyokoBar — A Menubar App That Does One Thing Per Click

What I Learned Building HiyokoBar — A Menubar App That Does One Thing Per Click

Comments
2 min read
Bates Numbering in Rust — Automating Legal Document Stamping

Bates Numbering in Rust — Automating Legal Document Stamping

Comments
2 min read
PDF Redaction in Rust — Why "Delete the Text" Isn't Enough

PDF Redaction in Rust — Why "Delete the Text" Isn't Enough

1
Comments
2 min read
Selling Mac Apps on Gumroad — What Works, What Doesn't, Honest Numbers

Selling Mac Apps on Gumroad — What Works, What Doesn't, Honest Numbers

1
Comments
2 min read
Rust Async Patterns in Tauri — Keeping the UI Responsive While Rust Does Heavy Work

Rust Async Patterns in Tauri — Keeping the UI Responsive While Rust Does Heavy Work

Comments
2 min read
Rust Error Handling Patterns I Actually Use in Production

Rust Error Handling Patterns I Actually Use in Production

Comments
2 min read
Combining Virtual Scroll With AI — Keeping 50,000 Log Lines Fast While Adding Gemini

Combining Virtual Scroll With AI — Keeping 50,000 Log Lines Fast While Adding Gemini

Comments
2 min read
AI Button UX — Where to Put It, How to Label It, What to Show While Waiting

AI Button UX — Where to Put It, How to Label It, What to Show While Waiting

Comments
2 min read
Localizing Gemini Prompts — Getting AI Responses in the User's Language

Localizing Gemini Prompts — Getting AI Responses in the User's Language

Comments
2 min read
loading...