Jetpack Compose vs SwiftUI

世界のデベロッパーたちが比較しています。

UI部分の統一化、どちらが奪取するのでしょうか。

We looked at how to build a simple app with both Jetpack Compose and SwiftUI. The approaches for using these frameworks is different as outlined above.

👉 Jetpack Compose vs SwiftUI - Coding with Mohit hatena-bookmark

If you think it is a good idea to use Compose for both Android and iOS, I’ll probably disagree with you. It is important to respect UI/UX guidelines of the platform and Compose can’t build an application like SwiftUI does.

👉 SwiftUI vs Jetpack Compose by an Android Engineer | by Gérard Paligot | Mar, 2022 | ProAndroidDev hatena-bookmark

You should definitely keep an eye on both frameworks!

👉 SwiftUI vs. Jetpack Compose | QuickBird Studios Blog hatena-bookmark

Kotlinに慣れ親しんでるのもあるかもしれませんが、個人的にはJetpack Composeが一番ストレスなく書くことができました。 Jetpack Composeは現在DesktopアプリやWebでも使え、今後活躍の幅が広がって欲しいなと思っています。

👉 Jetpack Compose, React, Flutter, SwiftUIを比較する - Blog - Mori Atsushi hatena-bookmark

まだ、どちらとも言えませんね。

注視しておく必要があるでしょう。


GitHub Code Search (Preview) の カスタムスコープ は強力 - cs.github.com

どこが新しくなったのか謎でしたが。

👉 GitHub Code Search (Preview) hatena-bookmark

「カスタムスコープ」機能が強力です。

分かりづらいとこにあるので見逃していました。

https://cs.github.com/

記述例に従って作成した自分のお気に入りスコープを複数保存することができます。

GitHub Code Search - cs.github.com

デフォルトに指定しておけばページを開いたときはそれが既に指定されています、

GitHub Code Search - cs.github.com

ちなみに、以前は検索できなかった記号も検索できるようになってます!
GitHub Code Search - cs.github.com

GitHub Code Search は、検索結果の並び替えをつけないことなど、こだわりのポリシーが感じられます。

期待できます。


【Kotlin】そのアプリが、フォアグラウンドになったとき、フォアグラウンドであるかどうか、を検知・検出する

現在、絶賛?キャンペーン中ですかね。

アプリ起動時広告は、アプリの読み込み画面を収益化することを望むパブリッシャー様を対象とした広告フォーマットです。この広告は、ユーザーがアプリをフォアグラウンドに移動すると表示され、いつでも閉じることができます。

アプリ起動時広告は、アプリの読み込み画面を収益化することを望むパブリッシャー様を対象とした広告フォーマットです。この広告は、ユーザーがアプリをフォアグラウンドに移動すると表示され、いつでも閉じることができます。

👉 アプリ起動時広告  |  Android  |  Google Developers 

眺めてましたよ、おぼつかないサンプルコードを。

複数のコールバックたちに苦しみながらサンプルコードを容赦なく大幅改変していく様子が、API設計の難しさを表してると思います。

今回は、

「アプリがフォアグラウンド(可視状態)になったら何らかの処理をする。」

というやつ関連を抽出しておきます。


class MyApplication : Application(), Application.ActivityLifecycleCallbacks, LifecycleObserver {

  override fun onCreate() {
    super.onCreate()

    ProcessLifecycleOwner.get().lifecycle.addObserver(this)

  }


  @OnLifecycleEvent(Lifecycle.Event.ON_START)
  fun onMoveToForeground() {
    // Show the ad (if available) when the app moves to foreground.

    // do something

  }

👉 googleads-mobile-android-examples/MyApplication.kt at master · googleads/googleads-mobile-android-examples 

Deprecated なのを置き換えて、継承から外します。


ProcessLifecycleOwner.get().lifecycle.addObserver(
  object : DefaultLifecycleObserver {
    override fun onStart(owner: LifecycleOwner) {
      // do something
    }
  }
)


便利ですねこれ。

あと、

「アプリがフォアグラウンド(可視状態)かどうか。」

というやつ。


val foreground: Boolean
  get() = ProcessLifecycleOwner.get().lifecycle.currentState.isAtLeast(Lifecycle.State.RESUMED)

ここは、「RESUMED」でいいのか知らんが、試せばいいか。

👉 DefaultLifecycleObserver や LifecycleEventObserver の使い方