An AppCenter inherits the need to be "online", in a sense that it
requires network connection to fetch package information and install
packages. In terms of making it online like Google Play or PlayDeb,
that is an idea I've pondered on myself.
In terms of the loading of an application data, I've already begun work
on that over at https://bugs.launchpad.net/appcenter/+bug/1091406
The idea is to use a PHP-based API that fetches data from a database
(it could be MariaDB / MySQL, Cassandra, etc) and returns it in a JSON
formatted string. Obviously MySQL and MariaDB aren't all that scalable
and I'd prefer whatever we use be ready to be scaled already.
In terms of implementing BOTH a web-based front-end and the AppCenter,
that is a huge division in resources that I don't think should be
undertaken. Either it should be a web-based front-end or not. Not only
would you need to develop both but upkeep both and it makes no sense to
have both when most people would use the native application anyways.
It is my opinion that since native application development is already
occurring for the AppCenter, we stay on course with that.
"The AppCenter will need just to call the APIs that are already
provided so we don't have to do any extra effort implementing APIs."
I'll be setting up either a repo on GitHub (I prefer git to be honest)
or a bzr repo on LaunchPad for an API and push some code out
(hopefully) by Friday. Whether it'll be officially supported / adopted
by Elementary OS or not, I don't know, I'll honestly be working on it
regardless since I'll be using the API internally as well (doing
deployment at my startup).
- Joshua Strobl
On Mon, Mar 25, 2013 at 4:15 PM, Goncalo Margalho <g...@margalho.info>
wrote:
Hi all,
first of all I want to congratulate Mefrio (which I don't know his
real name) for the good work on the AppCenter.
From my point of view the AppCenter should be completely online, like
all the others appstore, like Play from google, (they have even the
webversion which is fast so I don't see why it should be fast in an
app).
So what we can do it's make it completely online, so you will load
everything from a server and if you don't have connection you can't
see anything.
Or an other alternative it's to keep it like now and in the single
view (the one of the app that you want to install) load the reviews,
images etc in background. This could be good but You still have to
synchronize with new apps. and what about the apps that you need to
pay? those ones may not be on the repositories so you don't see them.
Another solution could be that on the load of the AppCenter you
download those app and update the local dabase.
Which one is the best solution for you?
I was thinking on an implementation of the AppCenter Server with a
Couchbase server. I don't know if anyone used it before but it's a
NoSQL DB born from the fusion between CouchDB and Memcached. The db
stores the data in JSON, which is good because it has already an API
by default for any "table"/"view" that you create
( http://www.couchbase.com/docs/couchbase-manual-2.0/couchbase-views-querying-rest-api.html ) and
the scaling is just amazing, you just add more servers and does
everything on its own, just incredible to see. I could implement it
(even in my server, since I know that the server at the moment is not
very powerful) and do a test, we could easily implement a web
interface for it with the webteam and we could work with mefrio to
implement it in the appcenter in a way that we all agree.
The AppCenter will need just to call the APIs that are already
provided so we don't have to do any extra effort implementing APIs.
I hope to get some feedback on this.
Goncalo "DevAlien" Margalho
--
Mailing list: https://launchpad.net/~elementary-dev-community
Post to : elementary-dev-community@lists.launchpad.net
Unsubscribe : https://launchpad.net/~elementary-dev-community
More help : https://help.launchpad.net/ListHelp