iOS、Android、デスクトップ、Webに対応したUIフレームワークで手軽にアプリを作りましょう!
・各種プラットフォーム間でコードを共有可能
・宣言型UIによる最大100%のコードベース
・Kotlin Multiplatform (KMP) & Jetpack Composeベース
探検
【Kotlin】Compose Multiplatform 1
1デフォルトの名無しさん
2024/06/20(木) 23:47:17.52ID:vbElSNSS2デフォルトの名無しさん
2024/06/20(木) 23:47:44.97ID:vbElSNSS3デフォルトの名無しさん
2024/06/20(木) 23:57:21.20ID:wkeLzLVS KMP対応Composeライブラリ一覧
ttps://github.com/terrakok/kmp-awesome
ttps://github.com/terrakok/kmp-awesome
2024/06/21(金) 04:25:54.59ID:jKJT7aI8
これってなんなの?GUI部分しか作れないの?
5デフォルトの名無しさん
2024/06/21(金) 06:37:17.02ID:XqVI1f39 ビジネスロジック、GUIともにKotlinでコードを書けるよ
2024/06/21(金) 07:04:42.89ID:Atsq9vif
Kotlinは書いてて楽しいからすき
2024/06/21(金) 07:21:00.38ID:Rhs7e8T4
Jetpack Composeやってるけど特に状態まわりでFlutterより書きやすい
2024/06/21(金) 07:34:20.22ID:6EoJ4PVu
お、ついにComposeのスレが立ったか!
みんなKotlinのComposeやろうぜ!!
みんなKotlinのComposeやろうぜ!!
2024/06/21(金) 07:53:39.59ID:59+ROyU+
うおおおやるか
2024/06/24(月) 02:08:16.72ID:LPHYNtWT
Kotlin Fest 2024のメモまとめ
ttps://qiita.com/FalconFlat/items/7f802d95d6e1a686fb96
ttps://qiita.com/FalconFlat/items/7f802d95d6e1a686fb96
2024/06/29(土) 11:04:50.57ID:CFjt49h3
久しぶりに調べたけど
DataStore,RoomやLifeCycleやViewModelもKMPいけるのか?
NavigationもJetbrainsから出るの?
そろそろ感じやな
DataStore,RoomやLifeCycleやViewModelもKMPいけるのか?
NavigationもJetbrainsから出るの?
そろそろ感じやな
2024/06/29(土) 21:55:39.44ID:ootEijyj
SQLiteに関してはSQLDelightはちょっと使いにくいと感じてたからRoomのKMP対応は素直に嬉しい
あと最新SQLite3.46.0バイナリを同梱したドライバを泥のRoomで使えるようになったからON CONFLICTとかを書けるようになって便利
あと最新SQLite3.46.0バイナリを同梱したドライバを泥のRoomで使えるようになったからON CONFLICTとかを書けるようになって便利
2024/06/30(日) 11:47:30.99ID:V38GczC3
クライアントアプリのORMはRoomみたく
FlowみたくDBをwatchする機能ないとつらいよな
たいていリアクティブにつくってるからな
つか、最新のしたら大量アイテムのリストのスクロール
かなり速くなってるけど
デバッグ時はクソ重くてつらい
プロファイルリリースだと速いが
FlowみたくDBをwatchする機能ないとつらいよな
たいていリアクティブにつくってるからな
つか、最新のしたら大量アイテムのリストのスクロール
かなり速くなってるけど
デバッグ時はクソ重くてつらい
プロファイルリリースだと速いが
2024/06/30(日) 12:16:20.73ID:V38GczC3
ナビゲーションをまじめにやろうとしてるけど
どすればいいんだ?
Androidの場合、Activityと便利なサブコンポーネントFragment
でそろぞれ、バックスタックがあって作りやすいけど
Flutterの場合もナビゲーションをネストすれば画面とそのFragmentに
あたるWidgetそれぞれでバックスタックあってナビゲーヨンできるけど
どすればいいんだ?
Androidの場合、Activityと便利なサブコンポーネントFragment
でそろぞれ、バックスタックがあって作りやすいけど
Flutterの場合もナビゲーションをネストすれば画面とそのFragmentに
あたるWidgetそれぞれでバックスタックあってナビゲーヨンできるけど
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のスコープが望ましくない
UIの状態の管理が楽だったけど同じようにやりたい
まずActivityに相当するコンポーザブルにそれぞれViewModel結び付けて
さらにFragmentに相当するコンポーザブルにもそれぞれViewModel結び付けて
管理したい
でも例えば
https://zenn.dev/joo_hashi/books/f646fb076f58dc/viewer/42fdf7
だと、1Activity内で画面切り替えてるだけだからViewModelのスコープが望ましくない
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
の解説記事が参考になる
androidx.navigation:navigation-compose
がきっちり解決してくれてる
蛇足だけど内部実装ロジックについては
「navigation-compose は ViewModel のライフサイクルをどう管理しているのか」
https://y-anz-m.blogspot.com/2021/08/navigation-compose-viewmodel.html
の解説記事が参考になる
2024/06/30(日) 13:33:32.26ID:V38GczC3
つか、そもそもなぜAAC ViewModelを使いたいのかというと画面回転などの構成変更
でもUIの状態を保持できるからなんだけどそれは基本従来のViewベースのときに
Activityを再作成するからだよね
Jetpack Composeベースの時は基本、画面回転でもActivity再作成しないから
別にViewModel使う必要ねぇのか..
壮大な勘違いをしていたかも
でもUIの状態を保持できるからなんだけどそれは基本従来のViewベースのときに
Activityを再作成するからだよね
Jetpack Composeベースの時は基本、画面回転でもActivity再作成しないから
別にViewModel使う必要ねぇのか..
壮大な勘違いをしていたかも
2024/06/30(日) 13:35:59.53ID:V38GczC3
>>17
解説記事読んでみます
解説記事読んでみます
2024/06/30(日) 13:36:45.55ID:0SycvWcc
2024/06/30(日) 13:44:53.22ID:V38GczC3
>LocalViewModelStoreOwner には MainActivity ではなく NavBackStackEntry が入っていることがわかりました。
あぁ、なるほど
navigation-compose使うとViewModelがMainActivityではなくNavBackStackEntryに紐づくのではないのですね
大変参考になりました
あぁ、なるほど
navigation-compose使うとViewModelがMainActivityではなくNavBackStackEntryに紐づくのではないのですね
大変参考になりました
2024/06/30(日) 13:49:03.15ID:V38GczC3
>>20
ごめんなさい。間違ってました。
今、新規の空のCompose Empty Activity作ってマニュフェストのActivityの設定みたら
android:configChangesに何も設定されていませんでしたね
てっきり、ここにorientationとか設定されているのかと思いました
ごめんなさい。間違ってました。
今、新規の空のCompose Empty Activity作ってマニュフェストのActivityの設定みたら
android:configChangesに何も設定されていませんでしたね
てっきり、ここにorientationとか設定されているのかと思いました
2024/06/30(日) 14:27:03.12ID:V38GczC3
>NavBackStackEntryに紐づくのではないのですね
NavBackStackEntryに紐づくのですね
NavBackStackEntryに紐づくのですね
レスを投稿する
ニュース
- 【芸能】元乃木坂46・松村沙友理 結婚&妊娠を発表! 「引き続き私らしくさゆりんご全開で頑張ります!」 [冬月記者★]
- 【文春】『薬屋のひとりごと』実写映画化、芦田愛菜(21)が主演・猫猫に決定! [Ailuropoda melanoleuca★]
- 肛門への性加害をスマホで撮影しかつて親友だった男性(30)に“おぞましすぎる私的制裁”を加えた男(32)が法廷で口にした「驚きの一言」 [おっさん友の会★]
- 自民党 議員定数削減法案の了承を見送り 党内で異論相次いだため [Hitzeschleier★]
- 「射撃の心得はなるべく無心で」、撃つ直前に「偶然ではない何か」 山上被告明かす“犯行時の心境” 安倍元総理銃撃事件 [どどん★]
- 「今川焼」か「大判焼き」か、それとも…? ついに決着! 47都道府県“呼び方勢力図”★2 [七波羅探題★]
- 【悲報】みんなで大家さん、大阪の一等地に持ってた土地を国税に差し押さえられた模様🥹 [616817505]
- 【高市速報】ひるおび、山上を叩きまくるwww「統一教会を恨むのは分かるが安倍さんを殺すのは論理が飛躍している」 [888298477]
- Google、宇宙にAIデータセンター打ち上げ「土地無料、電気代ソーラーで無料、温度マイナス270℃で冷却無料」 [347751896]
- 日本人、もう介護もしてもらえなくなる模様… まずは自助 [452836546]
- 【愛国者悲報】トランプ「同盟国は長年に渡りアメリカを搾取してきた。「に・ほ・ん」にも 「か・ん・こ・く」にも触れません!」 [856698234]
- お前らはストーカー被害に遭ったことある?
