...
Back to articles
KinomacOSSwiftSwiftUIAppKitAVFoundationVideo EditorSoftware DevelopmentBuild Log

Building Kino: A Native Video Editor for macOS

Sep 22, 2026 5 min read
Share to:
Building Kino: A Native Video Editor for macOS

Building Kino: A Native Video Editor for macOS

English

Kino is a native video editor for macOS that I am building with Swift and SwiftUI.

The idea behind Kino started from a simple question: what if a video editor could feel lightweight, native, and straightforward without sacrificing the flexibility needed for serious editing?

Instead of building another editor that tries to do everything, Kino focuses on creating a solid editing foundation first.

Why Kino?

Many modern video editors are becoming increasingly complex. They offer hundreds of features, plugins, effects, and workflows.

For Kino, I wanted to take a different approach.

The goal is to build a video editor that feels like a natural macOS application while keeping the editing workflow focused and understandable.

Kino is designed around three principles:

  • Native macOS experience

  • Non-destructive editing

  • Filesystem-first workflow

Filesystem-First Workflow

One of the most important design decisions in Kino is how media is managed.

Kino does not treat the project as a container that owns all of the user's media.

Instead, source media stays where the user originally placed it.

The project stores references to the source files and the editing decisions made by the user.

This means normal editing operations do not overwrite the original media.

If a source file is moved or becomes unavailable, Kino can detect the missing media and provide a way to relink it.

Non-Destructive Editing

Editing a video should not mean permanently modifying the original file.

Kino uses a non-destructive editing approach where operations such as cutting, trimming, transforming, and adjusting clips are represented as editing decisions.

The original media remains untouched.

This also makes it possible to experiment with edits without worrying about destroying the source material.

Building the Timeline

The timeline is one of the most important parts of Kino.

It is responsible for representing video and audio tracks, clips, their positions, durations, and editing operations.

The architecture separates timeline state from playback and rendering so that editing operations can remain predictable and maintainable.

The initial version focuses on the fundamentals:

  • Video tracks

  • Audio tracks

  • Clips

  • Cut and split

  • Trim

  • Delete

  • Undo and redo

  • Snapping

  • Markers

Real-Time Preview

One of the more challenging parts of building Kino was creating a responsive preview experience.

Transform controls such as scale, rotation, position, and opacity need to respond immediately while the user interacts with them.

Instead of rebuilding the entire playback pipeline every time a slider changes, Kino separates the preview presentation layer from the underlying playback system.

This allows visual transformations to be updated in real time while keeping the playback pipeline stable.

Technology

Kino is built using Apple's native technologies:

  • Swift

  • SwiftUI

  • AppKit

  • AVFoundation

  • Xcode

SwiftUI is used for the main application interface, while AppKit and AVFoundation are used where deeper macOS and media capabilities are required.

Modular Architecture

Kino is also being designed with a modular architecture.

The Core provides the fundamental video editing experience, while additional capabilities can eventually be implemented as optional modules.

Planned modules include:

  • Effects

  • Transitions

  • Advanced Subtitles

  • Professional Color

  • Audio Pro

  • Advanced Export

  • Motion Graphics

  • Masking & Tracking

  • AI Tools

  • Templates

  • Integrations

The goal is to keep the Core lightweight while allowing Kino to grow without turning the entire application into one large tightly coupled system.

What I Have Learned

Building Kino has been more than just building a video editor.

It has required me to think about architecture, media management, playback systems, filesystem behavior, performance, and user experience at the same time.

One of the biggest lessons has been that building a complex application is not only about adding features.

The architecture behind those features matters just as much.

Kino is still under active development, and there are many parts of the editor that I want to improve and expand.


Bahasa Indonesia

Kino adalah video editor native untuk macOS yang sedang saya bangun menggunakan Swift dan SwiftUI.

Ide Kino berawal dari sebuah pertanyaan sederhana: bagaimana jika sebuah video editor bisa terasa ringan, native, dan sederhana digunakan tanpa menghilangkan fleksibilitas yang dibutuhkan untuk proses editing yang lebih serius?

Daripada membuat editor yang mencoba menyediakan semua fitur sejak awal, saya ingin membangun fondasi editing yang kuat terlebih dahulu.

Kenapa Kino?

Banyak video editor modern yang semakin kompleks dengan ratusan fitur, plugin, efek, dan berbagai macam workflow.

Kino mengambil pendekatan yang sedikit berbeda.

Tujuan saya adalah membuat video editor yang terasa seperti aplikasi macOS native, tetapi tetap memiliki workflow editing yang fokus dan mudah dipahami.

Kino dibangun berdasarkan tiga prinsip:

  • Pengalaman native macOS

  • Non-destructive editing

  • Filesystem-first workflow

Filesystem-First Workflow

Salah satu keputusan desain terpenting di Kino adalah bagaimana media dikelola.

Kino tidak menjadikan project sebagai container yang memiliki seluruh media pengguna.

Media asli tetap berada di lokasi yang dipilih oleh pengguna.

Project hanya menyimpan referensi terhadap file sumber serta keputusan editing yang dibuat pengguna.

Dengan pendekatan ini, proses editing normal tidak akan menimpa media asli.

Jika sebuah file dipindahkan atau tidak tersedia, Kino dapat mendeteksi media yang hilang dan menyediakan mekanisme untuk melakukan relink.

Non-Destructive Editing

Editing video seharusnya tidak berarti mengubah file asli secara permanen.

Kino menggunakan pendekatan non-destructive editing, sehingga operasi seperti cut, trim, transform, dan berbagai perubahan lainnya direpresentasikan sebagai keputusan editing.

Media asli tetap tidak tersentuh.

Dengan begitu, pengguna dapat bereksperimen dengan editing tanpa khawatir merusak source media.

Membangun Timeline

Timeline merupakan salah satu bagian terpenting dari Kino.

Timeline bertanggung jawab untuk merepresentasikan video track, audio track, clip, posisi, durasi, dan berbagai operasi editing.

Arsitektur Kino memisahkan state timeline dari playback dan rendering agar operasi editing tetap mudah diprediksi dan dikembangkan.

Versi awal berfokus pada fitur dasar:

  • Video tracks

  • Audio tracks

  • Clips

  • Cut dan split

  • Trim

  • Delete

  • Undo dan redo

  • Snapping

  • Markers

Real-Time Preview

Salah satu bagian yang cukup menantang dalam pengembangan Kino adalah membuat preview yang responsif.

Kontrol transform seperti scale, rotation, position, dan opacity harus dapat memberikan feedback secara langsung ketika pengguna mengubah slider.

Daripada membangun ulang seluruh playback pipeline setiap kali slider berubah, Kino memisahkan presentation layer untuk preview dari sistem playback.

Dengan pendekatan tersebut, perubahan visual dapat diperbarui secara real-time tanpa harus terus-menerus membangun ulang playback pipeline.

Teknologi

Kino dibangun menggunakan teknologi native dari Apple:

  • Swift

  • SwiftUI

  • AppKit

  • AVFoundation

  • Xcode

SwiftUI digunakan untuk interface utama aplikasi, sementara AppKit dan AVFoundation digunakan ketika membutuhkan kemampuan macOS dan media processing yang lebih dalam.

Arsitektur Modular

Kino juga dirancang menggunakan arsitektur modular.

Core menyediakan pengalaman video editing utama, sedangkan fitur tambahan nantinya dapat dikembangkan sebagai optional modules.

Beberapa module yang direncanakan antara lain:

  • Effects

  • Transitions

  • Advanced Subtitles

  • Professional Color

  • Audio Pro

  • Advanced Export

  • Motion Graphics

  • Masking & Tracking

  • AI Tools

  • Templates

  • Integrations

Tujuannya adalah menjaga Core tetap ringan sekaligus memungkinkan Kino berkembang tanpa membuat seluruh aplikasi menjadi satu sistem yang terlalu tightly coupled.

Apa yang Saya Pelajari

Membangun Kino bukan hanya tentang membuat sebuah video editor.

Saya juga belajar mengenai arsitektur software, media management, playback system, filesystem, performance, dan user experience secara bersamaan.

Salah satu hal terbesar yang saya pelajari adalah bahwa membangun aplikasi kompleks bukan hanya tentang menambahkan banyak fitur.

Arsitektur di balik fitur tersebut sama pentingnya.

Kino masih dalam tahap pengembangan dan masih banyak bagian yang ingin saya kembangkan serta tingkatkan ke depannya.

Lo-Fi Coding BeatsPaused