Do you really want to amaze your friends and delight your users? Try adding a View directly to the WindowManager. Pretty cool stuff, right? Now, run your UI in a sticky Service. Maybe you are on your way to making the next floating web browser, huh?
Not so fast. This fun technique has some unexpected pitfalls. What happens when you want to translate your Views in the WindowManager? What happens when you want to apply some alpha animations pre-Lollipop? What about scaling? While building these cool features into IFTTT's DO Button app, I quickly found some unexpected behaviors.
This talk will cover first the basics of making this uniquely Android experience and then drill into the tactics for maneuvering the quirks of the trade. I will explain the strategies I used in maintaining consistent behavior from API level 15 (4.0.4) to 21 (5.0) and how you can save your sanity while still impressing your friends with these "floating" Views.
I strive to build delightful experiences for users' most personal devices. At IFTTT, I have the pleasure of working with a broad range of Android APIs and features across four apps. We love to automate all the things, and Android has been no small part of that dream. I love constantly learning and building new techniques, and Android provides both a great platform and an excellent community for devs.