Independent native ReAction teaching examples for AmigaOS 3.2+
Plain C89 lessons for disciplined system-native GUI development
ReXamples is a focused teaching project for ReAction on AmigaOS 3.2+.
It exists to show how graphical applications should be structured when built in a native AmigaOS style using:
- ReAction
- Intuition
- BOOPSI
- standard AmigaOS event and lifecycle patterns
All examples are written in plain C89 and are intentionally designed to be:
- small
- readable
- self-contained
- resource-safe
- deterministic in cleanup
- event-driven by design
ReXamples teaches:
- how to build native ReAction windows and layouts
- how to use common AmigaOS GUI components correctly
- how to handle gadget and menu events cleanly
- how to structure small GUI programs with explicit ownership and predictable cleanup
- how to think in native AmigaOS terms instead of importing habits from other GUI systems
ReXamples does not aim to:
- imitate other GUI systems
- preserve foreign naming, structure, or mental models
- hide ReAction behind heavy abstraction layers
- teach framework-agnostic GUI design
- optimize architecture around backward-compatibility concerns
- trade clarity and correctness for clever shortcuts
Each example follows the same core rules:
- one example, one lesson
- plain C89
- native system components
- explicit ownership
- cleanup-first error handling
- event-driven structure
- clarity over cleverness
- Primary target: AmigaOS 3.2.3+
- Reference SDK: NDK 3.2R4
- Language: C89
- Recommended toolchain: vbcc
Each lesson is self-contained and focuses on one core concept.
Suggested learning order:
01_Window02_Layout03_Button04_CheckBox05_Chooser06_String07_TextEditor08_ListBrowser09_RadioChoice10_Image11_Slider12_Space13_Frame14_Menu_Basic15_Menu_Advanced16_Gauge17_TextDisplay18_ScrollableLayout19_RegisterPages20_EventDispatch
See docs/curriculum.md for the full learning path.
ReXamples is built to show not only what works, but what good native style looks like on AmigaOS:
- libraries and classes are opened deliberately
- objects are disposed explicitly
- partial initialization failures are rolled back correctly
- event handling remains visible and understandable
- each lesson stays focused on a single teaching goal
ReXamples treats documentation as part of the teaching contract.
The project documentation is organized as follows:
docs/manifesto.md— project identity and intentdocs/rules.md— core project rulesdocs/style-guide.md— code style baselinedocs/documentation-style.md— structured in-code documentation rulesdocs/curriculum.md— lesson sequence and teaching progressiondocs/review-template.md— review checklistdocs/review-blockers.md— hard rejection criteria
ReXamples is for:
- developers learning ReAction
- Amiga programmers who want a native GUI reference
- C programmers looking for small and disciplined AmigaOS examples
- developers who value correctness, maintainability, and system integration
ReXamples is an independent native ReAction teaching repository.
Its purpose is not comparison, emulation, or adaptation.
Its purpose is to teach ReAction on its own terms, in a form that is clear,
disciplined, and genuinely useful for AmigaOS development.
Contributions are welcome, but ReXamples accepts teaching-quality native examples only.
Please read:
CONTRIBUTING.mddocs/manifesto.mddocs/rules.mddocs/style-guide.md
before submitting changes.
The core lesson series 01 through 20 has been verified to build in the current repository baseline.
This is not just an intended curriculum structure. It is a build-proven native teaching series for:
- AmigaOS 3.2+
- NDK 3.2R4
- vbcc
- plain C89
The current implementation line is intentionally conservative and explicit:
- A-Forms instead of convenience-heavy construction
- explicit window methods
- explicit ownership and cleanup
- explicit event dispatch
- no foreign framework layer
- no hidden callback architecture
See docs/technical-baseline.md for the compact record of the implementation line that has actually been validated.
ReXamples uses a split-license model.
- Source code is licensed under the MIT License
- Written teaching material and prose documentation are licensed separately
This keeps the code openly reusable while preserving the written teaching material as a distinct body of work.
See LICENSE and LICENSE.docs for details.