Flutterアプリ開発には向かないもの——実体験から学んだこと

目次

はじめに

Flutterは本当に便利なフレームワークです。
iOS・Android・Web・デスクトップを一つのコードベースで作れて、UIも美しく、開発スピードも速い。

でも、「なんでもFlutterで作れる」かというと、そうではありません。

今回は、実際に開発してみて「これはFlutterには向かないな」と気づいたケースをまとめました。これからアプリ開発を考えている方の参考になれば嬉しいです。


① 既存の帳票・様式を完全再現しなければいけないもの

これが一番痛感したケースです。

消防設備点検の業務アプリを開発していたとき、点検結果をPDFで出力する機能を実装しました。PDFの出力自体はFlutterのpdfパッケージで対応できます。

ところが、依頼主から「消防庁が定めた様式と全く同じレイアウトで出力してほしい」という要件が出てきました。

消防庁の様式というのは、こんなものです。

  • セル結合が複雑に入り組んだ表
  • 行の高さ・列幅がミリ単位で決まっている
  • 縦書きのセルが混在している
  • A〜F列が横に並ぶ特殊なレイアウト

これをFlutterのpdfパッケージで完全再現しようとすると、膨大な手作業が発生します。しかも少し様式が変わるたびにコードを修正しなければならない。

結論:お役所や業界団体が定めた「指定様式」の完全再現が必要な場合、FlutterのPDF出力は向いていません。

このケースでは潔く撤退しました。

向いているケース・向いていないケースの見分け方

向いている向いていない
「情報が読めればOK」なPDF「この様式と全く同じ」なPDF
自分でデザインできるPDFお役所・業界指定の帳票
シンプルな表・リストセル結合だらけの複雑な表

② Excelファイルそのものを生成・編集するもの

「入力した内容をExcelに書き出したい」という要件も要注意です。

FlutterにはExcelを扱うパッケージ(excelなど)がありますが、できることに限界があります。

  • 複雑な書式・セル結合の再現が難しい
  • 既存のExcelファイルに書き込む場合、書式が崩れることがある
  • グラフや関数が含まれるExcelはほぼ対応不可

業務で使われるExcelは「セルの色・罫線・結合・数式」が複雑に絡み合っていることが多く、これをFlutterで再現するのは現実的ではありません。

結論:Excelファイルの生成・編集が主目的なら、PythonやVBAの方が適しています。


③ 印刷レイアウトをミリ単位で合わせる必要があるもの

宛名ラベル・納品書・領収書など、「印刷したときに決まった位置に文字が来なければならない」ものも苦手です。

たとえば市販の宛名ラベル用紙に合わせて印刷する場合、用紙のサイズ・余白・ラベルの位置を0.1mm単位で調整しなければなりません。

Flutterのレンダリングエンジンは画面表示に最適化されており、印刷物のミリ単位の位置合わせには向いていません。

結論:印刷位置の精度が重要な帳票類は、ReportLabやWord差し込み印刷の方が確実です。


④ ブラウザの拡張機能として動かすもの

「Chrome拡張機能を作りたい」という場合、FlutterはWebにも対応していますが、ブラウザの拡張機能としては動作しません。

Chrome拡張機能はJavaScript(Manifest V3)で作る必要があります。

結論:ブラウザ拡張機能はJavaScript一択です。


⑤ OSの深い部分に触るシステム系ツール

ファイルシステムの監視・レジストリの操作・他アプリとのプロセス間通信など、OSの深い機能を使うものもFlutterには向いていません。

もちろんMethodChannelやFFIを使えば理論上は可能ですが、開発コストが非常に高くなります。

⑥ SEOが必要なWebサイト・ランディングページ

FlutterはWeb対応していますが、Webサイト制作には向いていません。

理由は、FlutterのWebレンダリングが文字を「絵として描画する」CanvasRenderer方式を使っているためです。Googleなどの検索エンジンはHTMLのテキストを読んでインデックスしますが、Flutterで描画された文字は画像と同じ扱いになり、検索に引っかかりません。

結論:Webサイト・ブログ・LP(ランディングページ)はWordPressやHTMLで作るべきです。


まとめ

向いていないケース代替手段
指定様式の帳票PDF再現専用の帳票ツール・Web画面での確認のみ
Excelファイルの生成・編集Python(openpyxl)・VBA
印刷位置ミリ単位の帳票ReportLab・Word差し込み印刷
ブラウザ拡張機能JavaScript(Manifest V3)
OSの深い機能を使うツールPython・C#
WebサイトWordPress・HTML

最後に

「Flutterで作れるか?」を判断するときに、私が最初に確認するようにしたのはこの3つです。

  1. PDFはどんな形式が必要か?(自由なレイアウトか、指定様式か)
  2. Excelファイルそのものが必要か?(データが読めればOKか)
  3. 印刷物として使うのか、画面で見るだけか?

この3つを事前に確認するだけで、「作り始めてから気づく」という失敗を防げると思います。

失敗から学んだことを次に活かす——それが個人開発者の強みだと思っています😊


このブログはsinqwell.netで公開しています。
X(Twitter): @sinqwell_dev

目次