[plt-scheme] Help writing non-trivial applications.
>
> What is the best way for someone to learn to master the GUI aspects of
> PLT-Scheme?
>
> Obviously example code is helpful, and the 'cookbook' stuff is great.
> But there seems to be a big gap between the excellent technical
> documentation and the kind of incremental tutorial that engenders
> understanding and mastery.
I'm about to write my first larger, non-trivial real-world application
in PLT scheme as well---very slowly, since I've got a rather demanding
day-time stop. Of course, I don't have that much experience to give you
any real advice, but for your interest, here is what I'm doing:
- I strictly separate the user-interface from the underlying
application. (I'm not really strictly adhering to e.g. the
Model-View-Controller design pattern that Apple recommends, but at
least strictly separate backend from frontend.)
- I code the whole backend first. (This includes writing/saving to
disk and all functions that may later be assigned to menu items or
buttons---simply everything the app should be able to do except GUI
user interaction.)
- I write a test suite for each module while I write the module.
(SchemeUnit works fine for me.)
After this has been done, writing a GUI based on MrEd should be fairly
trivial. My personal experience with MrEd so far is that it is not a
very simple API and somewhat makes the impression of having been
designed and augmented on-the-fly whenever something was needed for the
DrScheme IDE. For example, working with snippets and fonts can be
tricky. But the tricky part consists mainly in finding the right
reference in the online help. I agre with the one who said that the
best way to get into using MrEd is to just do it. MrEd is fairly
advanced, and the only things I'm personally missing in it is multiple
modifier keys in menu shortcuts (that are also visible in the menu) and
a general-purpose multi-column listbox.
Sorry if all of this sounds too trivial and is no news to you. Some of
the pros have already given you more advice.
Best regards,
Erich