HENNGE@ DroidKaigi 2022
On October 5th — 6th I attended DroidKaigi 2022 in person at the Prism Hall in Tokyo City Dome near Korakuen in Tokyo. This event was the first in-person conference for DroidKaigi since the covid 19 pandemic started in 2020 and was run both as a hybrid event with some talks in person and some running online. All talks were recorded for later posting to YouTube for this who were unable to attend to access.
The event space was just large enough for a small exhibition hall, three main presentation stages and small presentation area. There were a fair number of participants though not really much room in particular for meeting other developers. To address this, DroidKaigi had set up a few Meetup events outside of the main venue, though participants did need to choose between attending talks vs attending the specific meetup they were likely to fit in with. Just inside the door, after temperature checks and disinfectant spray, t-shirts and swag bags were fully stocked with gifts from the sponsors inside.
The Exhibition area had several booths with many sponsors having double-sided or multiple tables present. There were product demos, community code reviews and also many surveys and quizzes for developers to try and answer. There was also a stamp collection challenge in the event program that gave away prizes for talking to the sponsors and collecting stamps from each of them. In each of the talk areas scheduled talks were held with short breaks between and simultaneously online talks not played at the site were also given via streaming over Youtube.
At roughly 10:30 am on the first day, the opening ceremony/welcome talk began. This talk mostly covered a basic introduction to the event while also going over the basic rules of participating. Talks with last-minute changes (room changes or cancellations) were also announced at this point. After the welcome talk, I also was able to attend a number of other talks which I will quickly summarize below.
“State of Jetpack Compose” was an online-only talk that began streaming at 11:15 on the first day of the conference. In this talk, Ben Trengrove from Android Developer Relations gave a 40-minute overview of the recent history of the Android Compose UI library as well as covered its new and upcoming features. Some of the main points brought up in the speech are Google’s view that all new apps ought to be written in the new library and that old apps ought to be converted as new features are added. Not everything (especially Navigation) is fully functional but the library itself is considered ready to use for production with two stable versions (1.0 and 1.2) released to the public. The latest features coming out in version 1.3 were also covered as well as the new features coming out to Material 3 for composition and new testing tools to help developers build more stable apps.
The next talk I was able to attend was “Introduction to Wear OS Application Development” given by Ryo Yamazaki on-site. This talk gave a good summary of the current state of the WearOS API along with some suggestions on how to best make use of WearOS’s features for one’s app. In addition, the process needed to develop a wear app and as well as how compose libraries work on WearOS.
The following talk I attended was called “Androidのモダンな技術選択にあわせて自動テストもアップデートしよう” which was given by Nozomi Takuma. The talk centered on strategies for testing Compose UI while working with some of the most modern Android and Kotlin concepts such as Flow and State Holders. A number of techniques and test API options were displayed as more examples of tests were given. Towards the end interactions with Dagger Hilt were also discussed and how to work around potential problems.
Subsequently, I attended the talk “How to Test Your Compose UI” by stewemetal which covered some of the differences between testing old vs new UI and provided a different set of insights on testing Compose UI elements. This also included an overview of how to safely refer to UI components via semantic properties, how that interacts with accessibility, and also caution points when overwriting semantic values. Finally, hybrid testing involving traditional views and compose views were covered by using Espresso inside of composing style tests.
At the end of day one, a quick set of lightning talks were given. Most of these seemed to focus on short introductions to some of the sponsors of this year’s conference.
On the 2nd day of the conference, there was no offline welcome startup but there was an online alternative. Many of the event sponsors made changes to their booths to have something different to show to folks attending both days of the conference.
The first talk I attended on the 2nd day was “Android/Chromeで体験できる認証のための標準化仕様の現在と未来” by Ritou from MIXI. This talk gave a historical perspective on how logins, passwords and other authentication methods evolved over the years and where authentication is headed in the future. Specifically, strategies to counter phishing and man-in-the-middle attacks were covered from the perspective of handling user logins. Concepts covered include passwords, two-factor authentications like phone text messages, device keys and dongles, FIDO and OTP.
The second talk of the day I was able to attend was “アクセシビリティは向上させる物 ~視覚障害当事者の立場で私が目指している理想的な社会~” which was a special guest talk given by Maverick (Katsutoshi Tsuji) of SmartHR. In this talk, Maverick went over the current state of accessibility support in Japan, how things have improved over the years and what is still lacking. Though lots of technology has become available over the last several years one of the big issues the issues brought up is that many things in government and official life still require interacting with paper for which there is no help for folks with vision impairments. Frequently the only response is “bring a family member or helper to assist you”. This is a kind of shocking state of affairs and Maverick welcomes everyone to help participate in creating a more accessible future while reminding everyone that not everyone has the resources they need to do some things we think as very basic to our own lives.
The third talk I attended on day 2 was All your Compose @Previews to screenshot tests without instrumentation by David Vávra. This topic covered screenshot tests which are tests that compare known UI test states to automated screenshots generated from the latest code. This kind of test helps catch unintended changes in UI and other broken states related to UI. These types of tests are more common in iOS but are becoming more available in android due to the ease of generating such images using compose previews. The talk covered how to set up these tests on android and how to integrate them into GitHub actions for automated testing. It also covered strategies for dealing with issues such as GitHub repository bloating caused by the images being added to each build. In passing David also mentioned that these tests can easily be set up for iOS as well as classic Android views, though classic views require more work to set up.
The 2nd to the last talk I attended was on how to convert a project’s CI code integration code completely to Kotlin. This talk by Pierrick Greze talked about a special project setup he used to convert all of the continuous integration code from an assortment of multiple languages (Ruby, Python, and Javascript) into a single language: Kotlin. The setup involved custom Docker images as well as special Gradle commands such as JavaExec Tasks. While this particular configuration may be too much work for many Android projects, the build seemed to have merit for reducing the breadth of particular programming language learning needs for future engineers who might wish to join the project.
The final talk of the Thursday presentations was “Deep dive into Jetpack Compose Text” given by Seigo Nonaka who works directly on the code for the Text object in Android. The talk covered in depth the base libraries that classic android TextView is based upon and how these were used to create the new Compose Text widget. Following this deep technical overview, a list of the current features as well as how they were written was also talked about. Towards the end of the talk, Seigo also covered the latest features for the Text object and experimental features coming online soon.
With the end of the talk, the 2nd day for DroidKaigi came to an end and also concluded the events within the Prism Hall at Tokyo Dome City. A final third day was also held for DroidKaigi but this day was more focused on code labs and individual consultation hours provided by DroidKaigi that had to be registered for in advance. For personal reasons I chose not to attend this day so it has been left out of this article.
As this was the first DroidKaigi to have an offline presence s once the beginning of the Covid19 situation, this in-person event was smaller than some of the years past, but in continuation of last year’s themes, online access was strong and has provided the opportunity for this who could not attend in person not participate in the community. I personally look forward to seeing how this event continues to evolve in the future.