New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Option to export projects to Android and/or iOS #22

Open
cdsmith opened this Issue Jun 25, 2014 · 7 comments

Comments

Projects
None yet
3 participants
@cdsmith
Copy link
Collaborator

cdsmith commented Jun 25, 2014

It would be really cool if students could generate links to install their projects as Android or iOS apps on a phone or tablet. The app would be a web view, wrapped as an application with a set of generated files.

Concerns:

  • The set of available events would be much smaller. It may be that we should simplify the event model anyway to include just mouse moves, clicks, and drags.
  • iOS might not be possible without the student either jailbreaking or getting a $100 developer license. Android would require enabling third-party apps.

@cdsmith cdsmith added the enhancement label Jun 25, 2014

@cdsmith cdsmith added proposal and removed enhancement labels Jul 3, 2014

@cdsmith cdsmith added the priority label Aug 14, 2015

@denim2x

This comment has been minimized.

Copy link

denim2x commented Jan 20, 2017

Are you in favor of writing an Android app specifically for this purpose?
This way you'd be able to log into your account and simply load your projects (maybe even edit code if you've got a tablet...)

@cdsmith

This comment has been minimized.

Copy link
Collaborator Author

cdsmith commented Jan 20, 2017

I had always envisioned the feature using Cordova (https://cordova.apache.org/) to build applications out of specific student programs. So rather than having a CodeWorld application on the phone, one could create an application out of one program, and share it with friends.

That said, though, I can still see the benefit in also having a single CodeWorld home app that lets students choose and run any of their saved projects. This would avoid the problem with needing an iOS developer license, or needing to enable third-party apps in Android.

My vote would go for both. But if I had to pick one, I'd go for building stand-alone mobile apps, rather than having one centralized app. The reason is that I want the project to feel more real to students. I want them to say "this is the app that I made" rather than "this is the CodeWorld app, that I use to do my school projects."

@cdsmith

This comment has been minimized.

Copy link
Collaborator Author

cdsmith commented Jan 20, 2017

There's also been a consensus reached on the event model, which is not documented here. Here's what we want there:

  • The Event type stays the same.
  • On touch interfaces, treat the touch pad as the mouse. Obviously, MouseMovement events will only be delivered while dragging, since there is no such thing as hover. Other conventions like two-finger tap for a press and release of the right button are fine, as well.
  • For keys, we offer a choice of several common keypad types, in the UI for exporting to mobile. For example, "no keys" should be a choice, as should "arrow keys and space", "numbers", etc. The keypad will be rendered on-screen.
@cdsmith

This comment has been minimized.

Copy link
Collaborator Author

cdsmith commented Mar 7, 2017

I'm getting more and more interested in this.

To diverge into some philosophy, I think one thing that's missing with a lot of learning-to-code platforms for elementary school is a tangible result. This is fundamental: if coding is introduced as something you just do on a web site like an educational activity, the whole motivation for it is missing! But that's what platforms like Hour of Code, Tynker, etc. do. And, unfortunately, it's what CodeWorld does, too, today.

We want to change this. We'll go all in, for example by rebranding the in-browser window as "Preview" rather than "Run", and redoing any educational materials, to make it clear that CodeWorld isn't just an activity that you do and forget; it's a tool for making things -- tangible things, that you can keep and show off.

I will be filing more issues to capture other kinds of artifacts, such as: more easily exporting drawings as images; exporting animations as animated gifs, or as videos; exporting projects of all kinds to Facebook, Instagram, etc.

@alphalambda

This comment has been minimized.

Copy link
Contributor

alphalambda commented Mar 7, 2017

@ghost

This comment has been minimized.

Copy link

ghost commented Apr 30, 2017

I'm interested in tackling this issue for the Summer of Haskell because I had the same issue when I was learning how to code with the lack of tangible motivation. It wasn't until I joined my school's FIRST program where we built an entire robot that it felt like I was doing something noteworthy. Then I moved to making a couple games with Unity and Android Studio with friends which felt a lot more satisfying than just reading through textbooks.

My vote would go for both. But if I had to pick one, I'd go for building stand-alone mobile apps, rather than having one centralized app. The reason is that I want the project to feel more real to students. I want them to say "this is the app that I made" rather than "this is the CodeWorld app, that I use to do my school projects."

Is this feasible to scale for iOS users? As far as I know there isn't a way for regular iOS users to download their own app on their device unless they shell out $100 for the iOS Developer license. It's possible on Android because users can download stand-alone apps without going through the App Store but if we did this for iOS Apple would require every user to pay $100 just to download their own app.

@cdsmith

This comment has been minimized.

Copy link
Collaborator Author

cdsmith commented Apr 30, 2017

I don't know much about iOS, really. I've recently been told that there is a way for students to run apps on their own phones without paying the developer license. (It's unclear if we'd be able to build it for them like this on a server, or if they'd need to download project files and compile locally with XCode.) It's a shame they wouldn't be able to share their app with friends. But I've also been told that Apple's rules about interpreters in the app store make it unlikely that they would approve an official CodeWorld app that runs student projects, anyway; so neither option is ideal.

All of this is a pain, but it's Apple's walled garden, and we can't win if they choose to make it costly (or impossible). Given that, and the fact that Android has something like 88% market share, I am not worrying too much about it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment