Skip to main content

Participated in potatotips #66 as an Android Blog Contributor

note

This article has been translated by Gemini.

Participated as an Android Blog Contributor
#

On November 11, 2019 (Pocky Day), potatotips was held, and I participated! The venue for this potatotips was provided by Yappli! Thank you very much! Since I participated as an Android blog contributor, I will roughly summarize the presentations related to Android and cross-platform development.

potatotips.connpass.com

The event page for potatotips is linked above.

Photos
#

f🆔shaunkawano:20191114105329p:plain

Beautiful office!

f🆔shaunkawano:20191114105320p:plain

Lots of potato chips too!

Content
#

Below is a brief look back with impressions and rough notes.

Building on a Platform: Build Mechanism and Improvements by @lai2580
#

speakerdeck.com

This was about the build process on a platform. Previously, each app had its own project, and engineers built them manually on build machines. They improved speed by introducing CircleCI, which was already used on the server side. Knowledge of tools like CI for platform-level builds might not be common in the world. Since I’ve only experienced general app development, I felt the scale of the “pain” was different.

3 Things That Surprised an Android Engineer Entering Flutter by @numatch2552
#

speakerdeck.com

This was about entering Flutter from an Android engineer’s perspective. Flutter Doctor might scold you a lot at first, but it’s not scary (you can solve things one by one). Plugins are easy to install and use, and “Flutter evolves through plugins.” Many things don’t depend on platform features. When integrating Firebase, the documentation is substantial so there’s no need to worry. (I haven’t touched Flutter much yet 👼)

Edge-to-edge with Insetter by @_rmakiyama
#

speakerdeck.com

New gesture navigation was introduced in Android Q, and to implement a more immersive UX, Edge-to-edge implementation (spreading the UI across the whole screen) was recommended. Chris Banes’ Insetter library was introduced as an implementation method. It seems easy to implement. As noted in the slides, there is a mention on GitHub that this library might eventually move into Android Jetpack.

The contents of this library may eventually be moved into Android Jetpack at a later date. github.com

Firebase A/B Testing Targeting Tips by @mukky620
#

speakerdeck.com

This was about points he got stuck on when using Firebase in practice. Regarding targeting, when specifying an app version, you use versionName for Android, and bundleVersion (not version) for iOS. For iOS, specifying version shows the target count on the console, but this is wrong; specifying bundleVersion targets correctly. Documentation reflects this, so there might be a bug in the console display. Differences between Audience and UserProperty were also introduced.

How to test Coroutines in ViewModel by @hkusu_
#

speakerdeck.com

This was about how to test suspend functions defined in a ViewModel. With standard unit test descriptions, the test doesn’t wait for the ViewModel function to complete, so the test finishes and fails beforehand. Solutions introduced were: making the function return a Job to use in test code, passing a CoroutineScope when creating the ViewModel to swap it during testing, and passing a Dispatcher to use TestCoroutineDispatcher during testing.

Creating an Internal API Client with Kotlin Multiplatform Project by @fusuma0325
#

speakerdeck.com

This was about using Kotlin Multiplatform to create a client app using an internal API (especially regarding platform-specific implementations). You define something like an interface with expect, and implement the logic corresponding to expect in each platform using actual. When defining suspend functions on the Kotlin side, the framework for iOS (Swift) isn’t generated, so they prepared functions returning a Deferred type for Swift, but since that revealed too much implementation detail to the client, they eventually used wrappers. (I haven’t touched Kotlin Multiplatform much yet 👼)

In-app updates on Android - Overview & Pitfalls by @kurun_pan
#

speakerdeck.com

This was about the overview and hidden traps of In-App Updates. The In-App Updates API can basically be thought of as an API for communicating with the Google Play Store. It’s in the com.google.android.play:core package. I found it interesting that this API judges whether an update is possible based on whether an update is available in the Google Play Store UI. However, the update detection algorithm is a black box and the timing can differ from when the update release reflects in the app. Sample code is also available.

github.com

Summary
#

I participated in potatotips after a long time. It was very fun! It took more time than I thought, so next time I’ll participate in a role other than blog contributor!