🐥

Ionic Framework / Capacitor 2025年の振り返り

に公開

毎年恒例の Ionic Framework / Capacitor / Stencil Advent Calendar を今年は開催できませんでした。例年、多くを自分が埋めながら、他の人の記事からの知見をもらうことができるので、とても楽しかったんですよね。けれど今年はごめんなさい。OSSだけでもかなりのボリュームが今年後半に偏ったので、記事執筆以外をがんばりました。

今回は、2025年に自分がやってきたことや、Ionic / Capacitorのコミュニティで起きたことについて振り返ってみます。

Ionic

OutSystemが買収してチームの再編から滞りがちだったリリース頻度ですが、少しずつ戻ってきた感ありますね。現時点で、Ionic v8.7.6が最新です。
今年の大きな変化でいうと、買収前のCommercial Products(Ionic AppflowやIdentity Vault等)の新規販売が終了しました。今後、既存ユーザ向けのサポートは年単位で進みましたが、チーム再編の象徴的な出来事だった感ありますよね。

https://ionic.io/blog/important-announcement-the-future-of-ionics-commercial-products

Ionic Theme

Ionic Frameworkでは、現在iOS18とMaterial Design2のデザインをサポートしています。けれど、AppleとGoogleが最新のデザインはiOS26とMaterial Design3です。時代遅れになる前に進めたいですよね。

Ionic teamは、現在、新しくIonic Modularという、ユーザがテーマを用意するための機構を開発している真っ最中です。これらはv8でリリース予定なので、今のところiOS26とMD3のテーマはユーザがつくる流れです。そこで、Ionic teamに相談しながら、現行でも適用できるテーマをリリースしました。

これを利用することで、IonicにiOS26とMaterial Design3デザインを適用することができます。

ただ、Ionic Modularが誕生するとこの適用が楽になるだけではなく、CSSのかスケーティング等でより実装が楽になりますよね。本当に期待です。
参考になる情報として、Ionic teamのGonçalo M.さんのDiscord(Ionicサーバの #announcements) の投稿をご紹介します。日本語訳してあるので、原文に興味がある方はDiscordを除いてください。

「Liquid Glass」テーマ/エフェクトを実装することへの期待の声を聞いています!とてもクールなデザインで、なぜリクエストされるのかよくわかります。
まず最も重要なこと:Ionic Frameworkは絶対に非推奨になりません!
私たちはIonicの未来を構築することに焦点を当てており、それが今のところネイティブのLiquid Glassを保留にしている本当の理由です。

現在、デザインコミュニティでのLiquid Glassテーマの採用状況を監視しています。しかし、現在の戦略的な焦点により、直近のロードマップには含まれていません。

なぜ私たちが他のことにエネルギーを注いでいるかというと:

Ionic Framework v9のModular魔法 ✨

私たちの最優先事項は、現在Ionic Framework v9です。 このリリースには、IonicをModularにするための大規模なアーキテクチャ変更が含まれます。
このModularがゲームチェンジャーです!コミュニティが私たちを待たずに、Liquid Glassの見た目を完璧に再現するテーマを含む、独自のカスタムテーマを簡単に作成・共有できるようにするために特別に設計されています。まさにあなたが望むデザインを実現できる基盤を構築しています。

コアのv9アーキテクチャに取り組みながら、私たちは即座のニーズも認識しています。すでに @rdlabo のようなコミュニティメンバーと緊密に協力して、Ionic Modularの作業が、彼らが構築している新しいLiquid Glassテーマを完全にサポートし、有効化できるようにしています。
v9が準備できるまで、既存のツールとCSSでこのエフェクトをより簡単に実現できるように、新機能を追加していきます。

すべてのサポートプラットフォームでパフォーマンスの影響なく完璧に実装するのは技術的な挑戦ですが、モジュラーツールを最初に優先することで、より優れた柔軟な製品を提供できると信じています。
インプットをありがとうございました—アイデアを出し続けてください!

Ionicが取り組んでいることがIonic Modularであるなら、私が取り組んでいるのはそれがリリースされた時にどれだけ高い精度のテーマをOSSとして公開できるかです。少しずつ改良を進めていますので、ご期待ください!

Ionic Documents

Ionic Frameworkの日本語翻訳を強化しました。Ionic Componentsのドキュメントは、前半はmdファイルで書かれた文章で、後半(Interfacesやプロパティ、イベントやメソッドの項目)は、@ionic/core から自動生成されています。

今年半ばに オペレーションのトラブル で、日本語訳の前半部分が表示されなくなってしまいました。また、後半部分は ionicframework.jp では日本語化が表示されていたのですが、長年 ionicframework.com/docs/ja では、英語のままでした(スクリプトの実行の問題でした)。

この問題も修正するプルリクを作成して無事マージされました!

https://github.com/ionic-team/ionic-docs/pull/4279

今では、ドキュメントはほぼフルで日本語で見れるようになりました。ただ、 https://ionicframework.com/docs/ja は承認プロセスがあるため、常に最新のものをみたいなら https://ionicframework.jp/docs がおすすめです。

関連個人ライブラリ

@rdlabo/eslint-plugin-rules

私の個人的なESLintルール集です。@rdlabo/rules/ionic-attr-type-check ルールを追加しました。WebStormの最新版では、このような型チェックエラーが表示されるようになりました。

このTypeScriptの型チェックはビルド済みのIonicコンポーネントに対するものですので、Angularのビルドを妨げることはありません。

しかし、開発者にとって型エラーが表示されることで、正しいコードの書き方を理解する必要が生まれました。そこで、この問題を事前に検出して自動修正するESLintルールを作成しました。autofixもついています。

@rdlabo/ionic-angular-collect-icons

Ionic Angularの addIcons を自動化するためのライブラリです。@ionic/angular-standalone-codemods というcodemodsから派生したものですが、1つのパッケージなのにpnpmを使ったり、私の思想と違う構造になっていました。

そこでプロジェクト構造を作り直しました。ついでに並行処理になっていなかった処理を直したりして、実行が高速化しました。v2.0.0でご利用いただけます。

Capacitor

Capacitorのリリース高速化

Google Playが「APIレベルを半年ごとにあげないとアップデートさせない」というセキュリティ施策を発表しました。

https://support.google.com/googleplay/android-developer/answer/11926878?hl=ja

これに対応するために、Capacitorはほぼ半年に1回リリースになりました。ですので、今年だけでCapacitorはv7とv8のリリースを行っていますね。また、16 KB ページサイズのサポートも必要になった点も今年の大きなポイントではないでしょうか。

https://developer.android.com/guide/practices/page-sizes?hl=ja

本体は対応済み、プラグインはプラグインが利用しているSDKごとの事情はありますが、大まかにはアクティブメンテナンスのプラグインの大部分が対応を終えたと思って大丈夫かと思います。

Capacitor iOS

Capacitor iOSはCocoaPodsからSPMの移行が進みました。CocoaPodsは2026年12月にアーカイブ化される予定ですので、そろそろSPMへの移行のタイムリミットが迫ってきましたね。Capacitor v8ではSPMがデフォルトになります。

Capacitor Documents

Capacitorも日本語ドキュメンテーションを用意していますが、v8リリースにあわせて日本語ドキュメントのアップデートも完了しています。本体やプラグインのCapacitor8へのアップグレードガイド等も翻訳しておりますので、ぜひご利用ください。

https://capacitorjs.jp/docs

関連個人ライブラリ

現在私がアクティブにメンテナンスしているパブリックなCapacitorプラグインは以下です:

  • @capacitor-community/stripe
  • @capacitor-community/stripe-identity
  • @capacitor-community/stripe-terminal
  • @capacitor-community/admob
  • @capacitor-community/facebook-login
  • @rdlabo/capacitor-brotherprint
  • @rdlabo/capacitor-screenshot-event
  • @rdlabo/capacitor-codescanner
  • @rdlabo/capacitor-printer

まもなく、これらのv8対応はすべて完了します。

npm 2FAとtrusted publish

今月、npmで2FA(二要素認証)が必須になりました。単一のパッケージをpublishする場合は、npm publishで表示されるURLにアクセスして2FAするだけなので、さほど問題にはなりません。しかし、npm workspaceを使ったモノレポで複数のパッケージを管理している場合、それぞれのパッケージに対して2FAを行う必要があり、手作業での対応は現実的ではありません。

この問題を解決するために、trusted publish(provenance)の仕組みを使った自動化を実現しました。trusted publishは、GitHub ActionsなどのCI環境から、2FAなしでnpmにpublishできる仕組みです。最新のnpmを使用すると、CI環境から自動的にprovenanceが有効になり、パッケージの出所を証明できます。

詳細については、以下の記事で解説しています。npm workspaceを使ったモノレポで複数のパッケージを管理している場合は、ぜひ導入を検討してみてください。

https://zenn.dev/rdlabo/articles/0b5364331e0bf6

https://zenn.dev/rdlabo/articles/be8462ca01a6e1

まとめ

2025年は、Ionic FrameworkとCapacitorの両方で大きな変化がありました。

Ionic Frameworkでは、OutSystemの買収によるチーム再編から滞りがちだったリリース頻度が、少しずつ戻ってきています。また、Commercial Productsの新規販売が終了するなど、組織的な変化がありました。技術的な面では、Ionic Modularの準備が進み、コミュニティがテーマを作成できる基盤が整いつつあります。これに先駆けて、iOS26とMaterial Design3のテーマをリリースし、現行のIonicでも最新のデザインを適用できるようにしました。ドキュメントの日本語化も強化し、より多くの開発者がIonicを学びやすくなりました。

Capacitorは、Google PlayのAPIレベル要件により、ほぼ半年に1回のリリースサイクルになりました。今年だけでv7とv8をリリースし、16 KB ページサイズのサポートなど、プラットフォームの変化に対応しました。iOSでは、CocoaPodsからSPMへの移行が進み、Capacitor v8ではSPMがデフォルトになります。多くのプラグインがv8対応を完了し、日本語ドキュメントもv8の内容に対応しました。

また、npmの2FA必須化に対応するため、trusted publishを使った自動リリースの仕組みを構築しました。npm workspaceを使ったモノレポでも、手作業での2FAなしにパッケージを公開できるようになりました。

記事執筆は控えめにしましたが、OSS活動を通じて、多くのライブラリやドキュメントの改善に取り組むことができました。IonicやCapacitorのコミュニティに少しでも貢献できていれば嬉しいです。来年も、コミュニティに貢献できることを続けていきたいと思います。

それではまた。

Discussion