ちかベルは、目的の店舗へ出かけるためのアプリではありません。 普段のお出かけ先で、以前ネットで見かけて保存しておいた店舗や場所が近くにあることを、そっと思い出させるAndroidアプリです。
通知の即時性や確実性よりも、外出中の偶然の気づきをゆるく増やすことを目的としています。 「必ず知らせる」ための道具ではなく、「近くまで来ていたことに気づけたら少しうれしい」くらいの、ゆるい使い方を想定しています。
- 本アプリは、AI(OpenAI Codex)を活用して設計、実装、テスト、文書作成を行っています。
- 通知は参考情報です。届かない、遅れる、位置がずれることがあります。
- 通知を見逃して困る用途には使用しないでください。
- ソースコードを読んだり、自分のアプリ開発や学習の参考にしたりすることは歓迎します。
- このソースコードを利用した場合、特に商用利用、製品への組み込み、改造版の公開・再配布を行う場合は、README、アプリ内クレジット、配布ページなど、利用者や第三者が確認できる場所に「ChikaBellを参考にしたこと」と本リポジトリへの参照を明記してください。ソースコード内だけの記載ではなく、配布物の利用者からも分かる形にしてください。
- 自分向けにビルド・改造した版や、第三者が再配布した版はChikaBellの公式配布物ではありません。
- 改造版・再配布版の動作、品質、安全性、更新、サポートは、それを作成または配布した人の責任で扱ってください。
- 公開版:
0.2.1。実機確認の範囲と制限は以下を参照してください。 - 対応OS: Android 10(API 29)以上
- 実機検証済み: Pixel 10a / Android 17のみ
- 配布方針: ソースコードと署名済みAPKをGitHubで公開済み。Play Store公開予定なし
- サポート方針: 無保証・自己責任。Issue、Pull Request、個別サポートは受け付けない
- 登録地点一覧・データ管理・AI検索から同じJSON・CSV取り込み画面を開けます。
- データ管理で地点データの追加と書き出しを分け、読み込めない場合は理由と次の操作を表示します。
更新内容と確認項目はリリース記録を参照してください。
普段のお出かけ中に、場所を探して登録しやすいように画面構成を見直しました。
- 地点の追加方法を、登録地点画面の「地点を追加」にまとめました。「AIで探す」と「自分で入力する」を選べます。
- AI検索を「条件を入力して探す」「場所を確認して登録」の2画面に整理しました。範囲、詳細条件、アカウント、通知設定は必要なときだけ開きます。
- 文字入力中も検索・取り込み・設定の操作ボタンが見える配置にしました。長いJSONは折りたたんで確認でき、本文がボタンを押し出しません。
- 検索結果で場所と通知設定を確認したあと、その画面から登録できます。ほぼ同じ内容を別の取り込み画面でもう一度確認する操作を減らしました。
- 保存済みのChatGPT接続を開いたときに確認し、モデル選択を引き継ぎます。接続の確認や検索の失敗で、確認中の候補を消さないようにしました。
- 白背景と深緑を基調に、文字・入力欄・選択状態を見分けやすくしました。
背景通知や接続更新などの実機確認は継続中です。更新内容と検証範囲はリリース記録を参照してください。
- 権限・端末設定の現在状態、推奨設定、要対応項目をまとめて案内
- 地点の追加・編集・削除
- Googleマップ等の共有テキスト・座標受信(Googleマップ短縮URLはGoogleのHTTPSサーバーで展開)
- 半径、滞在秒、再通知間隔の地点別設定とテンプレ
- 通知時の端末現在地・精度・登録地点からの距離を履歴へ記録
- 画面OFF・バックグラウンドでのGeofence監視
- 通知距離の外側で開始する短時間の位置確認と、同一接近中の重複通知抑制
- 通知からの12時間休止、複数地点の通知集約、外部地図表示
- 通知・検証履歴
- 再起動・アプリ更新後の監視復元と診断
- JSONバックアップ・復元
- UTF-8 BOM付きCSV入出力と安全なimport preview
- 検索条件をChatGPTへコピー・共有し、JSONを貼り付けて選択取り込み
- 本人のChatGPT接続によるアプリ内地点検索、住所からの位置確認、承認プレビュー
登録地点画面の「地点を追加」から「AIで探す」を選びます。
- 探したい場所、エリア、希望する条件を入力する
- 必要ならChatGPTに接続し、「ChatGPTで検索」を押す
- 候補の住所・出典・地図を見比べ、登録する場所と位置を選ぶ
- 必要なら通知半径・メモ・タグを編集し、「選択したN件を登録」を押す
端末の現在地を使う場合は「探す範囲」で取得した位置を確認し、「現在地も送って検索」で送信します。接続には利用者自身のChatGPTプラン・利用枠・提供条件が適用されます。
ChatGPTアプリで探す方法やJSONの貼り付けは「別の方法で探す・結果を取り込む」から選べます。JSON・CSVファイルの読み込みとバックアップは「設定」の「データ管理」からも利用できます。
対応JSONは地点Import Contract、検索・出力の手順はWorkflowを参照してください。アプリ内検索はAndroidの住所検索で別途位置を確認するため、位置候補を取得できない場所はGoogleマップ共有・手動確認を使ってください。
従来のCSV方式も利用できます。コピペ用Promptで条件を指定し、AIが作ったCSVを取り込みプレビューで確認して登録します。公式CSV仕様、操作ガイド、架空の形式例を参照してください。
- 正確な位置情報: 地点との距離を判定するため
- バックグラウンド位置情報: 画面OFF・アプリ非表示時もGeofence通知を受けるため
- 通知: 接近通知を表示するため
- 活動認識: 徒歩・自転車・車両を端末内で判別し、短時間確認の測位間隔を調整するため
- 位置情報のフォアグラウンドサービス: Geofence受信後の確認中だけ測位を継続し、完了時に停止するため
- 起動完了受信: 端末再起動後にGeofence監視を復元するため
本アプリはGoogleマップ短縮URLの展開と、利用者が選択したChatGPT接続・地点検索にINTERNET権限を使用します。検索は確認した条件だけを送信し、端末現在地は明示選択・承認した場合だけ含めます。保存済み地点や通知履歴はChatGPTへ自動送信しません。独自サーバー・広告・解析SDKは使用しません。接近検知には端末のGoogle Play servicesを使用します。詳細はプライバシー説明を参照してください。
地点、座標、メモ、通知履歴は端末内のRoomデータベースへ保存します。Android自動バックアップは無効です。機種移行や保全には、アプリ内のJSONバックアップを利用してください。
JSON/CSVには座標やメモが含まれます。公開リポジトリ、Issue、チャット、共有ストレージへ誤って添付しないでください。詳細はPRIVACY.mdを参照してください。
- Geofence通知はAndroid、Google Play services、位置精度、バッテリー設定に依存し、遅延したり通知されなかったりする場合があります。
- 本アプリは確実な到着通知、業務上のリマインダー、安全管理など、通知漏れが問題になる用途には適していません。
- Pixel 10a / Android 17以外の端末、OS、メーカー独自の省電力設定では動作確認していません。対応OSの条件を満たしていても、インストール、起動、バックグラウンド動作、通知を保証しません。
- 短縮Maps URLはGoogle Maps関連ホストへ接続して展開しますが、応答形式や通信状態によって座標を取得できない場合は手入力が必要です。
- アプリを強制停止すると、ユーザーが再度起動するまでAndroidが背景処理を止めます。
- 複数地点通知の「地図を見る」は、最寄り候補をGoogleマップで開きます。追加測位やMaps SDK/APIキーを必要とするアプリ内地図は意図的に持ちません。
- Android 12以降では、
allowBackup=falseでも端末メーカーによって端末間転送が許可される場合があります。
次回更新に向けて選定した作業はロードマップ / ToDoを参照してください。
前提:
- JDK 17
- Android SDK 37(compileSdk。minSdk 29 / targetSdk 36)
- Windows PowerShell(このリポジトリの既存検証環境)
.\gradlew.bat testDebugUnitTest lintDebug assembleDebug近接通知の実機検証はdocs/nearby_notification_validation.mdに分離しています。
release候補の検証:
.\tools\build_release.ps1初回は Setup-Signing.cmd で既存鍵とパスワードを登録し、以後は Build-Release.cmd を使います。build_release.ps1は登録済みの暗号化署名設定が不足している場合、ビルド前に失敗し、dist/へAPKを作成しません。署名後のAPKをapksignerで検証できた場合だけ配布物とSHA-256を生成します。署名方法はdocs/github_release.mdを参照してください。
GitHub Releasesから署名済みAPKを取得し、Androidの「不明なアプリのインストール」を明示的に許可して導入します。更新版は前版と同じ署名鍵で署名されている必要があります。
作者としては、ソースコードの閲覧、学習、個人利用、自分向けの改造、アプリ開発の参考利用を歓迎します。また、改造版や再配布版は公式版と明確に区別し、配布者が自分で責任を持つことを前提に、自由な利用・改変・再配布を認める方向です。
利用した場合、特に商用利用、製品への組み込み、公開、再配布では、ChikaBellを参考にしたことと本リポジトリへの参照を、README、クレジット、配布ページなどの誰でも確認できる場所へ明記することを求めます。
ただし、現時点では正式なLICENSEをまだ追加していません。法的な利用・改変・再配布条件は、無保証の方針に合う正式ライセンスを選定して明記するまで未確定です。
本アプリとソースコードは、個人開発の成果物を現状のまま提供するものです。作者は、インストールできること、正しく動作すること、通知が届くこと、特定の用途に適すること、継続的な更新や不具合修正を保証しません。利用によって生じたデータ消失、通知漏れ、端末上の問題、その他の損害についても責任を負いません。
利用、ビルド、改造、再配布は、内容とリスクを確認した本人の判断と責任で行ってください。第三者が改造・ビルド・再配布したものについて、元の作者は動作確認、問い合わせ対応、不具合修正、損害対応を行いません。再配布する場合は、公式版と誤認されないようにし、この無保証・自己責任の方針を利用者へ明示してください。
GitHub IssuesおよびPull Requestは受け付けません。個別の導入支援、端末固有の不具合調査、改造方法の案内、改造版・再配布版のサポートも行いません。
不具合の確認時も、住所、座標、Googleマップ共有URL、通知履歴、JSON/CSVバックアップ、端末ログを公開場所へ投稿しないでください。