open intents, open apps and dependencies

11
www.openintents.org [email protected] Droidcon London 2010, 28 October 2010 OpenIntents, Open Apps and Dependencies Friedger Müffke @fmdroid #openintents

Upload: friedger-mueffke

Post on 01-Dec-2014

1.167 views

Category:

Technology


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Open intents, open apps and dependencies

www.openintents.org [email protected] Droidcon London 2010,28 October 2010

OpenIntents, Open Apps and Dependencies

Friedger Müffke

@fmdroid#openintents

Page 2: Open intents, open apps and dependencies

No monoliths ..

but interconnectedcomponents

All apps are equal!

Page 3: Open intents, open apps and dependencies

OpenIntents.org

● Discussion group since 2007● All about open applications and interoperability● Open source● List of Android libraries● Intents registry

● Backed by OpenIntents UG (haftungsbeschränkt)– Closed source apps– Organizer of droidcon

Page 4: Open intents, open apps and dependencies

Intent registrywww.openintents.org

Browse and findintents, actions, applications, URIs, extras

Promote your ownintents and applications

Listen to talk tomorrow

As of October 2010:

>50 registered intents

Reuse components! Don't reinvent the wheel!

Page 5: Open intents, open apps and dependencies

Dependency Manager

Applicationwith

dependencies

Dependency Manager

Appstore 1 with Content Provider Appstore 2

with Content Provider

Content Provider

of OI Website

1. Unresolvable Intent

2. Resolve Intent

3. ProvideIntent Filter

Info

UI for Choosing App

4. User chooses app

Page 6: Open intents, open apps and dependencies

App with Dependencies<meta-data android:name = "org.openintents.dm.dependency-client" android:resource = "@xml/mandatory"/>

<dependencies xmlns:dm = "http://schemas.openintents.org/android/dependency-manager/1.0/client">

<!-- Implicit Intent --> <intent dm:component-type="activity"> <action dm:name="android.intent.action.BAZ" /> <category dm:name="android.intent.category.FOO" /> <category dm:name="android.intent.category.QUUX" /> <data dm:uri="http://foo.bar.org/" /> </intent> <!-- Implicit Intent with mime-type --> <intent dm:component-type="service"> <action dm:name="foo.bar.QuuxService" /> <data dm:mimeType="text/plain" /> </intent>

<!-- Explicit Intent --> <intent dm:component-type="receiver"> <component dm:name="foo.bar/.BazReceiver" /> </intent> </dependencies>

Manifest

mandatory.xml

Page 7: Open intents, open apps and dependencies

Dependency Source

Content Provider– Declaration in Manifest.xml

<meta-data android:name="org.openintents.dm.dependency-source" android:resource="@xml/dependency_source"/>

– dependency_source.xml<dependency-source xmlns:dm="http://schemas.openintents.org/android/dependency-manager/1.0/source"

dm:authority="org.openintents.dm.teststore"/>

– Contract for Dependency Source

Page 8: Open intents, open apps and dependencies

Open Apps (1)

● Declare intent filters in your Manifest● Publish your intent filters on

open-android-apps.appspot.com

● Explore intents and which apps do offer the corresponding functionality

Page 9: Open intents, open apps and dependencies

Open Apps (2)

In the future

– Mark as inappropriate– Integration in dependency manager– Link to Intents Registry– Eclipse Integration

Page 10: Open intents, open apps and dependencies

Participate!

● Tonight during the hackathon● OpenIntents repository at Google code● Android is open as are these issues

– Issue 4716: Support package dependency through uses-intent in Manifest

– Issue 3217: Support PackageManager.GET_INTENT_FILTERS

– Issue 4159: Market should allow developers to list extension points for their apps

Page 11: Open intents, open apps and dependencies

More infoWeb site:

www.openintents.orgDeveloper group: http://groups.google.com/group/openintents

Code repository: http://openintents.googlecode.com