1. Problemet med alla mobilappar

CodeGym-studenter har efterfrågat en mobilapp länge. Och vi förstår varför — i dagens värld är en telefon mer lättillgänglig än en stationär dator med IntelliJ IDEA installerat. Det är mycket lättare att avsätta 15 minuter flera gånger under dagen än att sitta ner och plugga 1-2 timmar i sträck.

Att lära sig på CodeGym skulle vara mycket effektivare om vi kom på hur vi till fullo skulle kunna använda varje möjlighet som dyker upp för oss. Men hur sätter man en IDE på telefonen?

Länge trodde vi inte att detta var möjligt. Detta bekräftades upprepade gånger av våra konkurrenter: alla deras appar för att lära sig programmering undvek att skriva kod och ersatte den med tester.

Men när 2019 började fick vi ett genombrott. Istället för att replikera massiva IDE, bestämde vi oss för att fokusera på de utmaningar som användarna möter när de skriver kod. Vår lösning baserades på några enkla principer:

  • Att läsa kod är viktigare än att skriva kod
  • Koden du anger är viktigare än hur du anger den
  • Att hantera markören måste vara enkelt och intuitivt
  • Det finns inget enda sätt att lösa en uppgift korrekt.

2. Vår lösning

Vi lyckades skapa en ganska vacker lösning som följer alla dessa principer.

Visningskod

Först bestämde vi oss för att göra separata lägen för visning av kod och redigering av kod. I kodvisningsläge kommer svepning att rulla texten istället för att flytta markören. Det är också bekvämare att se koden när tangentbordet inte tar upp halva skärmen.

Tips (föreslagna ord)

För varje uppgift förberedde vi en uppsättning nyckelord som användaren kan använda för att skriva en lösning. Nu behöver du inte skriva in ord bokstav för bokstav. Du klickar bara på de föreslagna orden i rätt ordning, så är du klar. Som sagt, du kan alltid växla över till det vanliga sättet att ange kod, att skriva bokstav för bokstav på tangentbordet.

Det bör finnas tillräckligt med förslag för att användaren ska kunna skriva sin egen version av en lösning. Men inte så många att onödiga ord bara kommer i vägen. Om det finns många föreslagna ord bör de vara grupper; om det är få, bör de visas tillsammans.

Och naturligtvis måste de föreslagna orden vara unika för varje uppgift . För var och en av de 1500 uppgifterna som finns på CodeGym. Vi tillbringade två månader med att förfina algoritmen för att generera tips. Även då var vi fortfarande tvungna att behandla förslagen manuellt för varje uppgift.

Resultatet är imponerande, även om jag tror att vi kommer att fortsätta att förbättra dem.

Java kurs android 1

Markör

Att hantera markören förtjänar sin egen separata historia. Det är väldigt obekvämt att flytta markören med fingret. Först döljer ditt finger koden. För det andra är den vanligaste åtgärden med markören att flytta den 1-2 tecken bakåt eller framåt.

Vi skapade ett speciellt joystick-gränssnitt som låter dig styra markören utan att täcka koden. Vi har också lagt till speciella knappar för att flytta markören ett tecken i taget . Och allt detta så att du kan tänka på koden du anger snarare processen att ange den koden!


3. Översikt över mobilappen

Idag har mobilappen 4 sektioner:

  • Java kurs
  • Uppgifter
  • Hjälp
  • Grupper

Och här är några mer detaljer om var och en av dem.

Java kurs

Avsnittet "Java-kurs" visar en lista över alla CodeGym-nivåer, som är grupperade i uppdrag. Varje nivå visar motsvarande lektioner. Du kan enkelt gå till den senaste lektionen med knappen "Starta/Fortsätt".

Java kurs android

Uppgifter

Det här avsnittet visar alla uppgifter som är tillgängliga för användaren. De är indelade i tre listor: "nya uppgifter", "pågående uppgifter" och "slutförda uppgifter"

Java-kurs android uppgifter

Efter att ha klickat på en specifik uppgift öppnas MobileIDE . Det är här du kan se uppgiftens villkor, krav och kod, och även komponera din lösning. Du kan också skicka in en uppgift för verifiering med bara ett klick.

Hjälp

Det här avsnittet visar frågor om uppgifter. Du kan se frågor från andra användare, granska deras kod och ge dem råd och rekommendationer. Det är nästan lika enkelt att göra det här som det är på hemsidan.

Du kan också ställa dina egna frågor om uppgifter. Din kod läggs till i din fråga automatiskt – du behöver inte kopiera någonting någonstans.

Grupper

I avsnittet "Grupper" kan du gå med i grupper som ägnar sig åt specifika ämnen och även läsa och publicera artiklar. Att skriva på din telefon är inte riktigt bekvämt, så det här avsnittet fokuserar för närvarande på att läsa material som lagts upp via webbversionen.