The "swamp" you are describing is very similar to what has happened
with Microsoft's COM architecture.  Once a COM interface is out there,
other developers start using it, whether you want them to or not.

In Android, to make it easier to let developers communicate how to use
intents you could add a url to document how to use the Intent to the
intent-filter.  This could enhance the ad-hoc discoverability
interface you are asking for.  In time, you might have an apk you want
to utilize, but not know where to locate the documentation, but if the
developer embeded the link to the documentation in the apk things get
much easier.  Further, a discovery tool could give the link to the
developer, and if the documentation used some well known grammar your
development tools could generate a code snippet showing usage for each
Intent.  That could be pretty powerful and help to decrease
development time.  It could look something like usage-url below:
...
  <intent-filter>
      <action android:name="...
      <usage-url android:name="http://mydomain.com/android-api/appname/
intent-name....

You could then either add to the PackageManager the ability to list
out the intent-filters and usage-urls that go along with it, or build
a separate tool which would go through the apk's and examine the
AndroidManifest.xml to list the intent-filters and their usage-urls.
The tool and could then be included in the IDE of your choice to
generate the snippet code.

On Feb 2, 6:30 am, jarkman <[email protected]> wrote:
> I see where you are coming from, but I think what may really happen is
> that the usage of intents between apps will turn into a terrible
> swamp.
>
> You can see it happening already, with developers using logcat output
> and guessing and finding snippets in other deveelopers blogs and
> reading source (where they can) to work out how to make some other app
> do their bidding. The lack of documentation clearly doesn't stop that
> process, it just makes it more laborious and untidy.
>
> The effect is that there is is no good distinction between 'private'
> and 'public' interfaces, since all intents are equally visible to
> these informal development processes, and so apps will come to depend
> on each other in undocumented and undisciplined ways.
>
> After that process has gone on for a year or two, we get a world where
> changing anything breaks something else, and the net effect on the
> user is that their apps are unreliable and they don't know whose fault
> it is.
>
> I really do hope that is not what happens, and I hope the platform
> finds some way to make the world of intents more transparent to
> developers. Just being able to see the intent filters of other apps
> would be a huge help.
>
> R.
>
> On Jan 30, 10:29 pm, Dianne Hackborn <[email protected]> wrote:
>
>
>
> > I'll still say, if it hasn't been documented, then you probably have no
> > business using it.
>
> > If you want to go use private implementation details of the platform, you
> > can browse through the source code and look at the manifests of the apps.
> > That is all that the system knows about the intent protocols they support.
>
> > On Fri, Jan 30, 2009 at 1:07 PM, jarkman <[email protected]> wrote:
>
> > > I understand the point about trying to stick to intents which have
> > > been documented by their developers.
>
> > > The problem is, even a well-intentioned but busy developer may simply
> > > not get round to writing that documentation. The system applications
> > > are a great example of that effect.
>
> > > At least, with a discovery API, we could find out what the things were
> > > in some reliable way. We'd also have a better chance of understanding
> > > why our intents failed when they did. Right now, I sometimes feel like
> > > I'm on a random hunt for a magic string. It is the single most
> > > frustrating thing about developing for Android.
>
> > > Do you think there's any chance one will appear in a future version ?
>
> > > Or, can you think of any way to acheive the effect in the current
> > > version ? I had a vague idea about feeding generalities to
> > > PackageManager.queryIntentActivities(), but I have not found a way to
> > > make that work.
>
> > > Thanks,
>
> > > Richard
>
> > > On Jan 30, 8:31 pm, Dianne Hackborn <[email protected]> wrote:
> > > > You shouldn't just look at what intents an app happens to use: unless
> > > > someone publishes official protocols, those should be considered 
> > > > private.
> > > > Unless an app developer is explicitly maintaining them, they could 
> > > > change
> > > > their app arbitrarily and break someone using those implementation
> > > details.
>
> > > > And Amazon MP3 app is owned by amazon, who just happened to have it
> > > > installed on the G1.  It is not part of the platform, and so they would
> > > need
> > > > to document and maintain whatever intent protocols they want to publish.
>
> > > > Finally, yes, we need to do a better job at defining official protocols
> > > for
> > > > the system applications.  This is something that got dropped in the push
> > > to
> > > > get the initial full product out.
>
> > > > On Fri, Jan 30, 2009 at 11:48 AM, jarkman <[email protected]> wrote:
>
> > > > > Peter - I agree completely. OpenIntents is a great idea, but it
> > > > > doesn't fix my problem either.
>
> > > > > The strangeness is not just limited to the lack of a discovery API.
> > > > > There's also a peculiar lack of documentation on what the built-in
> > > > > apps can do, leaving us wasting a lot of time poking about making up
> > > > > intents by experiment.
>
> > > > > My hope is that both of these - intent discovery APIs and better docs
> > > > > on the existing intents - are in the plan, just not done yet.
>
> > > > > Richard
>
> > > > > On Jan 30, 5:29 pm, Peter Jeffe <[email protected]> wrote:
> > > > > > On Jan 30, 10:45 am, Peli <[email protected]> wrote:
>
> > > > > > > For this reason, we have created the OpenIntents intents registry:
>
> > >http://www.openintents.org/en/http://www.openintents.org/en/intentstable
>
> > > > > > > Even if there is a way to find all intents supported by an
> > > > > > > application, this will not tell you what kind of extras are
> > > supported
> > > > > > > or required or which result (if at all) is returned.
>
> > > > > > I think your site is great Peli, I agree with your reasoning and
> > > > > > applaud your efforts.  Unfortunately in this case I'm interested in
> > > > > > invoking the Amazon MP3 app, and no one has registered it on
> > > > > > OpenIntents, so I was trying to discover anything I could about it.
>
> > > > > > I think it is very strange that Android has this nice concept of 
> > > > > > apps
> > > > > > registering the services that they provide, but there's no means for
> > > > > > other apps to discover what services are provided.  Is it just me, 
> > > > > > or
> > > > > > does anyone else think this really limits the usefulness of this
> > > > > > feature?
>
> > > > > > -- Peter
>
> > > > --
> > > > Dianne Hackborn
> > > > Android framework engineer
> > > > [email protected]
>
> > > > Note: please don't send private questions to me, as I don't have time to
> > > > provide private support.  All such questions should be posted on public
> > > > forums, where I and others can see and answer them.
>
> > --
> > Dianne Hackborn
> > Android framework engineer
> > [email protected]
>
> > Note: please don't send private questions to me, as I don't have time to
> > provide private support.  All such questions should be posted on public
> > forums, where I and others can see and answer them.- Hide quoted text -
>
> - Show quoted text -
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to