Addons development
an other way to bring value to OpenOffice.org
IRC #ooonlc Speech
30/04/2005

Topics

Who am I ?

DicOOo and FontOOo Stories

Lessons I learned

Who can be an addon contributor ?

What is an addon ?

Organizing addons

Tools for developpers

Deploy Addons to users

Addons that could be developped

Who am I ?

34 years old, maried, four children

Living near Grenoble – France

Grenoble is in french Alpes

Around 80 km from Lyon, 600 km from Paris

Discovered OOo 2 ½ years ago

Involved in OOo macros for 2 years

Author of various tools

OOoConv, DicOOo, FontOOo, OOoWikipedia ...

Software engineer

In a previous life :

PhD of geomechanics at 3S Laboratory - Grenoble

« Robustness and consistency in rheological and numerical modelling in geomecanics »

Favorite color : blue

Paris

Grenoble

Lyon

Spain

Italy

Switzerland

Germany

Belgium

Me

DicOOo and FontOOo Stories

DicOOo is an autopilot that allow an easy installation of dictionaries for end-users.

Due to licence issues, french spellchecker can not be included in OOo distribution.

Need a tool for beginners to avoid manual file editing

Installs spellcheckers, hyphenation and thesauruses

included in OOo since 1.1.1

FontOOo is an autopilot that allow adding fonts to OOo

When a user writes a document, he is not sure the reader will have the same font

OOo is shipped with beatstream familly fonts to address this issue

In the same spirit, FontOOo gives access to some other fonts

A hacked clone of DicOOo

included in OOo since 1.1.2

Both have initially been built as standalone macros

Lessons

Initally quickly developped in french community : The source code is in French !

This prevent other developpers to help you and modify/correct the code

Do not write code in your language. Use english !

Tested and debugged with the help of the community

Once the main features are more or less stable, call for help and testers. You weel be fed up with lots of bug reports and new ideas. This process should occur as soons as possible

Use OOo helpers : the community

OOo is multiplateform

The API is the same for all the supported plateform and only minor problems have to be addressed to make the addon be usable on all plateforms

Do not break OOo multiplateform features

OOo is multilingual

A simple rough mechanism can be sufficient to translate your addon before it is necessary to use advanced tools

Keep it simple so even non technical translators can translate

Call other Native-Lang project for translators

Do not break OOo multilingual feature

Lessons

A first version is not always perfect

Your addon will be upgraded : give it a versionning system

Try a self-update mechanism

Upgrading your addon should be as straightforward as installing and using it

End-user do not have to guess what the addons needs to work

Use OOo dialogs and the nice step property

Only one action on each screen to make things clear to users

Describe clearly what is needed at the current moment

Give feedback to user when doing heavy process

Standard design rules have to be applied and OOo gives tools for that : Use them

Even if your tool is nice, if it is not enough end-user oriented, it will not be used

Who can be an addon contributor ?

OOo needs core developpers

Requires skills such as C++, Java

Licencing required (LGPL, JCA ...)

Long term involvement

Prevents some developpers to come and bring features to OOo

Based on UNO bridges, a lot of languages can be used, especially with the comming OOo2.0

User can program in their favourite languages and use OOo API for internal OOo scripting with Java, Python, Basic ...

Everyone that have some tools or idea simplifying end-user OOo daily experience can develop an addon and share it

What is an addon ?

A self-contained Zip file allowing to add functionalities to OOo

The source code

An xcu file dealing with GUI integration

Other needed files (icons, images ...)

Deployable with OOo standard tools

1.x : using the command line tool pkgchk

2.x : unopkg command line tool, a GUI binding is provided

Fits OOo admin model

For one single user, put in <oooUser>/users directory

For the whole OOo install (all users), put is <oooInstall>/share directory

All is explained in the developper's guide, chapter 4 (4.7.3 for add-ons)

http://api.openoffice.org/docs/DevelopersGuide/Components/Components.htm

Organizing addons

Valuable productions are disseminated all over web sites

End users do not generally know how to install addons

Developpers need to a place to start dealing with addons

An incubator project

Reactivate the scripting incubator project ?

Tools

For developpers

For distributing to end users

Policies & Guidelines

What kind of licences ?

Coding guidelines

Correspondant for native-lang projects

Helping native-lang addon developpers submitting and joining the project

Call for translators

Reviewers, testers, feedback mechanism

Would be marvellous ...

Tools for developpers

Guidelines document for addon developpers

The SDK chapter

Some guidelines and advices

Xray

Mandatory to discover OOo API – Should be included in OOo by default

Already exists for OOoBasic and Python

Addon creator

Already exists for OooBasic in french

Standard model in all the languages supported internally by OOo

A standard empty dialog with a navigation mechanism using step mechanism

A common interface (but only as an example ;) )

Ready to translate

Deploy Addons to users

Not all development have to be included in core OOo

Only the one that are used by all users

Prefer uno packages and standalone tools

OOoWikipedia, FitOOo, LeBoolier game ...

New OOo features for deploying addons

Since 2.0, process is easy for users. The value is to be able to browse ''What's new''

What about signing ?

A repository that can be browsed

Ian did a prototype that could be a starting point

Define several levels to qualify addons

Untrusted (default)

Verified / Accepted : the main addons

Valid / very useful : additional work should perharps be done for giving it by default

As to be as simple as possible

Addons that could be developped

Remote installer of

Templates

Gallery : based on OOo2 API, galleries can be created from scracth

A deployement wizard

Install a user

Make changes

Create a zip file that can be deployed on other installations reproducing the changes

...

Seagul by Ben Bois - http://hooboo.free.fr/index.php

Laurent Godard

2005-04-09T09:11:37

Daniel Carrera