<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Firebase | Bright Living Notes</title>
	<atom:link href="https://brightlivingnotes.com/tag/firebase/feed/" rel="self" type="application/rss+xml" />
	<link>https://brightlivingnotes.com</link>
	<description>A blog about what really matters. ｜本質を考えるブログ</description>
	<lastBuildDate>Sat, 30 May 2026 12:51:53 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://brightlivingnotes.com/wp-content/uploads/2025/12/92C262D4-E4D5-4BA9-8074-BAED62C588F4_4_5005_c-150x150.jpeg</url>
	<title>Firebase | Bright Living Notes</title>
	<link>https://brightlivingnotes.com</link>
	<width>32</width>
	<height>32</height>
</image> 
<atom:link rel="hub" href="https://pubsubhubbub.appspot.com"/>
<atom:link rel="hub" href="https://pubsubhubbub.superfeedr.com"/>
<atom:link rel="hub" href="https://websubhub.com/hub"/>
<atom:link rel="self" href="https://brightlivingnotes.com/tag/firebase/feed/"/>
	<item>
		<title>ランニング仲間で使えるアプリ制作——プロのすごさを知り、それでも作りたかった理由</title>
		<link>https://brightlivingnotes.com/building-grouprun-app-with-ai-series-8/</link>
		
		<dc:creator><![CDATA[fukky]]></dc:creator>
		<pubDate>Mon, 27 Apr 2026 09:08:45 +0000</pubDate>
				<category><![CDATA[デジタル・テクノロジー]]></category>
		<category><![CDATA[AIエージェント]]></category>
		<category><![CDATA[Claude Code]]></category>
		<category><![CDATA[Firebase]]></category>
		<category><![CDATA[Mapbox]]></category>
		<category><![CDATA[PWA]]></category>
		<category><![CDATA[アプリ開発]]></category>
		<category><![CDATA[自動化という夢シリーズ]]></category>
		<category><![CDATA[非エンジニア]]></category>
		<guid isPermaLink="false">https://brightlivingnotes.com/?p=3392</guid>

					<description><![CDATA[GroupRunというランニングアプリを、AIと一緒に作りました。Garmin社にも似たアプリがあるのに、なぜ自分で作ったのか。PWAという選択、Firebase・Mapboxとの出会い、プロのアプリへの敬意。自動化という夢シリーズ第8回。]]></description>
										<content:encoded><![CDATA[
<p>シリーズも第8回になります。第1ステージ（第1〜7回）では、AIエージェントとの出会いと、その向き合い方を語ってきました。ここから第2ステージとして、私が実際にClaudeと一緒に作ってきたものを、ひとつずつ紹介していきます。</p>



<p>最初に取り上げるのは「GroupRun」というランニングアプリの話です。</p>



<p>実は、このGroupRunの制作プロセスについては、シリーズが始まる前にすでに記事を書いていました。「<a href="https://brightlivingnotes.com/?p=2365">プログラミング経験ゼロから、AIと一緒にアプリを作った話</a>」という記事です。コピペで進めた作業の流れ、実地テストの様子、完成までの体験を、そちらに詳しく書いてあります。よろしければ、こちらも読んでみてください。</p>



<p>今回のシリーズでは、その続きとして、別の角度からGroupRunのことを書きたいと思います。なぜこのアプリを作ろうと思ったのか。世の中には似たアプリがあるのに、なぜわざわざ自分で作ろうとしたのか。そして、作ってみて感じた、プロのアプリへの敬意の話です。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-1" checked><label class="toc-title" for="toc-checkbox-1">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">温泉に向かって走る、仲間たちと</a></li><li><a href="#toc2" tabindex="0">ネイティブアプリでは、すでに存在していた</a></li><li><a href="#toc3" tabindex="0">PWAという選択——完璧を諦めることで、進めた</a></li><li><a href="#toc4" tabindex="0">知らない言葉との、2週間の旅</a></li><li><a href="#toc5" tabindex="0">そして、プロのアプリのすごさを実感した</a></li><li><a href="#toc6" tabindex="0">それでも、作ってみる価値があった</a><ol><li><a href="#toc7" tabindex="0">【このシリーズについて】</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">温泉に向かって走る、仲間たちと</span></h2>



<p>私には、長年続けているランニングの習慣があります。30年以上、走り続けてきました。</p>



<p>そして、同じランニング仲間たちと、ときどき銭湯（時には温泉施設）へ行くことがあります。集まり方が、少し変わっています。</p>



<p>もちろん、時間を合わせて一緒に走ることもあります。でも、よくやるのは「ゴール時刻と集合場所だけ決めておいて、各自のペースで出発する」というスタイルです。同じゴールを目指して、それぞれが自分のペースで走る。集合時刻にゴール地点に集まれば、そこから一緒に温泉へ向かう。</p>



<p>このやり方は、走力にばらつきがあるメンバーが集まるときに、とても自然です。速い人は速いペースで、ゆっくりの人はゆっくりのペースで。誰も誰かに合わせる必要がありません。</p>



<p>ただ、走っている最中、他のメンバーが今どのあたりにいるのか、誰がもうすぐゴールに着きそうなのか——それが分かるものがあったら、もっと面白いだろうな、と感じていました。GroupRunを作ろうと思った原点は、この「あったらいいな」という気持ちでした。</p>



<h2 class="wp-block-heading"><span id="toc2">ネイティブアプリでは、すでに存在していた</span></h2>



<p>正直に書いておきたいことがあります。</p>



<p>実は、グループランのような機能を持つアプリは、ネイティブアプリの世界にはすでに存在します。たとえばGarmin Connect等の純正アプリでは、グループランで仲間の位置を共有できる機能が提供されています。私自身が使ったわけではないので詳細までは分かりませんが、機能としては実用的なはずです。</p>



<p>つまり、私が作ろうとしたものは、世の中にまったくないものではありませんでした。</p>



<p>それでも、私は「自分でも作ってみたい」と思いました。</p>



<p>ちょうどClaude Codeを使い始めた時期と、この発想が重なったのです。完成したアプリを使うことと、自分で作ってみることは、まったく違う体験だと感じていました。ボタンを押すだけで使えるアプリと、自分で形を作っていくアプリ。後者の方に、強く惹かれたのです。</p>



<p>一度、自分の手で作ってみたい。その思いの方が、強かったのです。</p>



<h2 class="wp-block-heading"><span id="toc3">PWAという選択——完璧を諦めることで、進めた</span></h2>



<p>制作の途中で、大きな壁にぶつかりました。</p>



<p>スマートフォンのバックグラウンドでGPSを継続的に計測する機能です。これを実現するには、Appleの公式アプリストアを通じた審査が必要になることが分かりました。私が作ろうとしていたのはPWA(プログレッシブウェブアプリ)というWebアプリの種類で、これだとバックグラウンドGPSには制約があるのです。</p>



<p>選択肢は二つでした。本格的なネイティブアプリとして開発を進め、Appleの審査を受ける道。あるいは、PWAの制約の中でできる範囲で完成させる道。</p>



<p>私が選んだのは、後者でした。</p>



<p>今回のテーマは、「完全版のアプリをリリースする」ではなく、「AIを使って、自分でアプリを作ってみる」ことだったからです。だから、迷うことなくそのまま進めました。</p>



<p>完璧でなくてもいい。動くものを、自分の手で作る。それが目的でした。</p>



<p>この判断は、結果的に正解だったと感じています。完璧を目指していたら、途中で挫折していたかもしれません。「ここまでで充分」と決められたから、最後まで辿り着けたのです。</p>



<h2 class="wp-block-heading"><span id="toc4">知らない言葉との、2週間の旅</span></h2>



<p>GroupRunを作る過程で、知らない言葉がたくさん出てきました。</p>



<p>Firebase、Mapbox、Node.js、VS Code。最初は何のことか、まったく分かりませんでした。</p>



<p>これらは一つひとつ、別の会社が提供している別のサービスや道具です。Firebaseは、データを保存するためのGoogleのサービス。Mapboxは、地図を表示するための専門のサービス。Node.jsとVS Codeは、開発作業をするための土台となる道具。</p>



<p>聞いたこともない名前の道具を、一つずつアカウント作成して、インストールして、設定していく。完成までに、おおよそ2週間かかりました。</p>



<p>ここで気づいたことがあります。一つのアプリを作るためには、自分のパソコンの中だけでは完結しないということです。地図を表示するなら、その地図データを提供している会社のサービスが必要。データを保存するなら、それを保管している会社のサービスが必要。一つのアプリは、いくつもの外部サービスの上に成り立っている。</p>



<p>第3回で、Power Automate Desktopで一つの自動化を作った話を書きました（<a href="https://brightlivingnotes.com/pc-automation-dream-rpa-pad-ai-series-3/">第3回「パソコン自動化の夢——憧れて、試して、たどり着いた話」</a>）。あのときは、自分のパソコンの中だけで完結する自動化でした。GroupRun制作は、それより一段階複雑な世界に踏み込む経験でした。</p>



<h2 class="wp-block-heading"><span id="toc5">そして、プロのアプリのすごさを実感した</span></h2>



<p>GroupRunを作ってみて、強く感じたことがあります。</p>



<p>それは、世の中で公式に展開されているネイティブアプリの完成度の高さです。</p>



<p>私が作ったPWAは、動きます。基本的な機能は満たしています。でも、App Storeに並んでいるアプリの完成度とは、明らかに別次元です。バックグラウンドでの動作、通知、デザインの細部、エラー処理、セキュリティ。プロが作るアプリには、見えない部分にも膨大な工夫が詰まっています。</p>



<p>私が作ったのは、「動くもの」のレベル。プロのアプリは、「商品として人に提供できるもの」のレベル。この二つの間には、深い溝があります。</p>



<p>一つのアプリをリリースするまでに、どれだけ多くの工数と時間がかかっているか。そして、どれだけ多くの関連サービスが関わっているか。これは、自分で作ってみて初めて分かったことでした。</p>



<p>冒頭で触れたGarmin社のアプリも、当然ですが、長い時間と多くの人の手をかけて作られています。それを「ボタン一つで使える形」で提供してくれている。これは本当にありがたいことです。</p>



<p>プロのエンジニアの仕事への敬意が、自然と湧いてきました。</p>



<h2 class="wp-block-heading"><span id="toc6">それでも、作ってみる価値があった</span></h2>



<p>そう感じながらも、もう一つの気持ちがあります。</p>



<p>「それでも、作ってみる価値があった」という気持ちです。</p>



<p>完成度ではプロには及びません。でも、自分の手で作ったアプリには、プロのアプリにはない価値があります。それは、作る過程で得られた理解です。</p>



<p>地図はどうやって表示されるのか。GPSのデータはどう取得して、どう記録するのか。複数の人が同じ画面を共有するには、何が必要なのか。これらは、ボタン一つで使えるアプリを使っているだけでは、決して得られない理解です。</p>



<p>そして、何より——「自分にも作れた」という体験そのものが、価値でした。</p>



<p>会社員時代の私だったら、こんなアプリを自分で作ろうなんて、考えもしなかったでしょう。一筋縄ではいかないことは分かっている。でも、AIという相棒がいる時代は、最初の一歩のハードルが圧倒的に低い。</p>



<p>完璧ではなくていい。動くものを、自分の手で作る。その経験が、自分の中に新しい視点をもたらします。「あれは作れる」「これも作れる」——一度作ってみると、可能性の見え方が変わるのです。</p>



<p>これが、第2ステージの最初の記事として、私が書きたかったことです。</p>



<p>次回は、GroupRunとは違って、もっと日常的に使える、いくつかのアプリをご紹介したいと思います。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc7">【このシリーズについて】</span></h3>



<p>この記事は「パソコンのなかった時代から追いかけてきた、自動化という夢」シリーズの一編です。非エンジニアの私が、AIエージェントと向き合いながら体験したことを、ひとつずつ記録していきます。</p>



<p><strong>シリーズの他の記事はこちらからご覧いただけます：</strong></p>



<ul class="wp-block-list">
<li><a href="https://brightlivingnotes.com/automation-dream-pre-pc-era-series-1/">第1回：パソコンのなかった時代から追いかけてきた、自動化という夢——ついに、その扉が開いた話</a></li>
<li><a href="https://brightlivingnotes.com/automation-dream-pre-pc-era-series-2/">第2回：会社員時代、毎日の仕事の中で静かに願っていた『自動化』——朝のメール、報告書、そして同僚との小さな会話</a></li>
<li><a href="https://brightlivingnotes.com/pc-automation-dream-rpa-pad-ai-series-3/">第3回：パソコン自動化の夢——憧れて、試して、たどり着いた話</a></li>
<li><a href="https://brightlivingnotes.com/what-is-terminal-for-ai-answered/">第4回：ターミナルって、何のためにあるんだろう?——長年の疑問に、AIが答えをくれた</a></li>
<li><a href="https://brightlivingnotes.com/how-my-relationship-with-ai-changed-vibe-coding/">第5回：AIとの付き合い方は、こうして変わってきた——そして、バイブコーディングという大きな波</a></li>
<li><a href="https://brightlivingnotes.com/claude-my-partner-non-engineer-ai-journey/">第6回：驚きの連続から、Claudeが相棒になった——チャットもエージェントも、この道具で</a></li>
<li><a href="https://brightlivingnotes.com/embracing-ai-agents-at-my-own-pace-series-7/">第7回：自分のペースで、新しい技術エージェントAIと向き合う——焦らず、でも諦めず</a></li>
</ul>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
