背景
フリーランスや個人開発者にとって、「自分の作業時間をどれだけ使っているのか」を可視化することは、効率化や価格交渉の観点でもとても重要です。
ただ、既存のアプリは高機能すぎたり、日報感があって続かなかったり…。
そこで、**「もっと軽くて、直感的に使える作業時間記録アプリを自分で作ろう」**と思い立ちました。
アプリ概要:MinuteMind
- 作業カテゴリごとの記録がワンタップで可能
- グラフで週・月の傾向を可視化
- Google Driveへのエクスポート/インポート対応
- Unity IAPを使って広告非表示の課金も実装
技術スタック
- Unity 2022.3 LTS
- Android/iOS両対応
- Google Drive REST API v3
- Android向け AAR(Intent経由のファイル送信)
- iOS向け UIDocumentPicker連携
- Unity IAP(広告非表示切り替え)
実装で詰まったこと・工夫したこと
① Google Drive連携(Android)
- AndroidはAARを使い、JavaからGoogle DriveへのIntentを呼び出す方式を採用
- Unity側からの呼び出しは以下のように
filePath
とmimeType
を指定して送る
using (AndroidJavaObject activity = UnityPlayer.GetActivity())
{
activity.Call("exportToDrive", filePath, mimeType);
}
- SAFを使ってユーザー選択形式にしておくと、スコープアクセスの問題を回避できる
② JSONインポート(iOS)
-
UIDocumentPickerViewController
をネイティブ側に実装し、選択後にUnitySendMessage
でUnityへ通知 - アプリ内の
PersistentDataPath
にコピーして処理する構成にした
// Objective-C/Swift 側で実装し、UnitySendMessage("GameObjectName", "OnJsonImported", jsonString) で送る
③ Unity IAPの広告非表示処理
- 無料ユーザーにはバナー広告+インタースティシャル広告(一定条件で)
- 広告非表示購入時は
PlayerPrefs
にフラグを保存し、AdMob初期化前に判定 - Google Play Console / App Store Connect両方でアイテムIDを揃えることでクロスプラットフォーム対応
🔗 ダウンロードリンク
フィードバック歓迎!
現在、ユーザーの声を集めて改善中です。
以下のDiscordサーバーで、不具合報告・改善希望・雑談など気軽にどうぞ!
最後に
個人開発で「AndroidとiOS両方にアプリを出す」って、想像以上に大変でしたが、やってみると多くの気付きがありました。
この投稿が、同じようにアプリを作りたい人や、Unity + モバイル連携で詰まっている人の参考になれば嬉しいです!
この記事が役に立ったら LGTMしてもらえると励みになります!