← Back to team overview

elementary-dev-community team mailing list archive

Re: The future of appcenter

 

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@xxxxxxxxxxxxx> 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

References