

App Inventor for Android - Android Software Development for Everyone - talbina
http://appinventor.googlelabs.com/about/

======
Anechoic
All of the people hand-wringing over the possibly of amateur developers making
crappy apps for mass-distribution are missing the point.

This isn't a tool for allowing non-programmers to develop apps for mass
sale/distribution (although I'm sure there will be plenty of that). This is a
tool for allowing non-programmers (like me!) to create tools for a mobile
platform to make our own custom apps to fulfill our own niche needs.

This could be _huge_ \- yeah, I'm sure the apps won't be as polished, fast, or
optimized as an app written in the native language and using the native API's,
but I'm a professional mechanical/acoustical engineer who spends my time
working on my job and I don't have the time (or inclination) to learn to be a
software engineer/programmer. Similarly, programming my own DSP filter in C
would probably result in a more efficient analysis tool, but Matlab/Octave
gets the done while allowing me to concentrate on my engineering projects
rather than dealing with memory management, etc. Don't look at it as a
developer's tool, it's a high-level RAD environment like VB, Excel, etc.

Now of course the proof is in the pudding and we'll have to see how it works
in the real world. I will say that I'm a current Nokia smartphone user who has
been sitting out the iOS/Android war, but if if App Inventor works well,
Google will have brought me over to the Android camp.

~~~
wonkytonk
Thanks, this community is too crowded by hip programmers, and iFanbois to
realize there is world outside. This is the exact reason why windows won over,
windows allowed cheap hardware and throwaway easy programming using visual
basic. If app inventor succeeds there could be a serious market for cheap
android devices (~150$) which could be programmed easily.

The whole App Store is a sordid tale, and the good Apps will always beat
crappy apps by marketing. But if i do wish to have an App specifically
tailored for my group then why the fuck do i need to conform to requirements
of Apple?

------
patio11
There has been a lot of academic interest in doing something like this for
Java, generally with a pitch like "If we took all the scary syntax out of it,
programming would be accessible to $GROUP_OF_INTEREST." My personal opinion is
that, with the debatable exception of Microsoft Excel, every project along
these lines seems to rediscover "Oh yeah, syntax is rather useful for doing
non-trivial work" roughly forty five seconds after the conclusion of their
most advanced published tech demo.

~~~
credo
True, but the goal here is not necessarily "make programming more accessible".

The goal is "make it possible to create an app with NO programming knowledge".

The ability to create "trivial" apps and then run them on your cell phone can
be exciting for many people. I think this will increase the appeal of Android
as a consumer device. Of course, a big flood of trivial (tool-created) apps in
the Android market may reduce some of that appeal, but overall, this seems
like a good move by Google.

It will be interesting to see if more people buy Android phones because they
can now create and run their own apps on their phones

~~~
jimbokun
[http://appinventor.googlelabs.com/about/images/ScreenShotAbo...](http://appinventor.googlelabs.com/about/images/ScreenShotAbout2.png)

That does _not_ look like no programming knowledge to me.

Has anyone ever actually demonstrated that a "visual" programming language is
easier for non-programmers to learn programming than a language with a
relatively simple syntax, like Python? How is that picture significantly
easier to understand than

    
    
        when Button1.click:
            Screen1.BackgroundColor = Blue

~~~
rmc
One big problem with textual programming is that there are too many places
syntax errors can creep in. Lots of 'mundanes', i.e. non-hackers are so used
to flexibility with little things like text, punctuation, spacing and
capitilization. The rigity that programming languages require would make most
programmes written by these people riddled with syntax errors.

Graphical programming removes choices and options. However it also removes
ways to make mistakes.

------
talbina
This is going to be huge.

From the NYTimes:

"A program by a nursing student at Indiana University enabled a phone to send
an emergency message or make a call, if someone fell. It used the phone’s
accelerometer to sense a fall. If the person did not get up in a short period
or press an onscreen button, the program automatically texted or called the
person designated to receive the alert. "

"For example, one student made a program to inform a selected list of friends,
with a short text message, where he was every 15 minutes. The program was
created by putting three graphic code blocks together: one block showed the
phone’s location sensor, another showed a clock (which he set for 15-minute
intervals), and third linked to a simple database on a Web site, listing the
selected friends. "

[http://www.nytimes.com/2010/07/12/technology/12google.html?_...](http://www.nytimes.com/2010/07/12/technology/12google.html?_r=1&partner=rss&emc=rss)

~~~
sendos
_A program ... enabled a phone to send an emergency message or make a call, if
someone fell. It used the phone’s accelerometer to sense a fall. If the person
did not get up in a short period or press an onscreen button, the program
automatically texted or called the person designated to receive the alert._

The text above, quite adequately describes the functionality of the app. If
someone gave a programmer the above description, the programmer would have
enough information to write the "backend" code for the app and leave the UI
and details (like the length of time before sending the text message) to be
filled in later. It's sort of a shame that you have this two-sentence
sufficient description of the app and then need to spend months to create the
code to implement what took you 10 seconds to describe.

This question may need its own thread, but I always wondered if there would
come a day when you could describe an app like the one above, in English, and
a "compiler" would create the program for you, leaving you to decide things
like themes, button locations, etc.

I call this artificial intern-level-intelligence: You describe the app in
English, and the intern (or AI intern) creates the code, and asks questions
about details like the theme, the images, the length of time before the
program sends the text message, etc.

Do you guys think computers will ever get close to artificial intern-level-
intelligence?

~~~
rincewind
<http://en.wikipedia.org/wiki/Rice%27s_theorem>

------
cyen
I used it and watched high school students use it for a couple of hours/week
over a period of 8 weeks (varying degrees of technical expertise, in an
entrepreneurship mentorship program with an end goal of the students building
their own apps) and found that while the easy access to phone functions is
pretty cool, it's still very limited and clearly aimed at non-programmers
(think scratch).

likes:

\- lots of powerful features that make necessary mobile app features (e.g.
"pull up your contacts list!") super easy

\- "puzzle piece" logic building inside app inventor is really easy to
understand (ish), and pretty well done

\- the process* is easy for non-programmers to do / understand / see in action

dislikes:

\- how difficult it is to go beyond app inventor's available functions, if you
know exactly what you want to do, or how you would do it if you could just
pull up code (e.g. it's really hard / awkward right now to have multiple
"screens" in an app)

\- the android "look" in general, and the strict limitations of app inventor
wrt visual styling

\- the emulator is, unfortunately, _not_ easily accessible for non-programmers

\- everything runs inside a java vm, and generally feels a little cumbersome

\- the process* is slow and full of 30-second chunks of lost time

* process: make changes to the program -> "package" the app -> take a photo of the generated QR code -> download and install the app -> test your changes on the phone

~~~
klenwell
Is it possible to use generator to stub out an app and then work on the
generated source? I would love something like that as an gateway to app
development as a developer w/o much previous Android/Java experience.

------
wallflower
Letting grade schoolers write software that runs on their phones could
influence more people to build an interest in computer science, even before
they understand exactly what CS is about.

It could be this generation's C-64 equivalent. I have fond memories of whiling
away hours of time in C-64's Basic.

~~~
nadam
I am not sure. I've learned programming on the C64 when I was 12 years old. I
used Basic. On the other hand a friend of mine used a so called 'game maker'
to create games. His games (which he created without programming) looked much
more professional than what I wrote in Basic. In fact he had to configure so
much things, that it was overwhelming to me, so he was a king in my eyes. But
unfortunatelly he never learned to program and I bacame a software developer.
I think a Logo interpreter or something which has something to do with
creating algorithms is a better tool for a child to start. A tool like this
does not teach what is the most interesting if someone really has affinitiy to
programming: algorithmic thinking.

~~~
wallflower
When I watch my niece gleefully play with sand, dirt, and water, I love it
because she is as engaged or even more focused then when she is watching some
Nick Jr. show.

I think the new Google tools are an important first step from pre-teens
mindlessly playing/texting with their mobile devices (consuming) to making
something, even if it is a toy app (producing). And maybe they'll get a bit of
the ego boost that comes from making something other people like/want. Maybe
it will become cool to make your own little apps. Imagine if Seventeen
magazine had a monthly contest for best app. This could be more than a
technological shift, this could be a shifting of cultural attitudes towards
programming / IT at the subsurface, tectonic level.

As for teaching logic, I think it really comes down to how the person is wired
internally. Some people just think that way.

------
Zak
Something struck me about the visual programming language used here after
looking at it for a few minutes: it's Lisp.

It doesn't have parens, of course, and sometimes the blanks on the blocks are
positioned so that arithmetic appears to be infix, but it's most certainly
Lisp. It would be trivial to create a 1:1 mapping between the visual
representations and s-expressions. My guess is that behind the scenes, that's
exactly what's going on.

After this realization, I noticed that Hal Abelson is involved in the project:
[http://googleresearch.blogspot.com/2009/07/app-inventor-
for-...](http://googleresearch.blogspot.com/2009/07/app-inventor-for-
android.html)

~~~
dpritchett
The visual editor builds on Scratch which is somewhere between Logo and
Smalltalk. The compiler is based on Scheme.

From the article:

 _"The blocks editor uses the Open Blocks Java library for creating visual
blocks programming languages. ... Open Blocks visual programming is closely
related to the Scratch programming language, a project of the MIT Media
Laboratory's Lifelong Kindergarten Group...

The compiler that translates the visual blocks language for implementation on
Android uses the Kawa Language Framework and Kawa's dialect of the Scheme
programming language..."_

Language overviews:

<http://progopedia.com/language/scratch/>

<http://www.gnu.org/software/kawa/Features.html>

------
jqueryin
I saw this on twitter this morning and noticed a _glaring_ similarity in the
GUI design and that of MIT's SCRATCH programming language geared at teaching
children how to program. They both utilize the concept of visually displaying
code segments as "building blocks" which fit together like puzzle pieces to
give a visual representation of whether or not code will work.

I commend the approach to get more parties interested in programming and
mobile web application development. Perhaps this opens up a whole new world of
potential for getting mobile applications development into the classroom at a
very young age. On the downside, we might end up with an influx of even
crappier Android applications in the market. I already have a hard enough time
filtering through the craplications as it is.

Here's the link to SCRATCH for those unaware:

<http://scratch.mit.edu/>

~~~
jonturner
Now that you mention it, yes, it does resemble SCRATCH, and I would also
suggest Lego Mindstorms programming environment.

I am showing my age, when I admit that my initial reaction was to note the
similarity with Novel's AppWare circa 1995. (
[http://support.novell.com/techcenter/articles/dnd19940502.ht...](http://support.novell.com/techcenter/articles/dnd19940502.html)
) Appware, like Scratch, took a modular approach of assembling software
building blocks and connecting the output of one to the input of the other,
dealing with triggers, events, etc. As a programmer coding to native APIs
(WinAP and MacOS, in C++) I found AppWare to be an adequate and fun
_prototyping_ tool, useful for quickly testing an idea or stringing together a
quick & easy widget to solve a basic problem. Even moreso, considering it was
a cross-platform (MacOS & Windows 3.0) system, which was novel for that time
period. However, when it came time to build a full-featured application to
deliver to others, in my experience Appware fell short. I suspect I'd feel the
same way about this tool for Android but I'm willing to give it a shot.

I suspect that much of the HN readership feels the same, but we are quite the
minority, and this tool is designed to address the needs of what my non-
programmer wife charmingly refers to as "normal people" -- non-hacker people
who don't really care how things work, but instead use the device as a tool in
order to get on with their lives rather than a means unto itself.

------
mdeboard
So Google repurposed Scratch. Looks great. I concur with the remarks stating
programming ought to be the new literacy. I am a fledgling programmer (just
getting my feet wet with Python and Django) but i installed Scratch on my
daughter's computer. She's six so a little too young to really get it but she
plays around with it from time to time and sadly at times it seems like she's
almost on par with my skills with Python.

This tool is awesome.

------
jsz0
_You can write an app that periodically texts "missing you" to your loved
ones_

Just remember to disable it if you ever see them in person again. Could get
awkward. Anyway, it's nice to see these platforms getting more accessible to
non-developers. It's always been off putting to me when learning a language
just how difficult it is to get some tangible results. It's a huge uphill
battle if you're just approaching it as a hobby or learning experience.
Depending how quickly you hit the celling of this platform it could inspire
people. I'd like to see some combination of Interface Builder and OSX's
Automator on the iPhone platform.

------
wglb
The motivation for the design of COBOL, in part, was similar. The thinking
was, "Oh, programming is too hard for accountants. Let's design a language
that they can use". Well, some accountants did pick it up, but they became
programmers and many didn't do accounting any more.

Perhaps Google will have better luck, but I can't remember a time since COBOL
first tried this that some effort hasn't been ongoing to do just that. Anyone
remember Fifth Generation Languages? And before that Fourth Generation
Languages, or 4GL?

------
yardie
This is excellent. I'm not really all that psyched about android but this is a
great way to bust out proof of concepts, prototype, and useful one off apps.
As a programmer nothing sucks more than getting deep into development than
stopping halfway through, wasting days and hours, because you realized that
what you envisioned wasn't going to work anyway.

It's also a good way to teach the basics of programming and OOP, which frankly
a lot of programmers still can't grasp. In 2010 no less!

------
dpcan
I'm not worried. Web designers are still doing fine, and WYSIWYG is
everywhere.

At the end of the day MOST people don't want to create their own apps for
their own needs, they want to pay $0.99 and be done with it.

Here's the difference:

Real programmers don't see programming as work. It's a hobby, it's fun, and
spending 20 hours on a small app isn't a waste of time or money. It's worth
every second. I stay up until the wee hours of the night writing my Android
apps because I love it. Every programming problem is a puzzle, and when I'm
done I feel accomplished and pleased.

Joe-non-programmer sees this 20 hours as time and money lost. They could have
been playing with their kids, or working their real job making money. They
could be watching a baseball game or playing video games, or spending time
with friends. If something is out there for $0.99 then there is no way in hell
they will spend any time making their own apps. It's as undesirable as fixing
the leaky facet that's been leaking for 6 months.

It's for the guy who likes to tinker, or the student with a ton of time on
their hands and they aren't worried about making money anyway.

If anything - there may be more crappy apps in the Market, but it will require
real developers to step up their game to get noticed amidst the garbage.

------
plemer
This is not about Apps. This is about people.

When running for President JFK gave people buttons, had them run call centers
and letter campaigns, and anointed them block leaders. Many people think the
sole value was what these people produced (letters, phone calls, pamphlets
etc), but at least as much it was making the people themselves strong Kennedy
advocates. It gave people a chance to be involved and stand for something;
they became strong unpaid advocates that had influence on and access to their
personal network of family in friends in a way no radio spot or ad in the
paper could possibly rival. That's how "the establishment" starts a grassroots
movement.

How does this relate to Google? Beyond the mass appeal of any power-to-the-
people message, if you write your own app (and even just knowing that you
could), even if it's shit (and most of these will be), you feel like you're on
the Team Google. This is just one more brilliant way Google is building itself
into a ubiquitous, and well received, cultural force.

------
wonkytonk
To those who are bickering about how this in not optimial programming and how
give me my GWBasic. Read the whole page before commenting. It is a project of
Harold Abelson, the Co-Author of SICP,

------
bbwharris
The idea of a graphical programming environment is interesting, but I have
never seen one that is good.

I used LabView in college and it was okay. I interact with another graphical
programming environment in my current contract and I hate it. I probably
wouldn't hate it if I didn't know how to read and write code.

I don't see these things as good training wheels either. They obfuscate the
details that are required to be a good programmer. It would probably be more
daunting to a newcomer to lift up the hood and see miles of code that they
can't easily relate to the graphical version.

Im skeptical, but if it does create more interest in the platform, that is a
good thing.

~~~
spot
these systems are designed for people who don't have the option of using
regular written programming languages. they are not intended to be training
wheels either. they are for making programming more accessible.

~~~
bbwharris
I would argue that programming is very accessible. All languages in use today
can be obtained and learned for free, save for ones time.

I would agree that these environments make programming easier and more
approachable.

------
spot
it's worth pointing out that not only does apple not have an app like this but
they have actively prohibited anything like it.

remember when they appealed to the education market?

~~~
omaranto
Not only did they theoretically forbid it, they actually took something very
close to this out of the app store: this app maker is based on Scratch and
there used to be a Scratch player for the iPhone (it wouldn't let you create
Scratch programs on the iPhone, but it would let you run ones you had made on
your computer) and Apple removed it from the App Store.

------
extension
Now support extensions written in Java, that you can sell in the Android
Market, and kaboom - middleware explosion.

~~~
protomyth
A lot of Visual Basic's success was the ability to buy components that were
easily hooked into your programs.

------
mikecane
How do revolutions begin? How do tipping points start? Here is a clue:
<http://www.youtube.com/watch?v=8ADwPLSFeY8>

So someone sees that, creates their own. Shows it to a friend. "Ooh, I want to
do that for my cat too!" And since that person is just about to buy a new
phone, they go and get one with Android. Then that person shows a friend their
own new kitty "app" and that person who is getting a new phone ... repeat.

Everyone looks for a great big downpour instead of a light rain to change
everything.

------
tf
Although this isn't going to replace programming by any means, I think its a
really cool idea to get people interested in app development. Obviously, the
next step for them should then be to learn some real programming, but a lot of
people are never going to get to that second step if there isn't some easy way
for them to build that first app, without any prior experience. This is
especially true for younger kids who have a great idea and don't know where to
take it.

------
k7d
So is Google now going to have a toy-app contest, like they did originally for
real Android apps?

Jokes aside, I guess I'm a bit skeptical about these pseudo-developement
envirnoments. It's a nice concept to demo but does it realy have any practical
applications in real world? I mean, really practical, something that people
create not just because they can, but because they need it.

~~~
talbina
What's wrong with creating things just because you can?

I remember two decades ago when I used to program using QBASIC as a 6 year
old. I didn't need any of the applications I made - but it sure looked like
fun.

This new Google initiative might not be about general masses, but more aimed
at helping children with their creative processes.

~~~
k7d
I didn't mean it's wrong to create things just because you can. I do it all
the time, and learned pretty much everything I know this way.

Totally agree it's a great thing for educational purposes, I was just
questioning if it can be considered as something more than an educational
tool.

------
duncanwilcox
The problem with attracting "developers" with a limited skillset is you're
asking for low quality applications.

I'm not against the idea, and if this kind of tool attracted people who care
deeply about human factors, interaction and graphics design I'd in fact be
totally in favor of it.

But this doesn't look like much more than Visual Basic or, as Gruber put it,
Hypercard.

~~~
dagw
But Visual Basic (and VBA) revolutionized the way people used computers and
was one the main killer apps on Windows. Most people, given a choice between
an ugly app that does exactly what they need and a beautiful app that doesn't
do exactly what they need, will choose the ugly app. And what better way to
make sure an app does exactly what you need than to write it yourself.

Sure Visual Basic programs written by non-programmers are often a monstrosity
in every way and most of us no doubt have our share of horror stories. But the
point is that most of those monstrous apps actually work and solve a real
world problem, and had they sat around and waited for a programmer to come
along and solve their problem correctly they'd probably never get their
program.

------
robryan
I think this is best suited as an entry level tool, then when someone wants to
progress to code to do some things they need to make it easy to start. An
example of what not to do would be net beans, which allows you to create a
drop and drag UI fairly easily but creates a mess of code if you actually want
to customise it later.

------
antichaos
Come on, Google. Software development is _not_ for everyone. Making it easy
for amateurs to write crappy HelloPurr apps brings no good to the Android eco-
system. Focus on building a mobile platform that attracts more professional
developers, please.

~~~
roel_v
So true. Last weekend I've been hunting for a 1x1 battery status widget. This
is (in its basic form) a 'hello world' type of application, so there are maybe
20 or 30 different ones on the app stores. Yet none of them looks good or
offers any of the functionality I had on my Palm Treo battery management
software. The App Store is a huge dumping ground of all sorts of crappy
weekend projects, with a great professional app here and there, but buried
among all the thrash. The rating doesn't help, because as soon as people start
charging for an app, the bar is raised so much that the only thing commenters
and raters do is bitch and complain. I have no idea how to fix this though.

~~~
hasanove
Try "battery left widget". Good one.
[http://www.androlib.com/android.application.com-preinvent-
ba...](http://www.androlib.com/android.application.com-preinvent-batteryleft-
xmwx.aspx)

~~~
roel_v
Thanks, hadn't found this one, will try.

------
stevenbedrick
The video is perfect. I've said it before, and I'll say it again: aside from
porn, pictures of cute animals are the best way to get people to use a new
technology.

------
shawndumas
Scratch, HyperCard love child!

------
torpor
Meh. Wake me up when you can use the device itself to write software for the
device. Until then, the barrier to entry is still too high.

~~~
camtarn
<http://code.google.com/p/android-scripting/>

"The Android Scripting Environment (ASE) brings scripting languages to Android
by allowing you to edit and execute scripts and interactive interpreters
directly on the Android device. These scripts have access to many of the APIs
available to full-fledged Android application"

Not as simple as Inventor, but pretty powerful.

------
st3fan
Purrr kitty apps. The new fart app?

------
dpcan
There's a lot of "cool" happening here, but the alarm clock conversion feature
didn't thrill me. It feels very "edge case" given the brilliance of some of
the other ideas.

The thought that the bottom section of the phone can detach and flip around
seems clunky to me. Like someday that piece might get loose and fidget a
little, making my phone feel cheap and broken.

~~~
talbina
I think you are commenting on the wrong thread - probably because this and the
other intended android concept thread are both at the top of the front page.

------
nadam
Trivial programming work is extremely cheap nowadays: it is done by hobbyists
or students or it is usually outsourced to countries where unfortunately wages
are very low. It think there is high supply of people with basic programming
knowledge. Creating a system to help creating even very trivial software
without programming knowlede is very hard, and I think there is very little
economic demand for that. Also creating an application in one of these
"software creator packages" can become quite complex. For me it is even harder
to create something in them than using a traditional framework and programming
environment.

~~~
rmc
One advantage of this above, say, outsourced work, is that it allows people
who would never programme to programme. These people will then get a nice warm
fuzzy feeling of acomplishment when they make a programme to fix _their_
problem. I think spreading feelings of acomplishment is a good thing.

