Plant Management App - シンプルな植物管理アプリ

Mobile

概要

「Plant Management App」は、Flutterを利用して構築されたシンプルな植物管理アプリです。ユーザーは自宅の植物を登録し、それぞれに写真を添付、さらに水やりや肥料のタイミングをリマインダー機能で管理できます。多くの既存アプリが課金や広告で利用のハードルを上げている中、本アプリは完全無料で、ユーザーが気軽に植物の世話を続けられる環境を提供しています。SQLiteによるローカルデータベース管理により、オフラインでも快適に使えます。

GitHub

リポジトリの統計情報

  • スター数: 1
  • フォーク数: 0
  • ウォッチャー数: 1
  • コミット数: 7
  • ファイル数: 14
  • メインの言語: Dart

主な特徴

  • 新しい植物の登録と管理が可能
  • 各植物に写真を添付できる
  • 水やりなどの定期リマインダー機能搭載
  • 完全無料かつ広告や課金なし

技術的なポイント

本プロジェクトはGoogleのクロスプラットフォームUIフレームワーク「Flutter」を採用し、iOSおよびAndroidの双方で動作可能なモバイルアプリとして設計されています。Flutterの特徴である高速な描画性能と豊富なウィジェットを活かし、シンプルながらも直感的なユーザーインターフェースを実現しています。

データ管理には軽量な組み込み型データベース「SQLite」を用いており、植物情報や写真のメタデータ、リマインダー設定などをローカルに保存。これにより、インターネット接続がなくてもアプリが利用可能です。Flutterのプラグインを通じてSQLiteの操作を行い、データの永続化と効率的な読み書きを実現しています。

写真の追加機能は、デバイスのカメラやギャラリーから画像を取得し、プランツごとに管理できるように設計。画像ファイル自体はストレージに保存し、データベースにはパスを保持する形で実装されています。これにより、アプリのパフォーマンスを維持しつつ豊富なビジュアル情報を保持可能です。

リマインダー機能は、Flutterのローカル通知プラグインを利用し、水やりや施肥のリピート通知を設定。ユーザーが指定したスケジュールに従って通知が発生し、植物の世話を忘れにくくしています。UI上では分かりやすい設定画面を用意し、繰り返し間隔や通知内容を簡単にカスタマイズ可能です。

全体的にコードはモジュール化されており、Flutterの状態管理やルーティングも適切に活用。小規模ながら拡張性と保守性を意識した設計で、今後の機能追加やUI改良も見据えた構成となっています。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .gitignore: git管理除外設定ファイル
  • .metadata: Flutterのプロジェクトメタ情報
  • README.md: プロジェクト概要と開発メモ
  • analysis_options.yaml: Dartの静的解析ルール定義
  • android: Androidネイティブコードと設定
  • ios: iOSネイティブコードと設定
  • lib: FlutterのDartコード本体
  • assets: 画像やフォントなどのリソース
  • pubspec.yaml: 依存関係やアセット指定
  • plant_model.dart: 植物データのモデル定義
  • database_helper.dart: SQLite操作ロジック
  • notification_helper.dart: リマインダー通知管理
  • plant_list_screen.dart: 植物一覧画面のUI
  • plant_detail_screen.dart: 植物詳細・編集画面
  • add_plant_screen.dart: 新規植物追加画面

まとめ

Flutter×SQLiteで実現した無料の植物管理アプリ。

リポジトリ情報:

READMEの抜粋:

Plant management app 🌱

Over the past few years I have collected a number of house plants that, due to work and other commitments, have mostly died.. Because of this, I attempted to find and use a plant management app on the iOS store. These all unfortunately are hidden under pay walls. I decided to solve this issue by creating my own app free from pay walls.

Tech stack

  • Flutter
  • SQLite

Features

  • Add new plants 🌱
  • Add photos of each plant 📷
  • Set reminders on repeat 🔔

Screen …