Three days of internet digging and reading and I have some discoveries, but no surprises.
- Android Studio is a beast. It took me maybe four hours to just get it installed and all the install issues fixed. I am now working through this tutorial. Not a bad tutorial but a lot of magic is happening. The usual “do this” with no “why do this”. The needed knowledge to use this IDE is definitely at the professional level. You would have to work in this every day to be able to do simple tasks. It is also Java and HTML sort of rolled together. What fun. I would want some training in this software, not just tutorials, before I would attempt to teach normal students a comprehensive course with it. I have one student, a sophomore with an IQ in the 160s at least, working through the tutorial as a test subject. He is doing OK but he is a major computer geek and is on the extreme end of self motivated. Not a good sample of the typical programming student but he was all I had handy.
- I am still not impressed with App Inventor. It is fun and can do some great things but I would not consider it a route for a student looking to continuing in CS/programming. That is me, I imagine there are teachers that have had success using it as a starter environment. I also have too many technical issues with it. Firewall issues, phones not connecting to it and so on. In a perfect network with the goal of just building an app without the goal of using a real world programming tool I think it would be a success. I have attended a summer PD on APCS Principles using App Inventor. The APCSP curriculum does get a job done but it is a bit cookbook for me and when the kids are done they are just sort of hanging there as far as understanding how to code.
- Corona SDK is sort of in between Android Studio and App Inventor as an app builder. Designed to build 2D games it is much easier than Android Studio. It uses Lua, a fairly straight forward scripting language that fits with what us old school line code teachers are comfortable with. Because it is a game builder there are some limitations as to the types of apps that can be built. That is the big difference between Android Studio and Corona, AS will build anything you can think of in the way of a GUI, Corona has limitations.
- Unity will build Android apps. Again it is a game maker, not a real app builder. For VR it is the way to go. For an app that locates the best Chinese restaurants in town, not so much.
- I was very surprised to find out Android apps can be built with Python. Not easily and it requires a lot of setup using all sort of extra software but it can be done. I do not plan on going that way.
- There are some other app builders out there that require a working knowledge of HTML5, CSS and Javascript. If I ever get a working knowledge of those I may look at them. Of course if I get a working knowledge of them I may just start moonlighting as a website designer/builder.
So here are my conclusions. If the app development process and project based learning is the goal and not coding, App Inventor is the way to go. A beginning teacher has a nice cookbook to follow. Of course overcoming the network/phone issue needs to be addressed before diving into it. Test everything, a lot.
If you want to make real apps Android Studio is the only real option. A year long course with a real steep learning curve; IDE, Java, HTML. And probably a lot of prep time. Maybe the only option for a true project based course. I plan to put some more time into looking at AS. Maybe it can be dumbed down for a high school class. I am not hopeful.
Corona seems the easiest way to get into app building but you have to accept the gaming limitation. Not a great route for writing an app that finds Chinese restaurants in a five mile radius. It is fairly traditional as far as a coding language which appeals to me as an old coder.
Corona is easier than Unity but Unity is much higher quality games. VR games are not difficult in Unity and that can be a big draw to get students in seats. App building with Unity would require a Unity course prequel or a lot of time teaching Unity before building the app.
Getting an app writing course up and running is not as simple as say getting a Python course going. Writing code is only a part of the course objective and coding could possibly be the minor part of the course. With AS just learning the IDE would be a major accomplishment. With a project based course there is also the issue of matching the project to the best environment to build it in. A project that is an educational game might be best in Corona or Unity, an app with something like Google Maps might require AS or a fall back to App Inventor.
Doing a project based app course would take some good project review that may force the project to fit the programming environment the teacher is comfortable with. A student may come in with an incredible idea that will not fit with what the teacher is familiar with. Decision time on the teacher’s part, point the student in the correct direction and hope they can go it on their own, or make modifications on the idea so it will fit what the teacher knows. Both tracks have pluses and minuses.
Lots of head scratching involved in this whole app building project based course theme.
November 30, 2018 at 1:56 pm |
Have you looked at thinkable at all? Seems a lot like AppInventor but works for both Android and iOS. It doesn’t seem to like my old android phones (donations) and I have yet to try it on an iPhone. Emulator support is not built in which is a negative for me. It is available from a third party but I didn’t feel like going to the trouble today.
December 6, 2018 at 3:20 am |
This article is great and I agree. For app dev, I am not looking for games, so something like appinventor is perfect—but we need that to exist, but it does not. Android Studio is far too complicated for the typical student. I’ve tried Thunkable. Works great on iphone, but not all functionality is there. Might be better than AppInv, though. I am sick of connection problems. Most of my tablets can’t connect anymore. What we need is an environment for developing apps that is accessible to regular kids. Not for games, but something that accesses the components of a tablet or phone. App-Lab at Code. org is pretty cool, but is all online with no tablet. I need a tablet or phone in my students hands. Anyone have suggestions?