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

Events

    • “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

    • “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.

BloP

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

MIT App Inventor ( for Android )

NEPO by Open Roberta

Software

LEGO Mindstorms

Calliope

Hardware & Software & Training

fischertechnik Calliope

Literature

Resources

Pocket Code

Scratch

Software

  • 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

Literature

Videos

Scratch Extensions

Online Service

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

Scratch Extensions Browser Plugin

Resources

Resources

Snap!

The online Tools

Snap!

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

Videos

My own "Snap!" Project

Some other Tools and Frameworks

Snap Extensions

Snap4Arduino
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

Tools

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!"

Resources

StarLogo TNG, StarLogo Nova

Resources

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: 2018/12/09 23:14 (external edit) · []
Recent changes RSS feed Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki