# Побудувала нативний клієнт обміну повідомленнями для macOS на Swift 6 і SwiftUI — 11 141 рядок у 53 файлах — поверх C‑інтерфейсу ядра на Rust, злінкованого як статичний архів із зафіксованої ревізії.

серпень 2026

**Ситуація.** Протокол обміну повідомленнями мав добре випробуване ядро, написане на Rust, і клієнти на кількох платформах, але настільний досвід на macOS був кросплатформною оболонкою — він не мав вигляду програми для Mac, не поводився як така й ніс середовище виконання, якого рідній програмі не потрібно. Ядро відкриває свою спроможність через C‑інтерфейс, а це означає, що будь‑яка мова, здатна викликати C, може на ньому будувати, і Swift здатен.

**Завдання.** Рідного клієнта треба було збудувати безпосередньо на тому C‑інтерфейсі, поточною мовою платформи та її поточним інтерфейсним каркасом, із ядром, вкомпонованим усередину, а не постаченим поруч.

**Дія.** Програма має 11 141 рядок Swift у п'ятдесяти трьох файлах у цілі застосунку, збудована на SwiftUI з ядром, вкомпонованим як статичний архів, зібраний із закріпленої висхідної ревізії. Закріплення ревізії, а не стеження за гілкою, є тим рішенням, що робить збирання відтворюваним: C‑інтерфейс є контрактом, і рухоме ядро змінює контракт, не змінюючи жодного рядка Swift. Шарування тримає небезпечну поверхню малою — тонка обгортка володіє кожним вказівником і кожним рядком, що перетинає межу, моделі над нею є звичайними значеннями Swift, а інтерфейсний шар ніколи не бачить сирого вказівника. Усе, що повертає C‑інтерфейс, має правило володіння, і помилитися в одному з них означає або витік, або аварію без жодного попередження компілятора між ними, тож саме в обгортці живе вся дисципліна пам'яті проєкту. Збиранням керує виконавець завдань із п'ятдесятьма шістьма цілями, що охоплюють компіляцію ядра, збирання Swift, набори тестів, лінтери та пакування.

**Результат.** Рідний клієнт, що запускається як програма для Mac, використовує власні матеріали та елементи керування платформи й не несе вбудованого браузера. Те, чого не зроблено, слід зазначити: це не випущений реліз. Немає ні нотаризованого розповсюдження, ні каналу оновлень, і в інтерфейсі одна мова, тож це радше робоча програма, ніж продукт, який хтось інший використовує.

---

- Роль: Інженер застосунків macOS
- Категорії: [Архітектура рішень](https://software.engineer.company/uk/categories/solution-architecture/), [Frontend‑розробка](https://software.engineer.company/uk/categories/frontend/), [Full‑Stack розробка](https://software.engineer.company/uk/categories/full-stack/), [API та інтеграції](https://software.engineer.company/uk/categories/api/), [Дизайн‑системи та UI](https://software.engineer.company/uk/categories/design-systems/), [UX / UI‑дизайн](https://software.engineer.company/uk/categories/ux-ui/)
- Послуги: [Архітектура платформи та рішень](https://software.engineer.company/uk/services/platform-architecture/), [Frontend‑розробка](https://software.engineer.company/uk/services/frontend-development/), [Full‑Stack продуктова розробка](https://software.engineer.company/uk/services/full-stack-development/), [UI/UX‑дизайн та дизайн‑системи](https://software.engineer.company/uk/services/ui-ux-design/)

<https://software.engineer.company/uk/portfolio/built-a-native-macos-messaging-client-in-swift-6-154/>
