iuliusfdp / mixare

Automatically exported from code.google.com/p/mixare
0 stars 0 forks source link

convert datasources and markers into plugins #95

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
Please provide any additional information below.
Convert datasources like wikipedia, twitter, etc.. and Markers like POIMarker, 
NavigationMarker etc.. into plugins (classes).
Adding more datasources and markers will become easier.

Original issue reported on code.google.com by abdu...@gmail.com on 28 Feb 2012 at 12:12

GoogleCodeExporter commented 8 years ago
I was thinking the same when working on the dev-extras branch: 
https://github.com/mixare/mixare/commit/13e1a4f23f8f5436a316b1b1158ad630d6c61859

I'm setting the priority to high as a personal reminder.

Original comment by daniele.gobbetti on 28 Feb 2012 at 12:16

GoogleCodeExporter commented 8 years ago

Original comment by daniele.gobbetti on 28 Feb 2012 at 12:16

GoogleCodeExporter commented 8 years ago
I am currently working on this branch https://github.com/abduegal/mixare
And I would like to solve this issue.

Original comment by abdu...@gmail.com on 28 Feb 2012 at 12:40

GoogleCodeExporter commented 8 years ago
I think there are two scenarios:
- non-interactive plugins (I propose to call them: plugins)
- interactive plugins (I propose to call them: launchers)

I would like to have a unified list of datasource, with the default ones (part 
of "core" mixare), the user-defined ones and the external ones (other apps 
installed on the device that are capable of put data in mixare either through 
extras or url).

I think the distinction between interactive and non interactive is important 
because the former can be launched from mixare with the current position and 
return the POIs, possibly without the user noticing anything (i.e. the activity 
may be launched in background and never come in sight), whereas the plugins 
that requires user interaction clearly require the activity to be seen by the 
end user.

What do you think?

Original comment by daniele.gobbetti on 28 Feb 2012 at 2:58

GoogleCodeExporter commented 8 years ago
I was thinking about the following:
Every data source is a plugin and a plugin can contain the following things:
- The datasource url
- A custom json/xml parser for that datasource (optional)
- Custom markers to override the default marker(optional) I.E. imagemarker, 3d 
marker
- Custom components for that data source I.E. a barcode scanner or splash screen

The plugin is then packed in a jar file and the app can check for plugins with 
a serviceloader.
http://docs.oracle.com/javase/6/docs/api/java/util/ServiceLoader.html

We can then replace the 4 default datasources with jars for example: 
- mixare-wikipedia-plugin.jar
- mixare-twitter-plugin.jar
- mixare-buzz-plugin.jar
- mixare-custom_url-plugin.jar
The sources of these plugins can then be added in the following github 
directory: /plugin/[plugin-name]/

I would also like to add the possibility that a custom launcher or url can 
contain a marker type or component in the intent / url,
so that mixare will pick the right url, marker type and launch the right 
components for that custom launcher / url.

I am currently building a proof of concept to test this issue
What do you think?

Original comment by abdu...@gmail.com on 28 Feb 2012 at 3:52

GoogleCodeExporter commented 8 years ago
Hi, I have added a sample marker in the git fork: abduegal. The structure is as 
follow:
- Mixare core -> the mixare augmented reality browser
- Mixare library -> A library project which contains some classes that are used 
by 
                    both the mixare app and the plugin. 
- Sample marker plugin -> A Image Marker which can be automatically found by 
mixare 
                          if installed

The AIDL files in the library are taking care of the connections between the 
components. 

The library and plugins can be found in the /plugins/ folder.

Can you tell me what you think of these changes?

Original comment by abdu...@gmail.com on 16 Mar 2012 at 8:20

GoogleCodeExporter commented 8 years ago

Original comment by mixare.org on 20 Apr 2012 at 3:42