← Back to team overview

ubuntu-appstore-developers team mailing list archive

Re: Supporting multiple frameworks with an app

 

On Tue, Aug 19, 2014 at 9:53 AM, Pat McGowan <pat.mcgowan@xxxxxxxxxxxxx> wrote:
> As I recall we covered these use cases some time ago - see comments
>
> On Tue, Aug 19, 2014 at 8:24 AM, Daniel Holbach <daniel.holbach@xxxxxxxxxx>
> wrote:
>>
>> Hello everybody,
>>
>> in a discussion we had yesterday
>> (https://www.youtube.com/watch?v=XDrm1OL-oVY), the topic of supporting
>> multiple frameworks with an app came up.
>>
>> Consider the following use-cases:
>>
>>  - App com.happyhacker.app1 is successful. Everyone's using
>>    framework-stable-1 is happy with it. A new API is introduced
>>    in framework-dev-1 (which will become stable-2 one day).
>>    Using this API would make app1 even more awesome.
>>    How can our app developer stay sane in our developer story?
>
>
> This requires creating a new version of the app tied to the new framework,
> the old version will continue to be available for phones not yet upgraded.
>
> Not sure where the store stands on supporting multiple versions of the same
> app.
>
>>  - Core app com.ubuntu.app2 is great quality in stable-1 and
>>    working fine on millions of phones. With development of
>>    dev-1 starting, there are some things which need to be
>>    refactored and new APIs to be used. How can we
>>    support this "upgrade" use-case?
>>
>
> Again, two copies if I understand the question.
>
>>
>> There are a number of different angles to this.
>>
>>  1) Multiple bits in the store and the click scope
>>  2) Platform API bits
>>  3) Using APIs only when they're available(?)
>
>
> We decided not to support multiple base framework versions in a single
> click, mainly as the app_id corresponds to a single apparmor profile which
> correlates with the framework level.
>
> We do support specifying multiple frameworks but only in sensible
> combinations using the same base. For example:
> "frameworks": "ubuntu-sdk-14.04-qml, ubuntu-sdk-14.04-html"
>
>
>>  4) Supporting upgrades of phones(?)
>
>
> Of course? The phone would get an upgrade. Because of our rules on not
> breaking API, the old app works on the new upgraded phone.  Then a newer
> version of the app which uses the new framework and apis is shown as
> available. Again the store needs logic added to support the idea of multiple
> versions of the same app.
>
> I will defer to Beuno for more details.

I cheated and followed up a bit with Pat on IRC.

To summarise, I don't think we should support multiple versions of
apps. The main reason is that if we do, we have 3 options to present
to developers:
1) They loose control over what version of the app people are
downloading, as people will download the last version that had their
framework
2) We give them tools to target multiple frameworks and update them in
parallel, which introduces a lot of complexity for them, but also for
users, as they will experience the same app differently depending on
something they have no knowledge of (frameworks)
3) Give them no control over past versions and we just serve the last
known version to support the user's framework. Which I would expect
will make developers unhappy as they can't fix problems for those
users but will have to take the negative feedback

So I think we shouldn't do anything from a feature point of view.
What we should tell developers is that they should update their apps
frequently, and that they should always upload to the store versions
of the frameworks that are on devices already. We will need to provide
that information so they know percentages of users who have each
framework, I will take that as a ToDo (hi Matias!).
Our goal is to not fragment our ecosystem in any significant way,
which means we will for the most part update the majority of the
devices in the wild at the same time.
Right now, that means the recommended target framework is
ubuntu-sdk-14.10, and it will continue to be so until we have pushed
ubuntu-sdk-15.04 to all devices out there. Once the scale of number of
users that have 15.04 tips past a certain point, we can start
recommending developers upload with the 15.04 framework.
My assumptions are that we will:
- Update the base systems of all our devices in the same timeframe
- We will not introduce new target frameworks outside of new versions of the OS

If those don't pan out in reality, we can fall back on handling
multiple versions and find the best way to do that.

Am happy to have a hangout about it, of course.


-- 
Martin


Follow ups

References