みなさんは、PCを持たずに外出したのにも関わらず突然競プロをやりたくなってスマホコーディングしたことはありますか?
私は3年前にiOSアプリを用いてスマホコーディングを行うための環境構築の方法を紹介しました。
しかし、この記事で紹介したエディターがApp Storeから消えてしまい、同様の方法で環境構築することができなくなってしまいました。
そこで、 ブラウザでC++を書いて実行できるWebアプリを自作してみました。
本記事では、このWebアプリを使ってスマホで競プロをするための準備方法を紹介します。
動作確認に使用したブラウザはiOSはSafari、AndroidはFirefoxです。
1. エディタについて
- AtCoder Library(ACL)
- Boost(Header-onlyのみ)
を導入しています。
bits/stdc++.hも使用可能です。
AtCoderのコードテストのようにサーバー側で実行するのではなく、ブラウザ内で実行します。そのため、初回実行時に100MiB程度のダウンロードが必要となります。
詳しい利用方法はサイト内の説明をご覧ください。
2. 提出方法
以前の記事ではファイルから提出する機能をおすすめしていました。
mobile++でもファイルを保存する機能はあるのですが、微妙に使いにくいので
全選択 > コピー > AtCoderの提出欄にペースト で提出する方が簡単だと思います。
全選択は一番右のチェックマークのようなボタン、コピーは一番左のクリップみたいなボタンでできます。
3. AtCoder Easy Testの導入
まだ開発したてのmobile++の標準入力のとこはやや使いにくいです。
そこで、AtCoder Easy Testというツールを導入してみましょう。
AtCoder Easy Testは、AtCoderなどのコンテストサイトでソースコードを提出欄に入力するだけで自動でサンプルのテストを行ってくれるツールです。詳しくはこちらの記事をご覧ください。
iOS
UserScriptsというアプリを利用します。こちらは2026年11月現在でも利用可能です。
詳しいやり方は旧記事の5章を参照してください。
Android
Android版のFirefoxは定番のTampermonkeyを使うことができるので、とても簡単に設定できます。
まずTampermonkeyをインストールします。
次に、AtCoder Easy Test v2 をインストールします。
これで完了です。適当なAtCoderの問題を開いて、ボタンが増えていることを確認してみてください。
4. マクロのすすめ
スマホコーディングは、フリック入力や小さいソフトウェアキーボードなどで入力する必要があり結構大変です。特にC++は記述量が多いので指が疲れます。
(せめてPythonとかを使えばいいのに...とよく言われます)
そこで、スマホ用のテンプレートを作成することをおすすめします。
たとえば、あの悪名高い(?) repマクロなどは記述量を減らすのにかなり役立ちます。
下記のマクロは特に使用頻度が高く非常におすすめです。
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
#define vec vector
#define all(a) a.begin(), a.end()
#define pb push_back
普段はマクロを使わないという人でも、スマホコーディングするときは使ってみてはどうでしょうか?(ちなみに、私はもともとrepマクロを使わない派だったのですが、スマホで使うようになってからはPCでも使うようになりました)
ぜひみなさんも自分に合ったいろんなマクロを作ってみてください。
変数名や関数名がマクロ名と被らないように注意しましょう。
5. おわりに
本記事およびmobile++の活用で、スマホコーディングの不快感を少しでも減らせたら幸いです。ADTやAWCが帰りの電車の時間と被ってる人なども、ぜひスマホから参加してみてはいかがでしょうか?
6. 余談
mobile++の開発期間は2週間ぐらいです。
Codexの週利用枠(ChatGPT Plusプラン)を全部で80%分ぐらい使ったと思います。便利な時代ですね。
