Kotlin 8

2023/01/02(月) 13:55:05.18ID:8T2JCaCm
JetBrainsが開発した期待の新言語、Androidの公式開発言語にしてサーバーサイドもなんでもいけるKotlinについて語りましょう

※前スレ
Kotlin 7
https://mevius.5ch.net/test/read.cgi/tech/1588748438/
2023/09/04(月) 10:58:04.18ID:3ylJB9rm
>>122
移譲の形式でval da by implとした場合、da.test()はdaのgetValue(....)した結果をレシーバとしてtest()メソッドを呼ぶという意味になるよね?つまり"str".test()という意味になってエラーになるだろう

移譲でないval da = implとすればda.test()は呼べるはず
124118
垢版 |
2023/09/04(月) 14:21:13.43ID:FcZAE9nJ
>>123
ありがとうございます。一人では絶対にわからなかったと思います
getValueにはそういう意味があるのですね
以下のように書き換えてhello worldが表示できました

import kotlin.reflect.KProperty
public interface A{
fun test() : Unit
operator fun getValue(b : Nothing?, c:KProperty<*>) : A
}
public val impl = object : A{
override fun test() = println("hello world")
override fun getValue(b: Nothing?, c: KProperty<*>) = this

}
fun main(){
val da by impl
da.test()
}
125デフォルトの名無しさん
垢版 |
2023/09/16(土) 09:51:42.96ID:8u+hT5wA
「Kotlin」が人気言語ランキングトップ20に返り咲き--9月のTIOBE指標
https://japan.zdnet.com/article/35208961/
2023/09/16(土) 10:43:09.92ID:YSu5R3en
javaのが上なのか
Kotlinに移行した開発者は増えてると思うんだがそこまででもないのか?
最近検索にひっかかるドキュメントはjavaよりKotlinのほうが多い印象
127デフォルトの名無しさん
垢版 |
2023/09/16(土) 11:40:23.57ID:8u+hT5wA
Android 向けアプリの開発では結構使われているのではないかな。知らんけど。
Java の場合は20年以上前から色々な事に使われてきてプログラマも多いし本も多いから上なのは当然の事。
というかそもそも Kotlin は JavaVM で動くやつが最初に出て Java のライブラリ使って動くことが前提なのでまだまだ Java なしではいられない状態。
2023/09/16(土) 18:54:40.30ID:YSu5R3en
androidはbuild.gradleもGroovyからKotlin(build.gradle.kts)に置き換えられるようになったし
かなりKotlin推しって感じ
俺はjavaから乗り換えた。Kotlinは書いていて割と楽しい方だと思う
そして名前がかわいいという最強のメリット
2023/09/17(日) 10:21:48.92ID:VwpwudFm
var書いて変数名の後にコロン書いてまた変数型

の一手間を惜しまない人にはオススメ
130デフォルトの名無しさん
垢版 |
2023/09/17(日) 15:07:05.62ID:+bXFaSn8
型の指定は省略出来ることが多いが、それで可読性が下ることもあるかな。
2023/09/17(日) 18:59:31.43ID:Tq9Zm9TM
確かにできるだけ型注釈はほしいな
Haskellなんかは型を明示してないとわけわからなくなったり
型注釈によってプログラムの動作が変わるまである
型注釈でプログラムの動作(全解探索か最初の解探索か)が変わるコードを始めてみたときは感動した
2023/09/17(日) 21:30:35.28ID:SFlUWSkF
varとvalの使い分けに価値があるんだから手間とは感じないなあ
コーディング量トータルで見たら誤差すぎる
JavaScript系でletとconst書くのが面倒とか聞いたことないし
2023/09/17(日) 23:41:10.25ID:70jB6wMR
まだ使い始めて4ヶ月ぐらいだけど
徹底してnullセーフティを追求する言語仕様のよさがやっとわかりはじめた
基本!!は使っちゃダメなのだよね?
134デフォルトの名無しさん
垢版 |
2023/09/18(月) 01:35:25.07ID:iIjoZZgL
自分で新たに作る Kotlin プログラムでは !! を使うように書く必要性がないのでは?
2023/09/18(月) 07:37:13.91ID:z3xniIT9
importと利用できる名前が
リンク出来ないのが個人的に見づらい
Pythonみたく
import numpy as np
np.array()
が見やすく名前の衝突もなくいいなぁ
2023/09/18(月) 08:02:25.49ID:4OJ2QsEy
>>135
できるみたいだけど

https://codelabsjp.net/kotlin-practice-renameimport/
>【Kotlin練習問題】importの名前を変更する
>クラスや関数をimportする際、import文の後にas 新しい名前と書き加えることで
>別の名前を指定することができます。別のライブラリからの似たような名前の
>クラスや関数を複数個使いたい時など、混乱を避けるのに便利です。
2023/09/18(月) 09:09:48.94ID:UmWRU5gb
asは知らなかったなー便利だな
Kotlinすぐバージョンがあがるから、知らない機能がたくさんある
先日もこんなちょっとクスっとする機能を知った
fun main(){
println(1_000_000) //3桁ごとにアンダーバーで区切った数値が使える
println(3_000L) //Long型
}
2023/09/18(月) 15:41:07.62ID:FUExQ+S6
クスッとするってそれもうJavaにすら導入されてるよ
しかも12年前のバージョンだ
2023/09/18(月) 15:48:04.25ID:QNU3UdJL
12年前と書いたのはアンダースコアのほうね
100Lみたいな書き方ならJavaが生まれる前の古典
2023/09/18(月) 23:47:47.23ID:hS5hyepz
それはすまなかった
android-studioが重くてKotlinとおさらばしなければいけなくなったのだが
その前にJavaFXでGUIアプリでも作ってみようと思う
141デフォルトの名無しさん
垢版 |
2023/09/19(火) 15:36:41.44ID:5iDBL4Hm
コマンドラインでコンパイルしたり他のIDE使うとかすれば重いのはなんとかなる

ゲーミングPCみたいに無茶苦茶速いPCにしても良い
2023/09/23(土) 18:07:42.08ID:3Tx8ryDK
ちょいと宣伝。
更新が止まってたリファレンスの和訳を引き取って、ツアーを一通り和訳しました。

https://karino2.github.io/kotlin-web-site-ja/docs/kotlin-tour-welcome.html

個人的に教えるのに使うために和訳したので需要があるかはわからんけど、一応お知らせ。
143デフォルトの名無しさん
垢版 |
2023/09/24(日) 17:59:53.84ID:ehyIQvP9
>>142
乙乙乙
144デフォルトの名無しさん
垢版 |
2023/09/24(日) 18:53:57.58ID:PIc2zoKD
>>142
翻訳すごいな

いつかはKotlinに。
2023/09/24(日) 21:05:16.52ID:tu4YalfX
本家が結構アップデートされてるので既存の和訳を更新したり新しく足されたのは和訳したりもしてるよ。

意外と自分の知らない新機能が入ってたりして勉強になるw

当たり前だけど本家のリファレンスはよく書けてるね。
他の言語の知識が相当あるのを前提にしてるので、教えるのに使うなら副読本とか作らないとダメそうだが…
2023/09/24(日) 21:05:35.89ID:tu4YalfX
本家が結構アップデートされてるので既存の和訳を更新したり新しく足されたのは和訳したりもしてるよ。

意外と自分の知らない新機能が入ってたりして勉強になるw

当たり前だけど本家のリファレンスはよく書けてるね。
他の言語の知識が相当あるのを前提にしてるので、教えるのに使うなら副読本とか作らないとダメそうだが…
2023/09/24(日) 21:06:06.17ID:tu4YalfX
本家が結構アップデートされてるので既存の和訳を更新したり新しく足されたのは和訳したりもしてるよ。

意外と自分の知らない新機能が入ってたりして勉強になるw

当たり前だけど本家のリファレンスはよく書けてるね。
他の言語の知識が相当あるのを前提にしてるので、教えるのに使うなら副読本とか作らないとダメそうだが…
2023/09/24(日) 21:50:16.16ID:tu4YalfX
なんかchmateがずっとくるくる回ってるので放っておいたらめっちゃ投稿された…
2023/10/11(水) 04:32:12.92ID:LeR6F9Qp
Android Studioでラムダ式の波括弧の色を変えたらコードが読みやすくなるね
150デフォルトの名無しさん
垢版 |
2023/10/14(土) 22:54:21.57ID:BgrcFKKf
ちょっと上がったかな
https://www.tiobe.com/tiobe-index/
151デフォルトの名無しさん
垢版 |
2023/11/05(日) 05:28:11.53ID:w6RhJs5K
Kotlin 1.9.20
2023/12/02(土) 20:34:40.84ID:Jdc4wkyf
>>150
11月データに更新されてたけど、
Kotlinが先月18位から今月15位に上がってんね
Androidアプリ用途だけじゃなくてサーバー用途のJava-to-Kotlinの置き換えが進んでるってことなのかな
2,3ヶ月後にはGo-langの順位を抜きそう
153デフォルトの名無しさん
垢版 |
2023/12/03(日) 07:08:24.26ID:iaiv32Fc
O'Reilly の Kotlin Cookbook の日本語版が出て欲しいところ。
2023/12/03(日) 10:56:52.01ID:UXi8gB9u
今更だけどアセンブリ言語がこんな高くなるのは
どういうポイント付けしてるんだろ
2023/12/03(日) 11:11:11.12ID:e6sHofp7
Qiitaのアドヴェントカレンダー、Kotlin過疎すぎだろ…
2023/12/03(日) 12:46:07.18ID:JMjzgwiz
>>155
まあ、SpringBootに関する記事がなにかしら上がるっしょ
157デフォルトの名無しさん
垢版 |
2023/12/03(日) 12:56:44.34ID:iaiv32Fc
そういやC言語ってまだ大人気なんだな。Python が人気なのはわかるが。
MATLAB という言語は知らなかった。
2023/12/03(日) 13:05:55.65ID:BMiemEr+
>>152,154
2,3ヶ月後に逆転したら謎だらけ

kotlin programming
約 46,300,000 件 (0.30 秒)

go language programming
約 1,040,000,000 件 (0.44 秒)
2023/12/03(日) 13:29:43.60ID:A1a7X3PS
こんなことになってるのか
rust language programming
約 21,600,000 件 (0.42 秒)
https://i.imgur.com/TNA5Ee4.png
2023/12/03(日) 13:39:08.82ID:JMjzgwiz
>>157
MATLABは工業系で計測機器の動作管理によく使うからね
今後も順位をキープしてずっと居座り続けるだろうよ
161デフォルトの名無しさん
垢版 |
2023/12/03(日) 13:53:20.34ID:fJ8e7xGk
>>156
kotlinで新しくサーバーやるならSpringBootよりktorだろうけど、kotlinでSpringBootやる人しか見ないの笑う、まあいいんだけどさ
2023/12/03(日) 22:30:56.68ID:uTXBFEuO
>>161
どこらへんが笑いどころなのか、よくわからないので教えてほしい。
2023/12/04(月) 12:44:41.19ID:wG5v1KKN
今時SpringBootなんて書いてるやつはいないだろう
2023/12/23(土) 21:26:36.61ID:y6TAhSjY
spring boot、どのあたりがダメだった?
2023/12/24(日) 10:46:02.28ID:TccaxxKr
SpringBootはアノテーションつけてなんやかんやできるの便利だと思う
166デフォルトの名無しさん
垢版 |
2024/01/01(月) 03:21:32.14ID:gRe115Q6
あけましておめでとうございます
ことりんもよろしくおねがいします
2024/01/01(月) 03:59:33.09ID:ayAmvFgl
200gくらいでPSPやGBAを遊ぶのに最適な機種は何ですか?
元がブラウン管のゲーム機は、RGB30の画面比率で満足しています
Powkiddy X55は293gでちょっと個人的に重いです
重くてあまりゲームをやらなくなると思います
Switch liteがそうだったので
2024/01/01(月) 04:00:19.97ID:ayAmvFgl
誤爆しました…
169デフォルトの名無しさん
垢版 |
2024/01/01(月) 07:39:12.95ID:gRe115Q6
へー。Linux で動いてる携帯ゲーム機なんてあったんだ。知らなかった。
170デフォルトの名無しさん
垢版 |
2024/01/01(月) 07:42:34.87ID:gRe115Q6
Amazonで「ポータブルゲーム機 linux」で検索すると沢山出てくるな。こんなにあったとは。
2024/01/02(火) 03:17:59.47ID:mFoNsR7q
Spring bootはアノテーションのつけ方が今一つ
どうせなら main 文とか import 文とか全部省略できるようにやってくれればいいのに
あと使っているうちに動かなくなるところとか
結局、tymeleef、html,JavaScript と共存することになるので
コードが複雑になる
2024/01/04(木) 20:35:28.16ID:CzP1rBEm
mainはわかるけどimport省略って、いったい……?
アノテーション使わずに、パッケージ名やクラス名、メソッド名でどうにかするとか?
2024/01/05(金) 00:27:49.42ID:1uEv2PoB
Spring Bootの役割を完全に誤解しているな
LombokやBetter Javaではなくエンタープライズアプリの開発フレームワークや
2024/01/05(金) 01:31:30.11ID:qp6Z8v6g
アノテーションといえば製品によるだろうけど自作アノテーションでコンパイル時にコード生成させる方法を学んで組み込んだら格段に開発効率が上がった経験あるわ
2024/01/05(金) 06:21:58.05ID:1uEv2PoB
そのコード生成がされるまではJavaのコードとして一時的に不正になるのか、生成前でもJavaとしてコンパイルが通るソースとして成立するのかには隔たりがある
前者はLombokやKotlinのようにコーディング量が劇的に減って便利だとしてもIDEなどのツールにサポートされるまでは使えるツールが制限され普及の障壁になる
Spring Bootがimport分やmainの記載を省くような文法変更を加える大げさな仕組みだった場合はここまでの普及はなかった
2024/01/05(金) 06:51:08.68ID:ThnnNick
>>175
寝てないの?
2024/01/06(土) 00:34:03.86ID:ZpG+VQ/F
kapt使い慣れると、ちょっとしたことがコード生成でできるようになるから、めちゃくちゃ便利になるよね。
178デフォルトの名無しさん
垢版 |
2024/02/05(月) 15:06:39.49ID:8tY/Vubv
kotlin.collections.MutableMap のドキュメントを見てもソースを見ても computeIfAbsent() メソッドはないのになぜか使えるね。
2024/02/16(金) 06:31:50.79ID:cPjYf+js
kotlinx.coroutines1.8.0きたああ!
2024/02/18(日) 13:03:02.22ID:ToIsOu4K
なんか良くなる?
181デフォルトの名無しさん
垢版 |
2024/02/22(木) 09:50:47.85ID:6IzShUqU
これでKotlinが5位になっていたことに、たった今気付いた。

将来性の高いプログラミング言語とは?タイプ別ランキングTop10
https://www.sejuku.net/blog/124758
2024/02/22(木) 10:45:10.73ID:46dA22Q+
>>181
2019年データっていくら何でも古くね?

IEEE調べ2023版
https://i.imgur.com/FJbpkIX.png
https://i.imgur.com/Z8hI9C6.png
https://i.imgur.com/Ocy9LG8.png
2024/02/22(木) 11:45:47.43ID:ufi1w7zB
>>181,182
ここ注目
IEEE調べ2023版Jobs:
Groovy > F# >>> Ada > Rust

redmonkはChatGPT後のSO激減の扱いを考えすぎちゃって更新止まったか
https://redmonk.com/rstephens/2023/12/14/language-rankings-update/
2024/02/22(木) 19:17:15.95ID:aZqDoMn+
たぶん、Groovy の本は日本で、ここ10年で1冊も出ていない

文法は、Ruby と似ているから、
Ruby on Rails をやれば、おおよそ分かる
2024/02/23(金) 08:22:07.42ID:hkSlnfDn
GroovyなんてJavaのビルド構成触るときにしか書いたことないや
それもいまKotlin Scriptに書き直されてもう使うこと無くなりそうだけど
2024/02/23(金) 09:29:33.07ID:jATHKJTS
出てきた当初から名前がイキり過ぎとは思った
187デフォルトの名無しさん
垢版 |
2024/03/16(土) 18:48:05.56ID:NhZufIul
最も年収の高いプログラミング言語は? CAMELORSがランキングを発表
https://codezine.jp/article/detail/19210

1位 Go
2位 Kotlin
3位 Python
188デフォルトの名無しさん
垢版 |
2024/03/16(土) 18:54:13.83ID:NhZufIul
トップ10の中にRustが入っていないな。まだそんなに年収得られるほど稼げる用途で使われてないのかな?
189デフォルトの名無しさん
垢版 |
2024/04/24(水) 02:25:39.07ID:9BuOgi7w
「Kotlin」を用いたデスクトップアプリ開発の解説書が発売
書籍『入門!実践! Kotlin Compose Multiplatformでデスクトップアプリ開発!』
https://forest.watch.impress.co.jp/docs/bookwatch/news/1584816.html
190デフォルトの名無しさん
垢版 |
2024/04/24(水) 12:13:38.89ID:jz/ZCgev
アニメ絵な表紙はいらん
2024/04/24(水) 20:32:33.69ID:4rEKdtk+
そういやkotlinってロゴもマスコットも影薄いよな…
2024/04/25(木) 11:41:06.72ID:PeN8kDEo
かといってGoみたいにキモいマスコットで有名になっても困る
2024/04/25(木) 17:37:17.32ID:nYHUqBTl
マスコットっていたっけ……?
2024/04/25(木) 18:01:12.97ID:Kq+Xk6me
>>193
golang マスコットで画像検索すると見つかる
gopherという名前だそうだ
195194
垢版 |
2024/04/25(木) 18:07:18.97ID:Kq+Xk6me
go マスコット でも見つかった

>Go言語のマスコットキャラクター「Gopher」を愛でる

俺には無理
2024/04/25(木) 18:12:20.43ID:D3qKSIsZ
Kotlinのマスコット(Kodee)の話だろ
2024/04/25(木) 20:32:10.77ID:jefStzEi
ʕ◔ϖ◔ʔ 呼んだ?
2024/04/25(木) 20:33:29.73ID:Q2rDXNTc
マスコットなんていたのかkotlin…
2024/04/25(木) 20:44:13.26ID:+qFJrfoB
日本じゃ販売されてないオライリーの本だとテンみたいな動物が描かれてるな
200デフォルトの名無しさん
垢版 |
2024/04/27(土) 01:18:46.77ID:nhA0znD3
Kotlin マスコットの Kodee (コディー)をご紹介!
https://blog.jetbrains.com/ja/kotlin/2023/05/the-kotlin-mascot-returns/
2024/04/29(月) 00:57:56.26ID:l6yotNy3
うーん、やっぱりインパクトが薄すぎるな
特段かわいくもないしカッコよくもないし、さりとてキモくもない
せめてキモカワイイくらいでないとインパクトが薄い
202デフォルトの名無しさん
垢版 |
2024/05/08(水) 22:53:46.91ID:XRNT7jzh
K2 compiler migration guide
https://kotlinlang.org/docs/k2-compiler-migration-guide.html
203デフォルトの名無しさん
垢版 |
2024/05/11(土) 13:37:01.67ID:9oBHREwy
Any 型のインスタンスを MutableList<Any> 型にキャストしようとするとチェックしていないという警告が出る。
かといって if (it is MutableList<Any>) ... みたいにチェックする部分を書いても List が持つ型の Any のチェックはできないとエラーになる。
これ Java で Object のキャストする時も同じだと思うけど、List, Map, Set の類の保持する値の型に関してはチェックできないからもうどうにもならんのかな?言語仕様の問題?
2024/05/11(土) 13:47:19.53ID:QJWxRdFh
Anyにキャストしたいと思ったことがない
その状況がまずおかしいのでは??
205デフォルトの名無しさん
垢版 |
2024/05/11(土) 13:58:50.60ID:Jlia1/oZ
Let's Go!!
206デフォルトの名無しさん
垢版 |
2024/05/11(土) 14:32:54.42ID:9oBHREwy
>>204
何をしようとしていたかというと、まず MutableMap<String, Any> のインスタンスを作っておいて、それのキーによって値が Int だったり String だったり MutableList<String> だったり MutableList<Int> だったりするようにしたかった。
m["A"] なら Int, m["B"] なら MutableList<String>, m["C"] なら MutableList<Int> みたいな感じ。
まあ、何か他の方法がないわけじゃないんだろうけどね。(自分で専用のクラス作れば一発で解消するんだろうけどねw)。
2024/05/11(土) 15:09:35.85ID:TCVnEoha
文字通り未検査なんだから仕方ないね
型不明のコレクションにキャストしてから各要素をmapでキャストするかまるごと警告抑制でいいのでは
2024/05/12(日) 10:41:41.27ID:9NWmNhrE
composeで何個かアプリ作ってて思ったけど、確かに綺麗かつ書き換えしやすく書けるけど、今までに比べて難しすぎる。
初学者が書けるとは思えないんだが。
209デフォルトの名無しさん
垢版 |
2024/05/12(日) 11:30:15.48ID:PQwVaQ9O
初学者はFigmaみたいなデザインツールサービスで設計してComposeでコーディングの流れなら多少はマシなんじゃないか?
ReactやらSwiftUIやら時代の流れで宣言的UIが主流になったからこの形式に慣れるしかないんだ
210デフォルトの名無しさん
垢版 |
2024/05/12(日) 11:44:54.00ID:5fomRN4+
K2 compiler migration guideを読む
https://qiita.com/RyuNen344/items/2e5a67df1823fb5884fd
2024/05/12(日) 18:46:17.27ID:9NWmNhrE
シンプルにModifierとかテーマとかが分かりづらそう。
もちろん、知ってる人は今までより楽なんだけどなぁ。
2024/05/12(日) 19:22:30.71ID:8JGjswrh
ダークテーマとかめんどくさいねん
2024/05/22(水) 17:36:27.32ID:0G81pYpr
祝・Kotlin 2.0.0🥳
2024/05/22(水) 21:46:59.77ID:0G81pYpr
シンプルなビルドツールのAmperがスタンドアローンで動くようになったみたい
そろそろGradleやめてAmperにしてもいいかも
ttps://blog.jetbrains.com/amper/2024/05/amper-update-may-2024/
2024/05/24(金) 08:10:48.56ID:kgcJienR
今年のKotlin Confはよかった
AWSの話もあってサーバーサイドとしても宣伝されてた
ttps://youtu.be/Ar73Axsz2YA
2024/06/04(火) 16:04:32.32ID:0afq31Br
時間ができたから興味本位で個人用泥アプリをそこまで苦労なくKMPに移行させてみた
iOS開発環境はないからとりあえずJVMのデスクトップアプリとして動かして満足

主に書き換えたところ
build.gradleのマルチプラットフォーム化
xml→Composeに完全書き換え(これは既にほぼ移植完了してた)
SharedPreferencesをDataStoreに移行
commonMainに共通コードを移動
2024/06/04(火) 16:16:02.71ID:0afq31Br
忘れてたあとネットワーク周りのKtor移植
2024/06/05(水) 01:40:53.24ID:6Z2WevUt
>>216
結構簡単そうだな。
compose重い印象あるけど、JVMの動作やリソースの食い具合は>>216的に満足いくレベルだった?
2024/06/05(水) 16:59:49.49ID:YvIfQF0x
>>218
スムーズで満足だったよ
大量のアイテムのリスト表示もカクつくことなく、Androidで動かした場合と遜色もなくデスクトップアプリとして動いてくれた

メモリ使用量はだいたい100~150MBのリソースを食ってたから気になる人はいるかも
2024/06/05(水) 17:22:10.82ID:2rAqOEzx
>>219
回答ありがとう。
アプリに寄るのは理解しているけど、ベースでのメモリの食いもそんなないんだね。
MAUIも個人的に好みじゃないし、今度作るときはCompose使ってみようかな。
2024/06/05(水) 20:09:09.36ID:VYcaLU0X
Modifier.composedをModifier.Nodeに書き換えたらむっちゃ爆速になったので報告
参考になったサイト
Modifier.Node を使いましょう (Part 4: @Composable 関数の実装を Modifier.Node に書き換える) ttps://qiita.com/_SUR4J_/items/d48372b5793c4a0fa65f
2024/06/25(火) 17:25:35.29ID:MInQ5PjC
ttps://github.com/matteocrippa/sensor-accelerometer-multiplatform/blob/main/shared/src/iosMain/kotlin/it/matteocrippa/sensorsmultiplatform/Sensors.kt
iOSアプリ開発、Kotlinで簡単にセンサーデータを取り出せるのな、クロスプラットフォーム対応モバイルアプリは全部Kotlinでいいじゃん
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況