Friday, December 07, 2018

Teaching Phone Programming Should be Easier

Garth Flint and I have been independently looking at resources for teaching mobile phone application development. (Garth’s posts are linked below) I’m currently teaching a course using AppInventor which is going ok but not as well as I’d like. Most of my students own iPhones which AppInventor doesn’t currently support. Their iOS support is currently under review by Apple but my course is almost over. Even with Android phones I still have some trouble with connectivity. And the emulator is a mess. Some days I can’t get it working at all. So I’m thinking about what to use to teach next year.

There are other options. I have been testing Thunkable with some of my students. The good is that it supports both Android and iOS. The bad is that this support doesn’t support many sensors and really that is a huge part of what I want students to do. Without sensors its just another desktop app with a tiny screen.

I still need to take a closer look at LiveCode which seems to come up in this discussion so I don’t know much about it yet. Input welcome!

I haven’t tried the platform specific (ie professional) tools yet and I am reluctant to do so. The ones designed for iOS or Android only work on those platforms and I’d like to use both. Since most of my students have iOS devices than going Apple might be a way to go except that that requires developing on Macs. We have a Mac lab but its already used a lot. And they are all Macs which comes with its own complications. I am not a fan. That’s a last resort.

Microsoft Xamarin with Visual Studio is a cross-platform professional option. I’ve looked very briefly at it in the past. Setting it up is non trivial and I do have to have some connection to Macs for the iOS loading. Networking to a Mac or three might be an easy option.  Well, easier than taking over a whole lab. I need more time to work on that option though. I don’t know many teachers using it which is a concern.

I really wish Windows Phones had not died out. I have a Windows Phone and writing apps for it with Visual Studio (2015 or earlier only) is a piece of cake.


Garth said...

After 2-3 hours of trying it Xamarin is a major no-go. Poor tutorials and very little out there. Nothing for high school that I could find. I was in the middle of the Microsoft tutorial when the whole thing came apart. I saved my project and objects on the UI I had built vanished. The XML code for the button was there but no button on the UI. Thirty minutes of tinkering later I was still no wiser. I do not have time to waste on software like that. From the looks of it Microsoft is not really promoting Xamarin. The Xamarin group on Yammer seems dead.

LiveCode is on my todo list. A reader to my blog sent me these. Stuff he has built for LiveCode. They look very good.

For teachers having to learn software to teach the tutorials and documentation has to be perfect and easy. Most of us do not have the time to do a lot of trial and error learning. Stuff written by MS (except Small Basic which technically is not MS) I would rate as poor for teachers. It is written by experts for experts. Most teachers are not experts. The number of former professional programmers that are now teachers is limited. Too bad, they have some things that could be great for the classroom.

MS seems to have the weirdest relationship with K-12 education. They buy Minecraft then seem to leave it hanging. Kodu is the same way. Dreamspark was a goldmine for getting kids interested in programming and it is gone. Visual Basic is perfect for high school but MS seems to ignore its possibilities for education. They have all these great products for K-12 but they leave it for someone else to incorporate into K-12. They have all the products needed to hook a generation on MS products but they do nothing about it. Strange.

Garth said...

Add this to the LiveCode list:

John Iglar said...

LiveCode FTW!

Michael Ball said...

For Android, App Inventor seems like a cool thing.

I have limited experience with mobile tools, but I've often found the trade-offs to be a wash. Going full iOS sucks, because it's Mac only for development, but the resources there are great and while not trivial, you've got a standard set of tools to work with. Swift is complex, but much better than Objective-C, and arguably easier than Java. The Android Studio IDE is complex, but again well known and has resources.

Most of cross platform tools end up have unexpected edge cases that can be very confusing, since the underlying APIs for even "standard" elements like a list of data can be quite different between iOS and Android.

That said, I'd be interested to see someone try to teach something like React Native. There's lots of challenges, but it might not be a bad interface for students...