Nativefierの代わりになるもの|手放してよい機能の数え方
Nativefierの代わりを探し始めると、候補の一覧はすぐに集まります。困るのはそこからで、どれも「サイトをアプリにする」とだけ書いてあり、自分が使っていた機能が入っているのかが読み取れません。移る先を決めるのに必要なのは候補の数ではなく、いま使っている機能のうち何が本当に要るのかという線引きです。この記事では、機能を数える手順と、代わりが効く側と効かない側の分かれ目を並べます。
Nativefierが残したものと、止まった日
前提として、時間の情報を先に置きます。GitHubのリポジトリは公開されたまま保守されない状態になっており、最後にコードが更新されたのは2023年9月29日です。配布されている最後の版はv52.0.0で、公開は2023年8月25日。ライセンスはMITで、starは35,272件付いています。npmからのインストールはいまも通ります。
止まったこと自体は、作者から明示されています。保守終了を告げるissueには、代わりに何を使うべきかまで書かれています。
Nativefier is unmaintained and has been publicly archived. It was built a couple of years ago before the ability to create shortcuts for websites in Chrome, or similarly on Firefox. Users who want to build and use their own website wrappers should strongly prefer these options as they are protected from security vulnerabilities by the browser's self updating mechanism. 出典: github.com
要点は2つあります。1つは、作られた当時はブラウザにサイトをアプリとして入れる機能が無かったこと。もう1つは、自分用のラッパーを作りたいだけなら、ブラウザ側の機能を強く推す、という判断です。理由として挙げられているのは機能の多さではなく、ブラウザが自分で更新を配る仕組みを持っている点です。
もう1つ数字を出しておきます。Nativefierが既定で埋め込むElectronの版は25.7.0で、その中のChromiumは114系です。Electronの現在の安定版は44系まで進んでおり、公式の方針では最新3つのメジャー版だけが保守対象とされています。既定のまま作ったアプリの中身は、その範囲から大きく外れています。
代わりを探す前に、使っていたオプションを数える
候補を比べる作業は、自分が何を使っていたかが分かっていないと終わりません。Nativefierのオプションは数が多く、公開されている一覧では大きく9つの群に分かれています。窓の見た目、内蔵ブラウザの挙動、キャッシュ、URLの振り分け、認証、グラフィック、セキュリティ、OS別の細かい設定、そしてデバッグです。
ただ、実際にビルドコマンドへ書いていたのは、この全部ではないはずです。手元に残っているビルド用のスクリプトやシェルの履歴を開いて、実際に書いていたフラグだけを書き出してください。多くの場合、5つから10個に収まります。典型的には名前とアイコンの指定、窓の初期サイズ、シングルインスタンス、内部URLの範囲指定、そして独自のCSSかJavaScriptの注入あたりです。
書き出したら、1つずつに「これが無かったら、いまの使い方が壊れるか」を当てます。壊れないものは代わりを探す条件から外します。この作業を飛ばして候補の比較表を作ると、使っていない機能の有無で候補を落とすことになり、選べなくなります。逆に、数えた結果が2つか3つしかないなら、そもそも専用の道具は不要で、ブラウザ側の機能で足ります。作者の推奨がそこを指しているのも、同じ理由です。
手放しても困らない機能
数えた結果のうち、代わりが効きやすいものをまとめます。ここに入る機能は、OSかブラウザがすでに同じ役割を持っています。
- 窓の初期サイズと位置の指定は、macOSが終了時の状態を覚えるため、初回だけ手で合わせれば以後は同じ位置に出ます
- 常に手前に表示する設定は、ステージマネージャやミッションコントロールの使い方を変えるほうが結果が安定します
- メニューバーへの常駐は、常駐が目的ならOSの標準機能や別の常駐管理の道具のほうが素直です
- ズーム倍率の固定は、サイト側が記憶するか、アプリごとの表示設定で足ります
- 背景色や右クリックの無効化のような見た目の調整は、使っていた本人が理由を説明できないなら、まず外して困るか試すほうが早く決まります
- ユーザーエージェントの書き換えは、サイト側の判定を通すための一時しのぎであることが多く、恒久的な条件にはしないほうが安全です
この群にしか印が付かなかった場合、移り先はブラウザの機能で十分です。Chromeなら右上のその他アイコンから「キャスト、保存、共有」を開いて「ページをアプリとしてインストール」を選ぶ流れになり、名前とアイコンはサイト側の配信物が使われます。
代わりが用意されていない機能
一方で、専用の道具でなければ引き受けられない機能もあります。ここに印が付いたなら、候補を絞る条件はこちらで決まります。
独自のCSSやJavaScriptの注入は、ブラウザの機能では代わりが利きません。社内の管理画面で不要な要素を隠していた、ログインを自動化していた、といった使い方がある場合、これを落とすと業務の手順が変わります。代わりを探すなら、拡張機能を持ち込める形か、注入の仕組みを持つ道具に限られます。
URLの振り分けも同じです。指定したドメインだけをアプリ内に留め、それ以外は既定のブラウザへ出すという挙動は、ブラウザのアプリ化では細かく決められません。社内システムと外部サイトを分けたい場合、この機能の有無が候補の足切りになります。
WindowsとLinux向けの実行ファイルを同時に出す機能も、代わりが限られます。Nativefierは非Windows環境からWindows向けを作るためにWineを要求していました。同じことをする候補は多くありません。
最後に、コマンド1行で同じアプリを再現できる性質です。設定をファイルに残して、必要なときに同じものを作り直せる形は、画面から作る道具では取れません。台数が多い環境や、人が入れ替わる環境では、この性質が費用の差になって効いてきます。
引き受ける範囲で候補を並べる
数えた機能を軸に、主な候補が何を引き受けるかを並べます。値段と対応OSは公開されている情報です。
| 候補 | 中身のエンジン | 費用 | 注入とURL振り分け | コマンドで再現 |
|---|---|---|---|---|
| ブラウザのアプリ化 | ブラウザ本体 | 無料 | なし | なし |
| Electronを直接使う | 同梱のChromium | 無料 | 自分で実装 | あり |
| Pake | OSのWebView | 無料(GPL-3.0) | 一部あり | あり |
| Coherence X6 | Chromium系ブラウザ | 39.99ドルから | あり | なし |
| Unite Pro | macOS標準のWebKit | 39.99ドルから | あり | なし |
| WebCatalog | 同梱のエンジン | 無料枠あり、上位は月5ドルから | 一部あり | なし |
| Fluid | macOS標準のWebKit | 無料、5ドルで一部機能 | ユーザースクリプト | なし |
数字の出どころを補足します。Coherence X6とUnite Proはどちらも買い切りで、公開価格は39.99ドルからと書かれており、Coherenceは6.x系、Unite Proは1.x系での利用という条件が付いています。動作要件はCoherenceがmacOS 13.5以降、Unite ProがmacOS 15以降です。両者はサブスクリプション型のサービス経由でも提供されており、その場合は月9.99ドルからとなっています。WebCatalogは無料の枠でアプリ2本まで、上位の枠が年払いで1人あたり月5ドルからです。Fluidは本体が無料で、ステータスバーへの常駐やユーザースクリプトが5ドルのライセンスで開く形になっています。
比べるべきは値段ではなく、更新を誰が押すか
表を作ると値段の列に目が行きますが、Nativefierから移る場面でいちばん効くのは費用ではありません。中身のエンジンを誰が新しくするか、という点です。
エンジンが同梱される形(Electronを直接使う、Pakeを除く多くの道具)では、アプリを作った時点の版が中に入ります。新しくするには、作った人が作り直す必要があります。Nativefierで起きていたのは、まさにこれが止まった状態です。一方、OSのWebViewやインストール済みのブラウザを使う形では、OSやブラウザの更新に合わせて中身が動きます。押す人が自分ではなくなります。
Pakeがこの点で位置が異なります。RustのTauriで作られており、エンジンにOSのWebViewを使います。配布物が小さいのもそのためで、公開されている説明ではElectron製のインストーラと比べて約20分の1、ディスク上で10メガバイトを下回るとされています。ただし手元でビルドする場合はRustの1.85以降とNodeの22以降が必要で、Nativefierより環境の条件は重くなります。
判断の順番としては、まず「更新を自分で押し続けられるか」を決め、押せないなら同梱型を候補から外す。そのうえで、前の節で数えた機能が残っているかを見る。この順にすると、候補は1つか2つに落ちます。
配る段になると、署名と公証とライセンスが効く
自分のMacで使うだけなら次の話は飛ばせますが、作ったアプリを同僚に渡す予定があるなら、ここが最後の関門になります。
Appleの説明では、macOS Catalina以降は既定で公証を受けたソフトウェアであることを求めており、署名も公証もされていないものを開くと警告が表示されます。Nativefierが出す成果物は、既定では署名も公証もされていません。自分の端末で警告を越えて開くことはできても、同じ手順を配る相手全員にやってもらう形になります。
ライセンスも見る必要があります。NativefierはMITですが、PakeはGPL-3.0です。社内で配るだけなら問題になりにくい一方で、社外へ配る計画があるなら条件を読む段階が1つ増えます。有料の道具は、この点を提供元が引き受けている形になっており、値段の差はそこも含んでいます。
対応サービスの一覧から読み取れること
ここまでの線引きを実際の作業に落とすと、「自分が使っていた5つから10個のフラグのうち、外せないものが何個残るか」という数字に集約されます。その数が0か1なら、ブラウザの機能で足ります。2つ以上、とくに注入とURL振り分けが残るなら、専用の道具が要ります。
道具側が、どのサイトにどの設定を当てているのかは対応サービス一覧に並んでいます。同じ「サイトをアプリにする」でも、チャット、メール、設計、社内の管理画面では、留めるべきURLの範囲も、注入の要不要も違います。一覧は、その差がサービスごとにあらかじめ埋まっている形になっており、240以上のプリセットからすぐ作れる状態が用意されています。自分で数えたフラグを、この一覧の設定項目と突き合わせると、移り先で埋まる機能と埋まらない機能がその場で分かります。
触れる設定の範囲そのものはできることに項目として並んでいるので、前の節で「代わりが用意されていない」と分類した機能があるなら、まずそこを確認するのが早い順路です。費用の比較を続けるなら料金を、作り直しや更新の扱いで迷っているならよくある質問を先に見ると、表の空欄が埋まります。移る先を決める作業は、候補を増やすほど遠のきます。数えて、落として、残った条件で選ぶ。この順番だけが短くします。
よくある質問
Nativefierはもう使えないのですか?
インストールもビルドも通ります。ただしリポジトリは2023年9月に保守されない状態になり、最後の版はv52.0.0です。既定で埋め込まれるエンジンは当時のもので新しくならないため、使えるかどうかではなく、更新が止まった状態を受け入れるかどうかの判断になります。
代わりを選ぶとき、最初に見る項目はどれですか?
中身のエンジンを誰が新しくするかです。同梱型は作った人が作り直す必要があり、OSのWebViewやインストール済みのブラウザを使う形は更新が自動で乗ります。ここを決めてから、注入やURL振り分けといった機能の有無を見ると候補が絞れます。
無料で済ませたい場合の選択肢はありますか?
ブラウザのアプリ化は無料で、名前とアイコンはサイト側の配信物が使われます。Pakeも無料ですが、ライセンスがGPL-3.0で、手元でビルドするならRustとNodeの環境が要ります。無料枠を持つ道具もあり、WebCatalogは無料の枠でアプリ2本まで作れます。
作ったアプリを同僚に配りたい場合、何に気をつければよいですか?
署名と公証です。macOS Catalina以降は既定で公証を求めるため、署名も公証もされていないアプリは受け取った側で警告が出ます。配布を前提にするなら、提供元が署名と公証を引き受けている道具を選ぶか、自分で署名の手続きを用意する必要があります。