algonote

There's More Than One Way To Do It

寝ながらiPadで楽しむ競技プログラミング

寝ながらプログラミングする方法

f:id:hiromichinomata:20210221200532j:plain:w200

前口上

長く働く上で体を横にするのは重要だと思っていて、優秀な人が腰を痛めた話を聞くたび体を横にする重要性を感じています。腰への負荷は座る>>立つ>寝るですね。

iPadやKindleで読書や記事を読む程度なら簡単にできますし、音声認識の精度向上により小説やブログの記事なら声で入れることも可能かもしれません。一方でプログラミングは記号類が多く、音声認識フレンドリーではありません。

タブレットでプログラミングというと普通外出先で外付けのBluetoothキーボードを使うケースが多いのですが、寝ながらプログラミングする例は少ないようです。今回AtCoderとPythonを例に環境を作ってみます。

タブレットでプログラミングをする方法

タブレットでの開発環境は主に

  • 言語ユニークの開発環境アプリを使う方法
  • ブラウザでWebベースのIDEを開く方法

がありそうです。

前者はローカルのファイルを開いたり、オフライン、一時保存に有利。後者は任意の言語が選べるのが有利でしょうか。

iOSではプログラミング用のキーボードアプリを公開している人もいるようで、それと組み合わせると後者はカスタムしがいがありそうですが、今回は事例の多い前者でPythonでいきます。

Python実行環境の比較

iPadでのPython実行環境としてはPythonista ‪3‬、Python3ID‪E‬あたりが人気のようです。

Pythonista ‪3‬

Pythonista 3

Pythonista 3

  • omz:software
  • Productivity
  • $9.99
apps.apple.com

f:id:hiromichinomata:20210221200532j:plain

iOSでpythonというとまず出てくるのがPythonistaだと思います。有料のアプリでPythonのカンファレンスの時期になるとセールをしていることもあります。

2021/02現在のAtCoderのpythonは3.8ですがPythonistaは3.6で少し古いです。iCloudにファイルを保存できるのでiPhoneとiPadで時差置いて同じファイルを見ることも可能。

キーボードの一番上にタブや記号系が一番上にあって快適。文末に移動するコマンドがないのとif elseを考慮してインデント変わったりはしないので完璧ではないですね。

Python3IDE

Python3IDE

Python3IDE

  • Wang Lingling
  • 仕事効率化
  • 無料
apps.apple.com

f:id:hiromichinomata:20210221200548j:plain

こちらはPython 3.7で無料。Pythonistaも頑張ればpip経由でライブラリーを追加する方法はあるようですが、こちらは組み込みでUIあるので楽そう。

一方で空白の挿入や改行の削除などがバグりがちで不安定。サジェストも少し弱いですね。

AtCoderの実行環境について

AtCoder内にもコードテスト機能はあるのですができるだけローカルでやりたいです。 ターミナルのない状況だと入力はファイル経由になりますがAtCoderは標準入力経由での入力です。

実行環境のplatformがAtCoderとローカルで違うことを利用するとローカルのみファイル入力にすることが可能です。

# Pythonista
if sys.platform =='ios':
  sys.stdin=open('input1.txt')

# Python3IDE
if sys.platform =='darwin':
  sys.stdin=open('input1.txt')

最後に

自作キーボードというとハードウェアでPC用を指すことが多いように思います。 カスタムで自作ソフトウェアキーボードを作ってみるというのもやってみたいです。