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のスレどこ?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「怒りに震えて涙が出た」 同性婚認めず「合憲」判断に原告が反発 「差別的な判決だ」 ★2 [ぐれ★]
- 今後50年間、毎年100万人ずつ人口が減る…「少子化対策」の失敗で日本が迎える「死ぬまで搾取」というヤバい未来 ★6 [ぐれ★]
- 財政膨張、自民党内に異論 麻生副総裁「やりすぎじゃないか」 [蚤の市★]
- 中国外務省「正式な発言撤回なければ受け入れず」 高市首相は台湾有事「存立危機事態」言及せずも「言及しないことと撤回は別問題」★6 [ぐれ★]
- 「インバウンド政策上、中国は重要」、訪日自粛で金子国交相「早く通常の状況に戻っていただきたい」★3 [ぐれ★]
- 今後50年間、毎年100万人ずつ人口が減る…「少子化対策」の失敗で日本が迎える「死ぬまで搾取」というヤバい未来 ★7 [ぐれ★]
- 【動画】上海バンダイナムコフェス、ワンピース歌ってる途中に中国政府「日本人の公演全面禁止」発令された瞬間強制終了 怖すぎ★5 [579392623]
- お前らって定期的にうんちすることを心がけてるよな
- 【悲報】国分太一さん「全てを失ったんだ!答え合わせさせてくれ!」日テレ「ダメです(即答」 [531674905]
- 中国にはポケモンやらせてあげない
- 【📦】Amazonブラックフライデー、お熱がぶり返した6日目(土曜日)突入!!!
- 【嫌儲超朗報!】Xトレンド1位『高市氏、宣伝費に8000万円超』 [718678614]
