This article has been translated by Gemini.
Introduction#
To the DroidKaigi organizers, thank you so much for your hard work!!
It was really fun not only to share and receive a lot of knowledge but also to meet people for the first time, including other engineers and people from overseas whom I knew from GitHub and Twitter but had never spoken to in real life.

Towards the Presentation#
At DroidKaigi, I gave a presentation about Flux.
Originally, I planned to roughly verbalize and present an overview of Flux + the good and bad parts of Flux that I feel in practice.
However, around the latter half of the preparation period, I realized that even if I could verbalize it, I wouldn’t be able to explain the merits well or have people feel them intuitively without a certain level of knowledge or shared “premise.” Furthermore, below is what I wrote in my proposal:
In this talk, I’ll talk about flux architecture as one of the solid solutions for managing states within Android application; by achieving unidirectional data flow, we aim to think less, focus more on feature development, and scale faster.
I hadn’t been very conscious of the content of this proposal midway through the preparation. (I realized this when I shared the materials halfway through at a sharing session within my division..)
I revised the materials I had started creating, wondering again what content I should present. I worried until the end and consulted with my juniors, colleagues, and senior engineers in the company. Thank you all again. Especially @kaelaela, who practiced the presentation with me several times. Thanks!
Final Presentation Content#
Ultimately, while adhering to the proposal, I wanted to present the merits and troubling aspects of Flux for Android application development as I feel them most right now.
So, based on the premise that making the data flow within the app unidirectional and positioning the Store as the sole component managing data is important, I personally concluded and wanted to share that the merits and troubling aspects of adopting Flux for Android app development are as follows:
Merits#
- The concept of Flux’s unidirectionality and the architectural diagram itself are simple.
- Since the responsibilities of each Flux part are clearly divided, the implementation code is unified to some extent.
- By implementing the Flux data flow on a feature basis, Flux parts and internal logic once implemented can be reused when adding new features or screens.
- By using Kotlin’s
sealedclasses and givingActionclasses easy-to-understand names, reading the internal logic of theStoreallows understanding of the app’s specifications.
By enjoying these merits, we can reduce the time spent thinking and worrying about data management methods and feature additions in Android development. Furthermore, in areas other than writing code, for example, when new members join the team, they can demonstrate their abilities at an early stage, and ultimately, the app becomes easy to scale. I decided to give a presentation along these lines.
Of course, I wanted to introduce not only the good points but also the troubling ones.
Troubling Aspects#
- The original role of the
Dispatcheris a so-called Event Bus (transmitting data to the entire app). - I sometimes wonder whether to write processing in
ActionCreatororStore.
Based on these, the final slide deck is below:
Roughly from when the talk was decided to the actual talk#
Talk decided:
I will talk about Flux at DroidKaigi 2018!https://t.co/UBibTEwhWm
— Shohei Kawano (@_shoheikawano) November 6, 2017
Feeling nervous already from the end of 2017:
朝、目が覚めるとDroidKaigi当日でした!っていう夢を見て飛び起きた2017年最終勤務日いぇい!涙汗焦
— Shohei Kawano (@_shoheikawano) December 28, 2017
And realizing a typo “foe” in the last tweet right before the talk due to extreme nervousness:
This is the slide for the flux foe Android session #DroidKaigi I am super nervous!! https://t.co/h0VI4OP8R2
— Shohei Kawano (@_shoheikawano) February 9, 2018
Since the presentation was in English, I expected many people from overseas, but actually, there were only about 5, and the rest were Japanese. lol
Reflection#
At the after-party on the first day, @wasabeef advised me, “If you want them to enjoy Japan, introduce something, like Ramen.” Since I hadn’t decided on the best Ramen shop myself, I introduced the convenience of Japanese convenience stores, which are rare for people from overseas, and my favorite “Nana Chiki” from 7-Eleven among the many convenience stores, before my talk. Being able to do this gave me a lot of confidence. However, @wasabeef told me Ramen would have been better, so I reflect on that.
The presentation didn’t go as smoothly as in practice, as expected. I stumbled over my words, and at the end, although the timing was almost perfect, I was startled by the timer sound and screamed “Enjoy Japan!” to finish ( ゚∀゚)・∵. GUHA!! It ended in a way that I absolutely cannot watch my own video when it’s uploaded to YouTube out of fear. However, receiving complimentary tweets, people talking to me for the first time during office hours, and seeing points for improvement in my slides from a tweet by a junior colleague at work… including both the good and the failures, I keenly felt again that it was good to have presented.
A reflection point is that I didn’t realize early on that when presenting about architecture, simply introducing a simple sample doesn’t convey the benefits without context. I felt a 50-minute slot might have been more appropriate.
Regarding time allocation, I thought it might be better to allocate time to finish early since there’s no problem with finishing early. In my case, during the actual performance, I thought I still had time and was talking about details when I went over, so I regretted not just finishing quickly without thinking “I have time.”
I definitely want to present again.
Also, this is about the whole event, but I wished I could have talked more with other speakers. This is my biggest regret. Next year I’ll make friends with many more people!!!
Tweets#
Me realizing “foe” after it ended, and the kindness of DroidKaigi official liking it:
foe.. I was so nervous
— Shohei Kawano (@_shoheikawano) February 9, 2018
Thank you everyone!!
Thank you!!
— Shohei Kawano (@_shoheikawano) February 9, 2018
あそちらのほうがわかりやすそうなので資料も編集しておきます!ありがとうございます!
— Shohei Kawano (@_shoheikawano) February 9, 2018
Finally, sharing some photos I took.











Once again, thank you very much to all the organizers!!
That’s all!