0. 環境

[OS] MacOS 10.11.6

[Flutter] 2.2.3

[Dart] 2.13.4

1. 背景

React NativeでiOSアプリを作成してたんですが、環境周りの不具合に時間を取られ、肝心の実装がほとんどできない状態が続いてました。 そこで、試しにFlutterをやってみたら、シュミレーターで動かすところまでは比較的楽にできたので乗り換えることにしました。

JSを使えるエンジニアが多いという理由で、React Nativeが支持されるかな?と予想してたのですが、 最近、TwitterなどでReact離れを 見かけることが増えてきて、そろそろ潮時かなと思ってきました。

2. 検討

  • 作成したいアプリがローカルDBを使用しているので、何が良いのかいろいろ見てみました。

  • まず、僕の環境で、sqflite、Realm、Moor、ObjectBoxはサンプルアプリすら動かなかったので諦めました。

  • 作ろうとしてるアプリのAndroid版がSQLite3を使ってるので、sqfliteやそれをラッピングしてるというMoorがいいかなと思ったのですが、下記のエラーが解決できず諦めました。同様のエラーで開発者に対する質問が結構挙がってましたが、いまいち決定的な解決方法はなさそうでした。

    Error: MissingPluginException(No implementation found for method getDatabasesPath on channel com.tekartik.sqflite)

3. Hiveサンプルアプリ

  • 上記ページで紹介されてるHiveがさくっと動きました。

  • サンプルページの「Code」ボタンからファイルアイコンをクリックしてURLをコピー。(画像参照)

    Hiveサンプルコードダウンロード

    • 適当なディレクトリにソースをダウンロードしてアプリを起動します。

      $ git clone https://github.com/hivedb/samples.git
      
      $ cd samples/todo/
      
      $ flutter create .
      
      $ flutter run
      
    • To-Doアプリが起動しました。

    HiveTodoアプリ