← Back to team overview

ubuntu-phone team mailing list archive

Re: Brainstorm for more developers/apps

 

Hey Krzysztof,

as the creator of the list you linked to I would like to share some of
my thoughts. The following things may sound a bit negative, but we have
to be honest to ourselves.

Number 1: I don't think we have a real lack of developers, there are
plenty of people out there who want to develop for the platform. The
problem is that the whole Ubuntu ecosystem is currently not fully
functional, buggy, unstable and doesn't offer enough support for developers.

I would like to give several examples for this (please forgive me for
not adding a link to the many matching bug reports, I can provide them
on request):

- You can't even build a simple audio recorder because the
implementation stops working after a random number of record calls.

- All GPS apps stop working after a while because the GPS subsystem is
buggy. You can't have two apps using the GPS at the same time. Most GPS
apps need to run in the background or keep the screen on, which is not
possible. You can't even build a GPS Status app that shows you all the
info about your receiver, because the API is there, but the
implementation is missing. The sports tracker app you want can currently
not be built.

- All Instant Messenger apps need to run in the background. The only way
to do this would be to tap into the Telepathy service on the phone, for
which there is no documentation, and AFAIK not even the Telegram client
currently does this.

- People want to call their friends over the Internet, but there is no
VoIP service/API.

- Push notifications can only be delivered via a server that's hosted by
Canonical. You have to change all your own server-side code to use this
service. The service is currently highly unstable, I only get about half
of the Telegram notifications I am supposed to receive.

- Up until OTA-4 the ubuntu-html5-app-launcher was still based on
QtWebKit, not on Oxide, which resulted in very poor performance. It was
so slow that I couldn't even run a simple game, which forced me to come
up with undocumented workarounds. I can see many HTML5 developers giving
up because the "standard" way to run their apps on our devices doesn't
seem to perform good enough for them, and not everybody has the time to
find out what's the problem.

So before we can even think about running campaigns for more apps, we
have to get the platform to a state that actually allows those
developers to ship great apps with full functionality without having to
resort to the Open Store. Otherwise they'll be just frustrated and leave.

I know that 95 percent of the problems I mentioned are being solved
right now, but it will still take a lot of time until they are part of
an OTA update.




Number 2: App development has to be sustainable. You can throw money at
developers, and you might get some great apps ported. But there are
several challenges:

- It will not scale. There are too many apps out there we need.

- It will look like Ubuntu can only get more apps if we pay developers.
That's a very bad message.

- There will not be enough money for anything major, developer time is
insanely expensive.

- Many services have closed APIs and do not allow independent clients,
e.g. WhatsApp. We can crowdfund a decent WhatsApp client port, but it
will never be the same as an official one and WhatsApp will actively try
to shut it down.

- Where is the motivation to keep developing further, once the developer
has got the money?


I think the solution is more like the following:

- Make the platform as attractive as possible.

- Show developers that they can make actual money on Ubuntu. This means
that we users will also have to be willing to pay for apps.

- Keep asking all the major app developers and service providers to ship
for Ubuntu. Talk to them on social media, open threads on their forums,
send e-mails. Even if they decline, other users and the media will see
that Ubuntu is getting traction.

- Spend your money wisely. Don't just pay somebody to port your
favourite app, talk to the actual developers and ask them what they
would need to offer long-term support for Ubuntu. In many cases it will
not be cash, but support.

- Invest as much time as you can on supporting developers. Join the IRC
channels, the mailing lists, help writing documentation. Provide starter
templates for as many different app types as possible.

- If you can, fork an existing project and try to port it for Ubuntu.
Just start and ask for help, you might quickly find other people who
will help you.


I invest a significant amount of my time on all of this, and I slowly
see the seeds growing. For example we spent months getting libSDL2 to
work, and suddenly somebody ported Neverball and Neverputt.

cheers,
Simon


Follow ups

References