特定のアプリを除外できるスクリーンタイムアプリをClaudeで開発
-
FromClaude (Hacker News)
この記事は、開発者のDaanyaalSobani氏が、AIアシスタントClaudeを利用して開発したAndroidアプリ「TrueScreenTime」について説明しています。
このアプリは、デバイスの利用統計情報を読み取り、特定のアプリを含めたり除外したりすることで、カスタムスクリーンタイム集計を可能にします。主な機能は以下の通りです。
主な機能:
- 正確なフォアグラウンド時間: 事前に集計されたデータではなく、UsageEventsから再構築された正確なフォアグラウンド時間を記録します。
- ウェルビーイング風チャート: 含まれるアプリのドーナツチャート(中央にフィルタリングされた合計時間)と、週ごとのバーチャート(時間グリッド線とタップ可能な日選択)を提供します。これらはカスタムViewで、チャートライブラリは使用していません。
- 日付範囲選択: 「今日」、「今週」(月曜始まり)、またはカレンダーダイアログから選択したカスタム開始/終了日を指定できます。
- フィルタリング可能なアプリリスト: 指定した期間に使用されたすべてのアプリを、アイコン、名前、時間とともにリスト表示し、降順にソートします。各行のチェックボックスで、合計時間への含め/除外をライブで更新できます。
- 除外リスト: チェックを外したアプリはリストから非表示になり、合計時間にも含まれなくなります。専用の「除外アプリ」画面で、個別に、または一括で復元できます。
- 永続的なフィルタ: 含めるアプリの選択や、「システムアプリを表示」、「除外アプリを表示」のトグル設定はSharedPreferencesに保存されます。
- システムアプリトグル: clutterを減らすため、システムアプリとランチャーはデフォルトで非表示になります。
- 利用アクセスフロー: 「PACKAGE_USAGE_STATS」の権限が付与されていない場合、アプリは説明と「アクセスを許可」ボタンを表示し、設定画面にディープリンクします。
開発とテスト:
- KotlinとXMLレイアウトを使用し、Composeは使用していません。
- JVM上で約1分で実行できる単体テスト(Robolectric使用)が含まれています。
- GitHub Actionsにより、プッシュごとにテストが実行され、ビルドが成功した場合のみAPKが作成されます。
ビルド要件:
JDK 17以上、Android SDK(compileSdk 35)が必要です。デバッグAPKはReleasesページから入手できます。
利用アクセス許可(Android 13+のサイドロードアプリの場合):
サイドロードされたアプリの場合、利用アクセス権限の付与には追加の手順が必要です。アプリ内で「アクセスを許可」をタップした後、Androidの設定画面で「制限付き設定を許可」を有効にし、再度アプリ内で権限を有効にする必要があります。このデータはデバイス外に出ることはなく、すべてローカルに保持されます。
最小SDK: 24(Android 7.0)、ターゲットSDK/コンパイルSDK: 35(Android 15)。
依存関係: AndroidX core/appcompat/recyclerview/lifecycle, Material Components, Kotlin coroutinesなど、最小限のライブラリのみを使用しています。
[custom_js_sp]
AIによる翻訳/要約をしています。正確な情報はオリジナルサイトにてご確認ください。
当サイトの記事にはプロモーションが含まれる場合があります。
