【CursorエディタとAndroid Studioでアプリ開発】
先日、マック用にスタートメニュー風のランチャーを作り、日々便利に使っています。ふとスマホやタブレットも同様のランチャーになれば使いやすいのではないかと、ホームアプリ作成に挑戦してみました。
アプリのアイコンは、自分で選択したカテゴリに振り分け、使うときは、カテゴリからアプリを選択できるようにしています。
よく使うアプリは、起動回数を記録したものに基づきソートしているので、よく使うものが上位に表示されています。カウントは今月と先月のカウントからランキングしています。ゆるやかに新しい傾向のよく使うアプリが表示されるように工夫しています。
最近使ったアプリは、使うたびに一番最初に上がってきます。使うときは繰り返し使うことがあるので、これも便利です。こちらのランキングは、2週間使わないとランキングから消えていきます。
画面の上部には、アプリで用意したウィジェットを配置しようと思ったのですが、アプリのウィジェットを配置するのは難易度が高そうなので、自作のウィジェットを用意しました。バッテリー消費軽減にも良い影響をしていることでしょう。
時刻の下にあるのは、システム稼働時間です。スマホも時々再起動したほうがいいので、その目安になるようにしました。
日付には、和暦も入れました。仕事で和暦も使うので、すぐに確認できるのは便利です。
2段目の左は、歩数です。Androidのヘルスコネクトと連携しています。中央はタップすると画面消灯します。これも便利です。そして、右にはバッテリ残量表示なのですが、ここに温度も表示しています。
一番下の段には、よく使うアプリのアイコンを配置しました。カテゴリ別のよく使うアプリの内容とかぶっているのですが、とりあえずこのままで。ピン留めしたアプリを配置するのもいいですね。
???? StartMenu
あなたのAndroidデバイスをパーソナライズするカスタムホームランチャーアプリ
???? アプリの概要
StartMenuは、Androidデバイスをより便利で効率的に使えるようにするカスタムホームランチャーアプリです。従来のホーム画面を置き換え、リアルタイム情報と便利な機能を統合した、モダンで使いやすいインターフェイスを提供します。
✨ 主要機能
???? カスタムホームランチャー
- デフォルトホームアプリとして設定可能
- カテゴリ別アプリ管理
- よく使うアプリの自動記録
- 使用頻度に基づくアプリソート
???? リアルタイムウィジェット
- デジタル時計とカレンダー表示
- 歩数計(Google Fit連携)
- バッテリー残量表示
???? 歩数計機能
- Google Fit API統合
- Health Connect API対応
- 日々の歩数をリアルタイム表示
- シンプルで分かりやすい歩数表示
???? システム機能
- ワンタップ画面消灯
- アクセシビリティサービス連携
- システムロック機能
- セキュアな権限管理
???? ウィジェット詳細
???? 時計ウィジェット
リアルタイムで現在時刻を表示。縦横画面対応のレスポンシブデザイン。
???? 日付ウィジェット
今日の日付と曜日を美しく表示。日本語対応。
???? 歩数ウィジェット
Google FitとHealth Connectの両方に対応。日々の歩数を一目で確認。
???? バッテリーウィジェット
デバイスのバッテリー残量をパーセンテージで表示。
???? システムロック
ワンタップで画面を消灯。アクセシビリティサービスを活用。
⚙️ 技術仕様
開発環境・技術スタック
言語: Kotlin
UI フレームワーク: Jetpack Compose
アーキテクチャ: MVVM + Repository
非同期処理: Kotlin Coroutines
最小SDK: API 31 (Android 12)
???? 必要な権限
プライバシー保護への配慮
このアプリは以下の権限を使用しますが、すべて機能に必要な最小限の権限です:
- 身体センサー - 歩数データの取得のため
- アクティビティ認識 - Google Fit連携のため
- アクセシビリティサービス - 画面消灯機能のため
※ 個人情報の収集・送信は行いません。すべてのデータはデバイス内で処理されます。
???? 主な特徴
???? レスポンシブデザイン
縦画面・横画面の両方に対応した柔軟なレイアウト。画面サイズに応じてウィジェットが自動調整されます。
???? リアルタイム更新
歩数データは定期的に自動更新。常に最新の情報を表示します。
???? モダンUI
Material Design 3に準拠した美しいインターフェイス。時間帯に応じた背景色の変化もサポート。
⚡ 高性能
Kotlin Coroutinesによる非同期処理で、スムーズな動作を実現。バッテリー消費も最適化されています。
コメント