Saturday, July 16, 2016

Picking a Platform for Teaching Mobile App Development

Come late August I’ll be teaching a course in Mobile Application Development. It seemed like a great idea when we were discussing new courses to add to the program of studies. Now it appears to me that picking a development platform is easy if you only have to teach one set of devices: iOS or Android Of course Windows Phone is by far the easiest platform to develop for but I am pretty sure the students who have signed up want to develop for their phones. Previous surveys I have done at school suggest the split will be about 60-70% iPhones and 30-40% Android phones. So I need something that works on both. Ouch!

I’d prefer a text based language but a drag and drop or block based language would probably work. Most of those create apps that run in the browser which is ok but never really feels like a “real app” what ever that means these days. What I’ve looked at in that area are TouchDevelop and code.org’s AppLab.

AppLab is pretty cool and gives easy access to cloud data which is a plus. It doesn’t seem to give access to phone features such as accelerometers, GPS, and cameras. I’d really like that to make the course relevant to phones. TouchDevelop, which I have some experience with and even a few lesson and project plans for, does give access to phone features. I need to find out more about cloud data. I think it is there but am not sure how easy it is to use yet.

For text based languages the only real option I know about so far is Visual Studio with Xamarin. I know it lets me do C# and build for both iOS and Android but I don’t yet know how hard it is to deploy to them. I believe that deploying to iOS requires a Mac which I do have access to but I don’t yet understand how that connection works. Hopefully YouTube has something on it.

What I’d really like is to talk to someone who has already done something like this. What worked? What didn’t? Typically I get people who say things like “I haven’t done it myself but this should work.” Ah, thanks, but “it should work” I can usually figure out myself. I’d like to same myself from having to try a lot of things that should work and go right to things people know works.

Next week I start trying things in earnest. Hopefully the computers at school have had their memory upgrades – emulators take a lot of memory. And I can play with the Macs there. But I’m still open to suggestions here. Anyone I know done this already and can save me time?

6 comments:

Auro said...

I just tried to teach a course on App Development and started with TouchDevelop. My experience was that the tutorials were too much help - they just told the students where to click, but without them, it was too hard to get going from scratch. I tried to work through the TouchDevelop book, but found that many of the links were broken. Also, I found that though the apps generally worked on both Android and iOS phones, some things (like the camera) didn't work on everyone's phones, making some apps frustrating.

I had a student work on AppInventor this year, and she really had a great time with that. She worked on many of the projects from http://www.appinventor.org/book2 with a lot of success. If more of your kids had Android phones, that would be my first choice. It has an emulator, but that is not as rewarding.

I have not tried AppLab yet, but it looks somewhat promising. Building simple Javascript pages is a definitely one option, and that is essentially what AppLab is doing. I'm interested in hearing what you end up doing - please let us know through your blog!

LadyMath said...

Some people at my school don't think that it's important to create apps for both platforms, but I agree with you. If you can't run it on your own phone, it is much less satisfying! We have an AppInventor class, with enough Android tablets for students to share, for testing. The develoment computers are Windows.

Mike Zamansky said...

I haven't used it in a while but you might want to check out PhoneGap / Cordova.

The idea is that you create your app using html/css + javascript (with supplied libraries to handle the phone stuff that html5 won't give you) and then deploy on any number of platforms.

Arta Szathmary said...

I talked with one of the folks from Thunkable. They are basically using app inventor and adding additional functionality. (currently working on IOS output).


http://thunkable.com They do plan to market the product to businesses, but educational use of the tool will remain free.


Personally, I would suggest App Inventor with android phones or tablets. The price point for phones or tablets using only the wireless capability have become very reasonable. The curriculum developed for Mobile CSP covers coding and the other appropriate topics. The phones/tablets can be connected wirelessly for development and debugging.

You want written coding rather than drag&drop? If your students already have previous java experience, why not use that? And have them explore the functionality of their phones/tablets.

Arta Szathmary


Mr. McTavish said...

From my experience I would stay away from PhoneGap with students - it has great functionality but there are so many different technologies at play that it over complicates it.

I've used App Inventor and Touch Develop with students. App Inventor is fantastic, very quick for people to learn with the capabilities to do lots of things. I had four Nexus tablets (get the previous model for a great price) and that worked - many students brought their own devices and when they forgot or didn't have one they shared mine. Resources at https://ram8647.appspot.com/mobileCSP/unit?unit=1&lesson=43 are really good but I think I will make up my own resources as I found their was more focus on the look then the actually programming.
Touch Develop - the Microsoft Virtual Academy Creative Coding through Games and Apps is a fantastic resource. I did find that students had a hard time transitioning from using tutorials to designing and programming their own. A little too much guidance. I'm also not a big fan of the pages and boxes model they use for apps, students had difficulty with the logic.

Please share what you do end up using, the benefit of American schools starting earlier than Canadian is I can cherry pick ideas!

Garth said...

Look at Corona IDE. Writes for both Apple and Android. It will download android apps directly to a phone. iPhone still has to go through the iStore. A iStore account for $99 a year is needed. It is a language (Lua) that a smart beginner or an experienced pro can feel good with. It does write professional level games. Here are some excellent books on Corona http://www.burtonsmediagroup.com/books/. The "Learning Mobile Application ..." is a high school level text book. I have used it. It is good. Outlaw IDE is the best editor to use with Corona. I taught with Corona for about two years and the only reason I do not teach with it now is I have not had the kids interested in app development. I am thinking of going back to it with my Games course in the spring.