Slashdot Mirror


Developing Android Apps Visually, In 3 parts

An anonymous reader writes "Dr. Dobb's has a three-part blog (all three parts are up; this is part 1) about using App Inventor. The focus isn't so much on the technology but rather the discussion of 'can visual development let anyone program?' If so, is App Inventor really visual development? And should we be teaching real programmers about visual development. Most of the conclusions are in part 3. As a byproduct, they show you how to put App Inventor output on the Market and there are two games on the market (free) that resulted from the articles." Here's part two, to round out the trilogy.

9 of 78 comments (clear)

  1. Not worth it by pieterh · · Score: 3, Interesting

    Coincidentally I just started learning to develop mobile apps last week. I'm using Sencha Touch and PhoneGap, Eclipse, and the Android SDK. The combination works pretty nicely, and lets me build fairly pretty pseudo-native apps, working in JavaScript. Best, they will run on iOS and any future mobile device with WebKit.

    1. Re:Not worth it by Nerdfest · · Score: 3, Insightful

      It's very sad that this is tagged 'troll'. It's currently a fact of development that will likely be addresses in a future iOS release. People are getting a little defensive about their choice of platform. If you want them to improve, help identify their flaws and stop blindly defending them. There's a pile of things that need fixing in all of them.

    2. Re:Not worth it by MobileTatsu-NJG · · Score: 3, Funny

      The only gap I like is pink, hairy, and smells like fish.

      Let us know when you finally found out what it really smells like.

      --

      "I like to lick butts!" by MobileTatsu-NJG (#32700246) (Score:5, Informative)

  2. Real programmers... by syousef · · Score: 4, Insightful

    ...don't use visual tools. They describe the GUI in assembly language, or use torturous frameworks. Of course it is this elitist attitude of making things as difficult as possible that has resulted in 2 decades of user experience that stinks. I don't know how many times I've seen programmers rant that Visual Basic was evil because it was too easy and let anyone program. They somehow think putting together a user form should require 2 weeks and multiple degrees in computer science. On the contrary, it should be ridiculously simple to throw together a user form. There are things you can't simplify like algorithms and complex logic in science and business and THAT is where you NEED to focus and concentrate a developer's attention. Bloated frameworks and non-visual building tools from hell that make things unnecessarily hard are nothing but a hindrance and should be eliminated. There's no shortage of work to go around.

    --
    These posts express my own personal views, not those of my employer
    1. Re:Real programmers... by Yvanhoe · · Score: 3, Informative

      I love Qt creator for that. Functional UI designer a la Visual Basic, generates real cross-platform code (and I mean there is usually zero modification to make a linux/windows version work) and underneath it is real C++ you can modify. Using C or even assembler if you wish.

      --
      The Wise adapts himself to the world. The Fool adapts the world to himself. Therefore, all progress depends on the Fool.
  3. IntelliJ IDEA by Timmmm · · Score: 4, Interesting

    Slightly off-topic, but Android development for me has been marred by the steaming pile of dung that is Eclipse. Netbeans is ok but it's android support isn't great.

    I finally got around to trying IntelliJ IDEA, and hooray! Android development is now possible on my lowly 2009 PC. It is so much better than Eclipse. You should download it now and forget about Eclipse this instant. Let's see:

    Cons compared to Eclipse:
    * Not the official android IDE.
    * Doesn't have some android tools built in (ddms).
    * No GUI editor for the manifest.
    * No GUI layout editor (although the Eclipse one is unusable anyway).
    * Logcat always autoscrolls. It's slightly annoying.

    Pros compared to Eclipse:
    * The main UI is way faster and more responsive.
    * The 'smart' features (code completion, refactoring etc), are even more clever than in Eclipse -- they practically read my mind.
    * No retarded 'workspace' paradigm.
    * The code editor is way more responsive.
    * The UI is a lot more sane, and much less cluttered, even though it still has a ton of features.
    * Built-in git support. Maybe this is in Eclipse, but I'm sure it is way more complicated.
    * No retarded 'perspectives'.
    * The UI is cleaner IMO, although it is a little win95-ish.
    * I have no idea why, but it manages to detect my phone even though adb doesn't. (I know right?)
    * It's just way better. There are tons of features that make you think "Wow, they really spent time implementing that (in a good way)?", random example: if you create a new class, edit and press undo, it will ask you if you want to undo creating the class!

    In conclusion, fuck you eclipse. You suck.

    1. Re:IntelliJ IDEA by blair1q · · Score: 3, Funny

      Fuck you is a plugin for eclipse. It won't do it natively. And it's a bitch to install. Do you really need eclipse to do that?

  4. Just started playing with AppInventor this week by element-o.p. · · Score: 3, Informative

    I just start playing with AppInventor this week, and right off the cuff...it's got a lot of potential, but I haven't used it enough yet to know if it's really a serious tool.

    The Cons: I tend to be kind of a linear, procedural thinker -- I cut my teeth on BASIC, learned COBOL in high school, learned Pascal and Perl in college, and now use mostly Perl and a little Python -- so AppInventor requires me to approach writing programs a little differently. For example, in Perl, if I want to compare two strings, I think it out the way the line is typed on the console; AppInventor, on the other hand, seems kind of like programming in Reverse Polish Notation :) That's just a minor quibble, however, and while I'm enjoying learning how to create Android apps, I do have a few concerns about the language. First, the language itself is completely obscured. There may be a way to bypass the GUI and see the code AppInventor is generating, but if so, I haven't found it yet. Having spent way more time than I like cleaning up the horrible HTML that both Front Page and Dream Weaver generate when my family members who couldn't (or wouldn't) learn HTML came to me for help -- and at some point, they always came to me to fix their HTML when FP and DW didn't get it right -- I tend to distrust visual coding tools. I would also love to see a comparison between execution times for two identical Android programs, one written in AppInventor and the other coded by hand. I'm curious how AppInventor optimizes the code. Also, I find that the programs get a little hard to follow by the time you get a page full of code blocks on the Block Editor. It may be just another case of the way I think hindering my adoption of the tool, but I seem to have an easier time keeping the code in my head when I type it out by hand rather than when I snap puzzle pieces together on a GUI. Finally, my last concern about AppInventor is that the "command" reference is somewhat lacking. It took me pretty much a full day, and numerous Google searches, to figure out how to use the TinyDB to store persistent data in AppInventor. In the end, the procedure I was using to store data in TinyDB was never running because I was getting an error in the routine that pulls data from the TinyDB because the way to tell if there is any data stored in the database is not exactly intuitive and is completely omitted in the documentation.

    The Pros: I am quite impressed with the ease with which I started using AppInventor. When I first started using Python, it was very easy for me to read someone else's scripts and comprehend what they were doing. Writing Python, on the other hand, was a bigger hurdle. To be fair, a lot of that was because I've been writing Perl for so long, that I try to do things the Perl way (okay...ONE of the many Perl ways ) and then have to search Google to find the way it's supposed to be done in Python. AppInventor, on the other hand, is just a matter of snapping puzzle pieces together. If you try to do something that would be a syntax error in a traditional language, AppInventor immediately pops up an error telling you why you can't do whatever it is you are trying to do -- and the error messages are pretty intuitive. Procedural errors are a whole other story -- see the caveat above about using TinyDB.

    Experienced programmers may turn up their nose at tools like AppInventor since it lowers the barrier of entry so much, but IMHO, tools that make it easy for people to learn programming concepts are a Good Thing. Will people churn out crappy code in AppInventor? Yep. Do people already churn out crap code in Perl, Java, C/C++/C#? Yep. Will skilled programmers make well-designed apps in AppInventor? I don't see why not. I imagine the quality of the code will probably depend upon some of the concerns I described above, but the *design* will be a reflection upon the skill and experience of the developer. I don't see any reason why a good developer will suddenly be reduced to creating crappy apps with tools like A

    --
    MCSE? No, sir...I don't do Windows. Yes, I am an idealist. What's your point?
  5. Re:Right right right, I get it. by Tinctorius · · Score: 3, Interesting

    Anyone can program, and anyone can learn programming.

    No and no.

    I have seen many people struggling to learn PHP (as part of their education). Not because they had any issues with the language itself, but because they couldn't systematically approach their problem. And if you would have read the TFA, or even simply peeked at the pictures, you would have seen that this IDE is almost a glorified code coloring editor, where words of code fit together like jigsaw pieces.

    The art of programming is actually the art of reverse-engineering: you put your program together like you take your solution apart. If you don't know how to carefully dissect your ideas, then you are not a programmer.