問題ごとに意図的なバグが仕込まれたPythonコードが提示されます。コードエディタで修正を加えて「実行」ボタンを押すと、Pyodideエンジンが実際にPythonを実行し、出力結果と期待値を照合して正誤を判定します。
Pyodide(WebAssembly版Python)をWKWebView内で動かすことで、サーバーへの通信なしにiPhoneだけでPythonコードを実行できます。インターネット接続不要でいつでもどこでも練習できます。
行き詰まったときは「ヒント」ボタンをタップすると解説が表示されます。実行後は正解・不正解のオーバーレイが画面全体に大きく表示され、瞬時にフィードバックを受けられます。
無料プランでは最初の20問を利用できます。月額プレミアムプランに登録すると数百問すべてにアクセスでき、広告も非表示になります。前回の進捗は自動保存されるため、続きから再開できます。
画面上部に問題文が表示され、その下のコードエディタにバグ入りのPythonコードが読み込まれます。Menloフォントのエディタでコードを修正し、「実行」ボタンを押すと出力結果が下部に表示されます。期待値と一致すれば正解、一致しなければ不正解のオーバーレイが表示され、タップで次の問題へ進めます。
WebAssemblyベースのPyodideをアプリ内のWKWebViewで動かすことで、外部サーバーへの通信なしにiPhone単体でPythonコードをネイティブに実行できます。実行エンジンが準備完了するまでは「実行」ボタンが非活性になり、ロードが完了次第すぐに練習を開始できます。
「ヒント」ボタンをタップすると、その問題の解説がダイアログで表示されます。バグの種類・修正の考え方・Pythonの文法ポイントが説明され、自力で気づく手がかりを提供します。コードを「クリア」ボタンでリセットして、ヒントを参考に最初から考え直すこともできます。
最後に解いていた問題番号はUserDefaultsに自動保存されます。アプリを閉じて再度開くと、前回の問題から続けて練習できます。前後の問題へはナビゲーションボタンで切り替え可能で、問題番号はタイトルバーに常に表示されます。
画面上部の問題文を読み、どんな処理を実現すべきコードなのかを把握します。ナビゲーションボタンで前後の問題に移動できます。
コードエディタに表示されたPythonコードのバグを探して修正します。エンジンの準備が整ったら(実行ボタンが青くなったら)コードを実行できます。
「実行」ボタンをタップすると出力結果が表示されます。期待値と一致すれば正解の、一致しなければ不正解のオーバーレイが表示されます。画面をタップして次へ進みます。
"Pythonを勉強し始めたころはエラーが出ても原因がわからず苦労しました。このアプリでバグ入りコードを直す練習を繰り返したら、エラーメッセージを見てすぐどこが問題か気づけるようになりました。実際に実行できるのがリアルで良いです。"
"スキマ時間にiPhoneで1問ずつ解いています。問題ごとにヒントがついているので、詰まっても解説を読んで理解してから次へ進めます。数百問あるので当分ネタ切れになりません。プレミアムにして全問解いています。"
"バグを探して直すという練習が思いのほか実践的でした。コードを書くより読んで修正する方が難しいことがよくわかりました。正解オーバーレイの○×が大きくてわかりやすく、達成感もあります。"
ご不明な点はこちらをご確認ください