1. Problemet med alle mobilapper

CodeGym-studenter har bedt om en mobilapp i lang tid. Og vi forstår hvorfor – i dagens verden er en telefon lettere tilgjengelig enn en stasjonær datamaskin med IntelliJ IDEA installert. Det er mye lettere å sette av 15 minutter flere ganger i løpet av dagen enn det er å sette seg ned å studere i 1-2 timer i strekk.

Å lære på CodeGym ville vært mye mer effektivt hvis vi fant ut hvordan vi fullt ut kunne bruke enhver mulighet som byr seg for oss. Men hvordan sette en IDE på telefonen?

Lenge trodde vi ikke dette var mulig. Dette ble gjentatte ganger bekreftet av våre konkurrenter: alle appene deres for å lære programmering unnlot å skrive kode og erstattet den med tester.

Men da 2019 begynte, fikk vi et gjennombrudd. I stedet for å replikere massive IDE-er, bestemte vi oss for å fokusere på utfordringene brukere møter mens de skriver kode. Vår løsning var basert på noen få enkle prinsipper:

  • Å lese kode er viktigere enn å skrive kode
  • Koden du taster inn er viktigere enn måten du taster den inn på
  • Administrering av markøren må være enkel og intuitiv
  • Det er ingen eneste måte å løse en oppgave riktig.

2. Vår løsning

Vi klarte å lage en ganske vakker løsning som overholder alle disse prinsippene.

Viser kode

Først bestemte vi oss for å lage separate moduser for visning av kode og redigering av kode. I kodevisningsmodus vil sveiping rulle teksten i stedet for å flytte markøren. Dessuten er det mer praktisk å se kode når tastaturet ikke tar opp halve skjermen.

Hint (foreslåtte ord)

For hver oppgave utarbeidet vi et sett med nøkkelord som brukeren kan bruke for å skrive en løsning. Nå trenger du ikke skrive inn ord bokstav for bokstav. Du klikker bare på de foreslåtte ordene i riktig rekkefølge, og du er ferdig. Når det er sagt, kan du alltid bytte til den vanlige måten å skrive inn kode på, ved å skrive bokstav for bokstav på tastaturet.

Det bør være nok forslag til at brukeren kan skrive sin egen versjon av en løsning. Men ikke så mange at unødvendige ord bare kommer i veien. Hvis det er mange foreslåtte ord, bør de være grupper; hvis det er få, bør de vises sammen.

Og selvfølgelig må de foreslåtte ordene være unike for hver oppgave . For hver av de 1500 oppgavene som finnes på CodeGym. Vi brukte to måneder på å avgrense algoritmen for å generere hint. Selv da måtte vi fortsatt behandle forslagene manuelt for hver oppgave.

Resultatet er imponerende, selv om jeg tror vi vil fortsette å forbedre dem.

Java-kurs android 1

Markør

Å administrere markøren fortjener sin egen separate historie. Det er veldig upraktisk å flytte markøren med fingeren. Først skjuler fingeren koden. For det andre er den hyppigste handlingen med markøren å flytte den 1-2 tegn bakover eller fremover.

Vi har laget et spesielt styrespakgrensesnitt som lar deg kontrollere markøren uten å dekke koden. Vi har også lagt til spesialknapper for å flytte markøren ett tegn om gangen . Og alt dette slik at du er i stand til å tenke på koden du skriver inn i stedet for prosessen med å skrive inn den koden!


3. Oversikt over mobilappen

I dag har mobilappen 4 seksjoner:

  • Java kurs
  • Oppgaver
  • Hjelp
  • Grupper

Og her er noen flere detaljer om hver av dem.

Java kurs

"Java-kurs"-delen viser en liste over alle CodeGym-nivåene, som er gruppert i oppdrag. Hvert nivå viser de tilsvarende leksjonene. Du kan enkelt gå til den siste leksjonen ved å bruke "Start/Fortsett"-knappen.

Java-kurs for Android

Oppgaver

Denne delen viser alle oppgavene som er tilgjengelige for brukeren. De er delt inn i tre lister: "nye oppgaver", "oppgaver pågår" og "fullførte oppgaver"

Java-kurs android oppgaver

Etter å ha klikket på en bestemt oppgave, åpnes MobileIDE . Det er her du kan se oppgavebetingelsene, kravene og koden, og også komponere løsningen din. Du kan også sende inn en oppgave for verifisering med bare ett klikk.

Hjelp

Denne delen viser spørsmål om oppgaver. Du kan se spørsmål stilt av andre brukere, undersøke koden deres og gi dem råd og anbefalinger. Det er nesten like enkelt å gjøre det her som det er på nettsiden.

Du kan også stille dine egne spørsmål om oppgaver. Koden din blir automatisk lagt til spørsmålet ditt – du trenger ikke kopiere noe hvor som helst.

Grupper

I "Grupper"-delen kan du bli med i grupper som er viet til bestemte emner, og også lese og publisere artikler. Å skrive på telefonen er egentlig ikke praktisk, så denne delen fokuserer for øyeblikket på lesing av materiell som er lagt ut via nettversjonen.