diff --git a/README.md b/README.md new file mode 100644 index 0000000..51bc3c4 --- /dev/null +++ b/README.md @@ -0,0 +1,103 @@ +# Tsuthin(ツーチン) + +EC サイトの商品価格を自動追跡し、価格下落時に通知を行う Android アプリケーションです。 + +## 概要 + +Tsuthin は、ユーザーが気になる商品の URL を登録すると、バックグラウンドで定期的に価格をチェックし、値下がりを検知して通知する価格監視アプリです。 + +## 主な機能 + +### 📝 商品登録 +- 商品 URL を入力して監視リストに追加 +- 自動的に商品名と現在価格を取得 +- URL の重複チェック機能 + +### 📊 商品一覧表示 +- 登録済み商品のリスト表示 +- 商品名、登録時価格、現在価格、URL を表示 +- 不要な商品の削除機能 + +### 🔔 自動価格監視 +- バックグラウンドサービスによる定期的な価格チェック +- ウェブスクレイピングで最新価格を取得 +- 価格変動の自動検出 + +### 📢 通知機能 +- 登録時の価格より下がった場合に通知 +- 価格下落アラート + +## 技術仕様 + +### 開発環境 +- **言語**: Kotlin 1.2.30 +- **プラットフォーム**: Android +- **最小 SDK**: 26 (Android 8.0) +- **ターゲット SDK**: 28 (Android 9.0) +- **ビルドツール**: Gradle 3.1.3 + +### 主要ライブラリ +- **Jsoup 1.11.3** - HTML 解析とウェブスクレイピング +- **OkHttp3 3.10.0** - HTTP 通信 +- **GSON 2.8.5** - JSON シリアライゼーション/デシリアライゼーション +- **Android Support Library 28.0.0** + +## アーキテクチャ + +### アクティビティ +- `MainActivity.kt` - 商品 URL の登録画面 +- `RecordActivity.kt` - 登録済み商品の一覧表示画面 + +### データモデル +- `GoodsData.kt` - 商品情報を保持するデータクラス +- `UtilData.kt` - アプリケーション全体のデータ管理 + +### サービス +- `GoodsService.kt` - バックグラウンドで動作する価格監視サービス + +### 非同期処理 +- `ActivityAsyncTask.kt` - URL 検証と商品情報取得 +- `ServiceAsyncTask.kt` - 価格更新と通知判定 + +### UI コンポーネント +- `MyArrayAdapter.kt` - リスト表示用カスタムアダプター +- `ViewHolder.kt` - リスト表示の最適化 + +## データ永続化 + +SharedPreferences を使用してローカルにデータを保存します。GSON を使って商品情報をJSONにシリアライズし、アプリ終了後もデータが保持されます。 + +## パーミッション + +- `INTERNET` - ウェブスクレイピングによる商品情報取得に必要 + +## ビルド方法 + +```bash +# プロジェクトのクローン +git clone https://github.com/your-username/Tsuthin.git + +# プロジェクトディレクトリに移動 +cd Tsuthin + +# ビルド +./gradlew build + +# デバイスにインストール +./gradlew installDebug +``` + +## 開発履歴 + +- **2019/01/03** - ツーチン完成(コメント等の追加必要) +- **2018/12/27** - 商品情報取得機能、通知機能の非同期サービス実装完了 +- **2018/12/24** - コメントの付加、ローカルに取得情報の保管機能完了 +- **2018/12/24** - ListView に商品情報を表示する機能を実装 + +## ライセンス + +このプロジェクトのライセンスについては、リポジトリの所有者にお問い合わせください。 + +## 注意事項 + +このアプリはウェブスクレイピングを使用しています。対象サイトの利用規約を確認し、適切に使用してください。