jmoenig / Snap

a visual programming language inspired by Scratch
http://snap.berkeley.edu
GNU Affero General Public License v3.0
1.51k stars 748 forks source link

Difference Between Import and Open? #102

Closed cycomachead closed 11 years ago

cycomachead commented 11 years ago

If I understand correctly the difference between Import and Open is that: On import, whatever file is being imported will be merged / appended to the currently open project. On Open, whatever project will be 'replaced' (in the UI) with the new project being opened.

This is at least, how things work in BYOB and scratch.

However, in Snap! the interfaces for the two actions are completely different. On Import, the user is presented the ability to open a local file from disk. On "Open" the user can open a file from his/her cloud account, browser storage, or an "example project".

My question is: Why are the UI's different between the two actions.

  1. It seems like I should be able to open a new project from a disk.
    • If I am in a new project, I can just select import, so that's relatively easy, though a bit weird.
    • If I'm in the middle of a project, I have to open a new, empty project, then go use import. This is more actions than necessary, and also a bit weird.
    • Why can't I import from the cloud or browser storage? Let's say I have my own custom tool sprite of sorts with some math or other common blocks (something many CS10 students do) and I want to save it in the cloud. Cool, that works. Now, if I'm working on another computer, I'd have to open that file up, export it, and then import it from local storage. Way too many steps!

This same problem also applies for "Export Blocks" and "Export project" vs Save and Save As.

To me it seems like all file actions should be integrated together into one window for saving or opening.

For opening and importing: You can open a file from one of 4 places (Cloud, Browser, Examples, Local) For Saving (As) / Exporting: You can save to Cloud, Browser, and Disk. (Not Examples). But you should be able to do this for a project, or if you're just exporting blocks.

brianharvey commented 11 years ago

The difference between Open and Import, in Snap!, in practice, is that the first opens a Snap! dialog box and the second opens a browser file dialog box. This has to do with the Javascript security model, which doesn't allow a web site access to local disk files.

Yes, it should be possible to retrieve things other than projects from the cloud, and it will be. It's just not implemented yet.

cycomachead commented 11 years ago

Yeah, I know JS security is a bit weird, but why couldn't the button to open a local file be a part of the Snap! Dialog box?

The dialog box to access local will files will always be different than the Snap! one which is good, but getting to it would be more streamlined.

Michael Ball From my iPhone http://michaelballphoto.com

On Jul 15, 2013, at 8:17 AM, brianharvey notifications@github.com wrote:

The difference between Open and Import, in Snap!, in practice, is that the first opens a Snap! dialog box and the second opens a browser file dialog box. This has to do with the Javascript security model, which doesn't allow a web site access to local disk files.

Yes, it should be possible to retrieve things other than projects from the cloud, and it will be. It's just not implemented yet. — Reply to this email directly or view it on GitHub.