CodeGym /Courses /New Java Syntax /CodeGym mobile app

CodeGym mobile app

New Java Syntax
Level 4 , Lesson 2
Available

1. The problem with all mobile apps

CodeGym students have been asking for a mobile app for a long time. And we understand why — in today's world, a phone is more readily available than a desktop computer with IntelliJ IDEA installed. It is much easier to set aside 15 minutes several times during the day than it is to sit down to study for 1-2 hours straight.

Learning on CodeGym would be much more effective if we figured out how to fully use every opportunity that presents itself to us. But how to put an IDE on your phone?

For a long time, we didn't think this was possible. This was repeatedly confirmed by our competitors: all their apps for learning programming dispensed with writing code and replaced it with tests.

But then as 2019 began, we made a breakthrough. Instead of replicating massive IDEs, we decided to focus on the challenges users face while writing code. Our solution was based on a few simple principles:

  • Reading code is more important than writing code
  • The code you enter is more important than the way you enter it
  • Managing the cursor must be simple and intuitive
  • There is no one and only way to solve a task correctly.

2. Our solution

We managed to create a rather beautiful solution that adheres to all these principles.

Viewing code

First, we decided to make separate modes for viewing code and editing code. In code viewing mode, swiping will scroll the text instead of moving the cursor. Also, it's more convenient to view code when the keyboard isn't taking up half the screen.

Hints (suggested words)

For each task, we prepared a set of keywords that the user can use to write a solution. Now you don't need to type in words letter by letter. You just click on the suggested words in the correct order, and you're done. That said, you can always switch over to the usual way of entering code, typing letter by letter on the keyboard.

There should be enough suggestions to allow the user to write his or her own version of a solution. But not so many that unnecessary words just get in the way. If there are lots of suggested words, then they should be groups; if there are few, then they should be displayed together.

And, of course, the suggested words must be unique for each task. For each of the 1500 tasks that exist on CodeGym. We spent two months just refining the algorithm for generating hints. Even then, we still had to process the suggestions manually for each task.

The result is impressive, though I think we will continue to improve them.

Java course android 1

Cursor

Managing the cursor deserves its own separate story. It's super inconvenient to move the cursor with your finger. First, your finger obscures the code. Second, the most frequent action with the cursor is to move it 1-2 characters backward or forward.

We created a special joystick interface that lets you control the cursor without covering the code. We also added special buttons for moving the cursor one character at a time. And all this so you are able to think about the code you are entering rather the process of entering that code!


3. Overview of the mobile app

Today the mobile app has 4 sections:

  • Java course
  • Tasks
  • Help
  • Groups

And here are a few more details about each of them.

Java course

The "Java course" section displays a list of all the CodeGym levels, which are grouped into quests. Each level displays the corresponding lessons. You can easily go to the most recent lesson using the "Start/Continue" button.

Java course android

Tasks

This section displays all the tasks available to the user. They are divided into three lists: "new tasks", "tasks in progress" and "completed tasks"

Java course android tasks

After clicking on a specific task, MobileIDE opens. This is where you can view the task conditions, requirements, and code, and also compose your solution. You can also submit a task for verification in just 1 click.

Help

This section shows questions about tasks. You can view questions asked by other users, examine their code, and give them advice and recommendations. It's almost as easy to do that here as it is on the website.

You can also ask your own questions about tasks. Your code will be added to your question automatically — you don't need to copy anything anywhere.

Groups

In the "Groups" section, you can join groups devoted to specific topics, and also read and publish articles. Typing on your phone isn't really convenient, so this section currently focuses on reading materials posted through the web version.

Comments (10)
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION
Dhruv Patel Level 5, Newark, United States
14 January 2025
When will you have app for iPhone?
David Richard Level 17, Palestine
30 September 2024
Can I install an IntelliJ IDEA on my android device?? So far, I'm coding on my phone using JStudio app , it's helpfull and more convenient than web compilers for I don't have any disktop device (foe the time being). Welp!!! For my current level , in the basics phase and as a begginer , I think it's enough , but at some point, I'll need many features that's not included in the JStudio app (even in the premium -propbably-).... Hence I'm asking the above question!
John Squirrels Level 41, San Francisco, Poland
1 October 2024
You can solve tasks in our app without IDEA, which can not be installed on tthe phone.
David Richard Level 17, Palestine
1 October 2024
That's a GREAT news for me... Thank you very much. But, can you tell me when would I "definitly need a PC" to continiue?? Like e.g. My JStudio app can't import ... androidx.appcompat.app.AppCompatActivity; Neither could it build the build.gradle file in a project Although am just a newbie, before joining CodeGym , I used to try some crazy things with chat gpt trying to grasp the maximum potential of "coding with my android device" so to know what I can do or what I can't do, all that is due to my real life circumstance, hence I want to learn Java and then buy a PC when it's a top necessity. Please give me as much as possible of info regaeding that....
John Squirrels Level 41, San Francisco, Poland
1 October 2024
Almost all our tasks can be solved without a PC, especially when you're just starting out. However, for programming in general, having a PC becomes quite essential as you progress.
Cheyenne Perry Level 6, United States of America, United States
26 October 2023
I haven't used the app a lot yet, but so far I really enjoy the layout. I find it easier to find where I am in my lessons on the app than I do on the computer.
Galax Level 10, Houston, United States
9 January 2022
I use the website on my computer instead of using the mobile app
David Oh Level 14, Korea, Republic of
22 July 2022
Yes, usually my laptop does the job for me. But I really appreciate the depth GymCode would delve into to facilitate learning for everyone. Also, I finally have something productive to do in the subway to work!
Joey M Level 7, Owings Mills, United States
27 November 2021
Very well done
Hoist Level 2, San Diego, United States
14 October 2021
The mobile IDE is great.