こんにちは、時短ギア管理人の清光です。

コードは書けない現役の営業ですが、AIと一緒に、現場が毎日使う業務システムを1年以上つくり続けてきました。

自作のアプリを1台で使っているうちは、何の問題も起きません。

2台目を持った瞬間に破綻します。スマホで入れた案件が、PCでは影も形もない。

この記事では、自作アプリを複数端末で使えるようにしたときの手順と、実際に踏んだ3つの落とし穴を紹介します。

自作の案件管理アプリをスマホで開いた画面
スマホで開いたところ。氏名と媒体名はダミー、電話番号・住所・金額は伏せています。

なぜ2台目で破綻するのか

手軽に作れるアプリは、データを「その端末の中」に保存します。

この作りは速くて簡単です。サーバも要らず、通信も要りません。

ただし保存先が端末の中なので、別の端末から見ると空っぽです。同じアプリなのに中身が違う、という状態になります。

私も最初に作った案件管理アプリはこの形で、外での入力は快適でした。

困ったのはPCで作業を始めたときです。夜にまとめて整理しようとしたら、昼に入れた案件が無いわけです。

なお、この記事に載せた画面はどれも、氏名と媒体名をダミーに置き換え、電話番号・住所・金額は伏せています。

やることは「正本をどこに置くか」を決めるだけ

解決の筋は1つで、データの正本を端末の外に置きます。

端末は「見に行く側」に降格させる、と考えると分かりやすいです。

  1. データの置き場所をサーバ側に用意する
  2. いま端末に入っているデータを、そこへ丸ごと移す
  3. つながるかどうかだけを試す(この段階では切り替えない)
  4. 確認できてから、同期をオンにする
  5. 2台目はオンにするだけ。移行はしない

順番が大事です。理由は次の落とし穴で書きます。

コードはAIに書かせました。私が決めたのは、この順番と「間違えたら止める」の置き場所だけです。

同じ案件をPCの広い画面で開いたところ
同じ案件をPCで開いた画面。データはサーバ側にあるので、どちらの端末からでも同じ中身が出ます。こちらもダミーと伏せ字です。

落とし穴1:手順を間違えると、データが消えたように見える

いちばん怖かったのがこれです。

端末にデータがある状態で、空っぽのサーバへ先につないでしまうと、画面から全部消えます。

正確には消えていません。空のサーバを見に行っているだけで、端末の中には残っています。

ただ、使っている側からすれば「データが全部飛んだ」にしか見えません。心臓に悪いです。

直し方は説明書ではなく、構造です。端末にデータがあり、かつサーバが空のときは、同期をオンにできないようにしました。

「先に移してください」と書いておくだけでは、いつか自分が読み飛ばします。押せない形にすれば読み飛ばせません。

落とし穴2:リアルタイムではない

同期という言葉から、常に自動でつながっている状態を想像していました。

実際に作ったものは、起動したときにまとめて取りに行く形です。

そのため、PCで入れた案件はスマホを開き直すまで出てきません。「片方で入れたのに出ない」は不具合ではなく仕様でした。

ここを常時つながる形にすることもできますが、作りが一段複雑になります。

私は「出ないときは開き直す」で足りると判断しました。1人で使う道具なら、この割り切りで十分です。

落とし穴3:古い画面を開いたままの端末が、新しい入力を上書きする

これは同期を入れたあとに出た、いちばん厄介な症状です。

自動保存を「画面の項目を全部まとめて送る」という作りにしていました。

この形だと、古い内容を表示したままの端末が1つでも項目を触った瞬間、画面にあった古い値ごと全部が送られます。

結果、別の端末で入れたばかりの内容が、古い値で塗り替えられます。

実害も出ました。入力したはずの金額が0円に戻っていたことがあります。

直し方は「変わった項目だけを送る」に変えることでした。触っていない項目は送らないので、古い値が飛んでいきません。

この修正は、AIに「全項目を送る形から差分だけ送る形にして」と頼めば書いてくれます。

私が自分でやったのは、症状から「全部送っているのが原因では」と当たりを付けたところまでです。

先に答えておきます

Q. 最初からサーバに置く作りにすればよかったのでは?

結果論としてはそうですが、私は逆をおすすめします。

端末の中に保存する形は作るのが速く、続くかどうかを試すには十分です。続かなかった道具にサーバは要りません。

Q. 移行のときにデータが壊れませんか?

移す前に、端末側のデータを書き出して手元に置きました。戻す先があるだけで判断が軽くなります。

移行は1回きりの作業です。ここだけは慎重にやる価値があります。

Q. 2台目でも移行の操作が要りますか?

要りません。正本はもうサーバ側にあるので、2台目はつなぐだけです。

むしろ2台目で移行を実行すると、1台目のデータを上書きしかねません。そこも押せないようにしてあります。

まとめ

  • 端末の中に保存する形は、1台なら最速。2台目で必ず破綻する
  • 移す順番は「先に移してから、つなぐ」。逆にすると消えたように見える
  • 手順の注意書きではなく、押せない形にして防ぐ
  • 起動時に取りに行く作りなら、出ないときは開き直す
  • 自動保存は「全部送る」ではなく「変わった項目だけ送る」

浮くのは、夜にPCの前で「あの案件どこだ」と探す時間です。

それ以上に大きいのは、外で入れた内容がそのまま残っていると信じられることでした。

今日はここまで。この記事が、あなたの時間を少しでも価値に変えるお手伝いになれば嬉しいです。

それでは、また次の時短ハックでお会いしましょう。

自作している業務システムのことや、お仕事のご依頼はお問い合わせからどうぞ。