📱

なぜFlutterにはCocoaPodsをインストールする必要があるのか

2024/10/02に公開
2

はじめに

自分自身はWebエンジニア出身でFlutterでの開発経験はほぼ皆無なのですが、個人的に最近Flutterの勉強を始めています。

iOS用の環境構築の際にCocoaPodsが必須ツールとして公式に書かれててなぜなのか気になったのでメモがてら書いてみました。

CocoaPodsとは

CocoaPodsはiOSアプリ開発で利用するライブラリの管理ツールです。CocoaPods自体はRubyで構築されており、gemでインストールする必要があります(Homebrewを使う方法もあり)

Rubyのバージョン次第ではAppleシリコン搭載のMacと相性が悪いらしく、環境構築の手間がかかるため、最近だとSwift Package Managerを使うケースもあるようです。
https://blog.cybozu.io/entry/welcome-spm

CocoaPodsをインストールしてないとどうなるか

もしFlutterでCocoaPodsをインストールしていない状態で、flutter doctorを実行すると以下のようなエラーが表示されます。

✗ CocoaPods not installed.
    CocoaPods is used to retrieve the iOS and macOS platform side's plugin
    code that responds to your plugin usage on the Dart side.
    Without CocoaPods, plugins will not work on iOS or macOS.
    For more info, see https://flutter.dev/platform-plugins
  To install see
  https://guides.cocoapods.org/using/getting-started.html#installation for
  instructions.

つまりはDartからiOSやmacOS側のプラグインを使うにはCocoaPodsが必要になるということですね。

Flutterにおけるパッケージ管理

Dartのパッケージを使う場合

FlutterはDartを使っているので、基本はDartで書かれたパッケージを使用します。
パッケージ元のサイトはこちらですね。
https://pub.dev/packages

flutter pub add [パッケージ名]

のコマンドを実行すると pubspec.yamlにパッケージの記載が追加されます。

iOSのパッケージを使う場合

iOSネイティブの機能が必要になる場合、Swiftや Objective-Cで書かれたパッケージを使いたくなるかもしれません。その場合はCocoaPodsを使う必要が出てきます。

まとめ

  • iOSネイティブの機能が必要になる場合、CocoaPods経由でパッケージをインストールする
  • 通常のパッケージであれば、pubspec.yamlを使う
  • CocoaPodsをインストールしておかないと、flutter doctorでエラーになってしまう
  • 最近はとSwift Package Managerを使うケースもある

Discussion

masarufuruyamasarufuruya

Macデフォルトのrubyだとバージョンが古すぎたりして面倒が多いですよね...
SPMはXCodeから使えたり、公式サポートされてて使いやすそうですね〜!