Preware Design
This app is to be a front end to the Preware open-source Mojo repository, the webOS-internals project to supply end users with applications, plugins, and updates thereof all in one user-friendly place.
Why this is Important
This morning (25 July 2009) after my morning OA meeting, at coffee I ran a set of paper prototypes of a gui appstore front end for the webos-internals ipkg feed past a group of women aged 45 to 72 who had not previously used a Pre.
Each of them had the chance to go into launcher, bring up an app, run it, go into the app store, look around, etc before starting the prototyping session.
First, as a group they all hated the palm appstore. They disliked the horizontal scrollers at the top, they disliked the scrolling aspect of the entire page. They wanted much more clear indications that a scroll was available, but they thought that a thinner leaner first page would be much better.
After 30 minutes of the group tearing up 4x6 cards and scribbling new ones, we ended up with the following decisions which I pass along.
- the first scene should have 5 selections
- Upgrade your installed apps
- Patches for existing apps
- WebOS applications
- Delete things you have installed
- Alpha list of everything
each of those opens a new scene. along the bottom of the scene is a fixed button bar with on the left, an INSTALL button, in the center a BACK button and on the right a DELETE button
that button bar is ALWAYS there except on scene 1. They know and understand the back gesture, but they liked the idea of a back button even so, and since there was a space, why not?
the install and delete buttons dim out or come live as appropriate.
They were divided on the subject of keeing a banner for the app store at the top of the screen, some liked the idea of a HOME button. Some did not and wanted the space for the lists and said "banner only on the home page.
Each subsidiary screen brings up a list of apps. that list scrolls in the space ABOVE the button bar.
Tapping an ap brings up the long description of the app and enables the install or delete button as is appropriate.
The graphical design should be very VERY clean and not busy. It was a major complaint about the Palm app store that it was too busy.
Templarian's mockup for the PreWare home page is a really good basis to work from, and it would be good if the gui app resembled the submission and management page. It will change depending on comments here.
I thought this would give us a starting place
- Rick
Project Repository
http://gitorious.org/webos-applications/installer
Development help
PreWare is being developed as an open source project. We really want help on the development of this app! The source of the application is available at http://gitorious.org/webos-applications/installer
Anyone can check out a copy. If you would like check in privlidges, simply message Rboatright or Templarian on their talk pages.
You will need to register an ssh key with gitorious. If you've never done that, a walk through is available at http://nathanj.github.com/gitguide/ Substitute gitorious.org for github in the instructions.
Name
The "Pre" in "Preware" does not refer to the Palm Pre, it refers to "before" as far as app testing goes, and is a pun on "Freeware"
Service
The binary service that Preware will talk to is specified in Preware Service.
Submissions
Submissions will have their icons ripped out for application use.
Licenses
Name id Apache-2.0 apache2.0 BSD bsd CDDL cddl CPL-1.0 cpl1.0 GPL-2 gpl2.0 GPL-3 gpl3.0 LGPL-3 lgpl3.0 MIT mit MPL-1.1 mpl1.1
Legal Acceptance on Submission
I hereby... fill in this with the legal stuff
Application
(Images will be updated below as suggestions come in, wiki forces cache so CTRL+SHIFT+R in modern browsers)
Site
Removing Applications
Main thing to include is a way to keep track of applications that depend on certain plugins. We cannot have users uninstalling plugins that are required for an installed app to run.
IPKG Feed
The standard IPKG feed used by everyone is below (double line breaks between all applications listed).
<source lang="text"> Package: com.domain.appname Version: 0.0.4 Section: web Architecture: all Maintainer: Name <email@email.com> MD5Sum: 7de15816099657de0e520bb81963df89 Size: 146276 Filename: com.domain.appname_0.0.4_all.ipk Source: http://www.domain.com/com.domain.appname_0.0.4_all.ipk Description: App Description </source>
XML Feeds
Remember that this feed can read from other sources so http:// are required.
Application Feed (List/Filtered)
<syntaxhighlight lang="xml"> <?xml version="1.0" encoding="UTF-8"?> <preware>
<applications amount="20" page="1"> <application id="41"> <package>appname</package> <version>1.0.0</version> <name>Application Name</name> <icon>http://d.com/img.png</icon> <webosversion> <min>1.0.3</min> <max>1.1</max> </webosversion> <maintainer id="42"> <name>John Doe</name> <email>email@domain.com</email> </maintainer> <license id="mit">MIT</license> <architecture>all</architecture> <filename>http://d.com/com.domain_app_appname_1.0.0_all.ipk</filename> <md5sum>325ca724c05288eb182dd7ebdd493926</md5sum> <size>123456</size> <category>Utilities</category> <source>http://www.preware.org/41/</source> </application> </applications>
</preware> </syntaxhighlight>
Application View
<syntaxhighlight lang="xml"> <?xml version="1.0" encoding="UTF-8"?> <preware>
<applications> <application id="41"> <package>appname</package> <version>1.0.0</version> <name>Application Name</name> <icon>http://d.com/img.png</icon> <webosversion> <min>1.0.3</min> <max>1.1</max> </webosversion> <maintainer id="42"> <name>John Doe</name> <email>email@domain.com</email> </maintainer> <license id="mit">MIT</license> <architecture>all</architecture> <filename>http://d.com/com.domain_app_appname_1.0.0_all.ipk</filename> <md5sum>325ca724c05288eb182dd7ebdd493926</md5sum> <size>123456</size> <category>Utilities</category> <source>http://www.preware.org/41/</source> <depends> <depend id="20" type="plugin"> <package>pluginname</package> <version>1.0.0</version> <name>FileIO</name> </depend> </depends> <description>A long description</description> </application> </applications>
</preware> </syntaxhighlight>
Plugin View
<syntaxhighlight lang="xml"> <?xml version="1.0" encoding="UTF-8"?> <preware>
<applications> <application id="20"> <package>pluginname</package> <version>1.0.0</version> <name>Plugin Name</name> <icon>http://d.com/img.png</icon> <webosversion> <min>1.0.3</min> <max>1.1</max> </webosversion> <maintainer id="42"> <name>John Doe</name> <email>email@domain.com</email> </maintainer> <license id="mit">MIT</license> <architecture>all</architecture> <filename>http://d.com/com.domain_plug_pluginname_1.0.0_all.ipk</filename> <md5sum>325ca724c05288eb182dd7ebdd493926</md5sum> <size>123456</size> <category>Utilities</category> <source>http://www.preware.org/41/</source> <applications> <application id="20"> <type>plugin</type> <version>1.0.0</version> <name>FileIO</name> </application> </applications> <description>A long description</description> </application> </applications>
</preware> </syntaxhighlight>
Review (to Applications / Plugins)
<syntaxhighlight lang="xml"> <?xml version="1.0" encoding="UTF-8"?> <preware>
<messages> <message id="420" type="review"> <user id="10">FooBar</user> <text>A+++ would download again</text> </message> </messages>
</preware> </syntaxhighlight>
Comment (tbd)
<syntaxhighlight lang="xml"> <?xml version="1.0" encoding="UTF-8"?> <preware>
<messages> <message id="420" type="comment"> <user id="10">FooBar</user> <text>freezes every second tuesday when bluetooth is enabled</text> </message> </messages>
</preware> </syntaxhighlight>
Address Structures
Site
I don't know how much of this we can really change, I think Drupal could be rather strict.
<source lang="text">
- Application Page
preware.org/packagename/
- .ipk uses direct id
preware.org/41/filenameto.ipk preware.org/
</source>
Feeds
Yea this section needs major input.
pDNS = Project Reversed DNS
<source lang="text"> .org/feed/ # IPKG Full List .org/feed/xml/ # XML Full List (will freeze device) .org/feed/xml/category/ # XML Categories List .org/feed/xml/category/games/ # XML Categories List Specific, urlencode .org/feed/xml/<pDNS>/ # XML Application & Plugin Specific .org/feed/xml/search/?q=string[&filters] # XML Search .org/feed/xml/search/?q=search+string&category=Games&user=12 # XML Search Example .org/feed/xml/message/23/ # XML Application Reviews & Comment </source>