◎正当な理由による書き込みの削除について:      生島英之とみられる方へ:

【Kotlin】Compose Multiplatform 1


動画、画像抽出 || この掲示板へ 類似スレ 掲示板一覧 人気スレ 動画人気順

このスレへの固定リンク: http://5chb.net/r/tech/1718894837/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

1デフォルトの名無しさん
2024/06/20(木) 23:47:17.52ID:vbElSNSS
iOS、Android、デスクトップ、Webに対応したUIフレームワークで手軽にアプリを作りましょう!

・各種プラットフォーム間でコードを共有可能
・宣言型UIによる最大100%のコードベース
・Kotlin Multiplatform (KMP) & Jetpack Composeベース
2デフォルトの名無しさん
2024/06/20(木) 23:47:44.97ID:vbElSNSS
公式
https://www.jetbrains.com/ja-jp/lp/compose-multiplatform/
3デフォルトの名無しさん
2024/06/20(木) 23:57:21.20ID:wkeLzLVS
KMP対応Composeライブラリ一覧
https://github.com/terrakok/kmp-awesome
4デフォルトの名無しさん
2024/06/21(金) 04:25:54.59ID:jKJT7aI8
これってなんなの?GUI部分しか作れないの?
5デフォルトの名無しさん
2024/06/21(金) 06:37:17.02ID:XqVI1f39
ビジネスロジック、GUIともにKotlinでコードを書けるよ
6デフォルトの名無しさん
2024/06/21(金) 07:04:42.89ID:Atsq9vif
Kotlinは書いてて楽しいからすき
7デフォルトの名無しさん
2024/06/21(金) 07:21:00.38ID:Rhs7e8T4
Jetpack Composeやってるけど特に状態まわりでFlutterより書きやすい
8デフォルトの名無しさん
2024/06/21(金) 07:34:20.22ID:6EoJ4PVu
お、ついにComposeのスレが立ったか!
みんなKotlinのComposeやろうぜ!!
9デフォルトの名無しさん
2024/06/21(金) 07:53:39.59ID:59+ROyU+
うおおおやるか
10デフォルトの名無しさん
2024/06/24(月) 02:08:16.72ID:LPHYNtWT
Kotlin Fest 2024のメモまとめ
https://qiita.com/FalconFlat/items/7f802d95d6e1a686fb96
11デフォルトの名無しさん
2024/06/29(土) 11:04:50.57ID:CFjt49h3
久しぶりに調べたけど
DataStore,RoomやLifeCycleやViewModelもKMPいけるのか?
NavigationもJetbrainsから出るの?

そろそろ感じやな
12デフォルトの名無しさん
2024/06/29(土) 21:55:39.44ID:ootEijyj
SQLiteに関してはSQLDelightはちょっと使いにくいと感じてたからRoomのKMP対応は素直に嬉しい
あと最新SQLite3.46.0バイナリを同梱したドライバを泥のRoomで使えるようになったからON CONFLICTとかを書けるようになって便利
13デフォルトの名無しさん
2024/06/30(日) 11:47:30.99ID:V38GczC3
クライアントアプリのORMはRoomみたく
FlowみたくDBをwatchする機能ないとつらいよな
たいていリアクティブにつくってるからな
つか、最新のしたら大量アイテムのリストのスクロール
かなり速くなってるけど
デバッグ時はクソ重くてつらい
プロファイルリリースだと速いが
14デフォルトの名無しさん
2024/06/30(日) 12:16:20.73ID:V38GczC3
ナビゲーションをまじめにやろうとしてるけど
どすればいいんだ?
Androidの場合、Activityと便利なサブコンポーネントFragment
でそろぞれ、バックスタックがあって作りやすいけど
Flutterの場合もナビゲーションをネストすれば画面とそのFragmentに
あたるWidgetそれぞれでバックスタックあってナビゲーヨンできるけど
15デフォルトの名無しさん
2024/06/30(日) 12:38:20.77ID:V38GczC3
Androidの場合、ViewModelをActivityやFragmentにそれぞれ結びつけることで
UIの状態の管理が楽だったけど同じようにやりたい

まずActivityに相当するコンポーザブルにそれぞれViewModel結び付けて
さらにFragmentに相当するコンポーザブルにもそれぞれViewModel結び付けて
管理したい

でも例えば
https://zenn.dev/joo_hashi/books/f646fb076f58dc/viewer/42fdf7
だと、1Activity内で画面切り替えてるだけだからViewModelのスコープが望ましくない
16デフォルトの名無しさん
2024/06/30(日) 13:17:38.17ID:0SycvWcc
androidx.lifecycle.viewmodel.composeのviewModel()を使えばコンポーザブルの中でViewModelを宣言できるようになる
17デフォルトの名無しさん
2024/06/30(日) 13:32:40.23ID:0SycvWcc
コンポーザブルの中で画面ごとにViewModelを宣言しちゃうなんてライフライクル管理は大丈夫なの?っていう疑問はあると思うけど、ちゃんと
androidx.navigation:navigation-compose
がきっちり解決してくれてる

蛇足だけど内部実装ロジックについては
「navigation-compose は ViewModel のライフサイクルをどう管理しているのか」
https://y-anz-m.blogspot.com/2021/08/navigation-compose-viewmodel.html
の解説記事が参考になる
18デフォルトの名無しさん
2024/06/30(日) 13:33:32.26ID:V38GczC3
つか、そもそもなぜAAC ViewModelを使いたいのかというと画面回転などの構成変更
でもUIの状態を保持できるからなんだけどそれは基本従来のViewベースのときに
Activityを再作成するからだよね

Jetpack Composeベースの時は基本、画面回転でもActivity再作成しないから
別にViewModel使う必要ねぇのか..
壮大な勘違いをしていたかも
19デフォルトの名無しさん
2024/06/30(日) 13:35:59.53ID:V38GczC3
>>17
解説記事読んでみます
20
>>18
画面回転したら再生成されちゃう
rememberSaveable使えばいけるけど面倒くさいから結局ViewModel使うかってなる
21デフォルトの名無しさん
2024/06/30(日) 13:44:53.22ID:V38GczC3
>LocalViewModelStoreOwner には MainActivity ではなく NavBackStackEntry が入っていることがわかりました。

あぁ、なるほど
navigation-compose使うとViewModelがMainActivityではなくNavBackStackEntryに紐づくのではないのですね
大変参考になりました
22デフォルトの名無しさん
2024/06/30(日) 13:49:03.15ID:V38GczC3
>>20
ごめんなさい。間違ってました。
今、新規の空のCompose Empty Activity作ってマニュフェストのActivityの設定みたら
android:configChangesに何も設定されていませんでしたね
てっきり、ここにorientationとか設定されているのかと思いました
23デフォルトの名無しさん
2024/06/30(日) 14:27:03.12ID:V38GczC3
>NavBackStackEntryに紐づくのではないのですね
NavBackStackEntryに紐づくのですね
24デフォルトの名無しさん
2024/07/05(金) 10:54:08.96ID:OeiRQJMt
Room絡みのKMP対応が進んでるけど
それにあわせてSqlDriver?
これでBundledDriverみたいなのあるけど
これってKMPじゃなくて普通のAndroidプロジェクトでも使えるのかな?

普通のAndroidプロジェクトでも最新のSqlite使いたい
25デフォルトの名無しさん
2024/07/05(金) 14:41:50.48ID:4QgwhxP+
>>24
使えるで
https://qiita.com/yuya2011/items/c3baea9a2fc4a6fce970
この記事はRoomでBundledSQLiteDriverしてUPSERT使っててGitHubに泥アプリのサンプルあげてるみたい
26デフォルトの名無しさん
2024/07/05(金) 20:29:17.42ID:OeiRQJMt
>>25
おお、ありがとう
そのついでにBundled版だけでいいからSqliteのウンコ実装も治ってくれると
いいんだが
巨大なBlob挿入するとBlobTooBigExceptionみたいな例外でたり(2MBまで?)
CursorWindowとか勝手に内部でページングしてひどいことしてる
ほんとうにひどい実装になってるからな

これはandroidのプロセス間通信の制限かなんかでなってるのかしらんが
27デフォルトの名無しさん
2024/07/08(月) 20:01:44.64ID: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で統一したい
28デフォルトの名無しさん
2024/07/08(月) 20:22:25.79ID:2ykBkBhu
つか、ちょっと気になった
class HogeViewModel {
 @set:JvmName("privateSetHogeState")
 var hogeState by mutableStateOf
  private set //

 fun setHogeState(newValue)
  // validationなどのロジック
  hogeState = newValue
 }
}
名前がぶつかるんだな..
ということでアノテーションつけたけど
これJvm依存か?
29デフォルトの名無しさん
2024/09/23(月) 22:23:25.10ID:oqrINLn7
derivedStateOfに関する記事、オーバーヘッドが大きいことなど書かれてて興味深い

How derivedStateOf works: a deep d(er)ive
https://blog.zachklipp.com/how-derivedstateof-works-a-deep-d-er-ive/
30デフォルトの名無しさん
2024/09/25(水) 22:51:12.35ID:5Vhwl/nZ
Composeの動画みるとクリーンアーキテクチャばかりつかってるけど
クリーンアーキテクチャがそんなおすすめなの?
31デフォルトの名無しさん
2024/09/26(木) 11:43:08.40ID:cTJXoivB
>>30
クリーンアーキテクチャは
・テストしやすい
・認知されていて誰が見てもわかりやすい
からチーム開発のプロジェクトで人気のアーキテクチャだね
ComposeならクリーンアーキテクチャのMVVMが主流、最近はMVVMのViewModelをPresenterに置き換えたMVPも注目されてる
参考
・クリーンアーキテクチャMVVMのアプリ
https://github.com/DroidKaigi/conference-app-2023
・クリーンアーキテクチャMVPのアプリ
https://github.com/DroidKaigi/conference-app-2024
32デフォルトの名無しさん
2024/09/26(木) 21:37:18.69ID:zQWFDqrj
https://qiita.com/Nabe1216/items/3c321eb04dc396f1579d
ほう
33デフォルトの名無しさん
2024/09/26(木) 22:10:51.19ID:cTJXoivB
>>32
いい感じね
34デフォルトの名無しさん
2024/10/16(水) 20:52:08.67ID:mtIOo0k6
CMP 1.7.0きたね
35デフォルトの名無しさん
2024/10/18(金) 22:21:01.68ID:vKy5WG2W
デスクトップのドラッグ アンド ドロップできるようになるのか
36デフォルトの名無しさん
2024/10/19(土) 09:36:06.80ID:PrnduITI
デスクトップ向け配布ってどうなるのこれ
Javaが必要なんだろ
巨大でいいから.netみたく1パッケージでできるのかな
37デフォルトの名無しさん
2024/10/19(土) 10:43:52.14ID:tkdgpds2
デスクトップアプリなら、
CMPで用意されてるgradleコマンドのpackageDistributionForCurrentOS、
あるいはJava標準のjpackageでいけるで
ちゃんとJavaランタイムを同梱した実行可能形式でビルドしてくれる
38デフォルトの名無しさん
2024/10/19(土) 11:00:27.57ID:PrnduITI
できるのか
ありがとう
デスクトップアプリを作りたいんだがずっと漂流してて
Flutterはマルチウインドウがまだだし、キーボードフォーカスとか微妙というか変というか
その点Composeの方が新しいからもっと微妙かもしれんけど
39デフォルトの名無しさん
2024/10/19(土) 13:33:04.37ID:tkdgpds2
>>38
Flutterのことはよく知らないけど、
ComposeのデスクトップはJavaのSwingの上にComposeをグラフィックする仕組みで動いてるから、
ウィンドウまわりはかなり安定してるよ

JavaのSwingはJavaで昔からよく使われてきたデスクトップアプリ向けフレームワークね
40デフォルトの名無しさん
2025/01/17(金) 22:39:39.55ID:EniXNQz7
これは期待

Support multiplatform BackHandler/PredictiveBackHandler. #1771
https://github.com/JetBrains/compose-multiplatform-core/pull/1771
41デフォルトの名無しさん
2025/01/25(土) 16:23:27.78ID:uQrxkE+r
マルチプラットホームで予測型戻るジェスチャが使えるようになるんけ
42デフォルトの名無しさん
2025/02/14(金) 07:40:09.72ID:NkJp8mwO
アルファ版きちゃー

compose multiplatform 1.8.0-alpha03
43デフォルトの名無しさん
2025/02/14(金) 07:40:45.00ID:NkJp8mwO
>>42一応リンク
https://github.com/JetBrains/compose-multiplatform/releases/tag/v1.8.0-alpha03
44デフォルトの名無しさん
2025/02/14(金) 11:17:50.64ID:iwocV+lv
ロードマップからなんか遅れてるよな
45デフォルトの名無しさん
2025/02/14(金) 13:36:34.18ID:ZSXOxhZn
予測型戻るジェスチャ機能の追加されたバージョンが出たのか

lud20250221122542
このスレへの固定リンク: http://5chb.net/r/tech/1718894837/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

TOPへ TOPへ  

このエントリをはてなブックマークに追加現在登録者数177 ブックマークへ


全掲示板一覧 この掲示板へ 人気スレ | Youtube 動画 >50 >100 >200 >300 >500 >1000枚 新着画像

 ↓「【Kotlin】Compose Multiplatform 1 」を見た人も見ています:
[Qtum]UTXO based POS Smart Contract Platform
Video of German police harassing homeless man to be investigated
2chDepopulation board recovery committee VIP embassy
PlayStation E3 MEDIA SHOWCASE 反省会
ULTIMATE MARVEL VS. CAPCOM 3 Part346
【Automap】Novation part5【 SL MkII UltraNova 】
D1 Formula Drift MSC キングダム ドリフト総合 19
Self-talk, sometimes chat
【速報】PlaystationShowcaseの最初に流れた映像にドラゴンクエストが隠れていた!!!
ついにApple Watch Series 9とUltra 2がアメリカで公式販売停止、旧モデルの修理も不可能に [香味焙煎★]
【速報】3月2日(日)「CREATEs presents IDOL RUNWAY COLLECTION 2025 Supported by TGC」に 出演決定!
【PS3】PlayStation Home 450号室
ULTIMATE MC BATTLE 185
【2014年】The Repopulation【最後の希望】
Lobotomy Corporation day11
【新ソニータイマー】PlayStation Portal、購入から1年経つと有償修理も受け付けない 2クソ目
PC版『Horizon Forbidden West Complete Edition』日本時間3月22日午前0時より発売
【朗報】「I Really Want to Stay At Your House」がSpotify全世界で1位!CDPRもあの世で喜泣しとるわ
【PSP】PlayStation Portal 専用スレ6
モバサカULTIMATE FOOTBALL CLUB UFC4
結局、PlayStationHomeって何だったの?
【フジテレビ】2025 FORMULA 1【NEXT】Lap435
【PSVita】PlayStationVita 総合 Part 1314
【PSVita】PlayStationVita総合 Part 1249 [無断転載禁止]
【PS4】FIFA18 ULTIMATE TEAM 120Packs【Xboxone】
【PS4】FIFA20 ULTIMATE TEAM 12Packs【Xboxone】
【PS4】FIFA19 ULTIMATE TEAM 105Packs【Xboxone】
【NEW ROMANCER】FOXPILL CULT vol.1【HOMO DEMENS MAN】
【maserati】マセラティギブリ part 1【ghibli】
The Museum Associate Social Upgrade Kingdom Intelligence [無断転載禁止]
【ゲーム】プレイステーションシリーズ世界5億台達成記念「PlayStation 4 Pro 500 Million Limited Edition」8月24日発売
【フジテレビ】2024 FORMULA 1【NEXT】Lap355
【フジテレビ】2025 FORMULA 1【NEXT】Lap437
【PS4】FIFA18 ULTIMATE TEAM 19Packs【Xboxone】
【PSVita】PlayStationVita 総合 Part 1310
【PSVita】PlayStationVita 総合 Part 1323
informatics:情報学[レス削除]
BULLET FOR MY VALENTINE Part11
一人で行くOCHA NORMA・宮本佳林出演「FUURYUU FES 5.0 supported by Girl's Bomb!!」【さいたまスーパーアリーナ 10月11日】
【フジテレビ】2024 FORMULA 1【NEXT】Lap341
【PS4/PS5】FIFA23 ULTIMATE TEAM 1packs【Xbox】
【PS4】FIFA18 ULTIMATE TEAM 155Packs【Xboxone】
【KOF】THE KING OF FIGHTERS 98 ULTIMATE MATCH Online part146 ©2ch.net
【PS4】FIFA18 ULTIMATE TEAM 123Packs【Xboxone】
【KOF】THE KING OF FIGHTERS 98 ULTIMATE MATCH Online 痛いユーザー晒しスレ part6
【PS4】FIFA19 ULTIMATE TEAM 11Packs【Xboxone】
【PS4】FIFA18 ULTIMATE TEAM 111Packs【Xboxone】
【PS4】FIFA18 ULTIMATE TEAM 135Packs【Xboxone】
【CAT】BitClave Active Search Ecosystem(BASE) 1【分散型検索エンジン】
【KOF】THE KING OF FIGHTERS '98 ULTIMATE MATCH Online part4
【PSVita】PlayStationVita 総合 Part 1274
音楽定額配信はApple music一強 line musicやspotifyはオワコン
【PS4】FIFA21 ULTIMATE TEAM 18packs【Xboxone】
【フジテレビ】2023 FORMULA 1【NEXT】Lap72
【KOF】THE KING OF FIGHTERS 98 ULTIMATE MATCH Online part276
【PSVita】PlayStationVita 総合 Part 1264
【PSVita】PlayStationVita 総合 Part 1349
【PSVita】PlayStationVita 総合 Part 1297
Kochiya Sanae Mom''Kochiya!time to eat'!' Cooked Kochiya what?
【Wish&Ethics(倫理と希望)】What CRISPR-baby prison sentences mean for research
【HMD】PlayStationVR 189【PSVR】
【F1】フォーミュラ1: 栄光のグランプリ/Formula 1: Drive to Survive【Netflix】
Can any Japanese people tell me what busha- and bushasha- mean?
【KOF】THE KING OF FIGHTERS 98 ULTIMATE MATCH Online part138
MSIの「GeForce GTX 1660 Ti ARMOR 6G OC」が入荷、価格は53,900円
【KOF】THE KING OF FIGHTERS 98 ULTIMATE MATCH Online part60
13:19:47 up 64 days, 14:18, 0 users, load average: 9.76, 9.34, 9.54

in 0.067867994308472 sec @0.067867994308472@0b7 on 062102