Google App Inventor: är dra och släpp en flopp?

BlockEdThumb

Google App Inventor: är dra och släpp en flopp?

Bekännelsetid: Jag har aldrig lärt mig att programmera i Java. Svimna, flämta.

Det är inte det att jag inte har velat. I synnerhet har jag alltid älskat idén att skapa mina egna mobilappar; men jag verkade aldrig hitta tid. Så jag var glad över att i helgen upptäcka att Google äntligen har gett mig tillgång till App Inventor – en visuell utvecklingsmiljö som låter dig skapa Android-applikationer via ett dra-och-släpp-gränssnitt, utan att Java-kunskaper krävs.

Det förenklar verkligen processen. Den första provapplikationen – som ger en bild av en katt som miaows när du sticker den – är pinsamt enkel att montera. I designstadiet drar du helt enkelt en knapp till din arbetsyta (som representerar telefonens skärm), importerar kattbilden, tilldelar bilden till knappen och importerar ljudet. Skapa en klickhändelse som spelar upp ljudet och jobbet är klart.

Så ja, arbetsflödet liknar Microsoft Visual Studio – inte för att det är något fel med det. Men det finns en stor skillnad: i VB.NET innebär att konfigurera en händelsehanterare för knappen att ta tag i en skrämmande syntax, i stil med: Private Sub Button1_Click(ByVal avsändare Som System.Object, ByVal e As System.EventArgs) Hanterar Button1.Click

Block 1I App Inventor sätter du ihop en händelsehanterare genom att helt enkelt knäppa ihop färgkodade, sticksågsformade ”block”. Faktum är att all ”kod” är konstruerad genom att kombinera block i den Java-baserade Blocks Editor. Som Google fritt erkänner är det ett system som har en stor skuld till MIT:s Scratch-projekt, ett pedagogiskt programmeringssystem som vi redan har tagit fram en handledning för i vår funktion för gratis datorlektioner för barn.

Barnsligt enkelt?

Indikerar detta att App Inventor på samma sätt är avsedd för barn? Ja och nej. Google har sagt att App Inventor designades ur ”ett pedagogiskt perspektiv” och testades i ”klassrum över hela USA”, vilket låter som en ganska tydlig ledtråd. Men sedan har Googles Mark Friedman också beskrivit det som ett bredare verktyg, för både ”programmerare och icke-programmerare, proffs och studenter”. Visst kan den stödja konstruktioner så sofistikerade som allt annat du hittar på mer vuxna språk:

Block 2

Så även om App Inventor främst riktar sig till barn, är det inte bara ett klassrumsverktyg. I princip bör den vara tillräckligt kraftfull för att producera vilken applikation du kan tänka dig.

Författarblock

Tyvärr upptäckte jag haken så fort jag började använda App Inventor. Att dra block runt kan vara en bra första introduktion till datoranvändning, men om du vill skapa något mer komplext än ”Pet the Kitty” är det ett långsamt och krångligt sätt att arbeta. Det hjälper inte att blocken du behöver är uppdelade över två flikar med sju eller fler lådor, och när du bygger upp funktioner blir arbetsytan stökigare och svårare att navigera (se skärmdumpen högst upp i det här inlägget). Kanske kommer Blocks Editor med tiden att förbättras, men just nu är det så galet att jag kan se att det driver folk bort från programmering helt och hållet.

Det är synd, eftersom några av funktionerna som erbjuds verkar utformade för att tilltala erfarna kodare och stödja några snygga mobilspecifika funktioner:

Block 3

Men om du frågar mig är denna representation faktiskt svårare att förstå än en funktion skriven i vanlig text – och det var verkligen svårare att konstruera.

Allt detta gör att App Inventor ser ut som ett missat tillfälle. Ja, för barnen som det främst riktar sig till är det en anständig introduktion till programmeringskoncept. Men det har potential långt utöver det, och jag är rädd att det aldrig kommer att utnyttjas på ett användbart sätt, eftersom alla med programmeringsnous för att fullt ut använda App Inventors förmågor kommer säkert att föredra ett språk som inte tvingar dig att pedantiskt sammanställa varje funktion, procedur och händelse av flerfärgade block.

Skriver om manuset

I rättvisans namn är det optimistiskt att tro att vilken utvecklingsmiljö som helst skulle kunna vara perfekt för både nybörjarprojekt och mer komplexa konstruktioner. Men lockande nog tror jag att App Inventor kan komma nära med ett enda tillägg. Vad som behövs är en traditionell skriptbaserad vy som fungerar parallellt med Blocks Editor. För nybörjare skulle detta visa automatiskt genererad kod (förmodligen med enkel syntax av Java-typ) som representerar deras blockbaserade konstruktioner, vilket gör App Inventor till en ännu bättre introduktion till programmering.

Samtidigt kan mer avancerade användare utvecklas direkt i skriptredigeraren, samtidigt som de fortfarande använder App Inventor som ett tidsbesparande verktyg för att designa gränssnitt och paketera slutförda projekt. Blockvyn, automatiskt genererad från din kod, skulle bli ett praktiskt visuellt hjälpmedel för felsökning och programflöde.

Men i avsaknad av en manusredigerare tvivlar jag på att jag kommer att producera några mobilapplikationer med App Inventor. Google förtjänar verkligen beröm för det utmärkta arbete det har gjort för att förenkla Android-utvecklingen och abstrahera den bort från bibliotekens och beroenden. Men om det enda sättet att dra nytta av det är via dra-och-släpp-programmering så tror jag personligen att jag kan vara bättre av att helt enkelt lära mig Java.

Lämna en kommentar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *