[hemmerling] Rapid Software Application and GUI Prototyping 2/3 - Building Blocks


    • “Kostenloses Unterrichtsmaterial zu Programmierung und digitalen Themen”.
    • “App Summer Camp” in Hamburg, for pupils of 13 years or older, 2018-07-25 - 2018-07-27.


    • “Alice is an innovative block-based programming environment that makes it easy to create animations, build interactive narratives, or program simple games in 3D. Unlike many of the puzzle-based coding applications Alice motivates learning through creative exploration. Alice is designed to teach logical and computational thinking skills, fundamental principles of programming and to be a first exposure to object-oriented programming. The Alice Project provides supplemental tools and materials for teaching using Alice across a spectrum of ages and subject matter with proven benefits in engaging and retaining diverse and underserved groups in computer science education”.
    • Alice is a Java application.
    • No free online service, but download offer of executables for Windows, Linux, MacOSX.


  • Google "blocklanguages" - ”'BloP', a development environment for block languages”.
    • blockC (v1.0).
    • Animated Sort Language (v.1.0.2).
    • blockLogo (v1.0),

Code.org - App Lab

CoSpaces Edu

  • The commercial online service CoSpaces Edu with free basic plan :-).
    • “Make AR & VR in the classroom”.
    • You can register as “teacher” and as “student”, I suggest to register as “teacher”.


  • The commercial Kahoot! with some free plans.
    • “Choose your account type - Teacher, Student, Private, Professional”.
    • I registered as “Professional”, by my own fault :-(.
      • Don't register as “Professional”, as there is no free plan :-(, and “Host kahoots for up to 20 players”, which is unwanted for single players :-(.
      • Result:: “We noticed you were so close to signing up and accessing e-learning features that engage remote workers! Kahoot! Basic You can get started for free by signing up for Kahoot! Basic. You don’t even need a credit card. Just click Continue for free, and you’ll access a free plan with basic e-learning features. With Kahoot! Basic, you can”:
        1. Help remote teams stay connected by playing ready-made trivia games with up to 10 players.
        2. Create and play self-paced e-learning challenges with up to 10 colleagues.
        3. Create and host live games for up to 3 colleagues.
    • Kahoot! "Schools / Plans" - Free plan “Basic” :-).
  • Kahoot! Creator - The online editor.

MIT App Inventor ( for Android )

NEPO by Open Roberta


LEGO Mindstorms


Hardware & Software & Training

fischertechnik Calliope



Pocket Code



  • Massachusetts Institute of Technology "Scratch" - “Imagine, Program, Share”.
  • Online IDE by Internet browser Massachusetts Institute of Technology "Scratch", Online IDE - Requires “Adobe Flash” plugin :-(, as of 2018-02.
  • Massachusetts Institute of Technology "My Stuff" - Repository of your own private projects.
    • The “My Stuff” page lists all private and public projects.
    • Each project has its own project page.
      • Project owners ( who own the account by which the project was created and uploaded to the Snap! cloud ) may share and unshare projects.
      • A shared project has a valid global project page URL ( e.g. “http://scratch.mit.edu/projects/xxxxxxxxx/”, while “xxxxxxxxx” is the project number ), which is visible in the Internet.
      • Private projects have a valud project URL just for the project owner.
      • From the project page, you may edit a project by the button “See inside”.
      • From the Scratch editor, you may switch to the project page by the button “See project page”.
      • Shared projects may be loaded in the Scratch! editor by anybody ( even without beeing logged in at Scratch ).
      • User experience ( UX ):
        • You may run Scratch applications in a fullscreen mode by the #fullscreen tag, e.g. “http://scratch.mit.edu/projects/xxxxxxxxx/#fullscreen”. But any user may switch to edit mode.
        • So there is no “Execution URL”, by which the application may just be started. So a Scratch application may not be experienced as a true “standalone Internet service application”.

Scratch 3.0



Scratch Extensions

Online Service

    • “Open Extension File”.
    • “Open Extension URL”.

Scratch Extensions Browser Plugin




The online Tools


Additional Online IDEs

Scratch to Snap!, a free Online Service

Snapp - Generator for standalone Executables, a free Online Service

  • Turn your project into a standalone executable! First “Export project” and save the resulting XML file. Then go to
    • Snapp - “A tool that generates standalone executables from Snap projects”, target Win32, Win64, Linux32, Linux64, MacOSX32, MacOSX64.

Developers & Downloads

Education, Training


My own "Snap!" Project

Some other Tools and Frameworks

Snap Extensions

Snap Apps
    • “programming = algorithm design + coding variables. conditionals. custom blocks. data types. parameters. iteration. recursion”.
    • “Snap Apps are open source extensions to Snap! from UC Berkeley for teaching introductory computer science at high school and university”.
Monash BlockBooks


Tips & Tricks

  • Saving of project in the browser by “File / Browser / Save as” is limited.
    • Error message “Save failed:NS_ERROR_DOM_QUOTA_REACHED: Persistent storage maximum size reached”, with a project size of 5182 kBytes.
  • Saving a project in the cloud by “File / Browser / Save as / Cloud / Save” saves it as private project.
  • If you look for the “FOR” loop, ect:
    • Scratch Forum, "Snap!" Thread, #3793 of 2018-04-05 - “In the Snap! menu bar, in the file menu, choose “Import tools” and that will get you FOR and a bunch of other things used in the manual. Since these are written in Snap! itself, you can edit them to learn how they're written”.
  • If you want to build HTML-alike pages, where you may move from one page to another, by selecting a menu item, i.e. by a mouseclick:
      • Answer #1:
        • The easiest way to do this will be to have sprites for the links so when a sprite is clicked you can make an appropriate broadcast. Assuming the pages are static rather than dynamic (an individual page doesn't change) you can have these as backdrops which you switch to. Using a variable for the name of the page you want to switch to will be better than a broadcast for every page - eg
          • whenIreceivechange-bd
          • switchbackdroptonext-bd #this uses the variable
        • I'd include the ‘links’ in the backdrops but then place a rectangular sprite in front of each link with a ghost effect so you can still see the link but can click on it. So for each page you then need to know where to place the links so probably store that information in lists.
        • There are various little problems to be solved along the way but that should get you started. Remember a sprite-clicked script can react differently according to the current backdrop.
      • Answer #2:
        • You could use sprites with like arrow costumes, or when X (let's say left) arrow pressed then broadcast “score page” or like when settings button clicked broadcast “config”.
        • And equip every sprites except the sprites that appears in the menu with this:
          • whenIreceivescore page or config.
            • repeat25
              • changeghosteffectby4
              • hide
              • cleargraphiceffects
        • equip the sprites that appears in the menu like this:
          • whenIreceivescore page or config.
            • wait0.5secs
            • setghosteffectto100
            • show
            • repeat25
              • changeghosteffectby-4
        • …and the backdrop with this
          • whenclicked
            • switchcostumetohome
          • whenIreceivescore page or config.
          • repeat25
            • changeghosteffectby4
            • switchcostumetoscore page or config
              • repeat25
                • changeghosteffectby-4
        • Note: Ghost effects are just a fade effect so that it isn't a brutal ugly switch. You can just easily remove all of them..
      • In Scratch (and Snap) there is no prebuilt concept of multipaging. You must esplicitely make the content of the next page visible and hide the content of the previous page by one of the following strategies:
        • hide all the elements of the previous page (HIDE block) and show all elements of the next page (SHOW block) when they receive a message from the clicked button of the previous page (BROADCAST/WHEN I RECEIVE blocks)
        • move the background of the next page (a sprite) to the foreground (GO TO FRONT block, so that it will cover all the elements of the previous page) and THEN move all the elements of the next page (sprites) to the foreground (again GO TO FRONT block, so that they will show up on top of the page) when they receive a message from the clicked button of the previous page (BROADCAST/WHEN I RECEIVE blocks)
      • If you like multipage applications I would suggest using App Inventor, that is based on blocks like Scratch/Snap but has a “screen” component.

Other popular vintage Uses of the Name "Snap!"


StarLogo TNG, StarLogo Nova


Forums, Newsgroups

When this document changes ! Site Navigation ( My Business ! My Topics ! Imprint / Contact ! Privacy Policy ! Keyword Index ! ! Google+ Publisher "hemmerling" )

en/prototype02.html.txt · Last modified: 2023/11/30 21:56 (external edit) · []
Recent changes RSS feed Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki