うーん、やっぱりインパクトが薄すぎるな
特段かわいくもないしカッコよくもないし、さりとてキモくもない
せめてキモカワイイくらいでないとインパクトが薄い 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 ttps://github.com/matteocrippa/sensor-accelerometer-multiplatform/blob/main/shared/src/iosMain/kotlin/it/matteocrippa/sensorsmultiplatform/Sensors.kt
iOSアプリ開発、Kotlinで簡単にセンサーデータを取り出せるのな、クロスプラットフォーム対応モバイルアプリは全部Kotlinでいいじゃん ktorがバージョン3.0.0に向けて大規模リファクタリングが進んでるね
io部分をkotlinxioベースに移行するプルリクがさっきコミットされた ロシアの企業だけどこの先どうなるんだろうね?phpは死んでも全然構わないけどさw KotlinはJetBrainsのIDEに縛られるのが唯一にして最大のデメリットだな
JetBrainsに貢ぐ気のある企業だけがサーバーをJavaではなくKotlinで実装できる
言語仕様自体は何一つ文句無く素晴らしい >>225
まあ、消えることはないんじゃない
・なんだかんだJavaの仮想マシンの上で動かせるのは大きいメリット
・AndroidがJavaファースト言語だからKotlinとは切り離せない関係にある
・マルチプラットフォーム対応
・言語仕様的にむっちゃ書きやすい
・ビルドツールのGradleが便利
ただしJetBrainsはクソ、金の亡者 JetBrainsは金にがめついが、良いものには金出さないといけないのはしょうがないと言えばしょうがない。 開発ツールしか売っていないJetBrainsがMSやGoogleみたいにタダでバラ撒けるわけがないし企業として存続するためにはサブスクは適切だと思うよ iOSアプリ作りたかったんだけど、お金がない w
Mac miniとiPhone SEを買うと15万円くらいかかる
androidだとWindowsはあるので、手持ちのandroidスマホはテスト機に使わないとして、Galaxy aだけの2万円で済む… 最近はKotlin/WASMとGUIフレームワークComposeでウェブページのいわゆるシングルページアプリケーションを作って遊んでる
WASMだからiOSだろうとデスクトップだろうとブラウザで動くから便利 📢 KOTLIN ROADMAP UPDATE: Find out what comes next for Kotlin!
9/18/2024
・Language evolution: more efficient data handling, increased abstraction, and enhanced performance with clear code.
・K2-based IntelliJ IDEA plugin: faster code completion, improved highlighting and search, and more stable code analysis.
・Kotlin Multiplatform: release direct Kotlin to Swift Export, streamlined build setup, and simplified creation of KMP libraries.
・Experience of third-party ecosystem authors: simplify development and publication process for Kotlin libraries, tools, and frameworks.
For more details, head over to our Kotlin roadmap page. Explore our accomplishments and learn about our key objectives and future plans!
https://kotl.in/roadmap kotlin のここが嫌
・省略記法を推奨してること
関数引数の()を省略okにしないで欲しい
・引数最後のラムダを()の外に出して良いとか言わないで欲しい
・ >>235
rubyからgroovyを経由してKotlinに取り込まれたDSL作成能力の要の記法なので、無くすわけにはいかない >>235
ラムダを出していいのは、そういう関数を作りやすくなるから流石にほしい。 >>235
じゃあそういう自分が気に入る記述の言語を作れば?
自分で作らなくても仕様公開しておけばそのうち誰かが作ってくれると思うよ。 Javascriptなんかは関数のカッコの有無によって役割が変わるからカッコ省略に違和感を覚える人がいるのはわかる
ラムダ引数の外出しが嫌ってのはわからん
なんでもきっちりしてないと嫌なタイプかね fun interfaceの記法とかで発狂してそう
fun interface MyInvoker {
operator fun invoke(input: String)
}
val invoker: MyInvoker = MyInvoker { input ->
println(input)
}
これと同等
val invoker: MyInvoker = object : MyInvoker {
override operator fun invoke(input: String){
println(input)
}
} C#信者なもんでJava もダセーと思ってたけど
kotlin でVBA みたいな記法見てげんなりしたんよ C#もKotlinもそんな変わんなくね
しいて言うならばKotlinのほうが記法の自由度が高いと思うけどそれが気に入らないのか? Kotlinは
C# -> F# の変貌っぷりよりはよっぽどマシ F#と比べるならKotlinでなくScalaの方が適切だと思う
F#やScalaは関数型を目指した言語だけど、Kotlinは普通のOOP言語なので F#と比べるならKotlinでなくScalaの方が適切だと思う
F#やScalaは関数型を目指した言語だけど、Kotlinは普通のOOP言語なので まてまて
VBAはよくない→似た記法がある→Kotlinにも悪感情
これ、何の合理性もない偏見であることに気付こうぜ
VBAやVBに問題があるのはカッコが省略可能だったり書き方の自由度があるからではない
自分で信者と言っているあたりある程度自覚と自虐があるんだろうけど、こういうお気持ち優先のコメントに振り回されるのはやめたい