Giter Site home page Giter Site logo

scratchfoundation / scratchjr Goto Github PK

View Code? Open in Web Editor NEW
672.0 672.0 312.0 31.43 MB

With ScratchJr, young children (ages 5-7) can program their own interactive stories and games.

Home Page: http://www.scratchjr.org

License: BSD 3-Clause "New" or "Revised" License

Java 11.80% Python 0.24% JavaScript 67.06% CSS 9.67% HTML 3.94% Ruby 0.02% Objective-C 7.25% Shell 0.01%

scratchjr's People

Contributors

apple502j avatar benjiwheeler avatar chrisgarrity avatar deepankarmalhan avatar kerrtravers avatar murkantilism avatar thisandagain avatar tmickel avatar transifex-integration[bot] avatar vaishnavijha786 avatar yida921 avatar yueyuzhao avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

scratchjr's Issues

Android 4.2: Paint editor rotation becomes sluggish / non-responsive

On XO Tablet (Android 4.3):

  1. Rotate button is too slow to be usable
  2. Zooming and rotating does not respond well

Further comments from original issue:

This might be due to the slow processor on this particular tablet, but that might be indicative of many Android 4.2 / 4.3 tablets, so we should look at a way of speeding this up. Note that rotation is working smoothly on smaller shapes, but not on complex shapes like Scratch cat.

Here's an idea for how we can fix this, and improve performance in the process. Instead of drawing the SVG each frame, draw the SVG to a temporary canvas and then rotate the canvas. When the rotation is complete, update the image and destroy the working canvas.

I've confirmed with debug statements that the reason it is not responding is that mouseMove is not being fired. I'm tracking down the code that's preventing mouseMove from being fired. Looks like it's Layer.findGroup().

It's not directly caused by Layer.findGroup(). Instead, it looks like the more objects that are selected, the longer it takes the mouse events to process, and eventually the browser gives up sending the mouseMove events. This only seems to happen on Android 4.2 and 4.3 tablets, and I haven't found a good fix yet.

However, this is a workaround - to rotate, simply start dragging, let go, and tap in the final spot you want it to rotate. Not as good as interactive rotation, but better than not rotating at all.

Galaxy Tab 2 (7-inch) running 4.2 had the same issue. simple shapes could rotate, more complex ones had problems - the workaround did "solve" it.
We noticed the same sort of issues with using the camera. Tapping a simple shape the camera would come up relatively quickly. (The snake worked for example) But anything complex it would take a really long time, or never come up.


Moved from LLK/scratchjr-private#235
/cc @markroth8

Investigate SVG block rendering on Cyanogenmod 12

Blocks rendered incorrectly in the PBS Kids version (1.1) on Cyanogenmod 12. See attached screenshots. We were not able to reproduce on Cyanogenmod 11 and do not have access to CM12.

We need help investigating whether this is common to all versions, or unique to the PBS version.

screen1
screen2
screen3

Import character and background images from tablet photos

From @tmickel on November 30, 2015 22:23

A common request: We could provide a way to import characters and backgrounds from the device's photo reel. This is a bit of work because we need to figure out how to handle non-paint editor/raster assets.

Copied from original issue: LLK/scratchjr-private#398

Android 4.2: Taking a 2nd picture leaves display artifact

When attempting to take a second picture, there is a display artifact from the previous picture taken for the same shape. Seems to be a mask issue. This doesn't happen on later tablets.

Consider this picture of a test image, followed by a picture of an orange, in an oval-like shape.

device-2015-06-29-231020

Additional comments from original issue:

I looked at this for several hours. It appears that both Android 4.2 and Android 5.x are generating the same .svg from the camera, but when it comes to programmatically drawing the SVG to the canvas, some of the cropping is not working correctly in Android 4.2.

I'm not 100% sure of this, but this could be a fundamental limitation of the SVG engine in Android 4.2. There have been several complaints by the community about missing features, etc. I'm thinking this might not be an easy one to fix and we don't want to hold up the release for this one because it is somewhat rarely encountered and easily worked around. This would only happen if someone takes more than one picture in the same Sprite.


Moved from LLK/scratchjr-private#242
/cc @markroth8

Rename iOS.js to TabletInterface.js

From @tmickel on December 30, 2015 22:57

This file and its functionality is shared among Android and iOS; the name iOS is misleading.

Copied from original issue: LLK/scratchjr-private#425

Start on bump slows everything

From @chrisgarrity on February 17, 2016 14:58

When there are 'Start on BUMP' actions, everything becomes very slow when characters are close to each other and about to bump.

Copied from original issue: LLK/scratchjr-private#481

Saving project never finishes

screenshot_2016-04-05-23-21-57
Looks like interference between auto-save and saving, or a potential race condition.

Reproduced on two android tablets (asus nexus and samsung 10-inch)

share by email
when it finishes sending, go back to project.
blue bubble says saving in the upper left, becomes waiting and never disappears.

Happens about half the time on the asus nexus 7, less often on samsung 10.

Full webcam images being stored

We should be cropping the webcam images to only the portion visible so as not to store any information the user cannot see.


Moved from LLK/scratchjr-private#183
/cc @markroth8

Cannot delete parts of a sprite

When editing the sprite, click the scissor tool. Click on the part you want to delete (e.g. feet), the whole sprite is deleted not just the feet. Should ScratchJr have this capability?


Moved from LLK/scratchjr-private#160
/cc @chrisgarrity

Scroll position of in-app help pages affect other screens

Scrolling to the bottom of the About ScratchJr or Blocks description pages, then switching to a different page (e.g., Home or Settings) doesn't reset the scroll position. On the new (shorter) page nothing is visible until you scroll up.

@tmickel commented:
Scroll position is being stored in file system ("homescroll.sjr")

It seems that the scroll position should be reset when the projects are drawn. But for some reason it appears the value from the in-app help is getting carried over (and then saved into homescroll)

Originally reported in:
https://github.com/LLK/scratchjr-private/issues/461

Blocks disappear when scrolling the block area

From @chrisgarrity on February 18, 2016 14:7

Blocks other than the start and end blocks become invisible, but are still connected (visible when moving the stack), and run when activated.
A school in Dublin has been having this problem:
Tablet is Hannspree SN1AT74/HANNSpad.

Shorter set of steps to reproduce: Start new project. Drag 'green flag' start block into scripts area. Drag 'move 1 step right' block, attaching to 'green flag' block. Drag the 'script canvas' side to side. (I.e., press and drag somewhere in the scripts space where no block is.) The 'move right' block becomes invisible.

Here's a video of the problem:
https://www.dropbox.com/s/0gsa06xo001igj5/ScratchJr-problem.avi?dl=0

Copied from original issue: LLK/scratchjr-private#482

Switch back and forth between two pages timing inconsistent

Create two pages with different backgrounds (helps with observation).
On each simple script -when greenflag switch to other page.
There are pauses switching pages, but not predictable. The pauses seem to get more inconsistent the longer it runs.


Moved from LLK/scratchjr-private#221
/cc @chrisgarrity

Shared projects on dropbox won't open

From @chrisgarrity on February 11, 2016 19:21

Sjr projects on Dropbox open in ScratchJr on iOS, but don't open on android - it doesn't know which app to use.
Google drive links also open on iOS - not tested on Android yet.

Copied from original issue: LLK/scratchjr-private#480

Block layering is wrong

From @chrisgarrity on March 26, 2015 19:19

pull out a couple of blocks and position them so that they're overlapping.
pull out another block and position it to connect to the block that is behind the other. The block connects but stays in front while the block it's connected to stays behind. Probably it should be as if the whole stack was moved and it all comes to the front. In the example below the green flag is on top of the pink blocks, but connected to the blue ones behind.

screenshot_2015-03-26-22-05-56

Copied from original issue: LLK/scratchjr-private#220

Cannot drag 15+ block script after it has overflowed the script pane

From @chrisgarrity on July 8, 2015 19:14

It seems to be a combination of length (short scripts are always draggable), and whether or not it has overflowed the script pane. But when it happens you can't drag the whole script around. You can still select something in the middle and drag the end off.

Copied from original issue: LLK/scratchjr-private#254

Make full-screen mode actually full-screen

From @tmickel on November 18, 2015 19:21

Right now the project is framed in a black area. Paula did a UI test with another app where the green flag/exit buttons were just over the project, and thinks having it actually full-screen would be a great improvement

Copied from original issue: LLK/scratchjr-private#388

Projects shared by email sometimes do not open (Android and iOS)

Investigate problems with shared projects in the default Android mail app.

A user in France reported:
My problem was that I was using the standard email application android and it seems that the latter did not join the attachment.
Now I use Gmail app and it works correctly. I can share, save and duplicate my projects.

It's not clear whether the problem was with the sending or receiving.

Severe camera issues on Nexus 7

From @tmickel on November 5, 2015 18:54

~Camera is upside down issue
~Camera can cause entire app to break - paint editor stage gets stuck on the screen

Copied from original issue: LLK/scratchjr-private#373

Sprite orientation does not reset on Green Flag

From @ChampikaF on November 11, 2014 19:54

This might require some design discussion - since it's works similarly in iOS.

When clicking the green flag the sprite's location (x, y) and size are all reset (in lieu of any initialization)...however orientation does not get reset.

Copied from original issue: LLK/scratchjr-private#119

Save to USB/SD

From @tmickel on September 8, 2015 19:21

See email "Re: ScratchJr for 50,000 Android devices?"

In Android we could allow saving files to the SD card. This might be easy to implement (just need to add the permission and button), just need to consider the design.

Copied from original issue: LLK/scratchjr-private#275

Refactor default project naming

From @tmickel on November 18, 2015 19:25

Currently new project names are generated by reading the existing projects' in the lobby's DOM. The method for getting "Project 1", "Project 2", etc. involve string operations - not nice for localization. I've temporarily put in a "project prefix" (Project, Proyecto, etc.) but it would be good to rethink this entirely for a more "localizable" way

Copied from original issue: LLK/scratchjr-private#390

Save project to cloud storage

We have had many requests for people being able to save their projects to dropbox/google drive etc. We'd also need to be able to open projects from cloud storage.

Performance - uploading a project to ScratchJr from email doesn't immediately appear in My Projects even if the upload was successful

If you upload a project to ScratchJr from an email, at first it doesn't show up in the My Projects list, but if you wait a few seconds or you go to another project or create a new project and then return to the My Projects list, the project will be there (works, scripts are there, etc.).

Steps to repro:

  • On an iPad (I used Bacon)
  • Open ScratchJr
  • Open Gmail (it should be set to the lifelongkindergartenipad gmail account)
  • Open an email from Chris Garrity entitled "Fwd: An error occurred with project..."
  • Scroll to the bottom of the email and click on the attached project file
  • It will ask you to choose what App you want to use to open it, choose "Copy to Scratch Jr"
  • The ScratchJr landing page should load, blue background with the cat and two icons on it
  • Click on the home icon
  • You would expect to see the project corresponding to the project file from the email, but note its absence initially
  • Click on a project and then the home icon to return to My Projects OR wait for a few seconds
  • Note that the project you downloaded is now there. The project appears with a blue ribbon around it to signify it is a "new gift".

You can repeat the above steps, but with ScratchJr closed initially (and let it get opened automatically when you choose the "Copy to ScratchJr" app), and the new project should show up almost immediately/ immediately once Scratch loads and you click on the Home icon. So, this seems to be a performance issue when the ScratchJr app is already running when you download the file from the email.

Revise language selection UI

People are confused about which language is actually selected. Switching the color of the button is not distinct enough, and the fact that the language prompt changes language is too subtle.
It needs something more to designate the currently selected language.

An error occurred with project named in Japanese

Hello ScratchJr Team,

I found the problem related to Japanese.

When I shared the project with email, an error occurred.
The error occurred when I tapped the attached project file.

I attach snapshots and forward a mail with the problem.
The project named in Japanese.
I also noticed that the file name changed to null.
In spite of error occurs, the project has been able to share without a problem.

I can share the project but I hope to resolve this problem.

Best Regards,
Junko
err1
err2

Here's a link to the .sjr file in Google Drive as github won't let me attach it:
https://drive.google.com/file/d/0B3CvH__nkBJNMkFtWnEtb3NMSjlFX0xQWjVxRThsUTJXQ3JZ/view?usp=sharing

Photos in shapes in thumbnails not cropped right

From @tmickel on December 4, 2015 14:49

"I found an iOS bug. To see use the camera in a shape (like the face of the girl), then make the girl as big as you can. Exit the project. The thumbnail is not masking the photo to the fill in area."

Possibly related to the code merge

Copied from original issue: LLK/scratchjr-private#400

Cannot rearrange sprites

Sprites are listed in the order created. There is no way to reorder them. Pages can be reordered, so why not sprites?


Moved from LLK/scratchjr-private#165
/cc @chrisgarrity

Transition ScratchJr-iOS to use WKWebview

From @tmickel on February 3, 2016 16:58

Currently we're using UIWebview. WKWebview is supported on iOS 8+, which according to our analytics is at least 80% of iOS users. Switching to WKWebview will provide better performance, a much nicer JS-native interface, and hopefully less bugs.

Copied from original issue: LLK/scratchjr-private#466

Sharing - switch to native code

@tmickel commented:
Sharing code was originally written to exist only in JavaScript. The .zip is assembled in memory. For projects with large amounts of custom sounds/photographs, this can cause a lot of memory to be used - sometimes the tablet is slow or crashes. Moving this to native code would allow the zip to be assembled on-disk and be done much faster.
Some research:
https://github.com/ZipArchive/ZipArchive would probably make a nice replacement for JSZip on iOS.

Android appears to have a native SDK for zip/unzip, example here: https://stackoverflow.com/questions/7485114/how-to-zip-and-unzip-the-files - It might require we use the "external storage" permission for the unzip process, not sure...

I think the nicest strategy here will be to maintain the JS code for 90% of the logic of zipping the project. We should provide a native/on-disk replacement for JSZip only...

The JS code for collecting and sorting assets is relatively solid at this point, the only problem is the memory issue...

Originally https://github.com/LLK/scratchjr-private/issues/379

Add gear link from the splash screen

Splash Screen

  • Many users also requested a path to 'Settings' via the Splash Screen. The addtional icon in the upper right corner is a quick way to get directly to the Settings Tab.

r2_scratchjr-splash-settings

Sprite outline does not resize in the scripts pane on exiting the paint editor

If you draw a shape, then exit the paint editor the shape outline does not get resized.
Click on another sprite, then back to the first, and the outline is resized.
It doesn't happen on predefined characters, or if you start with a predefined character.

The screen shots are of the editor after exiting the paint editor, and then after clicking on a different sprite.
screenshot_2015-07-01-13-39-07
screenshot_2015-07-01-13-39-18


Moved from LLK/scratchjr-private#244
/cc @chrisgarrity

User created backgrounds are not named 'background' if the name has not been set

Open the paint editor and create a background. Open the background library again and select the user created background. It should have the name 'background', It always shows the name of the last selected background. So if you select one of the named backgrounds, then go back to a user created one, it will still show the name of the previous background.


Moved from LLK/scratchjr-private#192
/cc @chrisgarrity

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.