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

Официальный клиент 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.



