macOS向けネイティブGmailクライアント:「ネイティブ」の本当の意味
「ネイティブ」は、どのGmailアプリのページでも最もよく使われる言葉で、少なくとも3つの違う意味を持っています。ここでは、Harkが自らに課している定義、アプリのどの部分がmacOS自身のフレームワークで作られているか、そしてシステムのWebエンジンを使う唯一の場所とその理由を説明します。
「ネイティブ」が意味する3つのこと
この言葉は、製品ページごとに違う役割を担っています。ネイティブなGmailアプリが欲しいかどうかを決める前に、どの意味のものが提供されているのかを知っておく価値があります。
Dockアイコンがあること
アプリの中身はGmailのWebサイトで、アプリに同梱されたブラウザのコピーの中で読み込まれています。アイコン、ウインドウ、通知は手に入りますが、ウインドウの中身はタブで開いていたのと同じWebページです。最も緩い意味で、最もよく見かける意味でもあります。
Macらしい見た目であること
インターフェイスはやはりWebページですが、macOSに似せたスタイルが当てられています。適切なグレー、サイドバー、ツールバー。スクリーンショットでは本物らしく見えることもあります。しかしポインタを当てると、やはりページとして振る舞います。ドラッグしたつもりがテキストが選択され、メニューはシステムのものではなく描画されたもので、何かが表示される前にブラウザエンジンを起動する必要があります。
プラットフォームのフレームワークで作られていること
リストは本物のリストビュー、メニューはメニューバーのもの、テキストフィールドはスペルチェックや音声入力を備えたシステムのテキストフィールド、ウインドウはOSが並べたり、隠したり、復元したりできるウインドウです。アプリが描画を始める前に起動しなければならないものは何もありません。Harkが使うのはこの意味で、このページの残りはその中身の説明です。
Harkで具体的に何がネイティブなのか
- インターフェイス全体。 メッセージリスト、サイドバーとラベル、ツールバー、検索、設定、カレンダーのグリッドとエディタ、ToDoリストのパネル。すべてSwiftUIとAppKitで作られ、macOSが描画します。ライトとダークはシステムの設定か、あなたの選択に従い、アクセントカラーも自分で選べます。
- 作成画面。 メッセージの作成は、本物のmacOSのテキストビューで行います。書式バーからの太字・斜体・下線、システムのスペルチェッカー、標準の「Edit」メニュー、リンクとインライン画像。テキストビューのふりをしたページではありません。
- 同期エンジン。 Rustで書かれたコアがあなたのMac上で動作し、GoogleのAPIを通じてGmail、カレンダー、ToDoリストと通信します。ローカルデータベースを保持しているので、受信トレイはネットワークではなくディスクから開きます。
- デスクトップが提供するものすべて。 通知センター、Dockのバッジ、メニューバーからの新着確認、作成用の独立したウインドウ、操作スペース、⌘Tab、そしてその場でインストールされるアップデート。
Webエンジンを使う唯一の場所と、その理由
HTMLメールはHTMLです。ニュースレター、領収書、同僚からのカレンダー招待。これらはWebドキュメントとして届き、忠実に表示する唯一の方法はWebエンジンを使うことです。Harkはメッセージ本文をWebKitで描画します。WebKitはmacOSにもともと含まれているエンジンで、Appleの「メール」も同じ用途に使っています。
これはブラウザを同梱するのとは別のことです。アプリに余分なものは含まれず、インターフェイスが表示される前に起動しなければならないものもありません。エンジンは私たちではなくmacOSが更新し、使われるのは閲覧ウインドウ内のドキュメントだけで、それを囲むアプリには決して使いません。返信するときは、元のメッセージが届いたままの形であなたの文章の下に添えられるので、引用されたスレッドはやり取りを経ても崩れません。
違いはどう感じられるか
- 開けば、すぐ開く。 受信トレイはローカルデータベースから読み込むので、ネットワークの応答より先に画面に表示されます。同期済みのものは、ネットワークがまったくなくても読めます。
- 検索はGmailの検索。
from:、has:attachment、is:unread、newer_than:7d。演算子は入力したとおりGoogleに送られ、結果はGmailが返すものと同じです。気に入った検索はGmailのフィルタにでき、そのフィルタはGoogle側で、メールを読むすべてのデバイスに対して動作します。 - デスクトップらしく振る舞う。 通知はmacOSの通知で、Harkが最前面のアプリのときは鳴りません。Dockのバッジには、Gmailと同じ未読数が表示されます。⌘Wは意図したウインドウを閉じます。作成ウインドウを別の操作スペースに置くこともできます。
- 1つのプロセスが、1つの仕事を。 下で40個のほかのタブとメモリを分け合うブラウザも、アプリ内に抱えたブラウザのコピーもありません。
ネイティブが意味しないこと
- 別のGmailではありません。 ラベル、フィルタ、署名、不在通知は、APIを通じて読み書きする、あなたのGmailのものです。Harkで変更すればWeb版に反映され、Web版で変更すればHarkに反映されます。唯一の例外はスヌーズです。GoogleはスヌーズをAPIに公開していないため、Harkが再表示の時刻をMac上で保持し、自らスレッドを戻します。
- Googleから独立しているわけではありません。 送信や、メールボックスを変更する操作には接続が必要です。また、Harkにできることは今もGoogleの権限によって制限されています。たとえば削除したメッセージがゴミ箱に移るのは、Harkが完全削除を可能にする権限をあえて求めていないからです。
- 完成品ではありません。 Harkはベータ版です。1つのインストールにつき接続できるGmailアカウントは1つで、キーボードショートカットは現在少数(j、k、矢印キー、Esc)です。APIが公開していないいくつかのGmailの設定は、省くのではなく、Web版のGmailへのリンクとして一覧に載せています。
カレンダーの部分が目当てなら、GmailとカレンダーをひとつのネイティブMacアプリでという別の記事と、メールが私たちに届かないようにHarkをどう作っているかについての記事もあります。
よくある質問
HarkはWebアプリを包んだものですか?
いいえ。インターフェイス(メッセージリスト、サイドバー、ツールバー、検索、設定、カレンダーのグリッド、ToDoリストのパネル、作成画面)はmacOS自身のフレームワークで作られており、アプリにブラウザは同梱されていません。GmailのWebサイトが読み込まれることもありません。
HarkはWebKitを使っていますか?
1か所だけ使っています。メッセージのHTML本文を表示するために、macOSに含まれるWebKit(Appleの「メール」と同じエンジン)を使っています。使うのはドキュメントの表示だけでインターフェイスには使っておらず、アプリ内に抱えたブラウザのコピーでもありません。
ネイティブということは、オフラインでも使えますか?
一部は使えます。同期済みのもの(メッセージ、カレンダーの予定、ダウンロードした添付ファイル)は、Mac上のローカルキャッシュにあるため、接続がなくても読めます。送信や、メールボックスを変更する操作にはGoogleへの接続が必要です。
使い心地はGmailに近いですか、それともMacのメールアプリに近いですか?
意図的に、その両方です。考え方はGmailのもの(スレッド、ラベル、スヌーズ、検索演算子、フィルタ、ひとつのゴミ箱)で、ウインドウはMacのウインドウです(本物のメニュー、通知センター、Dockのバッジ、操作スペース、⌘W)。閲覧画面はGmail自身の表示と照らし合わせて寸法を合わせているので、メッセージは期待どおりの見た目になります。
Harkは無料のパブリックベータ中です。
macOS 14以降を搭載したAppleシリコンのMacが必要です。
アプリを見る — トップページのウインドウは実際のインターフェイスで、アクセントカラーやテーマをページ上で変更できます。