Kotlin 7

■ このスレッドは過去ログ倉庫に格納されています
2020/05/06(水) 16:00:38.76ID:LXTBA+hx
JetBrainsが開発した期待の新言語、Androidの公式開発言語にしてサーバーサイドもなんでもいけるKotlinについて語りましょう

※前スレ
Kotlin 6
https://mevius.5ch.net/test/read.cgi/tech/1561186797/
613デフォルトの名無しさん
垢版 |
2021/05/03(月) 04:32:44.33ID:UFgXt23Q
>>612
AndroidStudio だとやらなくて良いの?
それとも最初からデフォルトでコルーチン使えるようになってるとか?
614デフォルトの名無しさん
垢版 |
2021/05/03(月) 04:34:09.34ID:UFgXt23Q
てか、 build.gradle.kts を編集したらあのボタン押さないと反映されないのは同じだよね?
2021/05/03(月) 06:47:14.30ID:JnqbaBph
AndroidStudioでAndroidのKotlinでbuild.gradleだと、編集したら目立つ色で通知が出る
「Gradle files have changed since last project sync. Aproject sync may be necessary for the IDE to work properly.」
右にSync NowとIgnore these changeが出るんで、Sync Now 押せば反映される
2021/05/03(月) 07:14:10.43ID:JnqbaBph
IntelljIDEA2021.1.1でbuild.gradleとbuild.gradle.ktsのkotlinプロジェクト作ってみたよ
上記の通知の表示方法が変わって変なとこに象さんクルクルのアイコンが表示されるようになってるね
たぶん2021バージョンで変更された新しい表示なんだと思われる

今まで使ってた奴からすると、何だこれって感じでカーソルのせてみてSyncNowの代わりにこれ押せばいいとわかるから迷わない
ネットに情報が出てないのは、これに引っかかるのはホントの初心者だけだからじゃないかな

AndroidStudioも将来はこの表示になる可能性が高い
2021/05/03(月) 07:29:34.93ID:4J8x1DcD
Androidで使うのが一般的なのにイキって
IntellijIdeaなんかでやるから天罰が下るんだ
2021/05/03(月) 08:23:58.65ID:mwXEGGMB
>>611
普通にgradleタブのぐるぐる押せばいいのに
まずgradle使わないでどうやって実行しようとしたんだ
2021/05/03(月) 08:27:51.53ID:CCI0+edQ
intellijのスプラッシュが気持ち悪い
早く変わってくれ
620デフォルトの名無しさん
垢版 |
2021/05/03(月) 16:57:39.14ID:UFgXt23Q
>>616
初心者というか、IntelliJ IDEA の初心者だな。
エディタを横に大きく広げていたのと白に近い灰色で表示されて気付かなかった感じだな。
色の問題もあるかな。

>>617
なんでこれでイキってることになるのか?w
Kotlinそのものの学習なら要らんだろう。Android開発部分は後から追加できるようだし。

>>618
なんだそれと思ってよく見たら右にGradleって出ててそれ押すと出てくるやつか。
これもよく見ないと発見できない "秘密のボタン" じゃねえかw
まるで昔のアドベンチャーゲームやってるかのようだ。
2021/05/03(月) 17:09:28.56ID:WPoIRVmP
イキりポンチの童貞野郎が
2021/05/03(月) 17:25:07.75ID:wIRNyzo+
勃つだけましさ
2021/05/03(月) 17:42:09.79ID:APFHCyDf
なんでもすぐイキってるとか言っちゃう子はそんなに他人や世間が怖いのかなと心配になる
もっと自由でええんやで
2021/05/04(火) 07:32:05.47ID:7jJ3nkV3
>>619
わかる
2021/05/04(火) 15:42:18.39ID:EqUn5+/6
何らかのmap関連APIで、ある地点AとBを結ぶ経路を表示することはできると思う
そこからさらに、100mなどの距離を与えてスタート地点AからB地点へ
100m歩いた軌跡を表示することは可能ですか
626デフォルトの名無しさん
垢版 |
2021/05/06(木) 04:27:55.32ID:ajjDZVcw
質問の意味が分からないが、もしやAndroidの質問?
だったらAndroidのスレがあったと思うのでそっちで聞いた方がいいと思う。
627デフォルトの名無しさん
垢版 |
2021/05/06(木) 05:53:58.45ID:MxQkcaBR
あわしろ氏もアカン言うてましたわ。
2021/05/06(木) 08:05:00.82ID:xWxV6AXf
あわしろ氏誰やねんヽ(`Д´)ノ
2021/05/06(木) 18:43:39.58ID:ofNdXnYQ
>>625
それはKotlinでもAndroidでもなく使うマップの仕様によるだろう。
スタート地点+距離を受け付けるAPIがあるならできるし、ないならできない。
2021/05/06(木) 20:50:47.13ID:Ta5pc6Qz
そういうAPIがあるのかどうかを調べて来いよ
631デフォルトの名無しさん
垢版 |
2021/05/07(金) 01:37:38.13ID:4k6XqTcw
お! 1.5 出てた。
2021/05/07(金) 10:08:30.66ID:dF0LJIle
1.5はパッとしないな
2021/05/07(金) 14:02:08.44ID:Mo+Zp2+Z
パッとしてから来いよ
2021/05/07(金) 14:37:33.61ID:pvRHeq5B
ハッとして グッときて
パッと目覚める Kotlinだから
2021/05/07(金) 19:44:58.77ID:kPylSr38
inline class最高
2021/05/08(土) 06:09:46.75ID:BZJBNPxd
>>632
Javaと同じくローリングリリースになったからな。
パッとしなくてもスケジュールが優先でリリースされる。
2021/05/08(土) 09:03:32.71ID:OwFy1u/b
ハッとして グッときて
パッと目覚める Kotlinだから
2021/05/08(土) 20:34:47.27ID:3jxsjvDZ
>>634
は天才だと思う
639デフォルトの名無しさん
垢版 |
2021/05/15(土) 23:36:32.32ID:d+8scdvN
俺は今頃 Compose for Desktop というものがあることを知った。
2021/05/15(土) 23:43:23.67ID:tihXB0Cj
Kotlin使ってるやつ仕事でどんなもの作ってるの?
2021/05/15(土) 23:44:20.12ID:amksdPdW
なんでコードでレイアウト実装したいと思うの
レイアウトはXMLに分離することで可読性を上げたいということでそうしたんじゃないの
2021/05/16(日) 01:02:22.08ID:/lNEC7FM
ひさしぶりにKotlinでコードを書く機会があったが
意外と悪くない
残念なのはこれがほとんどAndroidのアプリ開発でしか使われていないことだ・・
2021/05/16(日) 05:39:12.20ID:et9DNQD4
>>641
XMLはわりと嫌われているからね
みんながXML大好きならJSONやYAMLなんかが今みたいに流行ることはなかっただろう

そういうXML嫌いな一派に内部DSL好きな人達がいる
rubyとかから流れてきた人達かな
kotlinは言語仕様の決定に内部DSLの書きやすさが考慮されていたりして、その内部DSL好きの意見が多く取り入れられてる
なのでレイアウトも内部DSLでやろうという話がでてくる
2021/05/16(日) 05:41:08.95ID:et9DNQD4
コードそのものじゃなくて、内部DSLを使えば可読性は向上するという考えだね
XMLを使わなくても
2021/05/16(日) 05:42:02.78ID:5m7n3cRq
センスねえ一派だな
2021/05/16(日) 06:04:05.36ID:rlnJSKha
jsonは末尾カンマがあるだけで壊れるの嫌い
2021/05/16(日) 08:33:52.08ID:et9DNQD4
いまはJSON言っても末尾カンマやコメント可能な拡張されたJSONを
設定ファイルに使えるでしょ
VSCodeとか
2021/05/16(日) 14:11:03.42ID:xkWHIivX
jsonc? json5?
2021/05/16(日) 15:14:10.16ID:OjO2sknJ
レイアウトをコードで書く流れなのはKotlin関係ないけどな
650デフォルトの名無しさん
垢版 |
2021/05/16(日) 16:09:18.42ID:bjgpsQdf
ちょっと違う話だが、 IntelliJ IDEA で新規プロジェクトを作る時に Ktor の所は後ろにカッコつきで Obsolete ってなってんだけど、Ktor って廃止される予定なの?
2021/05/16(日) 17:32:42.39ID:et9DNQD4
>>650
Ktorのプラグインが新しくなったんじゃないかな
旧プラグイン1.5.1-obsolateと1.5.3は別のプラグインとしてインストールするようになってるように見える
新規プロジェクトの前に新しい方のプラグインインをストールすればobsolate無しのKtorが選択できると思う
2021/05/17(月) 14:53:16.95ID:DZwTmI3K
>>651
なるほど。プラグインだけか。

と思ってアップデートしようとしたが obsolete のやつしか出て来ない。
おかしいなと思って JetBrain のサイトで検索したら出てきたが、 Community はサポートしていなかった。Ultimate だけだった。
2021/05/17(月) 14:57:10.60ID:DZwTmI3K
それでも無理矢理ダウンロードしてZIPファイルからインストールするとこれが出て動かない。

プラグイン 'Ktor' はプラグイン 'com.intellij.microservices.uast' をインストールすることを要求しています

まあいいか。plugin使えなくても。
2021/05/17(月) 18:23:09.35ID:gVJDEHq4
質問1
Android studioのkotlin使ってるんやけどカレントディレクトリってどうやって取得すればいい?

System.getProperty(”user.dir”)
でも
Path.get(””).toAbsolutePath().toString()
でも/としか表示されへん

質問2
カレントディレクトリに有るファイルの場合はファイル名だけ指定したらjava.io.Fileを使ってファイル名だけでディレクトリの指定なしに操作できる?
2021/05/17(月) 18:32:44.93ID:zF1a9+57
ktorのプラグインって廃止されてバンドルになったんじゃなかったっけ
2021/05/17(月) 23:50:52.56ID:AWM7Ajza
>>654
アプリのプロセスのカレントディレクトリがルートディレクトリなんだろ
もちろんルートディレクトリに対する読み書き権限は無いはず

アプリがデフォルトで読み書きできるディレクトリはこの辺
https://developer.android.com/training/data-storage/app-specific?hl=ja

Fileクラスのコンストラクタはカレントディレクトリからの相対指定パスをしてもいいはずだけど、
アプリのプロセスのカレントディレクトリを勝手に変更していいかどうかは知らん
2021/05/18(火) 08:12:00.56ID:vup8yESh
>>654
そもそも何がしたくてカレントディレクトリを取得したいん?
直感だけど、根本的にあまりやらない方がいいことをしようとしている気がする
658デフォルトの名無しさん
垢版 |
2021/05/18(火) 09:52:29.38ID:1yVusvif
Javaってカレントディレクトリ変更できないしあまりあてにしない方がいいよね。同じようにJVMでJavaのライブラリ使って動くKotlinも同じ。
(nativeとか他のは別として)
2021/05/18(火) 10:27:28.65ID:lmZGxPtq
ファイルを操作したいならカレントディレクトリは使わずに環境変数なりなんなりで絶対パスを指定して、そこを利用した方が良いと思う
2021/05/18(火) 23:37:04.25ID:AEI9A+tv
>>659
やと、アプリ専用のフォルダーを勝手につくっちゃうってこと?
アプリを内部にするか外部に保存するかわからんくない?
2021/05/19(水) 07:55:59.28ID:iIq+id16
アプリと一緒にデータファイル配布して、アプリからそれを読み込もうとしているとかか?
2021/05/19(水) 17:49:44.81ID:u4xdB3FO
>>661
そのパターン
データ保存したいねん
2021/05/19(水) 18:10:25.10ID:iIq+id16
配布したいのか、保存したいのか
保存したいのなら>>656のリンクを見ろ
配布したいのなら簡単なのはリソースに含めるとか
配布したファイルへ保存はやったらダメ
2021/05/21(金) 13:20:22.19ID:7dyiFiD+
>>662
保存と配布どっちだよ。
2021/05/21(金) 14:32:48.76ID:II2P4TIk
>>664
保存!
2021/05/21(金) 17:54:11.01ID:7dyiFiD+
>>665
それなら>>656のリンク見てそこに書き込みな。
Androidはアプリごとに書き込んでいい場所が用意されてるから。
2021/06/20(日) 13:56:59.50ID:DRMed2ub
kotlinのfirsrOrNullの検索効率ってどんな感じなんすか
Javaで2重ループで検索とかすると計算処理を削減するために工夫したりするんだけど
firstOrNullはそういうこと気にしなくてもいんすか
2021/06/20(日) 14:21:44.30ID:KYXAfitG
二重ループで検索てのが何かよくわからないけど、firstornullは上から順番に一致するものを探してるだけだよ。
高速な検索が必要ならハッシュテーブルとか二分探索とか検討すれば
669デフォルトの名無しさん
垢版 |
2021/06/22(火) 08:51:41.24ID:Xn56/PVc
kotlinはまだ5年は安泰かね
2021/06/22(火) 14:12:00.49ID:jX4OI0Ca
簡素に書けるからプログラム入門者向けというわけではないな
慣れるとコード量が減って読み書きの時間短縮になるが、知らないと直感的に理解できないデメリットのほうが大きい
プロ向けの言語だと思うわ
671デフォルトの名無しさん
垢版 |
2021/06/23(水) 19:20:52.36ID:64YJsdY1
>>667
下の方に実装が書いてある。物凄く単純。forで先頭から見てるだけ。
https://qiita.com/tkhskt/items/fb15c6b9d9cf30f4ea26
672デフォルトの名無しさん
垢版 |
2021/06/29(火) 15:16:07.90ID:iGYT4fi4
もうすぐ Kotlin 10周年だな。
WikipediaのKotlinのページ見たら2011年7月20日に発表されたって書いてあった。
2021/07/08(木) 20:57:16.04ID:+vWLj3Me
ロゴが変わっただけかい
674デフォルトの名無しさん
垢版 |
2021/07/09(金) 02:49:07.06ID:HAPzR3Cs
kotlin.ranges.ClosedFloatingPointRange の lessThanOrEquals() メソッドって a <= b やってるのと同じだと思うんだが、どういう時に使う事を想定してわざわざ abstract で定義されてるの?
a <= b の結果を返す実装をしない場合向け? しかし ClosedFloatingPointRange のインスタンスでやれるようにする理由がわからない。
2021/07/09(金) 02:58:02.94ID:HAPzR3Cs
ソース見ても ClosedFloatingPointRange<Double>, ClosedFloatingPointRange<Float> 共に lessThanOrEquals() は a <= b 返してるだけ。
https://github.com/JetBrains/kotlin/blob/80cce1dc5280eb9135390270c8644a7b8d198071/libraries/stdlib/src/kotlin/ranges/Ranges.kt
676デフォルトの名無しさん
垢版 |
2021/07/10(土) 15:45:19.22ID:jbIVp5r2
誰も答える事が出来ない、か・・・
2021/07/10(土) 17:29:16.75ID:CuVl6tH2
浮動小数点 比較 でググれカス
2021/07/11(日) 00:30:54.29ID:98wTdhzr
勘だけどcompareToで実装した場合BoxingとUnboxingが発生するからとか?
2021/07/11(日) 01:58:02.78ID:xDCJE6De
何の話かとソースを見たら簡単なことだった
抽象クラスでcontainsやisEmptyをテンプレートパターンで提供するために使ってるじゃん
680デフォルトの名無しさん
垢版 |
2021/07/11(日) 02:18:18.60ID:cP82I2qM
>>677
で?ググったが、君が何を言いたいのか全く分からない。

>>678
Kotlin はプリミティブ型はないから Boxing, Unboxing の概念自体がないよ。
もちろんコンパイラは最適化して内部的にはやっているコードを作るだろうけどね。
かといってそれで動作が変わる事はない。
それと Kotlin は <= 演算子は compareTo() 使うように置き換えられるだけだ。
681デフォルトの名無しさん
垢版 |
2021/07/11(日) 02:27:45.13ID:cP82I2qM
>>679
lessThanOrEquals() メソッドを用意する意味は? 何のために必要なの? どういう時に使うの?
このクラスのインスタンスを通さずに a <= b と書いても同じなんだけど、そう書かない方が良い場合やそう書けない場合があるの?
2021/07/11(日) 02:29:55.56ID:xDCJE6De
>>681
外から使わせたい意図なんじゃなくて中でもう使ってるんだよ
683デフォルトの名無しさん
垢版 |
2021/07/11(日) 02:50:03.62ID:cP82I2qM
>>682
ああ。ソースの上の方の interface の所で使ってるこれか。
上の方見てなかった。ClosedDoubleRange とかの実装部分では全て override してるから気付かなかった。
2021/07/11(日) 03:36:10.64ID:1PXH7bmD
>>679
ClosedFloatingPointRangeはClosedRangeを継承してて、ClosedRangeはcontainsとisEmptyを不等号演算子で実装してるのに、
なんでそれをlessThanOrEqualsを使ったものにoverrideしてるのは何故なんだぜ
ClosedFloatingPointRangeのComparable<T>はoperatorのcompareToを実装してるから不等号演算子使えるはずだろ
2021/07/11(日) 15:03:50.18ID:turdcYIy
>>684
不等号演算子ではIEEE754の定める順序が厳密に実装できないからじゃね?
正負の0をどう順序付けるかとか
2021/07/11(日) 22:32:15.75ID:oapAt03e
標準の実装だと0.1を10回足した結果が1.0..2.0の範囲外になるからな
2021/07/12(月) 01:19:08.25ID:LR2Kyv8n
>>676
教えてあげても理解できない、か・・・
688デフォルトの名無しさん
垢版 |
2021/07/12(月) 04:26:13.64ID:Stykbknw
>>687
君はどこで教えてるの?
2021/07/12(月) 07:34:03.09ID:4Smn+TRk
Androidアプリ開発始めようと思うんだけど、いきなりKotlinの勉強初めて大丈夫?
JAVAの入門書1冊くらい目を通しておいた方がいいかな
HTMLとCSSはわかる
昔やさしいCを一通り読んだり、ドットインストールのPHPのとこを見た程度で、まともなプログラミング経験はないんだけど…
2021/07/12(月) 07:45:25.78ID:0kBd/ns6
別に問題ないけどandroidの開発はUIを作る部分は今はjetpack composeという新しい
フレームワークが登場しようとしてる時期だからな
今までのやり方を勉強するかjetpack composeを勉強するかそこが悩ましいところ

kotlinのところは共通だから問題ないが

javaは必要になったらその都度調べるでいいんじゃ
2021/07/12(月) 07:47:46.13ID:0kBd/ns6
なにより動機が大切
作りたいアプリがあるとかあれば完遂できる高くなると思う
2021/07/12(月) 10:29:21.39ID:CpHcNeNq
composeは糞、流行るわけない
元々ロジックとデザインが混在してカオスだったのをうまく分離した歴史があるのに
なんでまた混在させようとしてるんだ
コードが見にくくなるだけセンスねえな
693デフォルトの名無しさん
垢版 |
2021/07/12(月) 19:41:43.02ID:Stykbknw
流行って貰いたいものが流行らず、流行って貰いたくないものが流行る。
世の中とはそういうものだ。
2021/07/12(月) 20:38:10.01ID:bBJu0B3I
本質的に結合しているものを分離すると逆に分かりにくくなるんやで
Web の HTML, CSS, JavaScript を1ファイルでコンポーネント化するようなもん

関心の分離っていってな、関心の単位で分離すべきであって言語とか拡張子といった技術で分離すべきではないんねん
2021/07/12(月) 20:46:21.89ID:CpHcNeNq
main関数のみで全処理書いてろ
2021/07/12(月) 22:47:29.20ID:4Smn+TRk
>>690
ありがとう、いきなりKotlinでいくことにする
作りたいアプリがいくつかあるから動機の点では問題ないと思う
2021/07/13(火) 16:16:13.48ID:NjYyHmnM
KotlinをマスターすればJAVAを学ぶのも楽になったりする?
2021/07/13(火) 17:42:26.07ID:0X+PqoEr
Korlinから入るとJavaがダルすぎるだろうな
2021/07/13(火) 18:05:59.24ID:ugiVX/de
Kotlinは概ねJavaのスーパーセットだから、Kotlinをマスターすれば自動的にJavaもマスターしたことになる
逆に言えばJavaの知識は漏れなくKotlinで通用するので、言語の基礎からじっくり学びたいならJavaから入ったほうが効率はいい
2021/07/13(火) 18:51:54.36ID:72jyBhF5
オナシャス!
あしたー!
をマスターすれば
よろしくお願いします!
ありがとうございましたー!
をマスターしたことになるということか
2021/07/13(火) 19:14:12.59ID:hwqBl+H/
Javaが右手なら
KotlinはTENGA
2021/07/13(火) 19:34:54.40ID:QtVQwWW6
AndroidにおいてもはやJavaは古語
外人が日本語学ぶときに古文から勉強なんてしないでしょ
エスアイヤーに入ってサーバサイドJavaを書く予定でもない限り、Javaは無視してKotlinだけ勉強すれば充分だと思う
古典解読の必要に迫られてなければ極力関わらないほうがいい
2021/07/16(金) 20:27:24.69ID:fn0ZIWtp
いまだにkotlin見ないよ
2021/07/16(金) 20:28:12.10ID:fn0ZIWtp
Javaを代替するのかと思ったらぜんぜんそんなことないし
新しいもの好きはKotlinのかわりにPython使うありさま
どうなってん
2021/07/16(金) 20:59:39.71ID:daMSi7HO
お前がいけてないゴミ企業に勤めてるだけだろ
ああん?かかってこいよ
2021/07/16(金) 21:01:55.89ID:B3wJeb/i
スレに小学生が紛れ込んでます
2021/07/16(金) 21:03:40.72ID:ie4I3r9l
うーん、Androidならともかく、Pythonが比較対象になるってことはサーバーサイドだろ?
サーバーサイドでKotlinが採用されるのって基本的に環境にJVM縛りがある場合なわけで、その時点でイケてないと思うけどな
2021/07/16(金) 22:05:58.66ID:fn0ZIWtp
スマホに行くとあるのか?
2021/07/17(土) 09:22:49.55ID:zXxqlbp9
こういうやつが多いからこそ今のうちにKotlinをマスターしておく
2021/07/17(土) 14:11:07.80ID:IFwXDVuO
新しい物好きがpythonとな
711デフォルトの名無しさん
垢版 |
2021/07/18(日) 03:33:31.77ID:1LSo9w/B
>>704
Android のアプリ開発でもまだ Java を新規で使う?
712デフォルトの名無しさん
垢版 |
2021/07/22(木) 16:13:54.69ID:o3SPPMDQ
答えない、か・・・
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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