0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【個人開発】作業時間記録アプリ「MinuteMind」をUnity + Google Drive連携で作ってiOS/Android同時リリースした話

Last updated at Posted at 2025-04-15

背景

フリーランスや個人開発者にとって、「自分の作業時間をどれだけ使っているのか」を可視化することは、効率化や価格交渉の観点でもとても重要です。

ただ、既存のアプリは高機能すぎたり、日報感があって続かなかったり…。

そこで、**「もっと軽くて、直感的に使える作業時間記録アプリを自分で作ろう」**と思い立ちました。


アプリ概要: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側からの呼び出しは以下のように filePathmimeType を指定して送る
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サーバーで、不具合報告・改善希望・雑談など気軽にどうぞ!

MinuteMind公式Discord


最後に

個人開発で「AndroidとiOS両方にアプリを出す」って、想像以上に大変でしたが、やってみると多くの気付きがありました。

この投稿が、同じようにアプリを作りたい人や、Unity + モバイル連携で詰まっている人の参考になれば嬉しいです!

この記事が役に立ったら LGTMしてもらえると励みになります!


0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?