Closed18

【気になったこと】2023年4月12日

maxfie1dmaxfie1d
maxfie1dmaxfie1d

The multiplatform Collections and DataStore libraries are now moving from experimental developer previews to alpha releases, and will follow the normal release cycle of Jetpack libraries. Annotations, a core Jetpack library, is now also available for multiplatform.

マルチプラットフォームのCollectionsおよびDataStoreライブラリは、実験的な開発者プレビューからアルファリリースへと移行し、Jetpackライブラリの通常のリリースサイクルに従います。また、アノテーションというコアなJetpackライブラリもマルチプラットフォームで利用可能になりました

maxfie1dmaxfie1d
maxfie1dmaxfie1d

必須スキル

・Kotlin ならびに Java を用いた Android プラットフォームのアプリケーションの開発経験(2年以上)
・Jetpack Compose を用いたアプリケーション開発の業務経験
・Google Play ストアで業務としてアプリケーションを配信・運用した経験
・Android Studio の標準的な操作を習得していること
・Gradle を利用する上での Groovy ならびに Kotlin DSL の利用経験
・Git 等のバージョン管理システムおよびそれらを利用した開発フローを習得していること
・Google から提供される技術情報の迅速かつ継続的なキャッチアップが行えること
・アプリケーションの継続的なテスト・配信体制構築の実務経験
・現在においても開発・実装に直接携わっていること
・複雑で不慣れな実装、及び開発言語にも素早く適応できる柔軟性
・英語で書かれた技術文書を理解できる語学力

歓迎スキル

・NFC API、特にIsoDepを用いてカードや機器と情報を交換するアプリケーションの開発経験
・Host card emulationを使ったカードアプリケーションの開発経験
・BluetoothならびにBluetooth Low Energyを使ったデータ交換アプリケーションの開発経験
・Java Card OS上で動作するアプレットの開発経験
・SAML / OIDCをはじめとした認証プロトコルへの理解
・Maven Central等でライブラリを公開・運用した経験
・オープンソースプロジェクトへのコントリビュート経験
・Androidプラットフォームのビルドとカスタムイメージの作成経験
・Mermaid記法による作図経験
・アジャイル開発、特にスクラム開発に対して主導できる能力
・組織内外との対面及び書面による優れたコミュニケーション能力
・KPIを重視し、積極的に行動し、継続的な改善、適応、反省、成長に意欲的である
・開発者コミュニティにおける活発な活動経験
・新しい技術と研究に対する強い好奇心と積極的に検証する能力
・プロダクト開発においてプロダクトマネージャーやアーキテクト、エンジニアリングマネージャー、テックリードといった役割での実務経験またはそれに準ずる業務遂行能力
・プロダクト開発において開発初期から運用までの一連のプロセスに深く携わった経験、物事を自ら主導して課題解決をする働き方、組織を主導して課題を解決した経験
・アクセシビリティ対応の実務経験

maxfie1dmaxfie1d
maxfie1dmaxfie1d

ViewModel の state のミューテーションをシンプルに記述できる

@GenerateMutableModel
interface LoginState {
    val isLoading: Boolean
    val loggedInUserId: String?
    val error: String?
}
private val _state = MutableNotesState(isLoading = true, notes = emptyList(), error = null)

fun setLoading() {
    _state.isLoading = true
}

fun setNotes() {
    _state.update {
        isLoading = false
        notes = listOf("Lorem Ipsum")
    }
}
val state: StateFlow<LoginState> = _state.asStateFlow()

fun login() {
    _state.isLoading = true // You can directly mutate it 😀

    try {
        val userId = performLogin()
        _state.update { // Mutate it atomically 😀
            isLoading = false
            loggedInUserId = userId
        }
    } catch (e: Throwable) {
        _state.update {
            isLoading = false
            error = "Error Occurred
        }    
    }
}
maxfie1dmaxfie1d
maxfie1dmaxfie1d

When you upgrade to Android Studio Flamingo and Android Gradle Plugin (AGP) 8.0, you need to update your app build files to accommodate five important build behavior changes.

まもなく登場する AGP 8.0 に合わせて対応が必要になりそうです。

maxfie1dmaxfie1d
maxfie1dmaxfie1d

The update introduces dedicated surface color roles that are no longer tied to elevation. Makers will be able to choose the right surface roles based on the containment needs of their products, and now have more layout flexibility for larger screens.

Surface の container color が elevation と関係なく設定できるようになるらしい。

このスクラップは2023/04/12にクローズされました