You
I
Better
No
Yep
Okay
So
That's what the v0 of our launcher
And we developed it from scratch, which means that we didn't use any component or
fork anything.
We were building it from scratch.
That was the very first development.
And we reached a few months later, please don't share one.
What we can call it, please don't share one, which was our first real-on share.
You can find the link to the GitHub here.
But, basically, what we developed is a grid of application,
a dot, the possibility to create folder of application,
and we have a left panel, which is in the right ear,
but a left panel where you can set your widget.
On purpose, we don't expect our users to set widgets on the main screen.
Again, that's a design choice, which is not a purpose of this talk.
This launcher design from scratch and built from scratch
has been maintained up to Android 12.
As you can imagine, we were facing some witnesses with this launcher design from scratch.
The first main problem was we were facing a lot of crashes and upgrade resets,
which means that time-to-time people with a large number of application,
one on the right, 200-application installed,
were booting their device, and the grid was resets.
All the groups, all the icon arrangement, were resets,
and they were starting from scratch, which was a big problem.
Despite our investigation, we are not able to reproduce it reliably,
so we faced a lot of difficulty to identify the root cause of this and to fix it.
Another thing that comes with under-it-10 was quick step.
Quick step is the system-gesture-based navigation feature and task feature in AOSP.
So that's a component which lets you do those stuff in AOSP,
and it was embedded within launch 3, since if I'm not strong under-it-10.
Which means that for our design from scratch launcher,
we were not having those features,
and we were not having access, for example, to recent view,
without we have to build it again.
So the recent view is the feature that lets you switch between application.
We were also facing some problems with Dragon Drop,
and that's why we added to add a quick step APK within next-to-bliss launcher 3,
next-to-bliss launcher 3, in order to get those features work properly.
But, well, we feel it was more like a hack and was not convenient to maintain.
So for those two reasons, we decided that we need to build again a launcher
and to improve it and make something more modern.
So we look at the market, what was existing,
and with this and most of the launcher developed on the market,
we're based on launch 3, what is AOSP launch 3.
It's the default launcher in the Android ecosystem,
which is the base of Google Pixel Launcher, for example,
but also of the brand launcher, a line-and-and-joice launcher,
which is called Trebusier, and also Launcher,
which is another open source launcher.
It offers the basic features that you know if you already add
Google device in your hands, so an icon grid,
a place, this dual mode, et cetera.
It doesn't add any documentation, which was a problem for us,
but we feel that with all the components,
it was what that were included within this launch 3.
And the example of other companies or projects,
bathing their work on launch 3, it was the good pass to start working with.
And we were expecting not to read on the wheel,
which is what we all intend to do with open source.
So we built launch 3, and I will just show you a quick demo about how it looks like,
so that's my main device. So we have the icon grid that used as UCB4.
We have multiple pages, we can have four doors of applications here.
We can indeed reorganize the icons.
As we can see, again, as I, IOS, I cannot drop an icon anywhere,
we put them all at top, top left.
And we have this left screen with the widget.
You can add from the application you have installed on your device.
So that's what we were able to build by modifying launch 3b of your to which this point.
And it's quite a similar in terms of feature to what we add in launcher
in a blister on shelf first version.
I come back on the slides.
So how did we proceed?
How did it went from launch 3, which has its own design to something
most similar to IOS, and what we intended to do to for, to add for our users?
Well, and I'm sorry for one of the talk we had before, we forgot the project.
Sorry about that.
So we forgot the 12th-year project, which is the 4th itself of launch 3.
In two, our GitLab repository, and yes, it's GitLab.
It's not Garrett, we are at Mirina, we mostly rely on GitLab for now.
So that's why it has been fucked on our GitLab.
One of the main problems we add with launch 3 are not the main problem,
but it's something we feel what's not convenient for our developers.
And especially if we want to onboard Android developers, or Android application developers,
is that launch 3 is built with AOSP, which is a complex
build system, so that's why our developers are in a very early stage,
migrate the application to Android Studio, in order to be easier to build,
and also be able to use Android Studio features, even if we know Android Studio can be a bit
heavy sometimes, it brings some improvements in terms of development.
So that's what we did at a very early stage, being able to build it in Android Studio.
Then development time, so we modify launch a design and UX for to meet our expectations,
which are in your case, what I listed here.
As I said earlier, there is no documentation, so that's purely a reverse engineering,
trying to understand what our code is designed and to modify what exists in the source code.
Hopefully, we didn't add to modify a lot of stuff.
We disable some feature, like the Drawer mode, I listed here.
And then we were able to build on top of this, some features we were expecting and looking for.
So typically, rearrange icons automatically, make the icon jiglings.
Well, the icon folders, we add to modify it a bit.
And well, you can see, by scanning this QR code, all the modifications that we made on top of
launch a three, which is around 300 comets.
As any development, it takes a bit of time, and what one of the difficulty,
while developing on the launcher, if you intend to do it, is to manage the wide variety of
screen size that you can have on the market, especially when you deal with,
when you want to build this green and have a pixel perfect alignment and all the resolutions,
that's a long process to iterate, to test the emulator is indeed helpful, but not enough.
And you have to collect feedback from many people and wide variety of devices, and that's probably
what's taking a lot of time, the more time soon.
And then, but that's more internal and for our purpose, we were migrating users from a
previous version to a new version, with a completely different database.
Please don't show that a database was built by our developers.
Please don't show three is the database made by mostly the database made by Google for
launch a three. So we had to migrate the icon position on the grid, the groups of icons,
and the widgets from this previous DB, to the new one. And that's why it was kind of challenging for us.
Hopefully, as I said, most of the AOSP component launchers we are untouched. We keep them as
easy, and we only have to build a new features, but that's for developers,
culture developers, we meant in culture. So now we released these launchers three,
sorry, in May last year, what we are about is we were able to build on top of launchers three,
exactly the same features we added in this launcher. It was kind of challenging and we were not sure
we were, we were able to do it, but we were able without breaking it because we keep and we have
no more stability. So it confirms the choice that it was the best approach to base our launchers on
launchers three, because since May, I don't hear any more about bug, there is still a few,
but I'm more earring about adding new features, which is always a good sign that the development
is better. We improved a lot, a dragon drop of icons, which was one of the main complaints we
added before with the launcher. And what is very good, also, basing your project, your launcher
development on launchers three, is that it opened so do a more easy little add new features. So we
focused on the first iteration on smartphone size screen size and we were able to add easily
tablet mode and I would speak later that we can think about adding even more feature,
way more easily than by developing from scratch. One of the challenge and it joins one of the
torque we had before with forking is that we have to manage on the red versions. So before our launcher
was an APK, that we built from scratch again and that we tuned to fit each on the red version.
No, we are based on launchers three, which has one branch per on the red version, which means that
from our for users, we want to be consistent across all on the red version. We people are running
EOS and we don't want them to don't care if they are running under a 12, 13 or 14. So we want
our launchers to be exactly the same on all those on the red version and that's kind of a challenge
because we have to keep this consistency across three branches and three on the red versions.
And indeed, as I told you before, we have a set of three on the red comets and it means that
so when a new underreaction comes with its new comets, new features, etc, we have to apply our
comets on top of this new branch and fix what has been changed. So that's also something which
is a bit more difficult, but so far it has been not a bit less complex than expected, mostly because
Google doesn't release so many new features in the previous underreaction. So knows that underreaction
has been released, we released since last year. We can, there is no much feature that are coming
in the launcher, it's mostly bug fix, which make our maintenance work easier.
One of the challenge, if you build your launcher, is to keep a consistency in design between
smartphone and tablets because there are two different screen sizes and in fact that's two modes.
So as I told you earlier, we first developed on smartphones, it was working well, but when we were
opening on tablets, it was kind of messy. So well, that's a kind of a new development to do
and to keep the consistency in design that's worked to pay attention to.
But it's easier than if you developed from scratch, we were able to add tablets.
We think about working on the desktop mode, so when you plug your smartphone to a screen,
and we would like because it has been asked a lot by the community, being able to add widgets
on the screen, and so agreed. The main problem here is that we broke some features in
launcher 3 in order to make our own behavior with the organized application at top left,
and we know that it will be a bit challenging to add again, with Jets on this agreed.
To give you an idea, so in terms of work, it has been two developers working on this topic.
During one or five years, more or less, so they were not full-time on it,
they were working also on other projects, to give you also an idea of the time it takes to build
something on top of launcher 3. If you want to modify it as easily as us, indeed if you
keep the main AOSP features of launcher 3, it will be less complex. I will say that the development
itself was a third of that, maybe half a year, and then it was iterating to fix all the
bugs, and we add in our development, being able to address all the issues with screen resolution,
that was most of the time, and we manage our source code in GitHub.
So that's almost how we modified launcher 3, and as I told earlier, we confirm that from our perspective,
it's definitely the best way of the easiest way to develop a launcher from scratch,
having done the two experience of from scratch and from launcher 3.
I reach the end of this talk, which will let a bit of place for question, if you have,
but before I spoke about Blistoncher and Blistoncher 3, and you might ask where is Blistoncher 2.
In fact, it was an attempt, it was an attempt to build a second iteration of our first launcher
again from scratch, and it failed. It was a two complex to re-implement or two complex four
team size with mostly one developer dedicated to it. It was two complex and too long to re-implement
again, or what is done in launcher 3. So after some time, we stopped this Blistoncher 2 project,
and with that's where we moved to Blistoncher 3, based on launcher 3, because we tried twice,
and definitely we feel that it's the best approach to move with Blistoncher 3.
I want a bit shorter than the time slot, and we have five minute for question, probably.
Thank you very much for your attention, and you can reach me here. The source code
of Blistoncher 3 is here, and you have the slide with the QR code if you want them. So I
don't believe there are any questions. Yep. I've noticed the visual design is quite different from
the Blistoncher 3. How exactly much or did it take to implement stuff like the war effort?
So the question is, how much was it complex to implement the blur effect?
The blur effect was difficult to implement in both cases. We add difficulty in our first launcher,
and we add difficulty with launcher 3. The R play sees where it was not so much of a problem.
Okay, we'll just switch again here. So typically for the dark, it was not so much a problem.
So at bottom here, but we add difficulty to add, and we didn't add the end,
blur effect in the background of those icons, of those group icons. So that's for our performance
is proposed mostly that we were not able to do it. So we don't see a lot of difference
adding blur effect in both cases. It was difficult in both. Any other questions?
Yep. What do you want to do with the blur chart 3 to detect the blur effect in some test
coming in on the chart? So the question is, if we are doing some tests to compare performances
between launcher 3 and the work we did, note sadly that's a good question, but we didn't.
Then it runs on most of the device we tested. We recently ported on Android 12 on Galaxy S7.
Yes, no, Galaxy S7 is not a good example because it doesn't have lunches 3,
but on Galaxy S8 it has, and we don't notice any major issue.
I'm not sure we will be asked performance to be honest as much as 3, but it keeps being usable
for normal devices and normal usage. I didn't test it, but I know some people in the team
are device with 200 or more application install, and I didn't hear again problems from there.
So indeed, maybe on a very old device with a lot of application, it will fast problem,
will it be worse, or better than with launcher 3? I don't know.
So the question is, if I understand, what do we do? If Google stops supporting launcher 3,
is that correct? That's a question. Well, we will continue probably as before. We'll
work on launcher 3 and keep continuing to move it to the new Android versions. We will not have
the choice, but that is a base. We will bring way more features. That said, I feel there is a
very low chance that Google stops supporting launcher 3, because again, that's a base that's
open source space, which is used widely and especially for some OEM. So I think that don't have
any interest to close sources of launcher 3. It will make the life of anybody including the
partner way other. So cross-finger, but hopefully a lot of luck. I think there is still a room for
one or two questions. Yes, no. No question? Well, thanks a lot, everyone, and thanks a lot for