Бортовой журнал Ктулху

Альтернативный клиент Google Chat MacOS X

Рад представить свою разработку - альтернативный, лёгкий клиент Google Chat для MacOS X (пока что). На данный момент этот клиент умеет только обмениваться сообщениями и вложениями. Планируется дальнейшее внедрение реакций и некоторых фич, которых нет в оригинальном клиенте.

 

2026 07 12 10.27.31

Официальный клиент Google Chat доступен в виде веб-приложения (PWA), которое, по сути, работает внутри браузера. У такого подхода есть пара недостатков:

- Зависимость от браузера: Нужно держать Chrome (или другой браузер) открытым, даже если он вам больше не нужен.
- Ограниченная интеграция: PWA не всегда идеально интегрируется с системными уведомлениями, горячими клавишами и общим интерфейсом macOS.
Мне захотелось создать лёгкое, нативное приложение, которое делает ровно одно дело — работает с Google Chat, но делает это быстро и удобно.

Сразу скажу, ключевой момент, который нужно понять: для работы с Google Chat API необходима платная подписка Google Workspace. К сожалению, API чата не доступен для обычных бесплатных аккаунтов @gmail.com. Это официальное ограничение Google, и оно делает проект ориентированным на корпоративных пользователей.

В остальном, создание клиента - это классическая работа с REST API и OAuth 2.0 авторизацией, упакованная SwiftUI-интерфейс.

Основные возможности:

- Чтение и отправка сообщений: Всё работает быстро и без лишних задержек.
- Список чатов: Все ваши каналы и личные переписки отображаются в удобном списке.
- Нативные уведомления: Вы не пропустите ни одного сообщения, даже если приложение свёрнуто.
- Упоминания: Работает привычный @ для обращения к коллегам.
- Отправка файлов: Можно обмениваться изображениями и документами.
- Настройки: Вы можете указать свой Client ID для авторизации, а также настроить отображение.

А как быть с внешними пользователями?

Это был один из первых вопросов, который возник в процессе разработки. Google Chat изначально поддерживает общение с пользователями из других доменов. Всё, что для этого нужно — знать email вашего собеседника. При создании личного чата или при приглашении в канал вы просто указываете его email, и API сам разбирается с остальным.

Сложности и пути их решения

Главная архитектурная сложность — это не сам API, а распространение Client ID. Этот ключ уникален для каждого Google Cloud проекта, и его нельзя просто зашить в код приложения для всех.

На данный момент выбрано простое и гибкое решение: пользователь вводит свой Client ID самостоятельно при первом запуске. Это делает приложение универсальным инструментом, который могут настроить под себя администраторы разных компаний, вместо того чтобы быть привязанным к одному ключу.

Что дальше?

В планах — добавить больше "фишек", которых нет в официальном клиенте, чтобы сделать использование ещё удобнее.

Заключение

Создание альтернативного клиента — это увлекательный эксперимент. Именно эксперимент, который позволяет получить именно тот инструмент, который тебе нужен. Если вам интересно попробовать его в деле или даже поучаствовать в разработке, весь код доступен на GitHub. Буду рад вашим идеям и отзывам.

Disclaimer: Это независимый проект, не связанный с Google. Все права на Google Chat принадлежат Google Inc.

https://github.com/kotulhu/google-chat-macos