package tiny_appkits

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

tiny_appkits

What applications share, written from scratch for teaching: the engines under the Tiny applications, one idea per module, each interface explaining its idea. None of them draws with the Elm Playground: a document, a sheet, a drawing, a model are values, and the application draws them (the kits that draw, a File menu, compound documents, the browsers' drawing, are the Playground's, beside the apps they help). They stand on tiny_libs and tiny_languages.

Each is a library of its own, named tiny_appkits.<name> outside this repository, for example in a dune file:

(executable
 (name main)
 (libraries tiny_appkits.appkit_sheet tiny_appkits.browser_layout))

The libraries are unwrapped: their modules are used by their own names, Sheet.set, Box_layout.layout.

Documents

A document as a value, its undo and its clipboard (tiny_appkits.appkit_document):

The office

The spreadsheet's engine (tiny_appkits.appkit_sheet) and a sheet drawn in a rectangle (tiny_appkits.appkit_sheet_view); diagrams whose geometry is a sheet (tiny_appkits.appkit_diagram); text with looks, laid out on pages (tiny_appkits.appkit_richtext); a paragraph broken into lines, greedy or by Knuth and Plass (tiny_appkits.appkit_typeset); a presentation as an outline (tiny_appkits.appkit_slides); NLS's tree of statements (tiny_appkits.appkit_nls):

Pictures and drawings

MacPaint's bitmap (tiny_appkits.appkit_paint), Deluxe Paint's colour numbers and palette cycling (tiny_appkits.appkit_indexed), MacDraw's figures (tiny_appkits.appkit_draw), a 3D modeller's scene (tiny_appkits.appkit_modeler):

CAD

Sketchpad (tiny_appkits.appkit_sketch), AutoCAD (tiny_appkits.appkit_cad), SketchUp (tiny_appkits.appkit_pushpull):

Text mode

The editors as full-screen programs, vi, Emacs over its Lisp, Turbo Pascal's IDE (tiny_appkits.appkit_editor); a full-screen game (tiny_appkits.appkit_tui); the teletype's games (tiny_appkits.appkit_teletype):

Programming by blocks

Where each block lies and where a dragged stack snaps (tiny_appkits.appkit_blocks):

A web page's layout

Blocks and lines, tables, CSS's box model and flexbox, and the way back from a point to a link (tiny_appkits.browser_layout):

Time, the sky, money

iCalendar and vCard (tiny_appkits.appkit_pim), a planetarium's astronomy (tiny_appkits.appkit_astronomy), a checking account (tiny_appkits.appkit_money):