User:Dcecile

From KDE TechBase

(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?"

tutorial directory

KDE glue

what defines a KDE app?

  • localization
  • consistent menus, accelerators, toolbars, chrome, icons
  • transparent file access
  • simple, cross-platform build system
  • shared technology
  • testing
  • documentation
  • 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

everyday tech

  • 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?
  • KPixmapCache:
  • 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
    • API: main page does articulate and link to usage
    • status: the tutorial is bare right now

advanced

  • job progress
  • D-Bus
  • GetHotNewStuff2

PIM stuff

  • Khalkhi: contacts framework
  • KitchenSync
  • syndication: using syndication feeds

games

  • GGZ
  • graphics framework
    • QGraphicsView, custom sprite handling...
  • physics
    • Step, Eigen2?

other languages

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

mystery tech

  • Soprano: pluggable framework for RDF storage and parsing
    • API
    • how does an app dev use this?
  • DNSSD: discover services on the network or announce the availability of a service provided by your application
    • API: the hyperlinks aren't working :(