[開発者日記] タスクメモアプリ開発 10日目
最近、残業して帰宅すると午後8〜9時のあいだで、お風呂やご飯食べるとあっという間に10時になり、疲れてぼーっとしていると、11時過ぎにお布団に入るという生活(-_-)zzz
夜の時間の使い方を慎重にしなければ、やりたいことができなくなってしまうなぁ(悩む)
さてさて、開発9日目(だいぶ間が空いた)はSQLiteを使用してCRUDを定義しました。
今回はSQLiteのファイル配置を考えていけたらなと思います。
参考にするコード
まずは何を分けるかを考える必要があります。
sqfliteの公式サイトの例では、ヘルパークラスの使用例として、モデルクラスとプロバイダクラスを定義していました。
ということなので、モデルクラスとプロバイダクラスを別のファイルに分けていこうかなと思います。
待てよ、ヘルパークラスやプロバイダクラスってなんだ?
ヘルパークラスについては、
ユーティリティクラス(またはヘルパークラス)は、スタティックメソッドだけを持っていて、状態を内包しない「構造体」だ。 Apache CommonsのStringUtils、IOUtils、FileUtilsや、GuavaのIterables、Iterators、またJDK7のFilesはユーティリティクラスのいい例だ。
ということなので、スタティックメソッドのみで構成されたクラスのことを指すみたいです。
一方、プロバイダクラスとは、
データの提供者という意味で、上記のような DB、http 通信、キャッシュ等をカプセル化した上位レイヤのもの。あるいは Android でいう ContentProvider
ということなので、プロバイダクラスとはDBを操作するhelperクラスを親にもつクラスで、データ提供を役割とするクラスみたいですね。
どこに配置するのか
開発者日記9日目に調査した
この方のフォルダ構成を参考にしようかなと思います。Sqfliteのサンプルフォルダ構成ですので簡単なアプリで実装しています。そのため、複雑になると簡潔したフォルダ構成にならないと思いますが、Flutter初心者の私はとりあえずこのフォルダ構成で実装します。フォルダ構成は、
![](https://assets.st-note.com/img/1673322014624-66xZG1tSXj.png?width=1200)
https://github.com/JohannesMilke/sqflite_database_example/tree/master/lib
このような感じで、libフォルダの直下にdbフォルダとModelフォルダを分けています。そのため、dbフォルダにプロバイダクラス、modelフォルダにモデルクラスを配置していきます。よく見てみるとwidgetなども同じ階層に配置しているのでUIを作成する際は真似しようかなと思います。
とういことで、
![](https://assets.st-note.com/img/1673764134562-cESwmhNtef.png)
こんな感じで真似してみました。
まとめ
今回はかなり初歩のSQLiteを使用した他の人のファイル配置を真似して自身のプロジェクトに構築してみました。
次回はUI作成して、画面に登録したデータを表示できるようにしたいと思います。
ちょっとずつ投稿できるように頑張るぞ!😀