| OLD | NEW |
| (Empty) | |
| 1 Linkability |
| 2 =========== |
| 3 |
| 4 This file has ideas only, so far. Comments welcome. |
| 5 |
| 6 Scenarios |
| 7 --------- |
| 8 |
| 9 * soduku app: |
| 10 * want to share the board layout, but not my progress so far |
| 11 * want to transfer my progress to another device |
| 12 * a wikipedia-like app: |
| 13 * follow links to other topics |
| 14 * have links from other apps (e.g. search) to a specific subsection of a topi
c |
| 15 * an instant-messenger app: |
| 16 * bookmark specific group conversations |
| 17 * a social network app: |
| 18 * link to specific posts |
| 19 * link to social network constructs like user lists (twitter), communities (g
+), walls (fb), users… |
| 20 * an IDE |
| 21 * want to save a particular state of open windows, maybe to share with other
developers |
| 22 * Navigation app |
| 23 * want to link to different modes of the app: nav mode, search page, personal
profile, settings, etc |
| 24 * want to link to specific points of interest, either public (restaurant) or
private (home, work, saved locations) |
| 25 * want to link to a specific map location, zoom level, direction, angle, time
of day (for shadows), route (for navigation) |
| 26 * want to link to a destination in nav mode (without a route) |
| 27 * Podcast app |
| 28 * want to link to a specific view (e.g. in doggcatcher, feeds, audio, video,
news...) |
| 29 * want to link to a specific podcast (maybe independently of the app) |
| 30 * want to link to a specific time in a specific episode of a specific podcast |
| 31 * save ui state (e.g. size of ui area vs podcast list in doggcatcher, scroll
position in a list, specific settings window being on top of specific tab at a s
pecific scroll position, etc) |
| 32 * News app |
| 33 * categories |
| 34 * articles |
| 35 * sets of categories |
| 36 * sets of categories + a selected category + a scroll position |
| 37 * app sections (e.g. Newsstand’s Explore vs Read Now vs My Library) |
| 38 * specific settings in the settings section of the app |
| 39 * Code Review Tools |
| 40 * a specific code review |
| 41 * a specific file in a specific code review |
| 42 * code review plus scroll position |
| 43 * specific comment |
| 44 * the state of the UI, such as which changes are visible, which comments are
expanded, sort settings, filter settings, etc; whether the settings window is op
en, what tab it’s open to, what field is focused… |
| 45 |
| 46 UI |
| 47 -- |
| 48 |
| 49 * Sharing current state to another device using NFC: just put the phones togethe
r, the active app(s?) serialise their state to a “URL” and that is sent to the o
ther device |
| 50 * App exposes a “permalink” or “get link” UI that exposes a string you can Share
(a la Android’s Share intent) or copy and paste. |
| 51 * An accessibility tree should expose the URL of each part of the app so that a
user with an accessibility tool can bookmark a particular location in the app to
jump to it later. |
| 52 |
| 53 Thoughts |
| 54 -------- |
| 55 |
| 56 * Seems like you link to three kinds of things: |
| 57 * different in-app concepts, which might be shared across apps |
| 58 * specific posts in a social network |
| 59 * users |
| 60 * particular game board starting configurations, game levels |
| 61 * wikipedia topics |
| 62 * search results |
| 63 * POIs in a map |
| 64 * videos on Vimeo, YouTube, etc |
| 65 * a code review / CL / pull request |
| 66 * a comment on a code review |
| 67 * a file in a code review |
| 68 * a comment in a blog post |
| 69 * telephone numbers |
| 70 * lat/long coordinates |
| 71 * podcasts |
| 72 * different top-level parts of the app (shallow state) |
| 73 * e.g. in Facebook, linking to the stream; in G+, linking to the communiti
es landing page, etc |
| 74 * in a maps app, the mode (satellite, navigation, etc) |
| 75 * deep state |
| 76 * the current state of a particular game board, e.g. all the piece positio
ns in chess, all the current choices in soduku... |
| 77 * what windows are open, what field is focused, what widgets are expanded,
the precise view of a 3D map, etc |
| 78 * subsection of a topic in wikipedia (scroll position) |
| 79 * Since almost every app is going to have app-specific items, we need to make th
e item space trivially extensible (no registry, no fixed vocabulary). This means
that common items (e.g. lat/long coordinates, podcasts) will probably evolve co
nventions organically within communities rather than in a centralised fashion |
| 80 * We don’t have to use URLs as they are known today, but doing so would leverage
the existing infrastructure which might be valuable |
| 81 |
| 82 Ideas |
| 83 ----- |
| 84 |
| 85 * Two kinds of URLs: application state, and “things”. |
| 86 * Application state URLs consist of an identifier for the app, plus a blob of da
ta for how to open the app |
| 87 * Thing URLs identify a thing, either by string name, opaque identifier, or more
structured data (e.g. two comma-separated floating point numbers for lat/long). |
| 88 * Thing URLs have a label saying what they are, e.g. “poi” or “geo” or “cl-comme
nt” or something. |
| 89 * Maybe “apps” are just things, and going to an app is like picking that app thi
ng from the system app, the same way you’d pick a post from a social network app
. |
| OLD | NEW |