Ir al contenido principal

Ralsina.Me — El sitio web de Roberto Alsina

Making deployment of desktop Python apps trivial: an idea

Di­ce google que di­ce es­to.

Proprietor and printer in front of Schwartz Print Shop in Minneapolis

He­re's what I'm thi­nkin­g: how hard could it be to make Py­Qt app de­plo­y­ment ab­so­lu­te­ly ea­s­y? We­ll, I am gues­sin­g: not ve­ry har­d.

He­re's the tri­ck: see what wo­rks in the real worl­d, and adopt it.

Ques­tio­n: what has de­plo­yed bi­llions of apps and has its users ha­pp­y? An­swe­r: pho­nes app sto­res.

Ques­tio­n: how do they wo­rk? An­swe­r: we­ll, tha­t's not that shor­t, so le­t's start ex­plai­nin­g.

As I see it, a rea­so­na­ble app sto­re has the fo­llo­wing com­po­nen­ts:

A Stable Deployment Target

You can't de­ploy from the sto­re if you do­n't know what you are de­plo­ying in­to. If the tar­get pla­tform is shak­y, you just can't know how to de­ploy wi­thout user as­sis­tan­ce, and we are tr­ying to make this ea­sy for the use­r, whi­ch means tha­t's not ac­cep­ta­ble.

So, wha­t's a sta­ble de­plo­y­ment tar­get we can pro­vi­de?

  • Py­­Qt (so we can de­­ploy GUIs to all ma­­jor desk­­top pla­­tfo­r­­ms)

  • Py­­thon stan­­dard li­­bra­­ry

  • Se­­le­c­ted mo­­­du­­les

What can be (and should be) bund­led wi­th the app?

  • Pu­­re py­­thon mo­­­du­­les

  • Ar­­two­­­rk and other re­­sou­r­­ces

What may be bund­le­d:

  • Py­­thon mo­­­du­­les wri­­tten in C/­­C++, but you then ha­­ve to re­­do the app for ea­­ch pla­­tfo­r­­m, and that ki­n­­da su­­cks.

Deployment Services

  • Apps should be able to che­­ck if the­­re is a new ve­r­­sion of them in the sto­­­re, to ask for upgra­­des.

  • Apps should be added by the de­­plo­­­y­­ment pla­­tform ni­­ce­­ly in­­to the host sys­­te­­m's me­­nus, desk­­to­­­p, etc.

Monetization Services

  • So­­­me way to cha­r­­ge for app­s. Even for open sou­r­­ce app­s, you could ask for U$S0.99 if you in­s­­ta­­ll them th­­rou­­gh the sto­­­re. Op­­tio­­­na­­l, of cou­r­se, and up to the app ow­­ne­­r.

  • Ad pla­­tfo­r­­m? The­­re must be a good one for desk­­top apps so­­­mewhe­­re?

The Store Itself

  • A we­b­­si­­te that do­­wn­­loads a "pa­­cka­­ge" as­­so­­­ciated wi­­th a lo­­­cal de­­plo­­­y­­ment appli­­ca­­tio­­n.

  • A app sto­­­re app. In­s­­ta­­ll things not via we­­b, but via a desk­­top appli­­ca­­tio­­n.

I do­n't ex­pect a func­tio­nal ver­sion of this would take me mo­re than a week wo­rking fu­ll­ti­me to im­ple­men­t. Of cour­se then the­re are all sor­ts of usa­bi­li­ty, looks, etc. things to con­si­de­r.

An­d... I am going to do so­me­thing I ve­ry ra­re­ly do. I am going to ask for mo­ne­y.

As an ex­pe­ri­men­t, I ha­ve se­tup a pro­ject at http://www.in­die­go­go­.­co­m/­Q­t-S­hop and set a fun­ding goal of U$S 600.

The­re you can fund me. I pro­mi­se that if the pro­ject is to­ta­lly fun­de­d, I wi­ll de­li­ve­r. If it is­n'­t, I may de­li­ver an­ywa­y. I would pre­fer to ha­ve the mo­ney thou­gh.

The pla­tform would be re­lea­sed un­der GPL­v2 or la­te­r.

foo / 2010-09-09 15:23:

Having an 'Appstore' for Python+QT apps on linux wouldn't make me happy. I want packages for my distribution, not some special sauce.
I think for such a Store to work it needs to be THE store, good luck reaching that. ;)

Roberto Alsina / 2010-09-09 15:42:

Then you are not the target of this project.

Ben Finney / 2010-09-09 15:34:

> PyQt (so we can deploy GUIs to all major desktop platforms)

That criterion seems arbitrary. Why not PyGTK, or Tkinter? The same justification applies equally to those.

Roberto Alsina / 2010-09-09 15:40:

Because I prefer PyQt.
Because Tkinter is ugly.
Because PyGtk sucks on all non-linux platforms.

Of course once the platform is done, adding PyGtk (or whatever) support is semi-trivial.

Ben Finney / 2010-09-10 03:51:

My point is that “so we can deploy GUIs to all major desktop platforms” isn't explaining why you chose PyQt. Perhaps you could either remove it as a justification, or give a different justification.

Roberto Alsina / 2010-09-10 04:02:

Could be. To deploy etc. is what PyQt is there **for**. It's not why **PyQt** is there. I don't know if that's undertandable :-)

marcell mars / 2010-09-09 19:16:

i'll donate $20 if it the platform itself will be published under gnu gpl.

Roberto Alsina / 2010-09-09 19:21:

Sure. GPL2 or later. I should add that to the proposal.

Added it to the blog post and the proposal.

Emanuel de Souza / 2010-09-09 20:02:

Hello Roberto,
You have a nice proposal for the project.
I'm trying to create a similar platform but using the ecma script instead python. Can't tell too much in public comments.
Maybe we can exchange some ideas.

You can find me on twitter as @emanuelcds.

Victor Fontes Costa / 2010-09-10 11:10:

Once the code is in a public VCS I would definitely deliver as much code as I can. I really liked your idea. Also, I have an underused VPS account at linode, so I tink i can help with the hosting too.

Roberto Alsina / 2010-09-10 13:13:

Thanks, when the coding starts I'll let you know!

Carl / 2010-09-10 12:03:

I just donated $50 to your project but was not smart enough to click on the project first. So, if the Donate button on the main page is tied to a different account, please move it over to the project.

Roberto Alsina / 2010-09-10 12:05:

It all ends in the same place but it won't show at indiegogo. No problem, I'll just reduce the required funding by $50, no point in paying paypal twice :-)

--

Update: amazingly there's no way to change the goal at indiegogo. Luckily refunds seem to be free. I just refunded it to you, can you try again?


Contents © 2000-2020 Roberto Alsina