Android App Course: the saga ends

I am done.  My brain is tired.  Here is everything I could find that will build apps for Android.  

  1. App Inventor
  2. Thunkable
  3. LiveCode
  4. Xamarin
  5. Android Studio
  6. Corona SDK
  7. Gamemaker
  8. Unity

There are more out there.  For instance I found reference to making apps with Python.  Not easily but it can be done.

I did not look at all of these in intimate detail but I did try to write an app with all of them.  Some of these I have used in classes (Corona, GameMaker, Unity) , others I just looked at in the last couple of weeks (Thunkable, LiveCode, Xamarin).  I have done a couple of week long professional development summer camps with App Inventor. I have been tempted by Android Studio for a number of years.  

Here is a very short comment on each.

  1. App Inventor – large following and lots of stuff out there for it. Has some connection issues to phone and emulator is weak.  Not for professional use.
  2. Thunkable – On the same level as App Inventor.  Plus and minuses over App Inventor. Not for professional use.
  3. LiveCode – Uses its own language which makes me leary of it.  I could not get the emulator to work.
  4. Xamarin by Microsoft – Almost nothing out there as far a good teaching material.  Some tutorials but I had difficulties trying to get them to work. It glitched on me.  Professional use.
  5. Android Studio – the premier Android app writer.  Professionals only. Has possibilities for advanced high school.
  6. Corona SDK – game writing.  Some good tutorials out there.  
  7. GameMaker – games only.  Simple 2D games. Very specific environment.  
  8. Unity – professional level 2D and VR games.  Lots of material out there.

Which to use has a lot to do with your objective.  If you want to offer a low level class where the kids get to write some simple apps and have some fun, App Inventor or Thunkable are both good options.  If you want a 2D game making course Corona SDK is a far better option than GameMaker. Corona uses Lua, a very basic scripting language that looks very traditional.  GameMaker works well but the language is a dead end as far as a stepping stone to more advanced languages. Unity has some major possibilities if your objective is a more advanced game writing course.  

If you want the kids to write real apps in a language that they can carry and use out of high school Android Studio is the only way to go. Dumbing it down for high school might take some work. Or offering some strong prerequisites is a possibility.  There is no “beginners” route for AS.

Here are my choices.

  1. App Inventor for a limited course for younger kids or beginners.  Test phone connections, twice.
  2. Corona SDK for a 2D game programming course.  Easy and the language is a traditional line code environment.
  3. Unity for a VR games.  Some good tutorials out there.  Real fun for the kids.
  4. If you want the kids to actually make a real app in a project based course there is no choice other than Android Studio.  It will take a lot of work on the teacher’s part and commitment by the students.

I was really tempted to dive farther into LiveCode but I just was not up to learning a new language.  Since Java/Javascript, Python and C# are the dominant languages for education I am not sure teaching a language that is used only in one environment is a viable direction for teaching.  This is more of a personal decision on my part. Learning any programming language will make the transition to another much easier. If I have an experienced programming student looking for an independent study I would not hesitate to have them work in LiveCode.

Xamarin seems an odd duck.  The IDE looks really sweet and being based on Visual Studio can make it very comfortable for teachers experienced with VS.  There is just nothing I could find as far as teaching materials. The tutorials I tested just did not work due I think mostly to version updates.  I looked at Xamarin University but was put off by the “experienced C# users” notice. If I am going to learn and use a professional level tool I want a lot of beginner support.

This review is 100% biased in that if I could not get the software working quickly and easily it went on my naughty list.  If I could not find a substantial amount of teaching material either in the way of documentation or good tutorials it hit the naughty list.  If the emulator had issues it hit the naughty list but it was not a deal killer. Of those that had emulators, Android Studio is the only one I had no emulator issues with.  Doing this software search has taught me emulators look cool but nothing compares to actually putting it on the phone. Putting the apk on Google Drive and opening the apk on the phone from there is slower but works.

Android Studio will take some work to bring to the high school classroom but it looks like it will be worth it.  I will not do AS this year but I will start assembling and testing material for next year. I have a couple of programming geeks that will be seniors next year.  Perfect guinea pigs.

 

9 Responses to “Android App Course: the saga ends”

  1. Jon Howard Says:

    Thanks for sharing your saga here… I teach middle school, so Thunkable/App Inventor worked well for me (it’s been a couple years since I’ve done apps in my programming class). I used USB connections to get around the connection issues and (as I recall) it worked well. I also had a class set of tablets from a grant and standardizing the hardware helped as well.

    I’ve had advanced students used Corona for games and it went well.

    A bonus app builder is Basic4Android. I’ve used it personally for a quick app. https://www.b4x.com/ It isn’t free and it’s VB based, so it’s probably not a good fit. I just wanted to add it to your list.

    It sure would be nice to find a good curriculum for Android Studio…

  2. Cyril pruszko Says:

    You did not do justice to LiveCode. It’s “language” is just English and is much like pseudo code that we tell our students to use whene forming their algorithms ( instead of going straight to code).
    It’s advantage is that without the “noise” of syntax errors, strange new constructs and difficult debugging, they actually learn the basic CS concepts that we are really trying to teach
    Also, LiveCode is the easiest to get started with and is the fastest to final product. The real proof is in the results that I have seen year after year in the classroom.
    P.s. start with version 6.x of LiveCode

    • Garth Says:

      I do plan to give LiveCode a rerun. It may be the best for actually producing an app. I have to think about the purpose of the app course. If it is just to produce an app then LiveCode may be the best route. If the course is to prepare students for more advanced work then a Java based IDE (Android Studio) may be the best approach. I think I will do a mini app course next semester. I will let the students play with LiveCode and see what they think. The great part of being a small school is I do not have a fixed curriculum and can just try things. The more I look for teaching materials for Android Studio the less inspired I am to use it. It is the big gun in the app writing field but maybe too big for what I am capable of doing or have time to do.

  3. Cyril pruszko Says:

    In both my Intro (Python) and Adv (Java) classes, we finished up the year doing apps/games in LiveCode. When I switched to using LiveCode first (before the other languages), it greatly shortened the learning curve for the other languages. The Intro students went on to learn Python faster and better and even started learning Java/C before the school year ended. The AP students had less trouble in Java and even tackled more difficult topics like hash functions, maps, etc.
    My theory was that the simplicity of LiveCode allowed them to learn the constructs and concepts without the burden of syntax errors, debugging problems and just being overwhelmed with so much to learn.
    With other languages they get overwhelmed with alien concepts as loops/lists/counting starting with zero instead of one, logic and Boolean functions, comparison (= vs == vs ===), variable typing, text handling (very complicated), … That results in cognitive overload and you lose too many students.
    With LiveCode, they “learn to walk” first and get a feel for programming and more naturally understand the basics. The rest comes easily as they go on to their next language. Meanwhile, they create many useful programs, games and apps and really enjoy programming.
    Other advantages that I have found:
    They learn a truly useful language. I have seen them go on to write programs for other classes and on their own, many years after the class. They have acquired a skill that they will use thru out their lives. In contrast, how many of your students have independently written programs in Python orJava after they have left the class?

    There was a serious uptick in computer classes, especially with females and minorities. This may not be all attributed to LiveCodebut it certainly played a part in it. As I have stated before, these two classes were the most popular classes in our school. One out of every 5 students requested them for the following year.

    I was like you, I had the freedom to determine my own curriculum and I tried many variations of curriculum, languages and teaching styles before discovering LiveCode and adopting it as a first language

    • Jon Howard Says:

      Super interesting option. Kinda like Starting with Scratch to learn computational thinking before getting bogged down in the syntax of the more complicated languages.

      What curriculum did you use?

  4. Cyril pruszko Says:

    Depending on the age/level of your students, you can use either

    BYU’s curriculum. http://livecode.byu.edu/
    Or my lessons – https://sites.google.com/a/pgcps.org/livecode/
    And there are others like the ones the UK schools use, etc

    – i did not follow a strict curriculum. It was project oriented and followed the student interests. We generally did a project a week culminating in a game/app/program that they could give their friends, parents, etc.

    The first day, I modeled a command or construct and we made a simple program. Then I gave them an assignment which required them to extend what they learned a bit further. The rest of the week, they had to use what they learned to create something of their own. Daily, I would show them something more and discuss the constructs/concepts in CS terms. Often, they would solve a problem working together or discover a nuance which they would share with each other. They learned more than I taught.

    I encouraged sharing and collaboration. They did not really cheat or copy much for the following reasons:

    1) it was too easy to do. Programming with LiveCode is so easy that no one got lost, or felt the need to cheat. Even the class slackers and procrastinators were engaged.
    (The principal gave me a section of students who were in danger of dropping out of school, getting kicked out, or just came to school and did nothing in any class (slept, played on their phones or caused trouble. That year, not one dropped out of school, cut any of my classes and a few decided to engage in their other classes and got decent grades. It was a fun, useful and productive class which seemed so easy that they had to give it a try. They did learn programming that year!)

    2. Everyone has their favorite game/app and their own idea of how to improve it. Why copy someone else’s game when it was just as easy to do your own. No two games were that alike. It was a chance for them to be creative and create something they could be proud of.

    3. Games/apps do not have to be complicated to be fun. Think of dots, tic-tac-toe, and other games that are simple. You do not have to be a “brain”, nerd or top student to create a good game. Everyone has an equal chance to earn an “A”.

    At the end, they all knew how to write line-by-line code, do loops, decisions, functions and all the other constructs we teach in any language. They also understood objects, inheritance, global and other concepts that we strive to teach in CS. What made it fun and productive was the graphical interface and ease of deploying it to their different devices (platforms).

  5. gflint Says:

    OK, I am game. I will give it a try with some kids next semester. Udemy has a free curriculum (not really, it is just a set of tutorials) for LiveCode. It is a bit dated version wise but I will work through it and see if it blows up. The series builds Flappy Bird. It will be interesting to compare this to the Corona Flappy Bird build. Video is so handy the first time through.

    I am also looking at B4A and B4J right now. B4A is an Android app builder. Not free after 30 days but not very expensive either. It seems to have been built with Visual Studio. I have to look around for tutorials and good videos. The on-site videos are a bit lacking. I tried to get a free education license from them. Nope.

  6. Cyril Pruszko Says:

    If your students run into problems with the videos, have them try my lessons at https://sites.google.com/a/pgcps.org/livecode/game-programming/flappybird I take a more direct approach and include enhancements for the better students

Leave a reply to Cyril pruszko Cancel reply