~ubuntu-branches/ubuntu/raring/grilo/raring

« back to all changes in this revision

Viewing changes to doc/grilo/overview.xml

  • Committer: Bazaar Package Importer
  • Author(s): Alberto Garcia
  • Date: 2011-07-02 13:48:46 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20110702134846-u10hi90nwf6wf3v0
Tags: 0.1.16-1
* New upstream release.
* debian/{grl-inspect.1,libgrilo-0.1-0.manpages,libgrilo-0.1-0.install}:
  use manpage shipped by upstream.
* debian/libgrilo-0.1-0.shlibs: new API, bump shlibs to 0.1.16.
* debian/copyright: Author(s) => Authors.

Show diffs side-by-side

added added

removed removed

Lines of Context:
8
8
 
9
9
<para>
10
10
Modern media player applications enable users to consume content
11
 
from various service providers, both local and on-line: Youtube,
12
 
Jamendo, Flickr, SHOUTCast, UPnP are a few examples of this trend.
13
 
</para>
14
 
 
15
 
 
16
 
<para>
17
 
Creating powerful applications that are capable of integrating all
18
 
these services is a time consuming task that requires to invest
19
 
a lot of effort not only in coding but also in learning about all
20
 
these services and the particularities of each one.
21
 
</para>
22
 
 
23
 
 
24
 
<para>
25
 
Unfortunately, applications that already implement support for
26
 
some of these services do so in a way that is application-specific,
27
 
disabling the possibility to reuse this code directly in other
28
 
projects. This means that other applications out there have to do all
29
 
that work again if they want to integrate the same services.
 
11
from various service providers, both local and remote: Youtube,
 
12
Jamendo, Flickr, SHOUTCast or UPnP are a few examples of this trend.
 
13
</para>
 
14
 
 
15
 
 
16
<para>
 
17
Creating powerful, modern media applications that integrate content
 
18
from multiple services is a time consuming task that demands 
 
19
a lot of effort on various fronts:
 
20
<itemizedlist> 
 
21
  <listitem>Learning all the APIs involved.</listitem> 
 
22
  <listitem>Learning and integrating all the required technologies.</listitem>
 
23
  <listitem>Abstracting the differences among content providers.</listitem> 
 
24
  <listitem>Maintenance.</listitem>
 
25
</itemizedlist> 
 
26
</para>
 
27
 
 
28
<para>
 
29
Unfortunately, applications that implement support for
 
30
these services nowadays do so in a way that is too application-specific.
 
31
This disables the possibility of reusing the solution in other
 
32
projects directly, meaning that other solutions have to do all
 
33
that work again if they want to accomplish the same target, which is
 
34
rather inefficient and makes this type of solutions quite expensive
 
35
in terms of development time and maintenance.
30
36
</para>
31
37
 
32
38
<para>
33
39
In this context, the target of Grilo is to provide application
34
40
developers with a framework where they can work together in the
35
 
creation of application-independent plugins for managing media content
36
 
that can be reused directly by applications. This model adds a number
37
 
of important benefits:
 
41
development of application-independent plugins for managing media content
 
42
that can be reused directly in modern media applications. This model comes
 
43
with a number of important benefits:
38
44
</para>
39
45
 
 
46
<itemizedlist> 
 
47
 
 
48
<listitem>
40
49
<para><emphasis>Less work on the application side.</emphasis>
41
 
All the plugin development happens in the framework and application
42
 
developers can focus on making good user interfaces. It is the
43
 
same with GStreamer if you think about it, application developers
44
 
do not have to write decoders to playback content any more, they
45
 
get the decoders from GStreamer (the framework) and that eases a
46
 
lot application development. Well, this is the same idea, but applied
47
 
to media browsing and discovery instead of media playback.
 
50
Plugin development happens in the framework and application
 
51
developers can focus on making good user interfaces instead.
48
52
</para>
 
53
</listitem>
49
54
 
 
55
<listitem>
50
56
<para>
51
57
<emphasis>Code reuse.</emphasis>
52
 
There are many media player applications allowing users
53
 
to access contents from various services. This is nice, but all this
54
 
is done at the application level, which usually means that all that
55
 
code cannot be directly reused in other projects. Because of that
56
 
there are developers writing application specific plugins for all
57
 
these services in various applications (Totem, Rhythmbox, Amarok,
58
 
etc), replicating code that cannot be reused directly in other
59
 
applications. If the plugins were developed on the framework side, all
 
58
There are many applications allowing users to access media content
 
59
from various providers though application-specific plugins.
 
60
If the plugins were developed on the framework side, all
60
61
these developers could share efforts and write support for these
61
62
services only once in the framework, making them available for all
62
63
the applications using the framework for free. Every one wins.
63
64
</para>
 
65
</listitem>
64
66
 
 
67
<listitem>
65
68
<para>
66
69
<emphasis>Quick learning curve.</emphasis>
67
70
If you want to write a media player with support for various
68
 
media content providers, you would have to learn how to deal with
69
 
each one of them independently: want to add Youtube videos? go and
70
 
learn about Youtube data API, want to add music from Jamendo? go and
71
 
learn about how Jamendo allows you to do that, want to provide access
72
 
to your local media? Go and learn how Tracker APIs work for example,
73
 
want to access UPnP servers? then go and learn about using GUPnP,
74
 
and so forth. This is a lot to learn, and even more code to implement.
75
 
The framework approach would ease all this, one would have to learn
76
 
only one API (the framework API) and that would enable application
77
 
developers to access all these services through the framework plugins.
 
71
content providers, you have to learn about each one of them independently:
 
72
Want to add Youtube videos? then you need to learn about the Youtube data API.
 
73
Want to add music from Jamendo? then you need to learn the ins and outs of the
 
74
Jamendo API Want access to local media? Then you might want to learn about Tracker
 
75
and its APIs. Want to access UPnP media servers? Then it is time for you to learn
 
76
about the UPnP protocol and the GUPnP library, etc. This is a lot to learn,
 
77
and even more code to implement and maintain. The framework approach would make
 
78
all this a lot more straight forward for application developers, they would need
 
79
to learn only one API (the framework API) and that would enable them
 
80
to access all these services through the framework plugins.
78
81
</para>
 
82
</listitem>
 
83
 
 
84
</itemizedlist>
79
85
 
80
86
<para>
81
87
Application developers will find in Grilo a framework they can use
88
94
<para>
89
95
Platform developers will find in Grilo a framework where they can
90
96
cooperate in the development of plugins for managing media content
91
 
from various services.
 
97
from various services, making the platform more appealing to media
 
98
developers.
92
99
</para>
93
100
 
94
101
<para>
95
 
Grilo is lincesed under the GNU Lesser General Public License (LGPL).
 
102
Grilo is licensed under the GNU Lesser General Public License (LGPL).
96
103
</para>
97
104
 
98
105
</section>