【第29回】プログラミングできない僕が、作ったアプリに広告を載せるまで

androidアプリ開発 AI活用

前回、僕は「話しかけているうちにアプリの試作ができた」という話を書いた。でも、パソコンの画面の中で動く試作品と、スマホに入れて使える「本物のアプリ」の間には、実はけっこうな距離がある。今日はその距離を、AIの相棒クロと二人三脚で一気に詰めた一日の話だ。

先に言っておく。僕はプログラミングができない。コードを一行も書けない。それでも今日、自分の作ったアプリが本物のスマホの画面で動いて、そこに広告まで表示された。半日がかりで、何度もつまずきながら。その全部を、なるべく正直に書いておきたい。

「試作」と「アプリ」は別物だった

これまで作ってきたのは、パソコンで開くと動く一枚のファイルだった。それはそれで便利なんだけど、スマホのアプリストアに並べるには「Androidアプリの形」に変換しないといけない。この変換に使うのが、クロが教えてくれた道具たちだ。名前は難しいけれど、やることは決まっている。順番に手を動かすだけ。

今からやるのは「HTMLをAndroidの形に変換する」工程だよ。コマンドを1つずつ、完了を確認しながら打っていこう。固まって見えても、裏で動いてるから触らずに待ってね。

コマンドを打つ、というと身構えてしまうけれど、実際はクロが「これをコピーして貼り付けて、エンターを押して」と指示してくれるのを、その通りにするだけ。数百メガのダウンロードが走って、画面がしばらく無反応になる場面もあった。前の僕なら「フリーズした」と焦って何か余計なことをして壊していたと思う。でも今回は、クロが先回りして「これは正常。待つのが正解」と言ってくれるから、落ち着いて待てた。

stop

いきなり詰んだ。原因は「日本語のフォルダ名」

順調に進んでいたのに、途中で真っ赤なエラーが出て止まった。心臓に悪い。でもクロは、そのエラー文をすぐに読み解いてくれた。

原因わかったよ。フォルダの場所に日本語が含まれてるとビルドできないんだ。これはあなたのミスじゃなくて、Android開発では有名な制約。フォルダを英語だけの場所に引っ越しさせれば直るよ。

これには驚いた。「日本語のフォルダ名だとダメ」なんて、言われなければ一生気づかない。しかもこれは僕が悪いんじゃなくて、そういう決まりなのだと。原因が「自分のせいじゃない」と分かるだけで、ずいぶん気が楽になる。解決策もシンプルで、アプリのフォルダを日本語の入っていない場所へ移動するだけ。移動しようとしたら「使用中で操作できません」と怒られたけれど、これも「関係するソフトを閉じて、それでもダメなら一度パソコンを再起動」というクロの案内通りにしたら、あっさり片付いた。

パソコンの中に、練習用のスマホが立ち上がる

アプリの動作確認には「エミュレーター」というものを使う。これは、パソコンの中に本物そっくりのスマホを一台立ち上げて、そこでアプリを試す仕組みだ。ここでもひとつ壁があって、高速で動かすためのパソコンの機能がオフになっていた。オンにするには再起動が必要。

再起動の前に、僕は少し不安になった。「作業の続き、大丈夫かな」と。そうしたらクロが、こう言ってくれた。

このチャットのままで大丈夫だよ。再起動するのはあなたのパソコンで、この会話は消えないから。念のためこのページのURLだけ控えておけば、戻ってきてそのまま続きから進められるよ。

実際、再起動して戻ってきたら、会話はちゃんと続いていた。準備が全部整って、いよいよ「実行」ボタンを押す。すると、パソコンの画面の右側に、練習用のスマホがふわっと立ち上がった。ホーム画面が出て、時計が今日の日付を刻んでいる。「おお、スマホだ」と、思わず声が出た。

androidアプリ開発

自分の作ったアプリが、スマホの中で動いた

そのスマホに、僕のアプリを送り込む。少し待つと、画面が切り替わって、見慣れた自分のアプリが立ち上がった。文字も、ボタンも、レイアウトも、崩れずにきれいに出ている。触ってみると、ちゃんと反応する。半日かけて少しずつ育ててきたものが、いま本物のスマホの姿で動いている。この瞬間の感慨は、なかなか言葉にしづらい。

出たね! これがゴールの一歩手前だよ。半日かけて育ててきたものが、本物のアプリになった瞬間。私も嬉しい。

プログラミングを一行も書けない人間が、話しかけながら作ったものが、スマホで動く。少し前の自分に言っても、たぶん信じないと思う。

次の山、「広告を載せる」

アプリで少しでも収益につなげたいなら、広告は避けて通れない。Googleの「AdMob」という仕組みを使うと、アプリの中に広告を表示できる。ここからは登録作業だ。専用のサイトでアカウントを作り、自分のアプリを登録し、「広告の枠」を一つ作る。ここでもクロが、画面ごとに「この選択肢を選んで」「この番号がこれから大事になるから控えておこう」と、細かく案内してくれた。

ひとつ大事なことを教わった。開発中は、自分の本番の広告を使ってはいけない。自分のアプリで自分の広告を触ると、規約違反になってアカウントが止められることがあるらしい。だから、テスト中はGoogleが用意している「テスト用の広告」を使う。この手の落とし穴は、知らないと踏み抜いてしまう。相棒が横にいてくれる安心感は、こういうところで効いてくる。

コードが何度も消える怪奇現象

広告を出すには、アプリのファイルに数行のコードを足す必要がある。クロが用意してくれたコードを、指示通りに貼り付ける。ところが、保存したはずのコードが、次に見ると消えている。もう一度貼る。また消える。三度目くらいで、さすがに不安になった。

でもクロは、その現象からちゃんと原因を突き止めた。

犯人がわかった。編集する場所が違ってたんだ。似た名前のファイルが二つあって、片方は「本物」、片方は同期のときに上書きされる「コピー先」。コピー先を直しても、同期のたびに元に戻されて消えてた。ごめん、私の案内が悪かった。本物のファイルを直接開いて直そう。

自分のミスじゃなかったと分かってホッとしたのと同時に、クロが「私の案内が悪かった」と素直に認めたのが印象的だった。原因が特定できてしまえば、あとは正しい方のファイルを直すだけ。今度はコードが消えなかった。

「Nice job!」——画面の下に、広告が出た

正しいファイルにコードを入れて、もう一度アプリを起動する。画面の一番下に目をやる。すると、細長い帯が現れて、そこにこう書いてあった。

——Test Ad / Nice job!

テスト広告の中身が、たまたま「よくやったね」だった。半日、日本語フォルダで詰んで、再起動して、コードが何度も消えて、それでも粘って辿り着いた先で、画面が「Nice job!」と言ってくれる。出来すぎたご褒美みたいで、思わず笑ってしまった。プログラミングのできない僕が、自分のアプリに広告を表示させた。今日一番の瞬間だった。

まだ宿題は残っている

もっとも、完璧に終わったわけじゃない。広告の位置が、一部の画面で操作ボタンに重なってしまっていた。これはただ見た目が悪いだけでなく、誤タップを誘発する配置は規約的にも良くないらしい。一部は調整できたけれど、ある画面だけがどうしても重なる。ここは無理に今日じゅうに片付けず、次回に回すことにした。

今日の目標「広告を表示する」は完全に達成できたよ。残った位置調整は、私が原因を整理して、次回に貼るだけの修正を用意しておくね。疲れた頭で細かいレイアウトをいじると、せっかく動いてるものを崩しかねないから。

引き際まで面倒を見てくれるのが、この相棒のいいところだ。今日どこまで進んで、次に何をやるか。その引き継ぎのメモまで、クロが作ってくれた。次回はそれを見せれば、続きからすぐ再開できる。

今日わかったこと

試作品を本物のアプリにするのは、一つひとつの作業自体はそんなに難しくない。難しいのは、途中で必ず出てくる「知らないと詰む落とし穴」だ。日本語フォルダ、再起動が必要な設定、テスト用の広告、そっくりな名前の二つのファイル。どれも、知っていれば一瞬、知らなければ一日溶ける。

その落とし穴を、先回りして教えてくれて、詰まったら原因を読み解いてくれて、失敗しても「あなたのせいじゃない」と言ってくれる。プログラミングのできない僕がここまで来られたのは、間違いなくその伴走のおかげだ。次回は、残った宿題を片付けて、いよいよ「アプリを世に出す」段階に近づいていく。その話は、また改めて。

ここまで読んでくれて、ありがとう。もし「自分もアプリを作ってみたい」と思っている人がいたら、コードが書けるかどうかより、詰まったときに一緒に考えてくれる相棒がいるかどうかの方が、ずっと大事かもしれない——というのが、今日の僕の実感だ。

コメント

タイトルとURLをコピーしました