(unrelated development schedule: Schedules/KDE4/4.0_Release_Beta_Goals)
every part of the KDE libraries needs tutorial documentation. this is a survey. (note: the lists of modules could be taken from a release doc or something.....) tutorials should answer: "why would I use KDE over just QT?"
what defines a KDE app?
- consistent menus, accelerators, toolbars, chrome, icons
- transparent file access
- simple, cross-platform build system
- shared technology
- open source
- inviting for new users and contributors
the next step is showing prospective contributors (and active ones wanting to learn more) how to use the glue
- Hello World: this is the simplest KDE app; proves your dev environment is working and gives you confidence to continue coding!
- There is a dialog tutorial; why not do a single source-file KMainWindow app? (just needs to include the moc at the end)
- CMake: how to create your own app; and plug in other libraries
- the first apps will introduce how to do basic stuff (and show standard KDE formatting)
- can point to CMake doc itself
- should document KDE CMake macros and common conventions
- KActions: setting up menus, toolbars, and accelerators
- Internationalization and localiazation
- QT Designer: designing a widget-based interface
- KConfigXT: persistent app config data. making the settings dialog. using the settings
- KIO: tranparent file access. how does it work with the QT libraries?
- ThreadWeaver: performs "jobs" that can be scheduled on non-UI threads
- API: can be hard to navigate; there are working examples in the source tree though
pillars of KDE4
- Solid: getting info about hardware
- Phonon: use audio and video in your app
- API: gives a good quick overview of the library; has an undocumented full example
- Strigi: find data. also how to let strigi use your filetype
- Plasma: creating a new desktop paradigm
- Nepomuk: relation to Strigi? file metainfo, relationships
- API: good description of Nepomuk's goad; but how does it fit with the user's desktop? should devs add all metainfo to the files they use? what happens when the file moves or gets transfered?
- Decibel: connecting to other people
- Akonadi: communcations storage backend
- Oxygen: devs need to know how to access all of the icon and sound that this team has put together. (and maybe know how to give feedbacks or make commissions.) there should be doc about doing for yourself what the Oxygen team does
- Sonnet: automatic language detection and spell-checking
- job progress
- Khalkhi: contacts framework
- syndication: using syndication feeds
- graphics framework
- QGraphicsView, custom sprite handling...
- Step, Eigen2?
- ruby, python, EMCAScript, java, c#
- i have a feeling that this should be where new devs should be directed first
- assuming its dead simple to get running with the language on your OS, it should be THE starting place
- is there any reason to dissuade devs from using these languages?
- commits to KDElibs are in C++
- performance issues?
- unstable APIs?
- incomplete APIs?