소개
Zlack은 Slack을 조금 더 가볍고 안정적으로 쓰기 위해 만든 Tauri 기반 데스크톱 클라이언트입니다. Windows와 macOS에서 모두 사용할 수 있도록 만들었고, Slack 웹을 바탕으로 알림과 멀티 워크스페이스 사용 흐름을 최대한 자연스럽게 유지하는 데 집중했습니다.
윈도우 설치 앱 기준으로 비교했을 때 Slack은 약 1.24GB, Zlack은 6.49MB 정도로 차이가 났습니다. 물론 단순한 숫자만으로 모든 사용성을 설명할 수는 없지만, 처음부터 체감되는 가벼움은 꽤 분명했습니다.
직접 보실 수 있는 링크도 함께 남겨둡니다.
Zlack: Tauri로 만든 경량 데스크톱 Slack 클라이언트 | GeekNews
Zlack은 Slack 웹을 기반으로 하면서, Electron 대신 Tauri로 구현한 경량 데스크톱 Slack 클라이언트입니다.웹 Slack의 사용성은 그대로 유지하면서도, 데스크톱 환경에서 필요한 네이티브 알림과 안정적
news.hada.io
GitHub - sanguneo/zlack: A lightweight, optimized desktop wrapper for Slack, built with Tauri.
A lightweight, optimized desktop wrapper for Slack, built with Tauri. - sanguneo/zlack
github.com
이 글은 Zlack을 소개하는 글이기도 하지만, 왜 이런 형태로 다시 만들었는지까지 같이 정리해보는 글입니다.
개발기
Zlack은 Electron 대신 Tauri를 선택하면서 시작했습니다. 이유는 단순했습니다. Slack을 전체 Chromium 번들로 다시 감싸기보다, 필요한 부분만 더 가볍게 가져가고 싶었기 때문입니다. 그 덕분에 메모리와 설치 용량에서 확실한 차이를 낼 수 있었습니다.
기술적으로는 Slack 웹 클라이언트를 그대로 활용하되, preload.js와 Rust 백엔드를 연결해 데스크톱 앱으로서 필요한 부분만 보강하는 방식으로 구성했습니다. 알림, 딥링크, 윈도우 포커스 복원 같은 부분이 핵심이었습니다.
특히 Windows에서는 알림 클릭 후 창이 잘 복원되지 않는 문제가 꽤 까다로웠습니다. 그래서 Rust 쪽에서 시스템 트레이 복원과 포커스 전환을 안정적으로 처리했고, Slack의 네트워크 트래픽에서 Team ID와 Channel ID를 잡아내서 알림이 정확한 곳으로 이동하도록 했습니다.
구조를 조금 더 풀어보면 다음과 같습니다.
- Slack 웹 클라이언트 + preload.js 브리지
- /traces/v1/list_of_spans 트래픽에서 알림 맥락 추출
- Rust 백엔드에서 Windows 토스트 알림 처리
- 최소한의 웹뷰 구조로 멀티 워크스페이스 지원
- 작은 설치 용량과 빠른 초기 실행
이 프로젝트는 아직도 실사용 피드백을 받으면서 계속 다듬어가는 중입니다. 처음 목표는 분명했지만, 실제 사용 환경에서 생기는 자잘한 문제까지 잡아가야 완성도가 올라간다고 생각했습니다.
'Develop' 카테고리의 다른 글
| 구너 영상 플레이어 15.11 (1) | 2018.05.30 |
|---|---|
| mWeb Mac버전 배포 (4) | 2016.11.22 |
| 개발자 후원하기. (0) | 2016.07.13 |
| 구너갤러리 15.11.2 (0) | 2015.11.16 |
| 구너갤러리 15.11 (0) | 2015.11.04 |
