Nextome at Droidcon 2023
What is Droidcon?
Droidcon is a series of community events focused on software development for Google’s operating system Android.
The first Droidcon event happened in 2009 in Berlin. From there, the format started growing in all Europe and even outside of it. Today, more than 20 countries held a Droidcon event in a major city: the largest Droidcon ever was Droidcon London 2019 with 1.400 attendees and Droidcon Berlin with 2.000 attendees (co-organized with Fluttercon Berlin, a conference about Flutter).
What was your experience with Droidcon?
I was very excited this year to be selected as a Speaker for Droidcon Italy (12-13 October in Turin) and Droidcon London (26-27 October). It was an opportunity to meet a lot of other professional Android Developers, share our experiences, and learn from each other.
Let’s start from Turin. What was your talk about?
My talk for Droidcon Turin was about background work (“A guide to Android Background Work in 2023”).
“Background work” means a task that must complete while the user isn’t directly interacting with the app. An example would be listening to music, where the phone should continue playing the song even when the screen is off or the user explores other apps.
At Nextome, we heavily use Background Work for our localization services: we receive signals from Bluetooth Beacons in the environment, we filter them to eliminate noise and we compute the position of the user or the asset. This needs to happen even when the phone is sleeping with the screen off for long periods of time.
What are the challenges to perform Background Work on Android?
Scheduling background work on Android isn’t always easy. The correct way to do so depends on many factors like:
- Android Version installed on the Smartphone
- Smartphone vendor (since different brands may use different strategies to handle background work)
- State of the smartphone (low battery, stationary device in deep sleep)
- Type of task (long running or small, tasks scheduled at exact time or in a time interval)
and more…
Most importantly, each Android version introduces different policies to avoid abuse, since background work could happen when the user is not aware of it and cause issues like battery drain.
There are also different tools that a developer may use to handle each time of work based on the circumstances.
In my talk, I decided to share what I learned during my work at Nextome and suggest appropriate tools for each case. Furthermore, I made some examples about background work and Localization, since sensible permissions like GPS and Bluetooth (that can lead to an exact position of the device), require additional security checks.
Can you share an example?
Yes, some smartphone vendors “kill” the app and all its processes when the app is removed from the list of recent apps. That may be “good” in the short term for users, to preserve battery life, but it turns to be harmful to the developer community that isn’t able to offer the same behavior of the app across all smartphone vendors.
There are a lot more examples about this online, for example on this website: https://dontkillmyapp.com/
What about London?
In London, I gave another talk named: “Brick by Brick: Building Open-Source Libraries”. This time, I had a co-speaker with me: Nicola Corti, who works in the React team.
Why Open Source?
Open Source is a topic I’m very passionate about and to which I owe a lot. In fact, my first development experience was with Ubuntu, an open-source project to build a free Operating System. Open Source is all about sharing and collaboration, to learn and build software together.
How did you meet Nicola?
I actually met Nicola Corti thanks to Open Source! That’s the beauty of working with people passionate about the same project from all around the globe.
In 2015, I developed and published an Android Library called “AppIntro” on GitHub and I would never believe the way it grew to be a success today (with more than 10.000 stars on GitHub).
Nicola started contributing to AppIntro’s codebase and eventually became a maintainer. We met for the first time in person at Droidcon Turin 2018 and, as it usually happens with other contributors in this field, it was nice to associate a face to a GitHub username! Also, Nicola is Italian too (he’s from Pisa).
Can companies contribute to Open Source?
Absolutely yes! At Nextome, last year we decided to experiment with Kotlin Multiplatform and rewrite our SDK from scratch with it, to have a single codebase for both iOS and Android.
Part of our efforts are explained in a talk we gave at FOSDEM 2023: “Kotlin Multiplatform for Android & iOS developers” (https://archive.fosdem.org/2023/schedule/event/kmp_for_android_and_ios_library_developers/).
During the development phase, we decided to open-source some modules like KmmBeacons (https://github.com/Nextome/KmmBeacons) and make them available to the development community. KmmBeacon is a Bluetooth scanner that searches for nearby beacons on both Android and iOS.
Other modules developed by Nextome like KLocation, a multiplatform library to listen to location updates on iOS and Android (both with Play Service and without), will be open-sourced soon.
I think that contributing to Open-Source is a way for companies to give something back to the community since we all use a lot of OSS libraries in our apps.
Back to Droidcon London, what was your talk like?
We decided to tell the story of AppIntro and some other open-source Android libraries we maintain. The talk analyzed with real-life examples all the different phases of building a library: from writing the code to publishing and growing a community behind it. We hope to have inspired other people to start contributing to OS with the right motivation and the right tools.
Last question, what about the future?
I certainly hope to take part at events like that again in the future, as a speaker or as an attendee. Meeting other members of the Android community and giving a face to names on the Internet is a refreshing experience. The good thing about conferences like these is you also hear a lot of real-life experiences from other skilled developers in the field. It is true that sometimes you learn more during the conference coffee breaks than attending the actual talks! We also had a good dose of fun and made new friendships: after the last day of Droidcon Turin, with a group of other Nextome colleagues, we made some foreign speakers try Italian pizza for the first time!