you touch the topic quite well: it’s an architectural question. be aware that apps where invented to have a sell-able portion that is detected as such by a non-technical because of its appearance as an icon. but it involves a special structure as you point out: you integrate gui and power managment, alarm and calendar. if you take a look at current apps you see a incredible bad design of a mix of different level of abstraction. i would like to prevent that.
i would like to have a design where function (alarm managment, power managment) and gui are strictly and cleanly separated. that introduces problems for marketing because nobody would pay 5$ for something that is not even visible in his launcher. but are not forced to follow a marketing architecture.
i would say the kernel is the cellar, the basement is user space daemons, the roof is the gui…
the kernel may drive network devices, input devices and such. as you say: phonecall handling (and all modem handling) may be handled by a daemon. even network configuration is user-space and not kernel. exactly network handling is very, very specific on a mobile phone (failure is expected). you have to hand over between all different devices with no interruption for the user. dhcp, dns, routing, … NM cant do that reliable as of today. developer have to rethink the way they implement stuff if failure is the normal case. and the story goes on for higher-level stuff like contacts or even media. you /need/ a central contacts database to gain an integration between phone, email, chat and on.
so i would like to have a solution for the topic with a clear api that can simply be used by a gui program.
you name it: there is alot to do on top of what a desktop environment could provide. i think the road coming from a desktop environment like gnome down to a mobile phone is long and you wont make it in one and a half year (other projects already proofed that
).
instead if one provides the groundwork and define common APIs its much simpler for the community to provide GUIs on top. and a look into other solutions isn’t bad. android has alot nice design decisions (and bad ones as well) that can help to understand what to do…