JetBrainsが開発した期待の新言語、Androidの公式開発言語にしてサーバーサイドもなんでもいけるKotlinについて語りましょう
※前スレ
https://mevius.5ch.net/test/read.cgi/tech/1531818027/
探検
Kotlin 5
■ このスレッドは過去ログ倉庫に格納されています
2018/12/08(土) 20:29:41.41ID:oXOQORcd
2018/12/08(土) 20:32:31.24ID:oXOQORcd
公式サイト
https://kotlinlang.org/
公式ブログ
https://blog.jetbrains.com/kotlin
コードを貼れる所
http://rextester.com/l/kotlin_online_compiler
オンラインコンパイラ
https://ideone.com/
Google、KotlinをAndroidアプリ開発言語に選定
http://jp.techcrunch.com/2017/05/18/20170517google-makes-kotlin-a-first-class-language-for-writing-android-apps/
Library support for Kotlin coroutines
https://github.com/Kotlin/kotlinx.coroutines
https://kotlinlang.org/
公式ブログ
https://blog.jetbrains.com/kotlin
コードを貼れる所
http://rextester.com/l/kotlin_online_compiler
オンラインコンパイラ
https://ideone.com/
Google、KotlinをAndroidアプリ開発言語に選定
http://jp.techcrunch.com/2017/05/18/20170517google-makes-kotlin-a-first-class-language-for-writing-android-apps/
Library support for Kotlin coroutines
https://github.com/Kotlin/kotlinx.coroutines
3デフォルトの名無しさん
2018/12/09(日) 14:57:10.33ID:rgDJoSoN O2
2018/12/11(火) 17:55:58.71ID:ZdF1Nxsw
c#でasnc/awaitを学んだから、そのノリでhogeAsync : Defered<Int>とか量産してたがこれclassic wayで駄目なんだ。
コルーチンムズいぞ。
コルーチンムズいぞ。
2018/12/11(火) 18:12:47.19ID:ZdF1Nxsw
今までクラス設計するとき、
class Hoge {
fun action1(): Deferred<Int> {
return GlobalScope.async() {}
}
fun cation2(): Deferred<String> {}
}
GlobalScopeなのはいずれどうにかしようととりあえず脇に置いといて、こう設計してたがダメっぽいな?
誰か詳しい人いないの?
class Hoge {
fun action1(): Deferred<Int> {
return GlobalScope.async() {}
}
fun cation2(): Deferred<String> {}
}
GlobalScopeなのはいずれどうにかしようととりあえず脇に置いといて、こう設計してたがダメっぽいな?
誰か詳しい人いないの?
2018/12/11(火) 20:17:24.17ID:6hR55q3c
class Hoge {
suspend fun action1(): Int = coroutineScope {
delay(2000)
return@coroutineScope 1
}
suspend fun cation2(): String = coroutineScope {
delay(3000)
return@coroutineScope "hoge"
}
}
suspend fun action1(): Int = coroutineScope {
delay(2000)
return@coroutineScope 1
}
suspend fun cation2(): String = coroutineScope {
delay(3000)
return@coroutineScope "hoge"
}
}
2018/12/11(火) 21:33:56.96ID:m02gDU95
C#のasync = suspend って思っとけば大体おk
2018/12/11(火) 21:59:01.90ID:ZdF1Nxsw
async = suspendみたいのはだいたい分かるんだけど、>>6みたく、suspend関数を大量に用意するのがkotlinスタイルらしいんだけど、
じゃ、クラス設計するとき、誰がコルーチンビルダーでコルーチン作るの?って悩んでて。
例えば、「ライブラリ」として分割するケースを考えてみるとして、まず、REST APIを内部でたたいて結果を返すライブラリを作るとき、
class WebService {
suspend fun action1()
suspend fun action2()
}
みたく、全部suspend関数として外部にpublicなAPIとして公開するの??
じゃ、クラス設計するとき、誰がコルーチンビルダーでコルーチン作るの?って悩んでて。
例えば、「ライブラリ」として分割するケースを考えてみるとして、まず、REST APIを内部でたたいて結果を返すライブラリを作るとき、
class WebService {
suspend fun action1()
suspend fun action2()
}
みたく、全部suspend関数として外部にpublicなAPIとして公開するの??
2018/12/11(火) 22:05:51.76ID:ZdF1Nxsw
で、例えば、更に上のライブラリを内部で使って、キャッシュ機能だとかを提供するライブラリを作るとき、
(androidアプリの開発で見るRepositoryパターン)みたいなライブラリを作るときも
class Repository {
suspend fun action1() { webServcie.action1()など}
suspend fun action2()
}
で、やっぱsuspend関数を公開して、このライブラリを使ってつくるアプリで、
launch() {
repo.action1()
}
でここでコルーチンビルダーを使う??みたいな感じ?
(androidアプリの開発で見るRepositoryパターン)みたいなライブラリを作るときも
class Repository {
suspend fun action1() { webServcie.action1()など}
suspend fun action2()
}
で、やっぱsuspend関数を公開して、このライブラリを使ってつくるアプリで、
launch() {
repo.action1()
}
でここでコルーチンビルダーを使う??みたいな感じ?
2018/12/11(火) 22:13:49.36ID:ZdF1Nxsw
ちなみに>>6のcoroutineScope関数調べると、これ新しいスコープ作って呼び出し元からキャンセルできなくなるらしいから、キャンセルできるように
するには
class Hoge {
suspend fun action1(): Int {
delay(2000)
return 1
}
suspend fun cation2(): String {
delay(3000)
return "hoge"
}
}
でいいってことだよね?
するには
class Hoge {
suspend fun action1(): Int {
delay(2000)
return 1
}
suspend fun cation2(): String {
delay(3000)
return "hoge"
}
}
でいいってことだよね?
2018/12/11(火) 23:19:00.56ID:ZdF1Nxsw
https://youtu.be/9HUFo4WyDPI?t=2178
見てたら、例でcoroutineScope使ってたな。
英語何言ってるか全然わからねぇけどw
Structured Concurrency云々。
>>6は相当なプロフェッショナルと見た。
見てたら、例でcoroutineScope使ってたな。
英語何言ってるか全然わからねぇけどw
Structured Concurrency云々。
>>6は相当なプロフェッショナルと見た。
2018/12/12(水) 12:16:15.38ID:ehb+zc+O
つkotlinx
2018/12/12(水) 13:12:24.30ID:XfY7kHOC
Crystalのスレどこ?
2018/12/12(水) 21:24:09.19ID:jSpBUsB/
非suspendも可能な場合に、suspend版と非suspend版を内部的に両方生成するオプションが欲しい
Kotlin/JS使ってるとJavaScriptのasyncより書きやすい(await相当がデフォだから)けど
それでももう一手欲しいところ
Kotlin/JS使ってるとJavaScriptのasyncより書きやすい(await相当がデフォだから)けど
それでももう一手欲しいところ
15デフォルトの名無しさん
2018/12/18(火) 21:12:59.14ID:h6+jV75s kotlinてJavaがなくてもwindowsとMacで動くの?
2018/12/18(火) 21:34:52.63ID:yrNJ9cJf
いけるいける
17デフォルトの名無しさん
2018/12/18(火) 22:25:09.54ID:92SsvGE7 Kotlin Native なら、な。
2018/12/19(水) 09:00:14.59ID:PF0aHy1W
Kotlin/NativeならKotlinコンパイラもLLVMだけが必要でJavaいらないの?
2018/12/19(水) 09:45:25.24ID:ab3sNZA3
そうだよ
かわりに愛情と寛容と忍耐と妥協が必要
かわりに愛情と寛容と忍耐と妥協が必要
20デフォルトの名無しさん
2018/12/19(水) 09:49:46.24ID:WO8V2g+e >>18
ああ。要らなかったよ。やってみな。
ああ。要らなかったよ。やってみな。
2018/12/19(水) 21:31:55.75ID:/PJ/xgrD
いやコンパイラ自体には必要でしょ
初期実装は全部Javaで、今でもかなり残ってる
自社製品のIntelliJがJVM前提だし統合もあるからNativeでのセルフホスティングは目指してないと思うよ
初期実装は全部Javaで、今でもかなり残ってる
自社製品のIntelliJがJVM前提だし統合もあるからNativeでのセルフホスティングは目指してないと思うよ
2018/12/20(木) 00:01:10.39ID:hst6D+g/
やっとマジレスが出てくれて若干安心した
23デフォルトの名無しさん
2018/12/20(木) 02:22:55.67ID:6pIAvd2J やがてコンパイラ自体も Kotlin native でコンパイルできるようになって完全に Java 不要になると思う。
2018/12/20(木) 17:35:04.19ID:FuA72n5Z
やっと林檎ユーザーに
泥は処理遅くて草
とか言われなくて済むんだね!
泥は処理遅くて草
とか言われなくて済むんだね!
2018/12/20(木) 19:18:48.12ID:Jom6rq0W
コンパイラをKotlin native でコンパイルできるようになるのは比較的早くできるだろうけど
IntellijみたいなGUIの総合開発環境をマルチプラットフォームで動かすのをJavaなしでやるのは大変だろう。
IntellijみたいなGUIの総合開発環境をマルチプラットフォームで動かすのをJavaなしでやるのは大変だろう。
26デフォルトの名無しさん
2018/12/21(金) 09:15:12.67ID:mfb3XB1u GUIの部分が大変かもな
2018/12/21(金) 12:11:36.66ID:gjfGeuPx
やるメリットもないだろうからやらんだろうな
2018/12/21(金) 13:38:51.46ID:I/9gCApZ
ただでさえVSCodeに追われてヤバいのに余計なことしてる余裕ないだろ
2018/12/21(金) 13:49:31.79ID:QUmSfmQB
なんだかんだでJVMは長生きすると信じてる
2018/12/21(金) 15:27:32.04ID:Tphe8pyQ
長生きじゃなく、ただの延命処置だろ
31デフォルトの名無しさん
2018/12/21(金) 15:30:24.56ID:mfb3XB1u あ、そーだ。GUIはJavaScriptで書いてブラウザで実行させれば良い。
そのJavaScriptはKotlinのソースからコンパイルして作ったやつにすれば完璧。
そのJavaScriptはKotlinのソースからコンパイルして作ったやつにすれば完璧。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 参政党、梅村みずほ参院議員を党ボードメンバーから解任 参議院国会対策委員長の役職も外れる [少考さん★]
- 日本テレビ、国分太一の会見受け回答「『コンプライアンス違反行為があった』ということ以上に公にできない」「答え合わせ難しい」 [Ailuropoda melanoleuca★]
- 生クリームだけの真っ白なクリスマスケーキ 大手メーカーが販売、その理由は…フルーツなしで価格は半額以下に ★2 [おっさん友の会★]
- 平本蓮「久々にあんなキレたわ あのくそ金髪芸人」SNSでブチギレ、心当たりある芸人が即謝罪「僕ですよね?」 [muffin★]
- 〈シカが泣いている…〉奈良が“観光崩壊”危機…外国人観光客は44.5万人、宿泊客単価は3万1千円 [1ゲットロボ★]
- 社民・福島瑞穂党首「存立危機事態についての高市総理の発言は撤回すべき」「日本の政治の問題として」 [少考さん★]
- 【速報】高市「日本はサンフランシスコ平和条約で台湾に関する全ての権利と権限を放棄している」事実上の答弁撤回か [931948549]
- 【悲報】高市、終わるwwwwwwwwwwwwwwwwwww [308389511]
- 【速報】高市「日本はサンフランシスコ平和条約で台湾に関する全ての権利と権限を放棄している。台湾の法的地位や認定する立場ではない」 [931948549]
- 【悲報】高市早苗の賞味期限が切れる [834922174]
- 【高市速報🦠】俺のYouTube、ネトウヨ動画に汚染される🤮🤮🤮 [343591364]
- 【悲報】トランプ「お前マジいい加減にしろよ?」高市早苗「すみませんでした」答弁修正へ
