【Kotlin】Compose Multiplatform 1 (75レス)
【Kotlin】Compose Multiplatform 1 http://mevius.5ch.net/test/read.cgi/tech/1718894837/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
1: デフォルトの名無しさん [] 2024/06/20(木) 23:47:17.52 ID:vbElSNSS iOS、Android、デスクトップ、Webに対応したUIフレームワークで手軽にアプリを作りましょう! ・各種プラットフォーム間でコードを共有可能 ・宣言型UIによる最大100%のコードベース ・Kotlin Multiplatform (KMP) & Jetpack Composeベース http://mevius.5ch.net/test/read.cgi/tech/1718894837/1
2: デフォルトの名無しさん [] 2024/06/20(木) 23:47:44.97 ID:vbElSNSS 公式 https://www.jetbrains.com/ja-jp/lp/compose-multiplatform/ http://mevius.5ch.net/test/read.cgi/tech/1718894837/2
3: デフォルトの名無しさん [] 2024/06/20(木) 23:57:21.20 ID:wkeLzLVS KMP対応Composeライブラリ一覧 ttps://github.com/terrakok/kmp-awesome http://mevius.5ch.net/test/read.cgi/tech/1718894837/3
4: デフォルトの名無しさん [sage] 2024/06/21(金) 04:25:54.59 ID:jKJT7aI8 これってなんなの?GUI部分しか作れないの? http://mevius.5ch.net/test/read.cgi/tech/1718894837/4
5: デフォルトの名無しさん [] 2024/06/21(金) 06:37:17.02 ID:XqVI1f39 ビジネスロジック、GUIともにKotlinでコードを書けるよ http://mevius.5ch.net/test/read.cgi/tech/1718894837/5
6: デフォルトの名無しさん [sage] 2024/06/21(金) 07:04:42.89 ID:Atsq9vif Kotlinは書いてて楽しいからすき http://mevius.5ch.net/test/read.cgi/tech/1718894837/6
7: デフォルトの名無しさん [sage] 2024/06/21(金) 07:21:00.38 ID:Rhs7e8T4 Jetpack Composeやってるけど特に状態まわりでFlutterより書きやすい http://mevius.5ch.net/test/read.cgi/tech/1718894837/7
8: デフォルトの名無しさん [sage] 2024/06/21(金) 07:34:20.22 ID:6EoJ4PVu お、ついにComposeのスレが立ったか! みんなKotlinのComposeやろうぜ!! http://mevius.5ch.net/test/read.cgi/tech/1718894837/8
9: デフォルトの名無しさん [sage] 2024/06/21(金) 07:53:39.59 ID:59+ROyU+ うおおおやるか http://mevius.5ch.net/test/read.cgi/tech/1718894837/9
10: デフォルトの名無しさん [sage] 2024/06/24(月) 02:08:16.72 ID:LPHYNtWT Kotlin Fest 2024のメモまとめ ttps://qiita.com/FalconFlat/items/7f802d95d6e1a686fb96 http://mevius.5ch.net/test/read.cgi/tech/1718894837/10
11: デフォルトの名無しさん [sage] 2024/06/29(土) 11:04:50.57 ID:CFjt49h3 久しぶりに調べたけど DataStore,RoomやLifeCycleやViewModelもKMPいけるのか? NavigationもJetbrainsから出るの? そろそろ感じやな http://mevius.5ch.net/test/read.cgi/tech/1718894837/11
12: デフォルトの名無しさん [sage] 2024/06/29(土) 21:55:39.44 ID:ootEijyj SQLiteに関してはSQLDelightはちょっと使いにくいと感じてたからRoomのKMP対応は素直に嬉しい あと最新SQLite3.46.0バイナリを同梱したドライバを泥のRoomで使えるようになったからON CONFLICTとかを書けるようになって便利 http://mevius.5ch.net/test/read.cgi/tech/1718894837/12
13: デフォルトの名無しさん [sage] 2024/06/30(日) 11:47:30.99 ID:V38GczC3 クライアントアプリのORMはRoomみたく FlowみたくDBをwatchする機能ないとつらいよな たいていリアクティブにつくってるからな つか、最新のしたら大量アイテムのリストのスクロール かなり速くなってるけど デバッグ時はクソ重くてつらい プロファイルリリースだと速いが http://mevius.5ch.net/test/read.cgi/tech/1718894837/13
14: デフォルトの名無しさん [sage] 2024/06/30(日) 12:16:20.73 ID:V38GczC3 ナビゲーションをまじめにやろうとしてるけど どすればいいんだ? Androidの場合、Activityと便利なサブコンポーネントFragment でそろぞれ、バックスタックがあって作りやすいけど Flutterの場合もナビゲーションをネストすれば画面とそのFragmentに あたるWidgetそれぞれでバックスタックあってナビゲーヨンできるけど http://mevius.5ch.net/test/read.cgi/tech/1718894837/14
15: デフォルトの名無しさん [sage] 2024/06/30(日) 12:38:20.77 ID:V38GczC3 Androidの場合、ViewModelをActivityやFragmentにそれぞれ結びつけることで UIの状態の管理が楽だったけど同じようにやりたい まずActivityに相当するコンポーザブルにそれぞれViewModel結び付けて さらにFragmentに相当するコンポーザブルにもそれぞれViewModel結び付けて 管理したい でも例えば https://zenn.dev/joo_hashi/books/f646fb076f58dc/viewer/42fdf7 だと、1Activity内で画面切り替えてるだけだからViewModelのスコープが望ましくない http://mevius.5ch.net/test/read.cgi/tech/1718894837/15
16: デフォルトの名無しさん [sage] 2024/06/30(日) 13:17:38.17 ID:0SycvWcc androidx.lifecycle.viewmodel.composeのviewModel()を使えばコンポーザブルの中でViewModelを宣言できるようになる http://mevius.5ch.net/test/read.cgi/tech/1718894837/16
17: デフォルトの名無しさん [] 2024/06/30(日) 13:32:40.23 ID:0SycvWcc コンポーザブルの中で画面ごとにViewModelを宣言しちゃうなんてライフライクル管理は大丈夫なの?っていう疑問はあると思うけど、ちゃんと androidx.navigation:navigation-compose がきっちり解決してくれてる 蛇足だけど内部実装ロジックについては 「navigation-compose は ViewModel のライフサイクルをどう管理しているのか」 https://y-anz-m.blogspot.com/2021/08/navigation-compose-viewmodel.html の解説記事が参考になる http://mevius.5ch.net/test/read.cgi/tech/1718894837/17
18: デフォルトの名無しさん [sage] 2024/06/30(日) 13:33:32.26 ID:V38GczC3 つか、そもそもなぜAAC ViewModelを使いたいのかというと画面回転などの構成変更 でもUIの状態を保持できるからなんだけどそれは基本従来のViewベースのときに Activityを再作成するからだよね Jetpack Composeベースの時は基本、画面回転でもActivity再作成しないから 別にViewModel使う必要ねぇのか.. 壮大な勘違いをしていたかも http://mevius.5ch.net/test/read.cgi/tech/1718894837/18
19: デフォルトの名無しさん [sage] 2024/06/30(日) 13:35:59.53 ID:V38GczC3 >>17 解説記事読んでみます http://mevius.5ch.net/test/read.cgi/tech/1718894837/19
20: デフォルトの名無しさん [sage] 2024/06/30(日) 13:36:45.55 ID:0SycvWcc >>18 画面回転したら再生成されちゃう rememberSaveable使えばいけるけど面倒くさいから結局ViewModel使うかってなる http://mevius.5ch.net/test/read.cgi/tech/1718894837/20
21: デフォルトの名無しさん [sage] 2024/06/30(日) 13:44:53.22 ID:V38GczC3 >LocalViewModelStoreOwner には MainActivity ではなく NavBackStackEntry が入っていることがわかりました。 あぁ、なるほど navigation-compose使うとViewModelがMainActivityではなくNavBackStackEntryに紐づくのではないのですね 大変参考になりました http://mevius.5ch.net/test/read.cgi/tech/1718894837/21
22: デフォルトの名無しさん [sage] 2024/06/30(日) 13:49:03.15 ID:V38GczC3 >>20 ごめんなさい。間違ってました。 今、新規の空のCompose Empty Activity作ってマニュフェストのActivityの設定みたら android:configChangesに何も設定されていませんでしたね てっきり、ここにorientationとか設定されているのかと思いました http://mevius.5ch.net/test/read.cgi/tech/1718894837/22
23: デフォルトの名無しさん [sage] 2024/06/30(日) 14:27:03.12 ID:V38GczC3 >NavBackStackEntryに紐づくのではないのですね NavBackStackEntryに紐づくのですね http://mevius.5ch.net/test/read.cgi/tech/1718894837/23
24: デフォルトの名無しさん [sage] 2024/07/05(金) 10:54:08.96 ID:OeiRQJMt Room絡みのKMP対応が進んでるけど それにあわせてSqlDriver? これでBundledDriverみたいなのあるけど これってKMPじゃなくて普通のAndroidプロジェクトでも使えるのかな? 普通のAndroidプロジェクトでも最新のSqlite使いたい http://mevius.5ch.net/test/read.cgi/tech/1718894837/24
25: デフォルトの名無しさん [sage] 2024/07/05(金) 14:41:50.48 ID:4QgwhxP+ >>24 使えるで ttps://qiita.com/yuya2011/items/c3baea9a2fc4a6fce970 この記事はRoomでBundledSQLiteDriverしてUPSERT使っててGitHubに泥アプリのサンプルあげてるみたい http://mevius.5ch.net/test/read.cgi/tech/1718894837/25
26: デフォルトの名無しさん [sage] 2024/07/05(金) 20:29:17.42 ID:OeiRQJMt >>25 おお、ありがとう そのついでにBundled版だけでいいからSqliteのウンコ実装も治ってくれると いいんだが 巨大なBlob挿入するとBlobTooBigExceptionみたいな例外でたり(2MBまで?) CursorWindowとか勝手に内部でページングしてひどいことしてる ほんとうにひどい実装になってるからな これはandroidのプロセス間通信の制限かなんかでなってるのかしらんが http://mevius.5ch.net/test/read.cgi/tech/1718894837/26
27: デフォルトの名無しさん [sage] 2024/07/08(月) 20:01:44.64 ID:2ykBkBhu Model層ではFlow使って、ViewModelではStateを使ってるけど ViewModelのStateとFlowを合成したいんだけどStateってどうやってListenするの? もしくはStateをFlowに変換できませんか? class ViewModel { var state by mutableStateOf() fun watch() { // stateの変化をリッスンしてモデル層のFlowと合成してcollectしたい } 最初からStateFlowを使えばいいのかもしれんが、なるべくViewModelではStateで統一したい http://mevius.5ch.net/test/read.cgi/tech/1718894837/27
28: デフォルトの名無しさん [sage] 2024/07/08(月) 20:22:25.79 ID:2ykBkBhu つか、ちょっと気になった class HogeViewModel { @set:JvmName("privateSetHogeState") var hogeState by mutableStateOf private set // fun setHogeState(newValue) // validationなどのロジック hogeState = newValue } } 名前がぶつかるんだな.. ということでアノテーションつけたけど これJvm依存か? http://mevius.5ch.net/test/read.cgi/tech/1718894837/28
29: デフォルトの名無しさん [sage] 2024/09/23(月) 22:23:25.10 ID:oqrINLn7 derivedStateOfに関する記事、オーバーヘッドが大きいことなど書かれてて興味深い How derivedStateOf works: a deep d(er)ive https://blog.zachklipp.com/how-derivedstateof-works-a-deep-d-er-ive/ http://mevius.5ch.net/test/read.cgi/tech/1718894837/29
30: デフォルトの名無しさん [sage] 2024/09/25(水) 22:51:12.35 ID:5Vhwl/nZ Composeの動画みるとクリーンアーキテクチャばかりつかってるけど クリーンアーキテクチャがそんなおすすめなの? http://mevius.5ch.net/test/read.cgi/tech/1718894837/30
31: デフォルトの名無しさん [sage] 2024/09/26(木) 11:43:08.40 ID:cTJXoivB >>30 クリーンアーキテクチャは ・テストしやすい ・認知されていて誰が見てもわかりやすい からチーム開発のプロジェクトで人気のアーキテクチャだね ComposeならクリーンアーキテクチャのMVVMが主流、最近はMVVMのViewModelをPresenterに置き換えたMVPも注目されてる 参考 ・クリーンアーキテクチャMVVMのアプリ https://github.com/DroidKaigi/conference-app-2023 ・クリーンアーキテクチャMVPのアプリ https://github.com/DroidKaigi/conference-app-2024 http://mevius.5ch.net/test/read.cgi/tech/1718894837/31
32: デフォルトの名無しさん [sage] 2024/09/26(木) 21:37:18.69 ID:zQWFDqrj https://qiita.com/Nabe1216/items/3c321eb04dc396f1579d ほう http://mevius.5ch.net/test/read.cgi/tech/1718894837/32
33: デフォルトの名無しさん [sage] 2024/09/26(木) 22:10:51.19 ID:cTJXoivB >>32 いい感じね http://mevius.5ch.net/test/read.cgi/tech/1718894837/33
34: デフォルトの名無しさん [sage] 2024/10/16(水) 20:52:08.67 ID:mtIOo0k6 CMP 1.7.0きたね http://mevius.5ch.net/test/read.cgi/tech/1718894837/34
35: デフォルトの名無しさん [sage] 2024/10/18(金) 22:21:01.68 ID:vKy5WG2W デスクトップのドラッグ アンド ドロップできるようになるのか http://mevius.5ch.net/test/read.cgi/tech/1718894837/35
36: デフォルトの名無しさん [sage] 2024/10/19(土) 09:36:06.80 ID:PrnduITI デスクトップ向け配布ってどうなるのこれ Javaが必要なんだろ 巨大でいいから.netみたく1パッケージでできるのかな http://mevius.5ch.net/test/read.cgi/tech/1718894837/36
37: デフォルトの名無しさん [sage] 2024/10/19(土) 10:43:52.14 ID:tkdgpds2 デスクトップアプリなら、 CMPで用意されてるgradleコマンドのpackageDistributionForCurrentOS、 あるいはJava標準のjpackageでいけるで ちゃんとJavaランタイムを同梱した実行可能形式でビルドしてくれる http://mevius.5ch.net/test/read.cgi/tech/1718894837/37
38: デフォルトの名無しさん [sage] 2024/10/19(土) 11:00:27.57 ID:PrnduITI できるのか ありがとう デスクトップアプリを作りたいんだがずっと漂流してて Flutterはマルチウインドウがまだだし、キーボードフォーカスとか微妙というか変というか その点Composeの方が新しいからもっと微妙かもしれんけど http://mevius.5ch.net/test/read.cgi/tech/1718894837/38
39: デフォルトの名無しさん [sage] 2024/10/19(土) 13:33:04.37 ID:tkdgpds2 >>38 Flutterのことはよく知らないけど、 ComposeのデスクトップはJavaのSwingの上にComposeをグラフィックする仕組みで動いてるから、 ウィンドウまわりはかなり安定してるよ JavaのSwingはJavaで昔からよく使われてきたデスクトップアプリ向けフレームワークね http://mevius.5ch.net/test/read.cgi/tech/1718894837/39
40: デフォルトの名無しさん [sage] 2025/01/17(金) 22:39:39.55 ID:EniXNQz7 これは期待 Support multiplatform BackHandler/PredictiveBackHandler. #1771 https://github.com/JetBrains/compose-multiplatform-core/pull/1771 http://mevius.5ch.net/test/read.cgi/tech/1718894837/40
41: デフォルトの名無しさん [sage] 2025/01/25(土) 16:23:27.78 ID:uQrxkE+r マルチプラットホームで予測型戻るジェスチャが使えるようになるんけ http://mevius.5ch.net/test/read.cgi/tech/1718894837/41
42: デフォルトの名無しさん [sage] 2025/02/14(金) 07:40:09.72 ID:NkJp8mwO アルファ版きちゃー compose multiplatform 1.8.0-alpha03 http://mevius.5ch.net/test/read.cgi/tech/1718894837/42
43: デフォルトの名無しさん [sage] 2025/02/14(金) 07:40:45.00 ID:NkJp8mwO >>42一応リンク https://github.com/JetBrains/compose-multiplatform/releases/tag/v1.8.0-alpha03 http://mevius.5ch.net/test/read.cgi/tech/1718894837/43
44: デフォルトの名無しさん [sage] 2025/02/14(金) 11:17:50.64 ID:iwocV+lv ロードマップからなんか遅れてるよな http://mevius.5ch.net/test/read.cgi/tech/1718894837/44
45: デフォルトの名無しさん [sage] 2025/02/14(金) 13:36:34.18 ID:ZSXOxhZn 予測型戻るジェスチャ機能の追加されたバージョンが出たのか http://mevius.5ch.net/test/read.cgi/tech/1718894837/45
46: デフォルトの名無しさん [sage] 2025/02/21(金) 14:59:59.28 ID:jOnV3c4B iOS向けで、 CMPにおいて戻るジェスチャーが標準でiOSネイティブライクな感じになるようだ 着々とiOSへの対応が公式側で進んでる Implement iOS default NavHost transition animation close to native. #1861 https://github.com/JetBrains/compose-multiplatform-core/pull/1861 http://mevius.5ch.net/test/read.cgi/tech/1718894837/46
47: デフォルトの名無しさん [sage] 2025/02/22(土) 09:43:36.74 ID:obzCo2Dh CMPでホットリロードを可能にするツールを開発中とのこと すばらしい https://github.com/JetBrains/compose-hot-reload https://github.com/JetBrains/compose-hot-reload/releases/tag/v1.0.0-dev-62 http://mevius.5ch.net/test/read.cgi/tech/1718894837/47
48: デフォルトの名無しさん [sage] 2025/02/22(土) 10:26:57.78 ID:snifUi+R 超期待 http://mevius.5ch.net/test/read.cgi/tech/1718894837/48
49: デフォルトの名無しさん [sage] 2025/02/22(土) 14:22:25.72 ID:s8vQEMuz flutterはmacrosでズッコケたからな http://mevius.5ch.net/test/read.cgi/tech/1718894837/49
50: デフォルトの名無しさん [sage] 2025/04/26(土) 11:36:35.34 ID:4Jf0lHWD 地味アップグレードきたな http://mevius.5ch.net/test/read.cgi/tech/1718894837/50
51: デフォルトの名無しさん [] 2025/07/01(火) 10:15:12.87 ID:1KZwEDte JetbrainsのCompose MultiplatformとAndroidX Jetpack Composeの統合がついに開始されたね 例えばJetpack Composeのruntimeは統合が完了してクロスプラットフォーム対応になった http://mevius.5ch.net/test/read.cgi/tech/1718894837/51
52: デフォルトの名無しさん [sage] 2025/07/01(火) 19:20:22.36 ID:j9smP3T2 具体的に何するの? http://mevius.5ch.net/test/read.cgi/tech/1718894837/52
53: デフォルトの名無しさん [sage] 2025/07/01(火) 19:21:56.74 ID:j9smP3T2 ごめん。例えばって書いてあったね。 http://mevius.5ch.net/test/read.cgi/tech/1718894837/53
54: デフォルトの名無しさん [] 2025/08/08(金) 06:52:11.68 ID:Fdw9apw5 ComposeにRetainScopesっていうViewModelのライフサイクルを継承したremember関数が実装されるもよう https://android-review.googlesource.com/c/platform/frameworks/support/+/3452915 `retain { }` API を追加 このCLは、Composeランタイムに`retain { ... }を追加します。 再コンポジションをまたいで値を保持するという点でRememberに似ていますが、保持された値はコンポジション階層の破棄と再作成後も保持できます。これにより、ViewModelやFragmentと同様のスコープが実現されます。 http://mevius.5ch.net/test/read.cgi/tech/1718894837/54
55: デフォルトの名無しさん [sage] 2025/08/08(金) 11:21:09.01 ID:7cylvkQs これはQtの対抗馬になりうるの? まだ発展段階だよね これじゃなくてKotlin/nativeでGUI使うのに成功した人いる? http://mevius.5ch.net/test/read.cgi/tech/1718894837/55
56: デフォルトの名無しさん [sage] 2025/08/08(金) 19:12:05.27 ID:1+ZsQpkg QtはUIライブラリがショボいからな http://mevius.5ch.net/test/read.cgi/tech/1718894837/56
57: デフォルトの名無しさん [] 2025/08/13(水) 09:41:09.21 ID:pILUZJEv Kotlin/NativeでComposeのGUIを作製できる対象プラットフォームはいまのところiOSのみで先日安定版に到達した ComposeのGUIの各プラットフォームでのKotlin/Nativeへの対応はiOSを除けばJVMベースで対応可能ということで後回しになっている 一応、ComposeのGUIを描画するSkiaのKotlinラッパーライブラリのskikoの各プラットフォームでのKotlin/Nativeへの対応はAndroidを除いて完了しているからComposeのGUIは脱JVMへの舵をきれる状態ではある そのうえで、クロスプラットフォーム対応のGUIフレームワークはどれも一長一短なので、Qt、Compose、Flutter、ウェブ系など好みのものを使えば良い ただしKotlinで開発するうえで直面していたIDEの選択肢が少ない問題はKotlin LSPのVSCode対応により解決する見込みである http://mevius.5ch.net/test/read.cgi/tech/1718894837/57
58: デフォルトの名無しさん [sage] 2025/08/13(水) 14:04:11.88 ID:OAhd0lCG KMPはNativeで今のところ共有できないやろ? Flutterなら例えば複数のOSで同じ共有ライブラリ使えるならFFI経由で共通に出きるけど http://mevius.5ch.net/test/read.cgi/tech/1718894837/58
59: デフォルトの名無しさん [] 2025/08/13(水) 14:34:25.64 ID:pILUZJEv >>58 JNIを経由すればよい 公式のSQLiteのKMP実装が参考になる https://github.com/androidx/androidx/tree/androidx-main/sqlite/sqlite-bundled http://mevius.5ch.net/test/read.cgi/tech/1718894837/59
60: デフォルトの名無しさん [sage] 2025/08/13(水) 15:38:02.61 ID:OAhd0lCG JNIってJVM環境でないiOSでつかえるのかね.. Flutterならandroidだとうがiosだろうが直接ネいティブの共有ライブラリ呼べるし楽 http://mevius.5ch.net/test/read.cgi/tech/1718894837/60
61: デフォルトの名無しさん [sage] 2025/08/13(水) 15:44:50.61 ID:OAhd0lCG もちろんそんなケース稀かもしれんが dartならFFIで直接共有ライブラリ関数にバインドできて c言語介さず呼べるし(osごとのライブラリ名ぐらいは調整して) dartで最大の不満だった共有メモリマルチスレッドできないのも実験が進んでるっぽいし http://mevius.5ch.net/test/read.cgi/tech/1718894837/61
62: デフォルトの名無しさん [sage] 2025/08/13(水) 15:51:08.49 ID:OAhd0lCG UIフレームワーク自体はComposeのほうがいいけど デフォルトでstateクラスがあって、極力 状態の管理を外だしと徹底してる(例えばメニューの表示/非表示も自分で制御) http://mevius.5ch.net/test/read.cgi/tech/1718894837/62
63: デフォルトの名無しさん [sage] 2025/08/13(水) 15:58:07.01 ID:OAhd0lCG >Kotlin/Nativeへの対応はAndroidを除いて完了しているからComposeのGUIは脱JVMへの舵をきれる状態ではある ここは期待したいけど そもそもandroidアプリはデフォルトがJVM環境だから脱しなくてもいいけど デスクトップ向けでJVM要求されるのがうっとおしい http://mevius.5ch.net/test/read.cgi/tech/1718894837/63
64: デフォルトの名無しさん [] 2025/08/13(水) 18:30:40.15 ID:pILUZJEv KMPに関することでありComposeとかけ離れた話になってるからKotlinスレで議論したほうがよいのでしょうけど一応 >>60,61 ・59ではJNIによるラップをCで書いているがこれ自体をCではなくKotlin/Nativeで書くことも可能 ・Kotlin/Nativeはcinteropを書いて https://github.com/androidx/androidx/tree/androidx-main/sqlite/sqlite-framework/src/nativeInterop/cinterop ヘッダーファイルのC関数をKotlinで直接呼べる https://github.com/androidx/androidx/blob/androidx-main/sqlite/sqlite-framework/src/nativeMain/kotlin/androidx/sqlite/driver/NativeSQLiteStatement.kt >>63 ・KMPでJVM向けアプリケーションを実行形式にビルドするとJavaランタイムを同梱してくれるのでアプリケーションの利用者にJVM環境を求めない これでよかったでしょうか ComposeやKMPのことで他に疑問があれば答えられます http://mevius.5ch.net/test/read.cgi/tech/1718894837/64
65: デフォルトの名無しさん [] 2025/08/13(水) 19:12:56.84 ID:pILUZJEv >>64に追記で、 JNIによるラップをKotlin/Nativeで書くことができるので、 Cコードの呼び出し等をnativeMainで書いて、それをjniMain(各自命名)で継承し、 そこでnativeMainのKotlin/NativeコードをJNIラップしてやればよい こういったテクニックを駆使すればC呼び出しを含むコードでも十分に共通化できる http://mevius.5ch.net/test/read.cgi/tech/1718894837/65
66: デフォルトの名無しさん [sage] 2025/08/14(木) 17:44:14.36 ID:g00bnU7h 1.9キター ってロードマップ更新しろよ http://mevius.5ch.net/test/read.cgi/tech/1718894837/66
67: デフォルトの名無しさん [] 2025/08/14(木) 22:45:55.02 ID:mhSblWPk 1.9で追加されたrememberSerializableが便利だ http://mevius.5ch.net/test/read.cgi/tech/1718894837/67
68: デフォルトの名無しさん [] 2025/08/18(月) 19:15:11.61 ID:Gfjo7mYU 今年もDroidKaigiの季節がやってきたね 今年もViewModel不採用のアーキテクチャ https://github.com/DroidKaigi/conference-app-2025 http://mevius.5ch.net/test/read.cgi/tech/1718894837/68
69: デフォルトの名無しさん [sage] 2025/08/18(月) 19:40:31.95 ID:/HMywgCQ MVVMでいいと思う 最大の問題は大きなメリットもないのにflutterとかUIフレームワークごとに 別のアーキテクチャ覚えさせるの? まさしく時間の無駄だし http://mevius.5ch.net/test/read.cgi/tech/1718894837/69
70: デフォルトの名無しさん [] 2025/08/19(火) 00:25:37.02 ID:9Ur9ADeh >>69 68のはMVVMを捨ててReactでよく使われるようなMVPに近づけて、むしろWeb系フレンドリーを目指してるから受け入れられやすい http://mevius.5ch.net/test/read.cgi/tech/1718894837/70
71: デフォルトの名無しさん [] 2025/08/19(火) 00:33:32.73 ID:9Ur9ADeh 世界で一番多いフロントエンジニアはWeb系だからそれらの書き方に似せるのは賢いなと思った http://mevius.5ch.net/test/read.cgi/tech/1718894837/71
72: デフォルトの名無しさん [] 2025/08/19(火) 08:08:45.09 ID:9Ur9ADeh >>69 追記で ComposeフレームワークはUIレンダリングとしての役割のほかに状態管理ランタイムとしての役割も有していて ViewModelによる状態管理がComposeフレームワーク上で不要なのではと言われている 参考記事 https://zenn.dev/rockname/articles/2a7db5ac4bb516 具体的には Composeアプリ開発におけるViewModelはandroidx.lifecycle.ViewModelライブラリとしての独自の特殊なライフサイクルを有していて Composeと異なるライフサイクルのため ViewModelとComposeのそれぞれで状態管理をしていて状態の保持が点在する問題があって この問題を解決するためにViewModel自体をComposableに書き直してしまおうとなり それならViewModelよりPresenterで状態管理するほうが自然に書けるねってなった ComposeではAndroidにおけるアクティビティの再生成による状態のリセットの特殊性が健在でFlutterとは事情が異なる http://mevius.5ch.net/test/read.cgi/tech/1718894837/72
73: デフォルトの名無しさん [] 2025/08/19(火) 15:40:18.83 ID:9Ur9ADeh droidkaigi2025デスクトップアプリを起動してみたがボトムバーがiOS26のタブバーのような見た目だ 今後はこういうフローティングバーが流行るのだろうか https://i.imgur.com/u4aobGF.jpeg http://mevius.5ch.net/test/read.cgi/tech/1718894837/73
74: デフォルトの名無しさん [sage] 2025/08/19(火) 15:42:19.75 ID:OfjY9UJ1 material expressiveのフローティングツールバーでしょ http://mevius.5ch.net/test/read.cgi/tech/1718894837/74
75: デフォルトの名無しさん [] 2025/08/19(火) 20:55:56.18 ID:9Ur9ADeh それはツールバーっしょ m3exressiveのナビゲーションバーはドックのしかない http://mevius.5ch.net/test/read.cgi/tech/1718894837/75
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.019s