[GCompris-devel] Plugin system for rcc

Holger Kaelberer hk at elberer.de
Thu Sep 24 19:14:55 UTC 2015


Hi,

some thoughts:

On 23.09.2015 01:56, Bruno Coudoin wrote:
>
>
> Le 22/09/2015 00:02, smirnoff.al at gmail.com a écrit :
>> IMHO, the matter the fact, that GCompris loads languages and  other resources direct from internet is quite unusual for kde application.
>
> Hi,
>
> Sure, we don't plan to change the way GCompris will be packaged on
> GNU/Linux. We are looking at the specific issues that comes from the
> mobile world and that we have to address.
>
> We won't find a universal solution to this anyway and we have to be
> flexible enough to handle the different types of installations. We could
> try to categorize the different use cases :
>
> - desktop: we already support this
> - mobile (disk constrained): where to draw the line between shipped
> content and online one and how to maintain the online side.

- One possibility for 'the line drawn' was already mentioned: Ship everything that is included qua 
part of the demo version and make downloadable what is only part of the in-app purchased 'full' version.

- I agree with Johnny, that we should ship some activities, so that the user can get some idea of 
what it is about. If I, as a user, would install something from the play store that provides only 
the bare executable without any activities, I would uninstall it again right away.

- Maintain the online activities: As Johnny said already, we'd need more metadata (than the current 
Contents file), to allow the user to select between the available activities.

For the status quo (i.e. regarding all activities we have currently in GCompris) we have several 
options, let me name two:

1. Keep minimal information about downloadable activities also packaged, to be able to present an 
overview of what there is available for download. 'Minimum' might then mean per activity 
ActivityInfo.qml + <activity>.svg. This would even allow to present the user a complete menu with 
the option to provide a 'u wanna download'-dialog when an activity is selected. (What we discussed 
at Randa, Bruno). Upstream/online we'd hold the complete rcc, that would be downloaded an registered 
on demand.

2. Have no information about downloadable-only activities packaged and provide them only online as a 
kind of a more complex 'Contents' directory, maybe providing the minimal information from 1. This 
would mean that a user *must* have online access even for seeing what there is available. This has 
the charm of being completely independent of the base application and could also be used as kind of 
a 'GCompris activity store' (you named it, Johnny ;-) which could be filled and extended 
independently of the base application shipped in the play store. This goes a bit beyond our current 
requirements, though.

For both options we'd probably need to maintain some core API versioning PLUS make activities define 
min (and max?) required API versions. Even for a scenario like 1. you can easily imagine cases that 
would lead to runtime errors (like new activities are put online and an old version of the GCompris 
app tries to download them. Or: we change the core API in a non-backward compatible way -> old 
activities already downloaded don't run in new version of the base application.)

> - offline (may be mobile, desktop or kiosk): need to provide a way to
> provide a dataset even for mobile users having no net access.

- Online full version: Kind of a full package for the target platforms in question. What about 
defining your 'full version' on the app store like that, Bruno? I know Android is somehow 'bound' to 
Google's play store, but let me just raise the question of whether there are no alternatives to this 
company's commercial distribution system with its strange constraints? Personally I've never used 
another android store, although I often install apk from other sources. For special use cases (like 
maybe school environments) it might be an option to simply install a full apk from gcompris.net or 
so and thus become more independent of foreign contraints.

No idea, how things work (or don't work) for ios mobile devices.

- Offline installation: Besides directly *installing* a full package, one could also directly copy 
actvities onto the devices. We already support such a manual install directory for the voices meant 
for copying directly an rcc-file via USB or so to be read by DownloadManager. Like that we could 
also support manual installations of activity rcc-files.

>
> We also have to consider the update scenarios, either full application
> or only activities.

Good point and kind of an extension of the current requirements for size limitations of mobile 
packages. As for above 2. some kind of API compatibility checks would be necessary for that. Maybe 
only by maintaining different activties/<api-version>/-directories upstream.

Holger

>
> I don't have the solution, just trying to clarify our needs.
>
> Bruno.
> _______________________________________________
> GCompris-devel mailing list
> GCompris-devel at kde.org
> https://mail.kde.org/mailman/listinfo/gcompris-devel
>


More information about the GCompris-devel mailing list