Skip to navigation

PCPro-Computing in the Real World Printed from www.pcpro.co.uk

Register to receive our regular email newsletter at http://www.pcpro.co.uk/registration.

The newsletter contains links to our latest PC news, product reviews, features and how-to guides, plus special offers and competitions.

// Home / Blogs

Posted on September 7th, 2010 by Darien Graham-Smith

Google App Inventor: is drag and drop a flop?

BlockEdThumb

Confession time: I have never learnt to program in Java. Swoon, gasp.

It’s not that I haven’t wanted to. In particular, I’ve always loved the idea of creating my own mobile phone apps; but I’ve never seemed to find the time. So I was excited to discover at the weekend that Google has finally given me access to App Inventor — a visual development environment that lets you create Android applications via a drag-and-drop interface, with no Java skills required.

It certainly does simplify the process. The first sample application – which puts up a picture of a cat that miaows when you prod it – is embarrassingly easy to assemble. In the design stage, you simply drag a button onto your workspace (representing the phone screen), import the cat picture, assign the picture to the button and import the sound. Create a click event that plays the sound, and the job’s done.

So yes, the workflow is similar to Microsoft Visual Studio — not that there’s anything wrong with that. But there’s one big difference: in VB.NET, setting up an event handler for the button involves getting to grips with some daunting syntax, along the lines of: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Blocks1In App Inventor you assemble an event handler by simply snapping colour-coded, jigsaw-piece-shaped “blocks” together. In fact, all “code” is constructed by combining blocks within the Java-based Blocks Editor. As Google freely acknowledges, it’s a system that owes a heavy debt to MIT’s Scratch project, an educational programming system which we’ve already produced a tutorial for in our Free Computing Lessons for Kids feature.

Childishly simple?

Does this indicate that App Inventor is similarly intended for kids? Yes and no. Google has said that App Inventor was designed from “an educational perspective”, and tested in “classrooms across the United States”, which sounds like a pretty clear hint. But then Google’s Mark Friedman has also described it as a broader tool, for “programmers and non-programmers, professionals and students” alike. Certainly it can support constructions as sophisticated as anything you’ll find in more grown-up languages:

Blocks2

So while App Inventor is aimed primarily at kids, it’s not just a classroom tool. In principle, it should be powerful enough to produce any application you can imagine.

Writers’ blocks

Sadly, as soon as I started using App Inventor, I discovered the catch. Dragging blocks about may be a fine first introduction to computing, but if you want to create anything more complex than “Pet the Kitty” it’s a slow and fiddly way to work. It doesn’t help that the blocks you need are split across two tabs of seven or more drawers, and as you build up functions the workspace becomes messier and harder to navigate (see the screenshot at the top of this post). Perhaps in time the Blocks Editor will improve, but right now it’s such a faff I can see it driving people away from programming altogether.

That’s a shame, because some of the functions on offer seem designed to appeal to experienced coders, and support some neat mobile-specific capabilities:

Blocks3

But if you ask me, this representation is actually harder to understand than a function written in plain text — and it was certainly harder to construct.

All of which leaves App Inventor looking like a missed opportunity. Yes, for the kids at whom it’s chiefly aimed, it’s a decent introduction to programming concepts. But it has potential far beyond that, and I fear that will never be usefully harnessed, because anyone with the programming nous to make full use of App Inventor’s abilities will surely prefer a language that doesn’t force you to pedantically assemble every function, procedure and event out of multicoloured blocks.

Rewriting the script

In fairness, it’s optimistic to think that any development environment could ever be perfect for both beginner projects and more complex designs. But, tantalisingly, I think App Inventor could get close with one single addition. What’s needed is a traditional script-based view that operates in parallel with the Blocks Editor. For beginners, this would show automatically-generated code (presumably using simple Java-type syntax) representing their block-based constructions, making App Inventor an even better introduction to programming.

Meanwhile, more advanced users could develop directly within the script editor, while still using App Inventor as a time-saving tool for designing interfaces and packaging completed projects. The blocks view, automatically generated from your code, would become a handy visual aid to debugging and program flow.

But in the absence of a script editor, I doubt I’ll be producing any mobile applications with App Inventor. Google certainly deserves credit for the excellent work it’s done in simplifying Android development, and abstracting it away from the nitty gritty of libraries and dependencies. But if the only way to take advantage of that is via drag-and-drop programming then personally I think I might be better off simply learning Java.

Tags: , , , ,

Posted in: Random

Permalink

Follow any responses to this entry through the RSS 2.0 feed.

You can skip to the end and leave a response. Pinging is currently not allowed.

10 Responses to “ Google App Inventor: is drag and drop a flop? ”

  1. Ryan Thomas Says:
    September 7th, 2010 at 5:43 pm

    Actually, I think you may have hit the nail squarely on the head. Being able to switch between block view, code view or both would make both visualising your code and making quick amendments to it almost obscenely simple.

    I presume Google are regular readers of the PCPro blogs?

     
  2. Nicomo Says:
    September 7th, 2010 at 7:39 pm

    Let’s hope Google gets the message or somebody just writes up in their blog and links to this article. You’re ideas are sound and logical. Every app tool/ide needs to be developed and over time they do improve, going back to what you’re saying – that yes it is easy as an intro for beginners – I’d say having levels control on the menu and UI would be the way forward; the more advanced the user is – the more perspectives/views or even layers would become visible to him/her – but they should always be allowed to visualize any aspect using some sort of lego block model. I like this one – I always intended to give it ago – if I find the time I’ll play with it – thanks for your article :)

     
  3. Alan Robertson Says:
    September 8th, 2010 at 12:22 am

    Ahh – I don’t have access to App Inventor yet and naïvely assumed that what you describe was possible, Darien (kinda like Dreamweaver’s HTML and design views). Here’s hoping they add it ASAP!

     
  4. Jasper Woudenberg Says:
    September 8th, 2010 at 8:33 am

    I think these problems are inherent to any ‘visual’ programming language, but that might not necessarily be a problem if, as you say, a script editor is present.

    I learned my first bit of programming using Game Maker, another nice application that offers a drag-and-drop programming interface. As time went by my programming grew more complex up to the point that the drag-and-drop became to complex to navigate through. Luckily Game Maker has a written programming language built in, and learning to use that was a relief. Still, if I’d had to learn this programming language from the start I’d probably never have bothered to start programming at all.

    Game Maker really is a nice piece of software I can recommend to anyone. The program, and a large collection of games built with it, can be found here: http://www.yoyogames.com/

     
  5. redrag Says:
    September 8th, 2010 at 11:51 am

    Delphi for Android?

     
  6. dood Says:
    September 9th, 2010 at 4:00 am

    You example program block images make no sense. What are they supposed to do?

    For each item in the list of items which have index equak to a label’s width, take a picture then send a text message then return the value of the accelerometer?

    Don’t you worry your credibility of reviewing a programming app may be hurt by such a questionable example?

     
  7. Darien Graham-Smith Says:
    September 9th, 2010 at 10:27 am

    In truth, I did set out to assemble a meaningful function that demonstrated these various types of block, but the exercise quickly became very tedious…

     
  8. Gern Says:
    September 15th, 2010 at 1:02 am

    I find using visual programming far less tedious than typing code. For example, there is no need to remember if I need to use round, square, curly or greater than/less than brackets (that always drives me nuts in programming languages that use the C syntax).

    I think Google has made a wonderful start to App Inventor. It reminds me a lot of using ProGraph.

    It amazes me that people still create code by typing. How anachronistic!

    Cheers!

     
  9. jcnet Says:
    July 19th, 2011 at 7:43 pm

    I’ve played with product. Great potential. Being a Google product it’s well organized, but there is a huge wish list of issues that have been pending for a very long. The day they come in it will be a great Dev env/platform. You still can’t deploy to the market without an 3rd party work around. No support for a real Database. No way to write to the SD. No Multiscreen. No way to read Browser history. No way to read web services. And, IMHO, the feature that will really excite me is smart textbox control with built in history. I’d like to see Google pump more money and resoures into the project. I’ve been checking in every couple of months and little changes. I would not be surprised but would be very disappointed if they just can it.

     
  10. Carl M Says:
    November 10th, 2011 at 1:42 am

    Google App Inventor Looks like a Flop to me. From a development point-of-view I would rather create android apps via the SDK. Worse Idea ever it looks horrible.

     

Leave a Reply

Spam Protection by WP-SpamFree

* required fields

* Will not be published

SEARCH
SIGN UP

Your email:

Your password:

remember me

advertisement


Hitwise Top 10 Website 2010