RORK LABEN
FUNDING — Rorkが$15Mのシード資金調達を完了。Left Lane Capitalが主導し、Peak XV・True Ventures・Goodwater・a16z Speedrunが参加しましたUSERS — 利用者は200万人に達し、月間74.3万訪問・成長率85%と伸び続けていますMAX — Rork MaxはネイティブSwiftアプリを生成し、iPhone・iPad・Watch・TV・Vision Pro・iMessageに対応しますSTACK — 通常のRorkはReact Native(Expo)でiOSとAndroidを同時に生成し、非エンジニアでも実機アプリを作れますPRICE — 料金は無料から用意され、有料プランは月$25から、Rork Maxは月$200ですMARKET — Gartnerは2026年末までに新規アプリの75%が低コード/ノーコード製になると予測していますFUNDING — Rorkが$15Mのシード資金調達を完了。Left Lane Capitalが主導し、Peak XV・True Ventures・Goodwater・a16z Speedrunが参加しましたUSERS — 利用者は200万人に達し、月間74.3万訪問・成長率85%と伸び続けていますMAX — Rork MaxはネイティブSwiftアプリを生成し、iPhone・iPad・Watch・TV・Vision Pro・iMessageに対応しますSTACK — 通常のRorkはReact Native(Expo)でiOSとAndroidを同時に生成し、非エンジニアでも実機アプリを作れますPRICE — 料金は無料から用意され、有料プランは月$25から、Rork Maxは月$200ですMARKET — Gartnerは2026年末までに新規アプリの75%が低コード/ノーコード製になると予測しています
記事一覧/アプリ開発
アプリ開発/2026-07-05中級

ワンタイムコードの入力欄をExpoで作る — SMS自動入力とセグメント表示を両立させる

6桁の確認コードを入れる画面は、見た目こそ単純ですが、SMSの自動入力・貼り付け・1文字ずつの削除まで含めると意外と作り込みが必要です。iOSとAndroidの自動入力を最初に押さえ、単一のTextInputで崩れにくいセグメント表示を組む実装をまとめました。

Rork488Expo129React Native195認証14UX設計7

プレミアム記事

個人開発で運用しているアプリに電話番号の確認を足したとき、最初は素朴に6つの TextInput を横並びにしました。見た目は整っていたのですが、テスターから「SMSで届いたコードが上に出てこない」「貼り付けたら1マス目にしか入らない」と立て続けに指摘が届きました。マスを分けた瞬間に、iOS の自動入力もクリップボードの一括貼り付けも壊れていたのです。私自身、App Store に複数のアプリを出しながら、この「確認コード欄」だけは何度も作り直してきました。

コードを入れる画面は、サインアップや決済の直前という、いちばん離脱されたくない場所に置かれます。ここで一手間かかるだけで、せっかく興味を持ってくれた人が離れてしまいます。今回は Expo(React Native)で、SMS の自動入力・貼り付け・削除のすべてが自然に動く入力欄を組み立てていきます。

マスを分けると自動入力が届かなくなる

確認コード欄でまず引っかかるのが「見た目」と「入力の実体」の食い違いです。デザイン上は1文字ずつ独立したマスに見せたい。けれど OS の自動入力は、ひとつの入力フィールドに対して「6桁の文字列」をまとめて流し込もうとします。

6つの TextInput に分けてしまうと、iOS はどのフィールドへ挿し込めばよいか判断できず、キーボード上部の候補(コードのサジェスト)自体が出なくなります。Android の SMS 自動入力も同様に、単一のフィールドを前提に動きます。貼り付けも「フォーカスされた1マス」にしか入りません。

ここから導かれる方針はひとつです。見た目は分割し、入力の実体は1つにまとめる。つまり透明な TextInput を1枚だけ置き、その値を1文字ずつ描画して「マスが並んでいるように見せる」構成にします。

iOSとAndroidの自動入力を最初に指定する

先に自動入力の指定を固めておきます。ここを後回しにすると、UIを作り込んだあとで「なぜか候補が出ない」と時間を溶かします。両OSで必要な属性は異なります。

目的iOSAndroid
コードの自動入力textContentType="oneTimeCode"autoComplete="sms-otp"
キーボード種別keyboardType="number-pad"(数字コードの場合)
入力途中の自動修正抑制autoCorrect={false} / textContentType は上記を優先

注意したいのは、importantForAutofill を古い記事の見よう見まねで指定すると、逆に Android の sms-otp が無視される場合があることです。まずは上の最小構成から始め、必要になってから足すのが安全です。

import { TextInput } from "react-native";
 
// 実体となる単一の入力欄。見た目は後段のマスで描くため透明にします
<TextInput
  value={code}
  onChangeText={handleChange}
  keyboardType="number-pad"
  textContentType="oneTimeCode" // iOS: SMS のコードを候補表示
  autoComplete="sms-otp"        // Android: SMS 自動入力
  maxLength={6}
  autoFocus
  style={{ position: "absolute", opacity: 0 }}
/>

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
iOSの textContentType=oneTimeCode と Androidの autoComplete=sms-otp を両OSで効かせる正しい指定順序
見た目は6つのマス目、実体は1つのTextInput にする実装パターン(自動入力・貼り付けが壊れない)
貼り付けで6桁が一度に入る場合と、1文字ずつ削除する場合の両方を破綻させないキー操作の設計
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Rork Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

アプリ開発2026-06-27
「本当に削除しますか?」を出す前に — 取り消せる削除という選択肢
リストの項目を消すたびに確認ダイアログを出すと、ユーザーは反射的にOKを押すようになります。Rork(Expo)アプリで「取り消せる削除」を実装し、確認を出すべき場面と出さない場面を切り分ける設計ノートです。
アプリ開発2026-06-29
クリップボード連携のUXを整える — iOSのペースト許可バナーを増やさずに「コピー」と「貼り付け」を成立させる
expo-clipboard で「コピー」と「貼り付け」を実装するとき、iOS のペースト許可バナーが頻発して使い勝手を損なうことがあります。バナーの発生条件を押さえ、hasStringAsync で内容を読まずにボタンを出し分ける設計をまとめました。
アプリ開発2026-06-27
画面を離れてもアニメーションが回り続ける — Rork(Expo)アプリのフォーカス連動でバッテリーを守る
Rork が生成した Expo アプリで、別画面に進んだりホームに戻ったあともグラデーションや呼吸アニメーションが裏で回り続け、ジャンクとして表に出ないままバッテリーを静かに削っていく——その原因は Reanimated の withRepeat が UI スレッドで走り続けることと、ナビゲーションスタックが画面をマウントしたまま保持することにあります。useIsFocused と AppState を束ねたライフサイクル設計で、画面外とバックグラウンドのループを確実に止める実装を、動くコードで示します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →