Extending Extensions
Exploring Snap!'s Library and Extension Mechanisms to Create Custom Extensions
Presented by:
Stefano Federici
I teach Computer Science at the university of Cagliari. My main research interests are making Computer Science as easy as possible to learn and making all school subjects more engaging for students through coding. I'm the creator of the _BloP _Snap extension.
No materials for the event yet, sorry!
The extension and library mechanisms of Snap! offer significant opportunities to enhance and customize the user experience. In this talk, I will explore the power and flexibility of these mechanisms by recreating the BloP extension using only the "primitive" block, without modifying the software's source code. The BloP extension introduces advanced features for managing the visibility of block categories, blocks, sprites, and initialization scripts. This allows users to create “safe” IDEs for their custom block-based programming languages, ensuring they do not accidentally impair their language by removing vital sprites and scripts or changing the definition of language blocks. For this purpose, the “ide_” group of JavaScript functions within the “primitive” block will be primarily used.
The "primitive" block is designed to provide an effective method for creating extensions that can deeply interact with the Snap! environment without compromising the software's stability. I will demonstrate how the available primitives can replicate most of BloP’s functionalities and what enhancements are needed to allow new environments for block-based programming languages to be easily and safely recreated within Snap!.
The final extension does not improve upon the features already offered by previous versions of the BloP extension, but it provides significant insights into the design of the Snap! extension mechanism and, more importantly, it can be used inside the online version of the Snap! IDE.
- Date:
- 2024 July 31 - 15:08 CET
- Duration:
- 7 min
- Room:
- Online Room 1
- Conference:
- Snap!shot 2024
- Type:
- Lightning Talk