Skip to content

Discussion thread of resources useful to the project #1

@tanhengyeow

Description

@tanhengyeow

Introduction

This issue curates a list of useful resources for the project. More categories of resources can be added over time as the project grows. An in-depth discussion pertaining to the resources can be held here too.

Scratch Extension related sources

Scratch 3.0 Extensions Official Documentation - Describes the official specification for making a Scratch Extension.


How to set up your development environment for making extensions - Detailed post describing the Scratch ecosystem, which is made up of different packages (gui, vm, blocks, and render), and how to set up the development environment to build extensions.


Scratch Extensions Wiki Page - Wiki page describing Scratch Extensions in general.


Scratch Blocks + Block Types You Can Develop and Samples- Wiki page and medium post describing the types of blocks and its different categories.


Discussion of unofficial Scratch Extensions - Post discussing how to load and run unofficial Scratch Extensions.


Creating extensions for Scratch 3.0 - Detailed post describing how to create an extension and register it in Scratch.

Note: The usage of Scratch.extensions.register(new <BlockName>()); is needed as the extension is loaded externally as an unofficial extension (not one of the extensions listed here).


Blog post detailing the process of building a Scratch 3.0 extension - In this post, it also mentioned a website (https://sheeptester.github.io/scratch-gui/) to test an unofficial extension, which we can also use.


How to Develop Your Own Block for Scratch 3.0 - Medium article on how to develop a Scratch 3.0 extension.

Note: The article describes code assuming we are developing on top of Scratch's codebase, which is why code can be referenced from the local directory e.g:

const ArgumentType = require('../../extension-support/argument-type');
const BlockType = require('../../extension-support/block-type');
const Cast = require('../../util/cast');
const log = require('../../util/log');

The extension is registered in src/lib/libraries/extensions/index.jsx, which is also mentioned in this post.

Right now, we should explore the usage of Scratch.extensions.register(new <BlockName>()); instead as we do not plan to build directly on top of Scratch's codebase.

Other projects

Machine Learning for Kids supporting Scratch 3.0 - Issues, PRs and discussion on the process of supporting Scratch 3.0 in the project.

Metadata

Metadata

Assignees

No one assigned

    Labels

    discussionDiscussing insights that are helpful to the project

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions