View Single Post
Posts: 119 | Thanked: 412 times | Joined on Aug 2008
#4
Originally Posted by qgil View Post
Hi, we want to discuss the Maemo 6 Developer Guide since the very beginning. So... what about the Table of Contents?

There is a first draft produced by the Documentation workshop at the Maemo Barcelona Long Weekend:

http://wiki.maemo.org/Developer_Guide_table_of_contents
Yes - this was the result of a whiteboarding session on the ToC.

The reason it was dropped into the page you found it was to support an ad-hoc conference call followup this afternoon whilst I was at work

Nb, at the weekend it was done without reference to any other sources and has a rationale which I presented and was hoping to flesh out a little more with others (inc Daniel).

It's not really a proposal at this point; more a strawman.

Originally Posted by qgil View Post
I must say that this first proposal clashes with the structure I had in mind after some thoughts, feedback and discussion specially with Daniel Wilms, one of the guys giving support to those developers not finding answers in the guide.

Maybe the difference relies in the fact that Daniel and I have been thinking more hours about how is the developer life in the times of Harmattan, which is actually (and hopefully) quite different than in Maemo 5 and before:

- Web Runtime comes to the rescue for starters. If you are happy with the features and simplified API it offers then you can forget about all the rest. The installation of the environment should be trivial and the fact that you are writing on top of a Linux environment is secondary.
Agreed - we did not consider this at the time.

Originally Posted by qgil View Post
- The native environment is based on Qt and the Qt tools. It has a Qt style API, meaning that in principle you need to know a lot less about the platform components than currently in Maemo 5 since you are interfacing with Qt most of / all the time. This means that all the description about the Core and Middleware can be put almost in a separate guide for platform developers and the few application developers with very special needs.
This was mentioned quite a bit in discussion but again, I agree it is not clear at all in the ToC.

The rationale here is that the guides cover the high level APIs first and only then dip down to provide reference information for material where Nokia is authoritative and deltas where Nokia has modified upstream systems.

Originally Posted by qgil View Post
- If you are developing in plain Qt there is already great documentation at http://qt.nokia.com/doc/4.6/index.html including tutorials and examples. No need to replicate that, but there will be a need to explain why and when makes sense to use the own Maemo 6 application framework (the dui* libraries on top of Qt.
Yes, the idea of linking out to Qt was emphasised - and Qt was identified as an example of best-of-breed.

Originally Posted by qgil View Post
- There will be application developer SDK AND platform development SDK as separate tools. The current Scratchbox/complicated setting will be promoted for platform development only. Application developers will be directed to specific tools easy to install etc for Web Runtime and Qt native development.
OK - so not being aware of this at the weekend we couldn't include it.

Originally Posted by qgil View Post
So in practice the broad schema of the ToC could be:

Book 1: Maemo Application Development

- Maemo 6 developer overview

- UI Guidelines

- Web Runtime
-- What can you do
-- HowTo
-- Examples of main use cases
-- Tools

- Native development
-- Qt intro + links to Qt documentation
-- Maemo Application Framework
-- Maemo API (each subsection has intro, examples, link to API docs)
--- Multimedia
--- Connectivity
--- (etc)
-- Tools

- Testing & QA

- Distribution

---------------------------------

Book 2: The Maemo Platform
(less urgent to define)
OK, will review and comment

The idea was to do something 'unconstrained' to see what useful things came out and then to merge that into previously developed ideas so this thread can start that (although a little earlier than anticipated)


One thing that we did provide was a separation between 'setup' and 'coding'.

Setup is the first part and covers the none-code-cutting flow from sdk (or whatever) installation through various resources including mechanics of our compile/build and maemo packaging (acknowledging that windows devs will find this v. new).
Then on to the delivery options (consider how in windows you download Oracle from Oracle.com and yet in our world we get MySQL from fedora.org or debian.org) so we use Ovi and Maemo Extras for this.
I also wanted this to introduce test (and debug?) tools and community QA processes.
Finally to provide additional reading (UI/UX etc) and reference info or links (somewhat embarrassingly we forgot this during the weekend )

The 2nd part was loosely based on the platform SW architecture (which we don't have yet so it was hard to use as a basis so I stuck with random examples).

The key messages here were:
* Present the API the dev will hit first, first (eg Qt); then move on to lower levels.
* Document the APIs
* Provide "best practice" guidance (for a concrete example of the mitigated risks here see the FM radio / microphone issue which I *think* would have been avoided although it's an extreme case)
* Provide sample code for everything (nb, unit testing code could possibly be re-used if you thought about it early enough)

OK, last thing we(I) wanted to see was a consolidation application:
When you get within 200m of a friends house a sound or video would play and you'd send them an SMS or start a VOIP call depending on whether you tilted the phone left or right... or something

The point clearly is to have a useless but runnable application that shows *integration* of many of the platform capabilities.

HTH

Last edited by lbt; 2009-12-10 at 22:43. Reason: hit post instead of preview
 

The Following 7 Users Say Thank You to lbt For This Useful Post: