Kotlin 8
JetBrainsが開発した期待の新言語、Androidの公式開発言語にしてサーバーサイドもなんでもいけるKotlinについて語りましょう
※前スレ
Kotlin 7
https://mevius.5ch.net/test/read.cgi/tech/1588748438/ うーん、やっぱりインパクトが薄すぎるな
特段かわいくもないしカッコよくもないし、さりとてキモくもない
せめてキモカワイイくらいでないとインパクトが薄い Any 型のインスタンスを MutableList<Any> 型にキャストしようとするとチェックしていないという警告が出る。
かといって if (it is MutableList<Any>) ... みたいにチェックする部分を書いても List が持つ型の Any のチェックはできないとエラーになる。
これ Java で Object のキャストする時も同じだと思うけど、List, Map, Set の類の保持する値の型に関してはチェックできないからもうどうにもならんのかな?言語仕様の問題? Anyにキャストしたいと思ったことがない
その状況がまずおかしいのでは?? >>204
何をしようとしていたかというと、まず MutableMap<String, Any> のインスタンスを作っておいて、それのキーによって値が Int だったり String だったり MutableList<String> だったり MutableList<Int> だったりするようにしたかった。
m["A"] なら Int, m["B"] なら MutableList<String>, m["C"] なら MutableList<Int> みたいな感じ。
まあ、何か他の方法がないわけじゃないんだろうけどね。(自分で専用のクラス作れば一発で解消するんだろうけどねw)。 文字通り未検査なんだから仕方ないね
型不明のコレクションにキャストしてから各要素をmapでキャストするかまるごと警告抑制でいいのでは composeで何個かアプリ作ってて思ったけど、確かに綺麗かつ書き換えしやすく書けるけど、今までに比べて難しすぎる。
初学者が書けるとは思えないんだが。 初学者はFigmaみたいなデザインツールサービスで設計してComposeでコーディングの流れなら多少はマシなんじゃないか?
ReactやらSwiftUIやら時代の流れで宣言的UIが主流になったからこの形式に慣れるしかないんだ シンプルにModifierとかテーマとかが分かりづらそう。
もちろん、知ってる人は今までより楽なんだけどなぁ。 シンプルなビルドツールのAmperがスタンドアローンで動くようになったみたい
そろそろGradleやめてAmperにしてもいいかも
ttps://blog.jetbrains.com/amper/2024/05/amper-update-may-2024/ 今年のKotlin Confはよかった
AWSの話もあってサーバーサイドとしても宣伝されてた
ttps://youtu.be/Ar73Axsz2YA 時間ができたから興味本位で個人用泥アプリをそこまで苦労なくKMPに移行させてみた
iOS開発環境はないからとりあえずJVMのデスクトップアプリとして動かして満足
主に書き換えたところ
build.gradleのマルチプラットフォーム化
xml→Composeに完全書き換え(これは既にほぼ移植完了してた)
SharedPreferencesをDataStoreに移行
commonMainに共通コードを移動 >>216
結構簡単そうだな。
compose重い印象あるけど、JVMの動作やリソースの食い具合は>>216的に満足いくレベルだった? >>218
スムーズで満足だったよ
大量のアイテムのリスト表示もカクつくことなく、Androidで動かした場合と遜色もなくデスクトップアプリとして動いてくれた
メモリ使用量はだいたい100~150MBのリソースを食ってたから気になる人はいるかも >>219
回答ありがとう。
アプリに寄るのは理解しているけど、ベースでのメモリの食いもそんなないんだね。
MAUIも個人的に好みじゃないし、今度作るときはCompose使ってみようかな。 Modifier.composedをModifier.Nodeに書き換えたらむっちゃ爆速になったので報告
参考になったサイト
Modifier.Node を使いましょう (Part 4: @Composable 関数の実装を Modifier.Node に書き換える) ttps://qiita.com/_SUR4J_/items/d48372b5793c4a0fa65f