1. Het probleem met alle mobiele apps

CodeGym-studenten vragen al heel lang om een ​​mobiele app. En we begrijpen waarom: in de wereld van vandaag is een telefoon gemakkelijker beschikbaar dan een desktopcomputer waarop IntelliJ IDEA is geïnstalleerd. Het is veel gemakkelijker om meerdere keren per dag 15 minuten opzij te zetten dan om 1-2 uur achter elkaar te gaan zitten studeren.

Leren op CodeGym zou veel effectiever zijn als we erachter zouden komen hoe we elke kans die zich voordoet ten volle kunnen benutten. Maar hoe zet je een IDE op je telefoon?

Lange tijd hebben we gedacht dat dit niet mogelijk was. Dit werd herhaaldelijk bevestigd door onze concurrenten: al hun apps om te leren programmeren maakten het schrijven van code overbodig en vervingen deze door tests.

Maar toen 2019 begon, bereikten we een doorbraak. In plaats van enorme IDE's te repliceren, hebben we besloten ons te concentreren op de uitdagingen waarmee gebruikers worden geconfronteerd bij het schrijven van code. Onze oplossing was gebaseerd op een paar eenvoudige principes:

  • Code lezen is belangrijker dan code schrijven
  • De code die u invoert is belangrijker dan de manier waarop u deze invoert
  • Het beheer van de cursor moet eenvoudig en intuïtief zijn
  • Er is niet één en enige manier om een ​​taak correct op te lossen.

2. Onze oplossing

We zijn erin geslaagd om een ​​vrij mooie oplossing te creëren die aan al deze principes voldoet.

Kijkcode

Eerst hebben we besloten om aparte modi te maken voor het bekijken van code en het bewerken van code. In de codeweergavemodus scrolt vegen door de tekst in plaats van de cursor te verplaatsen. Het is ook handiger om code te bekijken wanneer het toetsenbord niet de helft van het scherm in beslag neemt.

Hints (suggesties voor woorden)

Voor elke taak hebben we een reeks trefwoorden opgesteld die de gebruiker kan gebruiken om een ​​oplossing te schrijven. Nu hoef je woorden niet letter voor letter in te typen. U klikt gewoon op de voorgestelde woorden in de juiste volgorde en u bent klaar. Dat gezegd hebbende, kunt u altijd overschakelen naar de gebruikelijke manier om code in te voeren, letter voor letter typen op het toetsenbord.

Er moeten voldoende suggesties zijn om de gebruiker in staat te stellen zijn of haar eigen versie van een oplossing te schrijven. Maar niet zoveel dat onnodige woorden gewoon in de weg zitten. Als er veel voorgestelde woorden zijn, moeten het groepen zijn; als er weinig zijn, moeten ze samen worden weergegeven.

En natuurlijk moeten de voorgestelde woorden uniek zijn voor elke taak . Voor elk van de 1500 taken die op CodeGym bestaan. We hebben twee maanden besteed aan het verfijnen van het algoritme voor het genereren van hints. Ook toen moesten we de suggesties nog handmatig per taak verwerken.

Het resultaat is indrukwekkend, hoewel ik denk dat we ze zullen blijven verbeteren.

Java cursus android 1

Cursor

Het beheren van de cursor verdient een apart verhaal. Het is super onhandig om de cursor met je vinger te verplaatsen. Eerst verbergt je vinger de code. Ten tweede is de meest voorkomende actie met de cursor om deze 1-2 tekens achteruit of vooruit te verplaatsen.

We hebben een speciale joystickinterface gemaakt waarmee je de cursor kunt besturen zonder de code te bedekken. We hebben ook speciale knoppen toegevoegd om de cursor teken voor teken te verplaatsen . En dit alles zodat u kunt nadenken over de code die u invoert in plaats van over het proces van het invoeren van die code!


3. Overzicht van de mobiele app

Tegenwoordig heeft de mobiele app 4 secties:

  • Java-cursus
  • Taken
  • Hulp
  • Groepen

En hier zijn een paar meer details over elk van hen.

Java-cursus

Het gedeelte "Java-cursus" geeft een lijst weer van alle CodeGym-niveaus, die zijn gegroepeerd in speurtochten. Elk niveau geeft de bijbehorende lessen weer. Met de knop "Start/Doorgaan" gaat u eenvoudig naar de meest recente les.

Java cursus android

Taken

Deze sectie toont alle taken die beschikbaar zijn voor de gebruiker. Ze zijn onderverdeeld in drie lijsten: "nieuwe taken", "taken in uitvoering" en "voltooide taken".

Java-cursus Android-taken

Nadat u op een specifieke taak hebt geklikt, wordt MobileIDE geopend. Hier kunt u de taakvoorwaarden, vereisten en code bekijken en ook uw oplossing samenstellen. Ook kunt u met 1 klik een taak ter verificatie indienen.

Hulp

Deze sectie bevat vragen over taken. U kunt vragen van andere gebruikers bekijken, hun code onderzoeken en hen advies en aanbevelingen geven. Dat is hier bijna net zo eenvoudig als op de website.

U kunt ook uw eigen vragen over taken stellen. Uw code wordt automatisch aan uw vraag toegevoegd — u hoeft nergens iets te kopiëren.

Groepen

In het gedeelte "Groepen" kunt u zich aansluiten bij groepen die zich bezighouden met specifieke onderwerpen, en ook artikelen lezen en publiceren. Typen op je telefoon is niet echt handig, dus deze sectie richt zich momenteel op het lezen van materiaal dat via de webversie is gepost.