モバイルに本物のログインを足す作業のうち、「ログインをアプリのどこに置くか」だけを決めた回です。
綴Photo はデータをスマホのローカルに溜めます。ネットがなくても全部使えます。ログインが要るのは、その記録をクラウドに同期したいときだけです。
「ログインを足す」と聞くと、起動したらまずログイン画面、を思い浮かべます。でも綴Photo はログイン無しで全機能が成立します。だから起動時にログインの壁を立てないことにした。
ゲートは同期の側に足す
同期と画像アップロードの導線は、もともと開発中だけ出すゲートの内側にあった。そこに「ログイン済みなら」を一つ足して、未ログインのときは同期に手が届かないようにした。
dart
// 開発中だけ出す(本番に出さない)に加えて「ログイン済み」を要求
// =未ログインのままクラウド送信に到達させない
if (kDebugMode && loggedIn) ...[
syncTile,
uploadTile,
],条件を一つ足しただけだ。ログインしていない人から見ると、アプリの挙動は今までと何も変わりません。
どこにゲートを置くかは、何を守るアプリかで決まる
同じ「ログインを足す」でも、銀行アプリなら起動時の壁が正しいです。守るものが口座の中身なので、開いた時点で本人でなければ困ります。綴Photo が守るのは端末の中に溜まった言葉で、それはログインの有無に関係なく本人のものです。
ここを決めずに「ログインといえば起動時の画面」で作り始めると、ローカルだけで完結する強みを、自分の手で入口に閉じ込めることになります。
壁にしないと決めたぶん、ログイン状態は「設定を見れば分かる」程度に静かに見せればいい。その「見せる」ほうで詰まった話は別記事に書いた。
この記事は2026年6月時点の自分の理解で書いています。仕様や認識が変わってる可能性があります。