1. すべてのモバイルアプリの問題

CodeGym の学生は長い間モバイル アプリを求めてきました。その理由もわかります。今日の世界では、 IntelliJ IDEAがインストールされたデスクトップ コンピューターよりも電話の方が簡単に入手できます。1 ~ 2 時間ずっと座って勉強するよりも、1 日に数回 15 分を確保する方がはるかに簡単です。

目の前に現れるあらゆる機会を最大限に活用する方法を見つけられれば、CodeGym での学習はさらに効果的になるでしょう。しかし、携帯電話に IDE をインストールするにはどうすればよいでしょうか?

長い間、私たちはこれが可能だとは考えていませんでした。これは競合他社によっても繰り返し確認されています。競合他社のプログラミング学習アプリはすべて、コードを書く必要がなくなり、テストに置き換えられました。

しかし、2019 年が始まると、私たちは画期的な進歩を遂げました。大規模な IDE を複製する代わりに、ユーザーがコードを作成する際に直面する課題に焦点を当てることにしました。私たちのソリューションは、いくつかの単純な原則に基づいていました。

  • コードを読むことはコードを書くことよりも重要です
  • 入力するコードは、その入力方法よりも重要です
  • カーソルの管理はシンプルかつ直感的でなければなりません
  • タスクを正しく解決する唯一の方法はありません。

2. 私たちのソリューション

私たちは、これらすべての原則に準拠した非常に美しいソリューションを作成することができました。

コードの表示

まず、コードを表示するモードとコードを編集するモードを別々に作成することにしました。コード表示モードでは、スワイプするとカーソルが移動する代わりにテキストがスクロールします。また、キーボードが画面の半分を占めていないときにコードを表示する方が便利です。

ヒント(単語の候補)

タスクごとに、ユーザーが解決策を作成するために使用できる一連のキーワードを用意しました。これで、単語を一文字ずつ入力する必要がなくなります。提案された単語を正しい順序でクリックするだけで完了です。ただし、キーボードで 1 文字ずつ入力する通常のコード入力方法にいつでも切り替えることができます。

ユーザーが独自のバージョンのソリューションを作成できるように、十分な提案が必要です。しかし、不要な言葉が邪魔になるほどで​​はありません。提案された単語が多数ある場合は、それらをグループ化する必要があります。数が少ない場合は、一緒に表示する必要があります。

そしてもちろん、提案される単語はタスクごとに一意である必要があります。CodeGym に存在する 1500 のタスクごとに。ヒントを生成するアルゴリズムを改良するだけで 2 か月を費やしました。それでも、タスクごとに提案を手動で処理する必要がありました。

結果は印象的ですが、今後も改善を続けていくと思います。

Java コース アンドロイド 1

カーソル

カーソルの管理については、別の話に値します。指でカーソルを動かすのはとても不便です。まず、指でコードが見えにくくなります。次に、カーソルを使用して最も頻繁に行う操作は、カーソルを 1 ~ 2 文字前後に移動することです。

コードをカバーせずにカーソルを制御できる特別なジョイスティック インターフェイスを作成しました。また、カーソルを一度に 1 文字ずつ移動するための特別なボタンも追加しました。これらはすべて、コードを入力するプロセスではなく、入力しているコードについて考えることができるようにするためです。


3. モバイルアプリの概要

現在、モバイル アプリには 4 つのセクションがあります。

  • Javaコース
  • タスク
  • ヘルプ
  • グループ

そして、それぞれについてもう少し詳しく説明します。

Javaコース

「Java コース」セクションには、クエストにグループ化されたすべての CodeGym レベルのリストが表示されます。各レベルには、対応するレッスンが表示されます。「開始/続行」ボタンを使用して、最新のレッスンに簡単に移動できます。

Javaコースアンドロイド

タスク

このセクションには、ユーザーが利用できるすべてのタスクが表示されます。「新規タスク」「進行中のタスク」「完了したタスク」の3つのリストに分かれています。

JavaコースのAndroidタスク

特定のタスクをクリックすると、MobileIDE が開きます。ここで、タスクの条件、要件、コードを表示したり、ソリューションを作成したりできます。たった 1 クリックで検証のためにタスクを送信することもできます。

ヘルプ

このセクションでは、タスクに関する質問を示します。他のユーザーからの質問を表示し、コードを調べて、アドバイスや推奨事項を与えることができます。ここでそれを行うのは、Web サイトで行うのとほぼ同じくらい簡単です。

タスクについて自分で質問することもできます。コードは質問に自動的に追加されます。どこにもコピーする必要はありません。

グループ

「グループ」セクションでは、特定のトピックに特化したグループに参加したり、記事を読んだり公開したりすることができます。携帯電話での入力はあまり便利ではないため、このセクションでは現在、Web 版に掲載されている資料を読むことに重点を置いています。