Preware Design

From WebOS Internals
Revision as of 17:39, 7 August 2009 by Templarian (talk | contribs)
Jump to navigation Jump to search

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)

OPS App Mockup1.png

Site

OPS Mockup.png

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">

  1. Application Page
 preware.org/packagename/
  1. .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>