Already in this far October of 2014, I wrote a
post about the experience of interacting with smartphones, their shells and about my presentation of the ideal launcher for Android.

Since then, the truth has flowed a lot of time. And if then I just “tested the ground”: I worked with test builds, studying the source code of a standard solution from Google, prepared for the presentation of an idea on a crowdfunding platform and interpreted user feedback, now we are talking about the finished product.
I didn’t just talk about time, because between October 14 and the present day there was a series of trial and error, a thousand cups of coffee and sleepless nights - invaluable experience that only work on your favorite project can give. So, first things first.
')
Taking on the development of the launcher, it was difficult to imagine how they are written and how much functionality is being closed. Who knows, I would decide again to take on such a project, knowing the amount of work to be. And it is great in the first place the number of small things that should be taken into account. It is here about the introduction of its functionality and the optimization of the launcher for different OS versions and screen sizes. At the moment, the launcher has collected almost all of the available security permissions, just like a real virus, but there was no other way, because the “Smart Tiles” that I invented are interacting with many sides of Androyd.
And that's not all on the screenshots climbedWhen competitors were studied, it was time to look for a legal basis for the realization of the idea, I didn’t want to write an application of this size from scratch, and there were no such opportunities. The choice fell on the default gugolovsky launcher2, which was drawn out with grepCode. I do not know how legal it is, but I’m pretty sure that there is an open source. It is worth noting here that this is a rather old version of the classic launcher (there is already version 5). Looking back, I can state that this was the
first and most significant mistake . This base turned out to be really very old and could not do such things as “mast hev”, such as, for example, elementary management of the number of desktops, etc. “Why not a newer base?”, You ask. At that moment I was thinking about backward compatibility for earlier versions of Android.
Then there was a pattern break, because the application did not compile at all, requiring classes that should have appeared only in the next version of the system or existed in general in some special authoring library set. I snooped around on the Internet looking for even a hint of a solution, feeling like a squirrel Scrat, who rushes with acorns-components, tucking the project from all sides. As a result, the launcher swelled into completely unexpected classes, but began to compile.
Then it was a little easier - it was necessary to get rid of unnecessary components. Easily! But this was the
error number 2 - somewhere I overdid it, getting rid of something not at all superfluous. The subsequent analysis and return of the lost took a lot of time and effort.
The next stage was the "Tiles". And although the understanding of their work was present, in fact, not everything turned out so smoothly. What is only worth the gesture control system on the desktop, consisting of several levels of event interceptors, delegating an event along a chain or absorbing it. And everything is written on top of the standard event model. For a long time I had to dive through the sources, trying to figure out who typed the event before it reached my component.
Some functions of a third-party application to perform not in order, for example, the location of widgets in its context. In android 4.4 added functionality that allows you to request permission to host the widget, by confirming this operation from the user. System permission could not be used, since the application that uses it must have the same signature as the entire system build.
There was also a “mini gallery” that did not want to flip through photos, “SMS tile”, which was supposed to make friends with all instant messengers at once and “quick settings” with an endless series of surprises.
Having overcome most of these problems and brought it to a more or less decent state, I decided to publish SlideUP Launcher on Google Play and this was my
third serious mistake . I think no need to explain why, because the raw product has not brought anyone success.
PS Looking ahead to say that the launcher is now rewritten from scratch on a new base, the functionality has been added and a huge number of errors have been fixed. And I understand that this is far from the end of the road: there is a solid foundation, but much remains to be done, since there are no problems with ideas, as well as with new difficulties that will surely come out in the most unexpected places. About the decision to start over, surprises Lollipop and many other things I will write next time. As the saying goes “to be continued ...”