18/12/08 20:29:41.41 oXOQORcd.net
JetBrainsが開発した期待の新言語、Androidの公式開発言語にしてサーバーサイドもなんでもいけるKotlinについて語りましょう
※前スレ
スレリンク(tech板)
2:デフォルトの名無しさん
18/12/08 20:32:31.24 oXOQORcd.net
公式サイト
URLリンク(kotlinlang.org)
公式ブログ
URLリンク(blog.jetbrains.com)
コードを貼れる所
URLリンク(rextester.com)
オンラインコンパイラ
URLリンク(ideone.com)
Google、KotlinをAndroidアプリ開発言語に選定
URLリンク(jp.techcrunch.com)
Library support for Kotlin coroutines
URLリンク(github.com)
3:デフォルトの名無しさん
18/12/09 14:57:10.33 rgDJoSoN.net
O2
4:デフォルトの名無しさん
18/12/11 17:55:58.71 ZdF1Nxsw.net
c#でasnc/awaitを学んだから、そのノリでhogeAsync : Defered<Int>とか量産してたがこれclassic wayで駄目なんだ。
コルーチンムズいぞ。
5:デフォルトの名無しさん
18/12/11 18:12:47.19 ZdF1Nxsw.net
今までクラス設計するとき、
class Hoge {
fun action1(): Deferred<Int> {
return GlobalScope.async() {}
}
fun cation2(): Deferred<String> {}
}
GlobalScopeなのはいずれどうにかしようととりあえず脇に置いといて、こう設計してたがダメっぽいな?
誰か詳しい人いないの?
6:デフォルトの名無しさん
18/12/11 20:17:24.17 6hR55q3c.net
class Hoge {
suspend fun action1(): Int = coroutineScope {
delay(2000)
return@coroutineScope 1
}
suspend fun cation2(): String = coroutineScope {
delay(3000)
return@coroutineScope "hoge"
}
}
7:デフォルトの名無しさん
18/12/11 21:33:56.96 m02gDU95.net
C#のasync = suspend って思っとけば大体おk
8:デフォルトの名無しさん
18/12/11 21:59:01.90 ZdF1Nxsw.net
async = suspendみたいのはだいたい分かるんだけど、>>6みたく、suspend関数を大量に用意するのがkotlinスタイルらしいんだけど、
じゃ、クラス設計するとき、誰がコルーチンビルダーでコルーチン作るの?って悩んでて。
例えば、「ライブラリ」として分割するケースを考えてみるとして、まず、REST APIを内部でたたいて結果を返すライブラリを作るとき、
class WebService {
suspend fun action1()
suspend fun action2()
}
みたく、全部suspend関数として外部にpublicなAPIとして公開するの??
9:デフォルトの名無しさん
18/12/11 22:05:51.76 ZdF1Nxsw.net
で、例えば、更に上のライブラリを内部で使って、キャッシュ機能だとかを提供するライブラリを作るとき、
(androidアプリの開発で見るRepositoryパターン)みたいなライブラリを作るときも
class Repository {
suspend fun action1() { webServcie.action1()など}
suspend fun action2()
}
で、やっぱsuspend関数を公開して、このライブラリを使ってつくるアプリで、
launch() {
repo.action1()
}
でここでコルーチンビルダーを使う??みたいな感じ?
10:デフォルトの名無しさん
18/12/11 22:13:49.36 ZdF1Nxsw.net
ちなみに>>6のcoroutineScope関数調べると、これ新しいスコープ作って呼び出し元からキャンセルできなくなるらしいから、キャンセルできるように
するには
class Hoge {
suspend fun action1(): Int {
delay(2000)
return 1
}
suspend fun cation2(): String {
delay(3000)
return "hoge"
}
}
でいいってことだよね?
11:デフォルトの名無しさん
18/12/11 23:19:00.56 ZdF1Nxsw.net
URLリンク(youtu.be)
見てたら、例でcoroutineScope使ってたな。
英語何言ってるか全然わからねぇけどw
Structured Concurrency云々。
>>6は相当なプロフェッショナルと見た。
12:デフォルトの名無しさん
18/12/12 12:16:15.38 ehb+zc+O.net
つkotlinx
13:デフォルトの名無しさん
18/12/12 13:12:24.30 XfY7kHOC.net
Crystalのスレどこ?
14:デフォルトの名無しさん
18/12/12 21:24:09.19 jSpBUsB/.net
非suspendも可能な場合に、suspend版と非suspend版を内部的に両方生成するオプションが欲しい
Kotlin/JS使ってるとJavaScriptのasyncより書きやすい(await相当がデフォだから)けど
それでももう一手欲しいところ
15:デフォルトの名無しさん
18/12/18 21:12:59.14 h6+jV75s.net
kotlinてJavaがなくてもwindowsとMacで動くの?
16:デフォルトの名無しさん
18/12/18 21:34:52.63 yrNJ9cJf.net
いけるいける
17:デフォルトの名無しさん
18/12/18 22:25:09.54 92SsvGE7.net
Kotlin Native なら、な。
18:デフォルトの名無しさん
18/12/19 09:00:14.59 PF0aHy1W.net
Kotlin/NativeならKotlinコンパイラもLLVMだけが必要でJavaいらないの?
19:デフォルトの名無しさん
18/12/19 09:45:25.24 ab3sNZA3.net
そうだよ
かわりに愛情と寛容と忍耐と妥協が必要
20:デフォルトの名無しさん
18/12/19 09:49:46.24 WO8V2g+e.net
>>18
ああ。要らなかったよ。
21:やってみな。
22:デフォルトの名無しさん
18/12/19 21:31:55.75 /PJ/xgrD.net
いやコンパイラ自体には必要でしょ
初期実装は全部Javaで、今でもかなり残ってる
自社製品のIntelliJがJVM前提だし統合もあるからNativeでのセルフホスティングは目指してないと思うよ
23:デフォルトの名無しさん
18/12/20 00:01:10.39 hst6D+g/.net
やっとマジレスが出てくれて若干安心した
24:デフォルトの名無しさん
18/12/20 02:22:55.67 6pIAvd2J.net
やがてコンパイラ自体も Kotlin native でコンパイルできるようになって完全に Java 不要になると思う。
25:デフォルトの名無しさん
18/12/20 17:35:04.19 FuA72n5Z.net
やっと林檎ユーザーに
泥は処理遅くて草
とか言われなくて済むんだね!
26:デフォルトの名無しさん
18/12/20 19:18:48.12 Jom6rq0W.net
コンパイラをKotlin native でコンパイルできるようになるのは比較的早くできるだろうけど
IntellijみたいなGUIの総合開発環境をマルチプラットフォームで動かすのをJavaなしでやるのは大変だろう。
27:デフォルトの名無しさん
18/12/21 09:15:12.67 mfb3XB1u.net
GUIの部分が大変かもな
28:デフォルトの名無しさん
18/12/21 12:11:36.66 gjfGeuPx.net
やるメリットもないだろうからやらんだろうな
29:デフォルトの名無しさん
18/12/21 13:38:51.46 I/9gCApZ.net
ただでさえVSCodeに追われてヤバいのに余計なことしてる余裕ないだろ
30:デフォルトの名無しさん
18/12/21 13:49:31.79 QUmSfmQB.net
なんだかんだでJVMは長生きすると信じてる
31:デフォルトの名無しさん
18/12/21 15:27:32.04 Tphe8pyQ.net
長生きじゃなく、ただの延命処置だろ
32:デフォルトの名無しさん
18/12/21 15:30:24.56 mfb3XB1u.net
あ、そーだ。GUIはJavaScriptで書いてブラウザで実行させれば良い。
そのJavaScriptはKotlinのソースからコンパイルして作ったやつにすれば完璧。
33:デフォルトの名無しさん
18/12/21 22:14:57.05 8Iu4hnmd.net
アンケート入力の時間だ
URLリンク(blog.jetbrains.com)
34:デフォルトの名無しさん
18/12/21 22:59:54.90 /MQTzm2r.net
項目多いな
35:デフォルトの名無しさん
18/12/22 02:37:32.92 JnEveBkB.net
いつの間にかこんな入門書が出ていた。但し Kindle 版のみだ(unlimited の人は 0 円で読める)。
速習 Kotlin
URLリンク(amzn.asia)
36:デフォルトの名無しさん
18/12/25 06:47:43.66 1ThGctmt.net
メリーコトリン
37:デフォルトの名無しさん
18/12/25 11:17:10.24 yeWprDEr.net
つまんね
38:デフォルトの名無しさん
18/12/25 19:25:24.16 KSMuafeJ.net
爆笑
39:デフォルトの名無しさん
18/12/26 22:47:51.52 5ub5SAQR.net
>>37
無理に>>36にて対抗しなくていいからww
40:デフォルトの名無しさん
18/12/27 08:12:45.83 DJ5Bt1eh.net
kotlinのコルーチンビルダーに渡す中断関数がレシーバー付きなのを止めてほしい。
public fun CoroutineScope.launch(
context: CoroutineContext = EmptyCoroutineContext,
start: CoroutineStart = CoroutineStart.DEFAULT,
block: suspend CoroutineScope.() -> Unit
blockパラメータにレシーバつけるんじゃねぇよ。というもの、なんでコルーチンビルダーに渡すルートの中断関数だけCorotineScopeにアクセスできるんだよ。
ルート以外の中断関数からはアセクスできないのに。この非対称性というか特別扱いやめて。
41:デフォルトの名無しさん
18/12/27 08:17:42.92 DJ5Bt1eh.net
例えば、自分で定義した中断関数
suspend fun hoge() {
}
内ではCoroutineScopeにアクセスできない。CoroutineScopeではなくCoroutineContextにはcoroutineContext関数経由でアセクスできるが。
こういう一貫性のなさはやめてほしい。なんか意味があるのかもしれんが。
42:デフォルトの名無しさん
18/12/27 10:06:52.89 g57/YEyR.net
ここじゃなくて公式に言ってこいよ
43:デフォルトの名無しさん
18/12/27 23:27:31.48 r4GKgwJE.net
>>32のアンケートに自由記載の欄があるから、そこで言うことは可能。
44:デフォルトの名無しさん
18/12/27 23:47:52.20 hAo/rJSd.net
>>39 >>40
CoroutineScopeはキャンセルの伝搬と構造化のためにあって意図的にそうなってる
private funや全体制御クラスなどを除いては基本的に他所に渡しては駄目
渡された側がキャンセルすると子だけでなく親戚関係のものまで巻き込んでしまう
スコープ直下のブロックは保護者のような役割になるので
渡さずに↓のようにしてスコープをネスト構造にするべき
suspend fun hoge() = couroutineScope {
}
45:デフォルトの名無しさん
19/01/02 20:28:59.08 MMKJrJD0.net
あけましておめでとうございます
ことりんもよろしくお願いします
46:デフォルトの名無しさん
19/01/02 22:49:08.10 sDzpRBwn.net
え?
47:デフォルトの名無しさん
19/01/03 09:15:47.36 h/ELqUHS.net
山田さーん、>>44に座布団1枚持ってきて。
48:デフォルトの名無しさん
19/01/03 10:25:22.96 GKSM08/3.net
座り小便した奴を持って来ました
49:デフォルトの名無しさん
19/01/07 18:42:28.96 4PQEcpA5.net
supervisorScopeって上司っぽさがあるな
50:デフォルトの名無しさん
19/01/12 11:30:26.17 ygc4MJ1X.net
お前の勤務成績は丸見えだから
51:デフォルトの名無しさん
19/01/12 12:51:17.46 IzmxBuIw.net
そもそもcoroutinrScopeを他に渡して何をするつもりなんだろう
用途が思いつかない
52:デフォルトの名無しさん
19/01/14 19:40:36.89 OowwBnZ2.net
「基本からしっかり身につくAndroidアプリ開発入門 Android Studio 3対応」
よく書いてあるようにサンプルが動かないんすけど、
あまりにも初心者過ぎてどこを直せばいいのかわからないっす。
Chapter 4のCalculatorで、正しいコードがわかる方いませんか?
val button = findViewById<Button>(R.id.calculate)
button.setOnClickListener {
var isValid = true
val priceEditText = findViewById<EditText>(R.id.price)
val priceText = priceEditText.text.toString()
if (priceText.isEmpty()) {
priceEditText.error = getString(R.string.price_error)
isValid = false
}
val discountEditText = findViewById<EditText>(R.id.discount)
val discountText = discountEditText.text.toString()
if (discountText.isEmpty()) {
discountEditText.error = getString(R.string.discount_error)
isValid = false
}
53:デフォルトの名無しさん
19/01/14 19:40:58.45 OowwBnZ2.net
>>51の続き
if (isValid) {
val price = priceText.toInt()
val discount = discountText.toInt()
val intent = Intent(this, ResultActivity::class.java)
intent.putExtra("price", price)
intent.putExtra("discount", discount)
startActivity(intent)
}
}
54:デフォルトの名無しさん
19/01/14 19:42:40.59 OowwBnZ2.net
>>51 遷移先のコードもエラーになります。
val extras = intent.extras ?: return
val price = extras.getInt("price", 0)
val discount = extras.getInt("discount", 0)
val expression = findViewById<TextView>(R.id.expression_label)
expression.text = getString(R.string.expression, price, discount)
val discountedPrice = price * (100 - discount) / 100
val discounted = findViewById<TextView>(R.id.result_label)
discounted.text = getString(R.string.result, discountedPrice)
55:デフォルトの名無しさん
19/01/14 19:51:40.91 mSU16be8.net
まず大事なこととして
・正確に伝える
・切り分けをしていく
コンパイルエラーなのか実行時エラーなのか想定と違う動作なのか
エラーであればどのような内容か
想定と違うのであれば想定と実際の両方を具体的に
実行可能な場合はログ出力を追加するなどして問題の箇所を絞り込む
技術者は答えより答えの出し方を知る方が大切
56:デフォルトの名無しさん
19/01/14 19:54:33.86 OowwBnZ2.net
>>54
コンパイルエラーです
57:デフォルトの名無しさん
19/01/14 20:14:29.56 pDL52XEr.net
AndroidStudio使っててどこがコンパイルエラーかわからないとかあんの?
58:デフォルトの名無しさん
19/01/14 21:06:42.85 eurbvKP4.net
まあぶっちゃけると「エラーが出て動かない」以上のことがさっぱりわからんことはあるにはある
IDEが表示するエラーが理解できるくらいならそもそも入門書など読まんw
59:デフォルトの名無しさん
19/01/14 21:23:28.22 fiLCWGOz.net
>>55
なぜエラーメッセージを読まないのか。せめて貼り付けろ
60:デフォルトの名無しさん
19/01/15 00:32:52.94 pIHkTAGg.net
Rなんとかは定義したの?
61:デフォルトの名無しさん
19/01/15 01:25:57.81 tO821mqa.net
>>51に当てはまるかは知らないけど
初心者って初心者向けの本を買うくせにちゃんと読まずに進めるんだよな
手順をすっ飛ばしてるパターンがほとんど
62:デフォルトの名無しさん
19/01/15 01:38:02.87 VjJwW0bc.net
>>59
あー文字定義してないのはいかにもありそうだな
63:デフォルトの名無しさん
19/01/15 11:17:38.84 uh3dx1w7.net
>>59
Rって、解説書でも唐突に出てくるんすけど、何を定義すればいいの?
64:デフォルトの名無しさん
19/01/15 13:47:19.17 1CaYwh4e.net
まずエラーメッセージを貼れ
65:デフォルトの名無しさん
19/01/15 14:15:39.24 pzxobvn7.net
>>62
そんな解説書は燃やせ
Rクラスはxmlファイルの記述からAndroidStudioが(語弊あり)勝手に作成するリソース管理クラスだ
xmlファイル(に転記するリソース名管理欄)での手動記述がミスってると生成失敗してRクラスなんぞ知らん系のエラーになる
というかとっとと何も考えずに>>63するか餃子のラー油の小袋が半端にしか開かずに必ず指につく呪いにでもかかってしまえ
66:デフォルトの名無しさん
19/01/15 15:05:34.53 uh3dx1w7.net
>>64 ㌧くす
エラーメッセージはたくさんありすぎて貼れないから貼ってない
とりあえず自宅に戻ってからまた再現させる
てゆーか、この程度のコードでバグる奴がなんで解説書を出版社から出せるんだよ
まともな解説書ってないのかよ
尼見るともう一冊のほうもサンプルが動かんと書かれていて読む本がない
67:デフォルトの名無しさん
19/01/15 16:58:26.54 1CaYwh4e.net
サンプルコードがビルドできたからって何なんだ
そんなの目的にしても意味ない。必要な知識が吸収できればいいわけで。
サンプルコードをそのままビルドするアプローチじゃなく、
一旦空のプロジェクトを新規作成してそこに追加して動作確認するアプローチの方が
勉強になると思うけどなあ
68:デフォルトの名無しさん
19/01/15 17:03:39.16 1CaYwh4e.net
新規作成しただけの状態なら確実にビルドが通るわけで
どこまでサンプルコードに近づいたら
エラーが出るのか問題も切り分けやすい
こういうのはもうAndroid関係ないし向いてないからしね
69:デフォルトの名無しさん
19/01/15 17:21:56.05 3lh9jTue.net
Androidアプリは「初心者の人に書籍通じて独学で覚えさせるのめんどくさいプログラミング技術ランキング」のベスト3常連だからな
なにせファイル1個やコマンド1発で収まらない
70:デフォルトの名無しさん
19/01/15 18:24:55.36 yTRP/eqO.net
エラーの見方も分からないレベルでいきなりAndroid本は飛ばしすぎだな
71:デフォルトの名無しさん
19/01/15 23:41:09.53 620Eb35B.net
途中コメントアウトしてなんとか動いた
スマン、今日は時間切れ
最後、isEmpty()なんて使えないよ、と言われてたような・・・
続きはまた明日
72:デフォルトの名無しさん
19/01/16 11:02:30.64 aTgtPKRZ.net
>>65
ほんとこれ
入門者の立場に立って書いてないからそうなるんだよ
73:デフォルトの名無しさん
19/01/16 11:03:16.52 aTgtPKRZ.net
>>64 だった
ごめん
74:デフォルトの名無しさん
19/01/16 11:34:03.94 vTKVQdGX.net
馬鹿には無理
75:デフォルトの名無しさん
19/01/16 13:16:59.84 NBiSBr9E.net
入門者は10年ROMってろ
76:デフォルトの名無しさん
19/01/16 15:02:59.73 c12bWRnm.net
>>54:エラーであればどのような内容か
>>55:コンパイルエラーです
>>58 >>63:エラーメッセージ読め、貼れ
>>65:たくさんありすぎて貼れない
プログラミング言語より先に日本語と英語の勉強した方がいい
77:デフォルトの名無しさん
19/01/16 15:05:34.92 ECRqnYoc.net
_,,-'' ̄ ̄`-.、 / \
/ \ ,/ \
,/ \ / ― ― ヽ
/ ― ― ヽ lヽ - 、 ! , _ |
lヽ - 、 ! , _ | |r―-、_⊥ ,―'-、 |,-,
|r―-、_⊥ ,―'-、 |,-, |::::::::::::::::/ |ヽ:::::::::::::::|-|'イ!|
|::::::::::::::::/ |ヽ:::::::::::::::|-|'イ!| ト、__,,/: |: `、__,,/ ,|ソ/
ト、__,,/: |: `、__,,/ ,|ソ/ .| 、_ j| _,、 ,|-'
.| 、_ j| _,、 ,|-' | /lll||||||||||l`、 ,|
| /lll||||||||||l`、 ,| `i ,|||' ̄= ̄`|||、 / ト、
`i ,|||' ̄= ̄`|||、 / ト、 「|ヽ|ll||||||||||||||||| /i |::::\
「|ヽ|ll||||||||||||||||| /i |::::\ ::::::\`!!||||||||||||!!' |::::::::\
/:::::\`!!||||||||||||!!' |::::::::::::::::::::::`ー-、.._ i |::::::::::::::\
/::::::::::::::`ー-、.._ i |::::::::::/:::::::::::::::::::::::::::::`ー-、. |::::::::::
/:::::::::::::::::::::::::::::::::::`ー-、. |::::::::::
ロムッテロ兄弟
ハントシー・ロムッテロ ハンツキー・ロムッテロ
1952~ アメリカ 1955~ アメリカ
78:デフォルトの名無しさん
19/01/16 19:02:46.27 czS9PHe8.net
こりゃまた懐しいものを
79:デフォルトの名無しさん
19/01/16 22:02:17.64 l4CxponB.net
できたー!
エラーログは結局見なかった。
モマエらの煽りも十分ヒントなので自力でできた。
要はIDEの使い方がよくわかってなかったってことらしい。
アプリの開発は初体験だったので、IDEがこんなにモッサリしていて
ゆっくり打たないと反応しない、ということがわからなかった。
最初、赤字がエラーを起こしている場所すらもわからなかった。
本の通り入力されているのにエラーになるとか💩すぎる。
80:デフォルトの名無しさん
19/01/16 22:54:20.38 5qHX4ghP.net
お前が見栄張ってログ貼らないからだよ
81:デフォルトの名無しさん
19/01/16 23:11:21.71 s3+L+6VD.net
なんでエラー見ないんだよ…
見ましょ
82:デフォルトの名無しさん
19/01/17 00:03:32.50 gD7DqiQf.net
Android Studioは割と複雑なIDEだから馴れるまで大変かも、微バグも結構放置されてる
でもどんなときも根性があれば全て解決する
83:デフォルトの名無しさん
19/01/17 01:00:34.53 /w6CmWBz.net
Googleが開発環境作るのヘタクソなのはいつものこと
ベースのIntelliJ自体は優秀な子だから嫌いにならないで
84:デフォルトの名無しさん
19/01/17 01:08:32.19 F/bGJF7O.net
入門書のコードもちょっと辛い感じだが
kotlinスレで聞いてきたりレスの感じからすると記載を読み飛ばしてるだけな気がするな…
85:デフォルトの名無しさん
19/01/17 01:34:50.82 D8uuaLO+.net
エラーメッセージを読まないような奴が本の解説を読んでるはずがない
86:64
19/01/17 02:05:52.76 X/RlN8Mj.net
>>78
>できたー
できてない
>モマエらの煽り
いまは心底馬鹿にしている
結局原因は理解せず対処法を学ぶ気もなくて今後似たようなことがあって詰まっても本を罵るだけなのだろう
お前はなにか変わった?
87:デフォルトの名無しさん
19/01/17 07:00:04.64 FUK6mZ5G.net
>>できたー
>できてない
ワロタ
相手の態度が気に入らないのはわかるが。
88:デフォルトの名無しさん
19/01/17 08:54:40.63 T+GiVQOD.net
例えサンプルが間違っていても自分で間違いを見つけ修正するくらいの気概がないと、動きが速くカオスなAndroid開発環境に立ち向かうことはできないだろう
89:デフォルトの名無しさん
19/01/17 11:08:41.33 wwbjNcTV.net
そうはいうてもインストールが正しくやれたか、ライブラリは合っているかを確認したいんだから動くコードじゃないとアカンやろ
90:デフォルトの名無しさん
19/01/17 12:07:23.58 JNIrfwpM.net
エラーを見るのは基本中の基本だとこれだけ言われながら頑なにエラーを見ない理由が分からないw
それはそうと、Android StudioがもっさりするレベルのPCで開発するの辛そう
91:デフォルトの名無しさん
19/01/17 12:21:24.77 K+CX1G8n.net
君の所ではシャキシャキ動くの?
いいね。
92:デフォルトの名無しさん
19/01/17 12:29:42.70 JNIrfwpM.net
真面目なアドバイスだけど、アプリ開発というかプログラミングをするならそれなりのPCを用意した方がいいよ。
本格的に開発するなら各種ツールを同時に起動しながらやることになるから、IDE単体でもっさりするレベルのマシンだとかなり辛いと思う。
93:デフォルトの名無しさん
19/01/17 12:40:50.40 K+CX1G8n.net
ゲーミングPCみたいに開発用PC売ればいいのにな
94:デフォルトの名無しさん
19/01/17 13:35:52.11 h1O5LGNC.net
iMac Proやろ
95:デフォルトの名無しさん
19/01/17 14:23:55.46 JNIrfwpM.net
ゲーミングPCからグラボを省けばプログラミングに良いマシンになるだろう
要はCPUとメモリとSSDだし
96:デフォルトの名無しさん
19/01/17 15:50:04.22 UNKQSAY8.net
ビジネス用PCでよくね
97:デフォルトの名無しさん
19/01/17 16:11:06.65 8rj4oJ0j.net
スレリンク(notepc板)
98:デフォルトの名無しさん
19/01/17 16:50:50.76 JNIrfwpM.net
>>95
お前のIDうんこじゃん
99:デフォルトの名無しさん
19/01/17 16:58:20.51 K+CX1G8n.net
>>94
そんな感じのスペックのやつを自作するしかないのかな?
>>95
丁度いいのある?
100:デフォルトの名無しさん
19/01/17 18:38:16.95 BQPkrRK7.net
AVD使うならグラボはあった方がいい
ローエンドで十分だけど
101:デフォルトの名無しさん
19/01/17 21:05:29.75 9dtdj8/p.net
IDEまでは分かるけどスレタイから離れすぎw
102:デフォルトの名無しさん
19/01/18 10:55:00.39 biJOt7cE.net
初心者用の本ってマジでろくなのないな
自分が読んだ本だと言語の仕様解説して、次の章でいきなりじゃんけんアプリ作りましょうだもんな
文字出すだけとかもちょっと地道なサンプルこなしてからにしてくれよ
103:デフォルトの名無しさん
19/01/18 13:23:27.72 Gw7rawdB.net
そういう本を書いて売れるのなら書くけど
104:デフォルトの名無しさん
19/01/18 13:36:11.74 EPNqXegi.net
初心者はプログラミングすんな
105:デフォルトの名無しさん
19/01/18 15:38:04.17 dETdnGdx.net
>>101
君が書け。紙の本にする必要はない。AmazonでKindle用の電子書籍で出すなら多分すぐ出せる。
106:デフォルトの名無しさん
19/01/18 15:39:03.82 dETdnGdx.net
>>103
それでは誰も使わなくなって終わるではないかw
107:デフォルトの名無しさん
19/01/18 16:34:36.03 QNzHnga9.net
本を読んでからアプリを作るんじゃなくて、アプリを作ってから本を読むんだ
108:デフォルトの名無しさん
19/01/18 17:57:35.76 EPNqXegi.net
本を読んで勉強するという姿勢が気に入らない
お前の目的は言語学者になることか
アプリが作りたいならまず作れ
それで行き詰まったら初めて必要な知識を調べる
109:デフォルトの名無しさん
19/01/18 18:10:19.30 DtJxFJYk.net
URLリンク(www.atmarkit.co.jp)
この通り作ってもエラーが出るのだが
なんなん
110:デフォルトの名無しさん
19/01/18 19:01:23.89 Jv0pMDsL.net
>>108
だからエラーを貼れよ
111:デフォルトの名無しさん
19/01/18 19:10:06.53 Jv0pMDsL.net
あとAndroid Studio のことはこっちのスレ来い
Android Studio Part3
スレリンク(tech板)
112:デフォルトの名無しさん
19/01/18 19:18:36.09 9pECFNv0.net
>>108
飲み会ドタキャンされて暇だからエラーの内容を貼ったら教えてあげるかもしれない
とりあえず一年以上前の記事みたいだからバージョン違いの何かな気がするけど
113:デフォルトの名無しさん
19/01/18 20:40:32.07 EPNqXegi.net
Android Studio3.0とか原始時代のツールだろ
114:デフォルトの名無しさん
19/01/20 17:15:03.83 km2ubjIi.net
1ヶ月以上たってまだ100レス程度ってkotlinで開発してる人はんと少ないんだな
115:デフォルトの名無しさん
19/01/20 17:53:32.56 7J7VHbME.net
>>113
お前が書き込むんだよ
116:デフォルトの名無しさん
19/01/20 19:22:48.93 6E5SSl+w.net
仕方ないなあ。じゃあこのスレ向きの話題でもふるか。
flatter for xamarinだってよ
URLリンク(adtmag.com)
117:デフォルトの名無しさん
19/01/21 08:55:03.29 cyd5L15X.net
>>115
カオスだな。
118:デフォルトの名無しさん
19/01/21 13:17:33.75 jDpmEG8W.net
flutter for xamsrin for kotlin nativeが待たれる
119:デフォルトの名無しさん
19/01/22 02:09:57.73 gn5FLTFP.net
なにこれ。flutter sdkをc#に変換するのか。すげぇな。つか、xamarinの名前冠するなよ。負のイメージしかねぇ。
120:デフォルトの名無しさん
19/01/22 02:22:18.20 Ygwng9tV.net
ザマリンてなんか医薬品みたいだよね
「風邪にはザマリン!! お近くの薬局でお求めください!」みたいな
121:デフォルトの名無しさん
19/01/22 05:45:08.82 +WHDBYOc.net
ていうかふらったーの1番のネックはDart言語なのに、それを多言語に変換されてもって感じだな
方向が逆だ
122:デフォルトの名無しさん
19/01/22 08:19:51.51 gn5FLTFP.net
え?だから他言語のC#に変換してDartとおさらばできるってことだろ。
123:デフォルトの名無しさん
19/01/22 09:06:02.79 8X9EpfV1.net
Xamarin程の糞はない
124:デフォルトの名無しさん
19/01/22 12:58:57.64 oFmOrikq.net
ざまりんは座間市のマスコットキャラクターです
125:デフォルトの名無しさん
19/01/22 19:17:28.51 HZ2hjuw/.net
ざまりん!ことりん!天気予報~♪
126:デフォルトの名無しさん
19/01/22 23:00:57.36 vhFDea91.net
僕の名前はXamarin! 僕の名前はKotlin! 二人合わせて...?
127:デフォルトの名無しさん
19/01/23 04:35:21.49 VDPZgNNi.net
聳え立つ糞
128:デフォルトの名無しさん
19/01/23 11:21:53.63 KXFSPWv5.net
C#erだがXamarinはノーカンで
129:デフォルトの名無しさん
19/01/23 12:30:44.99 6pYQH9bm.net
kotlin界隈にもちょまどみたいなアイドル欲しいなぁ
130:デフォルトの名無しさん
19/01/23 12:46:10.71 s7nkbb3U.net
きも
131:デフォルトの名無しさん
19/01/23 16:31:27.63 rdYi3jIq.net
おまえがVtuberになってアイドルになればいいじゃないか
132:デフォルトの名無しさん
19/01/23 17:25:35.59 zR45o/Hn.net
koilin入門書には、作者が分かっていないのかjavaの文法が混じって分かりにくい
ごちゃ混ぜで混乱必至
結局kotlinlang.orgしか信用ならん
133:デフォルトの名無しさん
19/01/23 20:24:53.45 Uzogy9i5.net
Kotlin class destroyerって使ったことある人居る?
134:デフォルトの名無しさん
19/01/23 21:45:50.98 Pa8D4EMx.net
>>132
検索してフイタwww 日本語の読めるやつには居ないだろうなwwwww
135:デフォルトの名無しさん
19/01/24 02:16:31.75 HZcP4zux.net
Котлин
136:デフォルトの名無しさん
19/01/24 06:26:15.14 SamtYSKx.net
>>131
例えば?
137:デフォルトの名無しさん
19/01/24 07:53:39.37 nbtsb27b.net
これから本を出す人は、SwiftとKotlinを同時に学べるような本を書いてほしいな
138:デフォルトの名無しさん
19/01/24 09:17:38.10 fuJ4iKDY.net
>>136
なんで?
139:デフォルトの名無しさん
19/01/24 09:40:30.41 iE4PKA0k.net
SwiftとKotlinは書き方が似すぎてて紛らわしいから、
どちらかの書き方が染み付くまでは同時にやらないほうがいいと思う
140:デフォルトの名無しさん
19/01/25 00:52:03.47 oyKZWLKP.net
Go->Node(TypeScript)->Rust->Scala->Kotlin
去年の年末から色んな言語に入門してHelloCRUDしまくってたけど
やっと本命見つけたわ。これは流行るで。ほんま。
141:デフォルトの名無しさん
19/01/25 06:46:14.56 SWXByf/r.net
>>139
フレームワークはSpring? Ktor?
142:デフォルトの名無しさん
19/01/25 07:20:23.97 PIdTSIvJ.net
Sparkも良くできてるから選択肢に加えてあげて
日本だと空気だけど海外の事例だとめっちゃ使われてる
143:デフォルトの名無しさん
19/01/25 09:23:10.32 cY+a6SZr.net
Sparkは名前変えろ
Apache Sparkと紛らわしいから絶対に流行らん
144:デフォルトの名無しさん
19/01/25 09:40:00.17 84FUhWJo.net
ことりん☆
145:デフォルトの名無しさん
19/01/25 13:25:04.49 ra6+4Hwa.net
>>138
紛らわしいけど、両方同時に学べる人に書籍が必要とは思えない。
146:デフォルトの名無しさん
19/01/25 15:30:25.59 PIdTSIvJ.net
>>142
これ。まじでこれ。
ググラビリティ低すぎて辛い。
147:デフォルトの名無しさん
19/01/25 15:52:10.81 aoOWMbCl.net
ググラビリティwww
148:デフォルトの名無しさん
19/01/25 16:10:17.86 cY+a6SZr.net
ITにいて Apache Spark 知らないとかアホ丸出しだから作者が Spark なんて名前を付けている時点で不安になるのが当然で、普通は避ける
それなのに Spark 使ってる奴はそいつも Apache Spark を知らない可能性が高く、同様にアホ丸出し
149:デフォルトの名無しさん
19/01/25 16:59:39.24 2xvx7HDE.net
>>147
作者が知らないも何もApache Sparkの方が後発だし、その頃にはSpark Frameworkは今さら改名できないくらい広く使われてたぞ
150:デフォルトの名無しさん
19/01/25 18:04:32.01 fUiZiF+t.net
>>147はアホを丸出しにしてみたかったのかも知れない。
151:デフォルトの名無しさん
19/01/25 19:52:16.96 h/3l4eZA.net
君とSpark
152:デフォルトの名無しさん
19/01/25 20:15:44.23 PIdTSIvJ.net
>>147
これは恥ずかしい
153:デフォルトの名無しさん
19/01/25 21:28:25.32 NpmoGBI+.net
android studioで、それぞれ以下の行を追加
actibity_main.xml
android:id="@+id/back"
MainActivity.kt
import android.graphics.Color
import android.widget.LinearLayout
val background = findViewById<LinearLayout>(R.id.back) as LinearLayout
background.setBackgroundColor(Color.parseColor("#FF0000"))
で、画面が赤くなると思うんだけど、アプリが起動直後に停止してしまう。
background.setBackgroundColor(Color.parseColor("#FF0000"))
の行をコメントにすると普通に起動する
本当はラジオボタンで選んでバックグラウンドを変える処理だけど、抜き出してやってみてもうまくいかない
154:デフォルトの名無しさん
19/01/25 21:40:17.98 9WShTN4K.net
流行るわけないとか言ってるあたり、マジで最近出てきたフレームワークだと思ってたんだろうな
Javaのマイクロフレームワークとしてはほぼデファクトなのに
155:デフォルトの名無しさん
19/01/25 21:41:18.91 9WShTN4K.net
>>152
エラーメッセージに答えが書いてあると思うよ
156:デフォルトの名無しさん
19/01/25 21:58:54.35 NpmoGBI+.net
>154
コンパイルは普通に通り、ワーニングも出ない
ただ、アプリは起動直後に停止してしまう。
デバッグ用のスマホが悪いかと、別の機種つないでみても同じく起動直後に停止して
MyApplicationが停止しました
と表示される
157:デフォルトの名無しさん
19/01/25 22:30:34.06 T4sCfJsj.net
なんでAndroidスレで聞かないわけ?
エラーメッセージ読めないのと一緒なの?
158:デフォルトの名無しさん
19/01/25 22:30:36.78 pxW0IIRd.net
所謂おまじないはともかくとして
入門書や入門サイトが最初に教えるべきは println と throw RuntimeException() だと思う
最初に転び方だわ
159:デフォルトの名無しさん
19/01/25 22:48:55.25 NpmoGBI+.net
ありがとございます
すこしスレチみたいなので、こっちでもう少し調べてみます。
160:デフォルトの名無しさん
19/01/25 23:56:18.60 k0QCMDX+.net
>>158
ちょっと暇だから相手してやるよ
ほんとに LinearLayout 使ってる?最近の環境で新規アプリ作ったら ConstraintLayout だと思うんだけど
たぶんここが
val background = findViewById<LinearLayout>(R.id.back) as LinearLayout
こうだ
val backgroun
161:d = findViewById<ConstraintLayout>(R.id.back)
162:デフォルトの名無しさん
19/01/25 23:57:28.33 k0QCMDX+.net
ちょっと面白いと思ったのは、ConstraintLayout に対して
val background = findViewById<LinearLayout>(R.id.back) as LinearLayout
background.setBackgroundColor(Color.parseColor("#FF0000"))
これだと val background = ~の行で ClassCastException で落ちるのに、
background.setBackgroundColor をコメントアウトすると落ちずに普通に動いちゃうのね
これは background が使われないなら background へキャストして代入する処理自体を kotlin が無効化しちゃうのかな
163:デフォルトの名無しさん
19/01/27 18:18:09.78 jDwbvKDS.net
いろいろな意見を参考にやってみました
原因
コンパイルエラーは出なかったけどIDが変なところをさしていて、カラー情報を書き込んだ瞬間に落ちていました。
対処1
actibity_main.xmに
android:id="@+id/back"を消して
<LinearLayout xmlns:android="URLリンク(schemas.android.com)
android:id="@+id/back"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
</LinearLayout>
を追加
対処2
MainActivity.ktの
<LinearLayout>の代わりに
<android.support.constraint.ConstraintLayout>
2通りの方法でうまくいきました
import android.support.constraint.ConstraintLayout
をimportすると、
>159の<ConstraintLayout>だけでOKでした
ありがとうございました
164:デフォルトの名無しさん
19/01/27 19:32:56.92 dhHHmXdZ.net
>>161
>>154のエラー
165:メッセージ >>157のRuntimeException >>160のClassCastException これらはどれも実行時エラーのことで、それを表示する方法や読み解き方をググるなりした方が良いと思うよ 今後のためにね
166:デフォルトの名無しさん
19/01/27 21:32:10.99 jv36ci7O.net
>>140
Ktorやで
167:デフォルトの名無しさん
19/01/28 00:27:33.91 A5w6Cdea.net
圭太
168:デフォルトの名無しさん
19/01/28 09:34:18.83 j8L/fU4R.net
Ktorええよな、今作ってるAPIサーバーで使ってる。
Webアプリにはあんまり向かなそうだけど
169:デフォルトの名無しさん
19/01/28 10:43:40.13 c8FVptT0.net
幸太
170:デフォルトの名無しさん
19/01/28 10:51:26.03 qhu0cqfw.net
古都鈴
171:デフォルトの名無しさん
19/01/28 18:09:48.33 YkAtt80R.net
昔、古都ひかるってAV女優が好きだったの思い出した
172:デフォルトの名無しさん
19/01/28 18:25:17.41 ncjyAVYK.net
ググったけどお前微妙な趣味してるな
173:デフォルトの名無しさん
19/01/28 18:43:54.94 qhu0cqfw.net
>>168
ワイも好きでした
174:デフォルトの名無しさん
19/01/28 18:44:53.31 SEDlCRnu.net
>>165
Webアプリしようと思ってKtor勉強中なのだが、向いてないのか...
175:デフォルトの名無しさん
19/01/28 18:45:00.57 MtItNdsU.net
今から考えればそうだが
昔はあんなのでもレベル高かった気がする
あの頃のやつだと河井さくらとかいう人が文字通り面白かったし水野栞も良かった
今は顔面偏差値すごい底上げされてて嬉しい
176:デフォルトの名無しさん
19/01/28 18:54:36.48 qhu0cqfw.net
今でも通用すると思うで
177:デフォルトの名無しさん
19/01/28 19:24:55.14 j8L/fU4R.net
>>171
Ktorでももちろん作れるけど、ログイン前提のWebアプリを作るなら自分で作らなくちゃいけない部品が多い。
大人しくSpring使っておけばそこらへんは全部用意されてる。
178:デフォルトの名無しさん
19/01/28 19:28:08.60 ncjyAVYK.net
>>171
Ktorはいわゆるマイクロフレームワークに分類されるフレームワークだから、ガチガチのWebアプリを作るのはめんどいよ
まあ認証やらセッション管理やらDBやらのことだから最初に一度作ってしまえば後は別に面倒なことはないけど
179:デフォルトの名無しさん
19/01/29 08:13:36.09 Yq72SlCs.net
>>165
いいよね。SpringBootと棲み分けできそうやし。
ところでどんな構成(アーキテクチャ)で使ってる?
ワイはもうKtorならRepository無いほうがええような気がしてきてるんやが。
180:デフォルトの名無しさん
19/01/29 08:36:23.24 Yq72SlCs.net
URLリンク(ideone.com)
ExposedではUserTable2に便利メソッドが生えるのでRepository分けても委譲とentity変換ばっかりになりそうだったから
それならModelクラスと同じ場所に置いて、DB変更時にミスりにくい方がいいかと思った。
こんな構成で作ってみてるんだけど、どう思う?
181:デフォルトの名無しさん
19/01/29 12:07:29.18 Ghu5z8kR.net
>>177
その割り切った作りはいいと思う。特にチームが大きく無いならメリットの方が多いんじゃないかな。
俺はAPIサーバーと連動するプログラムも同時開発してて、共有できるものは共有してさせるためにクリーンアーキテクチャにしてるからrepositoryも含めてクラスはやたら多くなってるけども。
182:デフォルトの名無しさん
19/01/29 23:38:56.61 rUlqj1XI.net
>177
Ktorみていて、データベース接続部分がないような気がしていたけど、やっぱりExposedを使うのか.
183:デフォルトの名無しさん
19/01/30 08:07:46.80 5baYxL1g.net
>>178
そしたらちょっと作りきってみるわ。ありがと。
>>179
Kotlin製で統一しようと思ったらそうなるね。
184:デフォルトの名無しさん
19/01/30 17:18:23.70 JsLx868V.net
>>179
ExposedでもMyBatisでもなんでもお好きなものをお使い下さいってスタンスだな
めんどいから標準で何か入れてくれるような仕組みがあれば楽なんだけども
185:デフォルトの名無しさん
19/02/01 00:51:36.05 HFNNmxMu.net
>>145
ググラビティすき
186:デフォルトの名無しさん
19/02/01 06:19:43.90 oyUXC//m.net
ぐぐらびりてぃって日本だけかと思ってたら海外でも普通に使われてるのな
google(検索する)って動詞とセットで辞書に載っててわろたわw
187:デフォルトの名無しさん
19/02/01 12:52:22.08 5o/o/nGk.net
動詞か。とすると過去形が googled か。
188:デフォルトの名無しさん
19/02/01 13:06:37.22 ad6+KOec.net
むしろ日本よりも英語圏での方がよく使われてる気がする
海外のフォーラムとかで普通に見る
189:デフォルトの名無しさん
19/02/01 18:28:47.94 Oa2LgpWH.net
んじゃヤフーでググれもあながち間違いじゃない?
ソニーのファミコン的な
190:デフォルトの名無しさん
19/02/01 21:35:19.79 5o/o/nGk.net
Infoseek と Exite もよろしく
191:デフォルトの名無しさん
19/02/02 07:20:45.10 vIqKCsXY.net
ビンガビリティ
強そう
192:デフォルトの名無しさん
19/02/02 12:34:49.40 ecMf0cvm.net
Anko使ってる?
193:デフォルトの名無しさん
19/02/02 20:52:18.84 rNm5OL0i.net
Unko?
194:デフォルトの名無しさん
19/02/02 21:18:44.79 60g8Sasz.net
大体レイアウトとロジックが混在してるのは良くないねってことで
レイアウトはxnlファイルに分離するようにしたんだと思うんだけど
何でAnkoってまたレイアウトとロジックを混在させるようなことしてんの
時代に逆行してるだけでは
195:デフォルトの名無しさん
19/02/02 21:38:35.91 mZCa7M9L.net
>>191
アーキテクチャ上重要なのはビューとロジックの分離
一方で、レイアウトとロジックの分離というのはビューに閉じた話であり、
マークアップエンジニア(笑)とフロントエンドエンジニア(笑)の分業をしやすくするだけのものでしかない
フロントエンドエンジニアが十分有能でマークアップエンジニア(笑)の仕事も自分でこなせるなら分ける必要は全く無い
196:デフォルトの名無しさん
19/02/02 21:43:01.16 hUtwc62g.net
流行りのキーワード並べてドヤ顔
197:デフォルトの名無しさん
19/02/03 07:45:41.73 gLy6KBGU.net
レイアウトの中にロジックがダラダラ書かれたら見通し悪くてUnkoだけどそこは経験とコード規約とレビューで制御できる
適正なメソッド分割は主に人間の仕事であってライブラリーの責務ではない
XMLの欠点とDSLの利点はGitHubのWikiで説明されてる
設計開発にイチイチXML使うのは微妙じゃね?DSLとかいいよな!ってのは時流でもある
だから少なくとも時代に逆行しているだけということはない
198:デフォルトの名無しさん
19/02/03 10:09:31.17 nQr97LtT.net
いーや、Ankoは糞
199:デフォルトの名無しさん
19/02/03 12:29:21.29 Wt38prvY.net
anko味のunko
200:デフォルトの名無しさん
19/02/03 12:36:56.63 FHrrfvzD.net
unko味のankoとanko味のunko
201:デフォルトの名無しさん
19/02/03 15:59:31.11 sWvJHh2u.net
あんこ餅食いたくなってきたからスーパー行ってくる
202:デフォルトの名無しさん
19/02/03 18:35:49.59 FHrrfvzD.net
Anko程の糞はない
203:デフォルトの名無しさん
19/02/03 21:27:31.59 WjHZzJrh.net
気になってるんやがkotlin nativeが完成したらgoは駆逐できるんやろか。
それともシングルバイナリやら並列化でgoのメリット残るんやろか。
204:デフォルトの名無しさん
19/02/03 21:58:54.28 OYz8YI9S.net
>>200
現実的に考えると、全く話題にもならずにひっそり消える可能性が一番高いよ
kotlin nativeが
205:デフォルトの名無しさん
19/02/03 22:10:09.65 WjHZzJrh.net
マジかあ。Scala状態は残念やのー。
俺にキラーアプリ作れるような力があればなぁ。。
206:デフォルトの名無しさん
19/02/03 22:19:22.36 WjHZzJrh.net
githubでkotlin-native使ってるプロジェクト探してみたけど、確かにあんまり盛り上がってる感じではないね。
今作ってるクソアプリが一段落ついたら何か作ってみよう。
207:デフォルトの名無しさん
19/02/03 22:43:39.24 0oNu2+nX.net
アプリよりFWだよな
208:デフォルトの名無しさん
19/02/03 22:49:54.08 OYz8YI9S.net
「オーケーグーグル、エロくて楽しいアプリ作って」でエロくて楽しいkotlin nativeアプリのソースが生成されるAIを作れば流行る
209:デフォルトの名無しさん
19/02/03 23:03:35.29 hpvKsGCb.net
Kotlin/Native自体は現在進行中のSubstrate VMが出来上がるとやや辛い立ち位置になる
でもKotlin全体としては間接的にエコシステムが大きく強化されるし
Kotlin/Nativeから「Kotlin with Substrate VM」への移行は
性質的に割と容易なものになる期待もあるから使っても大丈夫だと思う
補足だけど Substrate VM はOracle主導のオープンソースプロジェクトGraalの一部で
JavaバイトコードをAOTするもの、
これによりjavaパッケージが使えるKotlin/JVMのままネイティブ化出来るようになる
Linux向けは出来ていてWindowsやiOSなどはまだこれから
210:デフォルトの名無しさん
19/02/03 23:43:07.23 hpvKsGCb.net
ちなみにAndroid Runtimeも同様にAOTしている
こっちはJDKをGoogleが好きなように取捨選択してるのでJava互換性テストは通らない
Android Runtimeの技術を利用してJava(Kotlin/JVM含む)からiOS用のネイティブを生成してるのが
RoboVMやMulti-OS Engine
Substrate VMはこれら(Kotlin/Native含む)に対して
後追いだけどOpenJDKフルサポートのAOT、ということになる
出来上がるまでまだかなりの時間が掛かりそうだけど
211:デフォルトの名無しさん
19/02/04 00:38:33.17 udiwpstp.net
結局Java版Xamarinを作ろうとしてるだけだな
目的不在で技術だけが独り歩きしてる感すごい
212:デフォルトの名無しさん
19/02/04 06:16:54.78 jDY9Ysuj.net
>>200
無理だね。というかそもそもGoの得意分野とKotlin(native)の得意分野がかぶってないから現時点であまり競合してない
213:デフォルトの名無しさん
19/02/04 08:21:30.46 +iZnVKUh.net
>>209
そうなんか。kotlin nativeの得意分野って何なんや?
214:デフォルトの名無しさん
19/02/04 10:20:12.21 RwYNgFWa.net
>>208
Graalの主目的はHotSpotのJITコンパイラ(C2)の刷新
20年以上前に設計され、修正が積み上げられたC++コードなので
保守し辛く新技術の導入も困難とのこと
JITコンパイラ(Graal本体)はインタプリタやAOTとも関連が深く、
それらも考慮したエコシステムとしてサブプロジェクトを内包してる
Truffle / Sulong / Substrate VM
215:デフォルトの名無しさん
19/02/04 10:38:08.20 RwYNgFWa.net
>>210
Kotlinの対応プラットフォームを広げるものだから
強いて言うならKotlin/JVMと同じく通常アプリでは
Goは並列処理や低レイテンシGC(リアルタイム用途)など
システム寄りが得意
216:デフォルトの名無しさん
19/02/04 12:40:41.74 Mgc+6WQD.net
Kotlin nativeは悪く言えば現状では得意分野などはっきり言って存在しないし、良く言えばこれから何に使ってもいいとも言える
Goの代わりに使うことももちろん可能
217:デフォルトの名無しさん
19/02/04 20:20:46.75 nyJZm1CJ.net
Ktor以上に急上昇してるJavalinってFWお前ら使ってる?
218:デフォルトの名無しさん
19/02/04 22:34:50.26 QEUSQVw8.net
使ってないし知らない
219:デフォルトの名無しさん
19/02/05 06:33:03.96 ZLbI9faD.net
>>214
使ったら竜騎士とかにクラスチェンジできるかな
220:デフォルトの名無しさん
19/02/05 06:59:09.94 +mMHH6yh.net
マジで聞いたことすらなかった
悪くなさそうだけど、英語も含めて情報が少なすぎて趣味以外には使えないかな
221:デフォルトの名無しさん
19/02/05 07:02:18.31 +mMHH6yh.net
軽く調べた感じだからよく分かってないんだけど、これ例えばSparkと比べて何が良いの?
222:デフォルトの名無しさん
19/02/05 09:02:22.82 855O/xU5.net
Kotlin を今のプロジェクトに使いたいけど、eclipse とか言う糞IDE使ってて相性悪すぎて笑えない
SWT とか JFace とかでUI作ってるから、eclipse を外すのは無理だし
223:デフォルトの名無しさん
19/02/05 09:40:26.01 NCwCR2JI.net
ググると槍投げ画像が沢山出てくるな・・・
224:デフォルトの名無しさん
19/02/05 10:08:44.38 Fs+UH34C.net
>>218
URLリンク(javalin.io)
225:デフォルトの名無しさん
19/02/05 10:17:58.97 LEHFEUGy.net
>>216
宇宙刑事っぽさもあるし、使うと風呂釜が綺麗になって身体が芯からあたたまりそうな感じもする
226:デフォルトの名無しさん
19/02/05 10:32:30.10 +mMHH6yh.net
>>219
UI作るときとことりん書く時でIDE使い分ければいいんでないの?
227:デフォルトの名無しさん
19/02/05 10:32:56.86 +mMHH6yh.net
>>221
すまん、それ気付かなかった。
後で見てみるわ
228:デフォルトの名無しさん
19/02/05 11:21:10.88 jB1piIf6.net
>>216
ガリで
229:デフォルトの名無しさん
19/02/05 11:27:24.21 NCwCR2JI.net
宇宙刑事 Javalin
230:デフォルトの名無しさん
19/02/05 12:13:00.65 nvQ1xa5u.net
やっぱJavanだろ
231:デフォルトの名無しさん
19/02/05 12:24:17.71 ryDpasJz.net
Javalinの半分はやさしさで出来ています。
232:デフォルトの名無しさん
19/02/05 12:42:55.22 NCwCR2JI.net
リン付ければなんでも可愛らしくなると思いやがってそうはいかねえぞべらんめえ ←江戸っ子
233:デフォルトの名無しさん
19/02/05 15:01:18.53 PldLlsCY.net
> ←江戸っ子
ウザっ
234:デフォルトの名無しさん
19/02/05 15:25:14.63 NCwCR2JI.net
うざりん
235:デフォルトの名無しさん
19/02/06 19:35:52.56 59jOjkSQ.net
上でシステム系にはGoみたいに書かれてるんだけど、kotlin/nativeはGoより遅いのかな。
現状ではそうなのかも知れないけど、最終的にはGoと同等の速度が出せるポテンシャル(仕組み)だと
思ってるんだけどそうでもないの?
236:デフォルトの名無しさん
19/02/06 19:49:42.95 nvZvChxt.net
goに勝つのは流石に無理じゃ?
237:デフォルトの名無しさん
19/02/06 20:35:25.96 gjOdQxAx.net
Goに比べたら遥かに複雑怪奇な言語だから最適化は不利だろう
JVMの挙動をエミュレーションするための無駄な処理は少なからず必要だろうし
238:デフォルトの名無しさん
19/02/07 00:37:31.07 UFwIxg8c.net
1 c
2 go
5 jvm
10 script系
3くらいいける?
239:デフォルトの名無しさん
19/02/07 05:59:54.51 Ftq4Fy0N.net
>>232
構造的に無理
Goは構造をシンプルに保って高速軽量を維持するために言語仕様を必要最低限にしてるから、
書く人間の使いやすさを追求してるこちょりんとは根本的に目指してるものからして違う
240:デフォルトの名無しさん
19/02/07 07:33:55.52 ygKhuk/7.net
>>235
いけると思う
JIT後はJVMが1~2だけど
241:デフォルトの名無しさん
19/02/07 08:43:07.10 qMU5zT+q.net
なんでRustはあんなに速いん?言語の抽象度は同じくらいやろ?
242:デフォルトの名無しさん
19/02/07 10:01:05.59 ygKhuk/7.net
>>238
根幹の言語機能の所有権とライフタイムにより
C++でのムーブセマンティクスやRAII
243:みたいなのをより高度にコンパイラが認識出来るので 速度(効率)を保ったまま安全性を高められてる
244:デフォルトの名無しさん
19/02/07 10:55:21.09 esduY2Xd.net
Goはフットプリントも小さいからな。
C++だと、iostreamを静的リンクしただけでもそこそこ大きくなるのに。
245:デフォルトの名無しさん
19/02/07 12:43:04.54 nkNDSe3E.net
上で1..10の速さ書いたんやけどあれは実測じゃなくて速さランクのイメージや。
go<kotlin native<<jvm<<壁<<script言語
こうなるなら納得なんやけど、現実には
kotlin native ≒ jvmなの?
最適化されたらgoに迫ると思い込んでるんやけどそんな甘くないんかな。
246:デフォルトの名無しさん
19/02/07 13:44:29.30 Ftq4Fy0N.net
最適化できたらそらそうだけど、その最適化がどこまで出来るかどうかはお天道様にしか分からない
247:デフォルトの名無しさん
19/02/07 14:46:10.65 nkNDSe3E.net
それもそうやね。大人しく半年か1年くらい待ってみるわ
248:デフォルトの名無しさん
19/02/07 14:47:12.25 ygKhuk/7.net
コンパイラの頑張り次第で Go ≒ Kotlin/Native まで行ける可能性はある
ベンチマークでは C ≒ Rust << Go ≒ JVM
Rust vs Go URLリンク(benchmarksgame-team.pages.debian.net)
Go vs Java URLリンク(benchmarksgame-team.pages.debian.net)
しかしGCの性質の違い、JVM起動時間、JIT、並列処理サポートなどにより
各ユースケースに対する適性は速度だけでは決まらない
249:デフォルトの名無しさん
19/02/08 16:17:29.13 nPWMA0BU.net
3桁ごとにカンマ打つには、
val str= "123456"
println( str.format("%,d"))
想定では、123,456のはずが123456になる
使い方間違ってるかな?
250:デフォルトの名無しさん
19/02/08 17:15:55.53 3DPCoowD.net
逆じゃね?
251:デフォルトの名無しさん
19/02/08 18:09:56.46 nPWMA0BU.net
逆+Intでないとダメみたい
BigDecimal放り込んだら勝手に12,345.6789みたいになればと思ったんだけど、自分で作るの面倒で信用ならん
252:デフォルトの名無しさん
19/02/08 18:45:11.42 MkVUfclC.net
jvmならNumberFormatでいいんじゃないの
import java.math.BigDecimal
import java.text.NumberFormat
val BigDecimal.fmtStr: String
get() = NumberFormat.getNumberInstance().format(this)
fun main(args: Array<String>) {
val a = BigDecimal(12345.6789)
println("${a.fmtStr}")
}
253:デフォルトの名無しさん
19/02/08 19:35:10.36 MkVUfclC.net
ごめんよく見たら丸められてたから訂正
URLリンク(ideone.com)
254:デフォルトの名無しさん
19/02/08 19:59:36.92 nPWMA0BU.net
>249
"."探して、整数と小数点以下に分けて整数部分にカンマ打ってから合体させようとしこしこ作ってたら別のアイデア出てた
ありがと
255:デフォルトの名無しさん
19/02/09 06:09:56.82 6/bHpQ6m.net
locale によってはカンマが3桁区切りではないかも知れないし記号がカンマではないかも知れないので
こうやって自分でやっちゃった方が良いのでは?
println(java.text.DecimalFormat("#,##0.000").format(java.math.BigDecimal("1234567890.1235"))) // 1,234,567,890.124
256:デフォルトの名無しさん
19/02/09 07:35:37.20 fJwH+mSX.net
>>251
ロケールに従わず常にカンマにしたいという意図ならそれだとそぐわないと思う
DecimalFormatに与えたカンマはカンマという文字ではなくグループ区切り子なのでロケールに応じた文字で出力されるよ
257:デフォルトの名無しさん
19/02/10 17:34:05.13 BbTEeZaP.net
日本, アメリカ, イギリス 他
1 = 1.000 < 10 < 1,000 = 1000
ドイツ, イタリア 他
1 = 1,000 < 10 < 1.000 = 1000
ロシア, フランス 他
1 = 1,000 < 10 < 1 000 = 1000
オーストラリア, カナダ 他
1 = 1.000 < 10 < 1 000 = 1000
国際単位系(SI)
1 = 1,000 = 1.000 < 10 < 1 000 = 1000
空白を小数区切りに使う国が無いことと、ポイントとカンマの各国のばらつきから
読み取り間違いを避けるための妥協案のようなもの
258:デフォルトの名無しさん
19/02/10 17:41:28.40 BbTEeZaP.net
おまけ
Ruby, Java, Kotlin 他
1 = 1.000 < 10 < 1_000 = 1000
C++
1 = 1.000 < 10 < 1'000 = 1000
アンダースコアをユーザー定義リテラル用に使っていたため
259:デフォルトの名無しさん
19/02/10 18:10:30.74 6jFJUgix.net
そうか。じゃあグループセパレータを自分でカンマにセットしとかないと確実にカンマにはならないってことだな。
260:デフォルトの名無しさん
19/02/12 05:43:38.35 xDY2FToe.net
Java全然書いたことないんだけどJavaのこと調べてたらこの言語に辿り着いた
Android公式言語とのことだけど、Androidアプリ開発以外の用途でJavaでやることもKotlinで出来るの?
もうJavaじゃなくてKotlin学んだほうがいい?
PythonとCしか書けない
261:デフォルトの名無しさん
19/02/12 05:56:17.28 SvKCMiwA.net
おわこん
262:デフォルトの名無しさん
19/02/12 06:15:00.09 PanSk5rI.net
>>256
> JavaでやることもKotlinで出来るの?
できる。
> もうJavaじゃなくてKotlin学んだほうがいい?
JavaをやってからKotlinを学んだほうがいいけど、PythonとCができるなら、Kotlinから始めるのもありかも。
263:デフォルトの名無しさん
19/02/12 08:01:07.40 zazJl4ej.net
>>256
APIリファレンス読むためにJavaのメソッド定義の構文を知っておくくらいで
Kotlinをメインに学んで良いと思うよ
成果物はJavaクラスファイル(※)なので出来ることは同じ
やろうと思えば1プロジェクトで混在しても普通にお互い呼べる
※Kotlin/JS, Kotin/Nativeとかの別形式もある
264:デフォルトの名無しさん
19/02/12 11:22:53.23 8lolhehX.net
Scalaってどこいったん?
265:デフォルトの名無しさん
19/02/12 14:31:00.63 8DpMAebM.net
Scalaは衰退しました
266:デフォルトの名無しさん
19/02/12 15:06:09.44 ncKC6kPX.net
使われてるところでは安定して使われてるみたい
拡大は止まったと思うけど
267:デフォルトの名無しさん
19/02/12 20:08:57.00 hkCwi0n8.net
scala組がkotlinに合流してくれたら覇権言語狙えるんやないか。
ということは、kotlinに必要なのはお洒落感?
268:デフォルトの名無しさん
19/02/12 20:28:23.96 VerJGrBE.net
Scalaやってた意識高い系はみんなとっくにRustへ移行した
269:デフォルトの名無しさん
19/02/12 21:03:35.46 pT/fbk4d.net
>>256
それをJavaで作る必要があって、Javaで作ることを誰かに強制されているなら、それはJavaで作る
それをJavaで作る必要があって、Javaで作ることを誰にも強制されてないなら、それはKotlinで作る
それをJavaで作る必要がないなら、JavaでもKotlinでも作らない。他の言語を使う。めんどくさいじゃん
270:デフォルトの名無しさん
19/02/13 09:04:09.69 KRdNZL9E.net
ちょっと前はScala民がやたらKotlinを叩いてたけど、それももう見なくなったな
271:デフォルトの名無しさん
19/02/13 13:18:45.36 ikkFeMPB.net
現在はKotlin教とGo教の戦い?
272:デフォルトの名無しさん
19/02/13 14:52:01.31 e0d6KWci.net
言語に自己肯定感を求める人は無難無個性言語Kotlinや低脳言語Goでは欲求が満たされないことを知りRustへ行った
273:デフォルトの名無しさん
19/02/13 18:00:16.64 41RZIXro.net
>>267
両方とも同時期に流行り始めたけど、用途的にあんまり競合してない希ガス
274:デフォルトの名無しさん
19/02/13 19:36:21.84 n4QfG8LN.net
おれもどうせならオシャレな言語がいいんだがスマホのアプリ作りたいならkotlinしかないよね?
275:デフォルトの名無しさん
19/02/13 20:05:24.56 o4GE+skC.net
つDart
276:デフォルトの名無しさん
19/02/13 20:07:39.49 kPXKdc0M.net
dartがオシャレ…?
277:デフォルトの名無しさん
19/02/13 20:43:21.05 KRdNZL9E.net
flutter普及への最大の障害がDartだよな
278:デフォルトの名無しさん
19/02/13 22:02:27.55 O2gl0nE8.net
>>270
あなたの言うスマホアプリがゲームだけであるなら、Unityを使うことができる
これはWindowsマシンでAndroidゲームもiPhoneゲームも作ることができる(iPhoneの実機はあったほうがいいけど)
あなたの言うスマホアプリがiPhoneアプリであるなら開発マシンはMacでiPhoneは必須、個人なら言語は公式のSwift(就職する気なら今からObjective-Cに手を出して時間不足で爆死しよう)
Windowsマシンでも作成だけはできるがユーザーの「よくわからないけど動きません」に対して「よくわからないので直せません」と答えるしかなくなる(所詮エミュ)
あなたの言うスマホアプリがAndroidアプリである場合のみ、Windows(別にLinuxでもMacでもいいけど)でKotlinを使うことで作ることができる
ゲームを作ることももちろんできるが、基本的に全部自力での実装になるので序盤から山が高いし若干面倒くさい(後々勉強にはなるが)
手間と面倒だけ考えるならUnityとC#でやったほうがサンプルも解説も書籍もライブラリも山ほどあるし楽は楽、詰まってもだいたい先人が解いてるのでイージー。タイムイズマネー
もちろん他の言語で作ることもできて、たとえばもしあなたにC++の知識があるならC++でゴリゴリ作ることもできるんだけど、そんな人はこんなこと聞かないよね
えっXamarin?ごめーん忘れてた。「もしあなたがいっぱしのWindowsアプリケーション開発者であるなら」その知識とXamarinとC#と.NETを使うことでAndroid/iPhoneアプリ開発ができるよ
279:デフォルトの名無しさん
19/02/13 23:07:05.67 eA/7rWxO.net
>>268
それぞれちょっとずつカジってみたんだけどScalaの人がRustでファイナルアンサーするとは思えんかった。
RustはWebやるにはキツかったからまだどっかで彷徨ってるのかも。
>>269
現在のGoの用途→Webサーバ、Nativeアプリ
JetBrainsが思惑ってるKotlin, Kotlin/Nativeの用途→ Webサーバ, Nativeアプリ、というか何だか色々。
うまく行けばこれから競合していくんかな。
280:デフォルトの名無しさん
19/02/14 06:44:05.14 l2sDxPpK.net
>>275
Goもこちょりんもどちらも使うけど、一口にWEBサーバーと言っても得意なジャンルが違うな、少なくとも現時点では。
今後GoにSpringみたいなフルスタックのフレームワークが出てきたら思いっきり競合するかもね。
281:デフォルトの名無しさん
19/02/14 09:29:59.23 9tQDIG7c.net
合体させて Gotlin
282:デフォルトの名無しさん
19/02/14 11:59:45.42 PQjGjDTM.net
実際、Goの運用性とKotlinの生産性が合わさればわりと最強だと思う
Kotlin nativeみたいにKotlinのエコシステムを再現する方向だとどうしてもJVMをエミュレーションするような感じになって歪みが出る
逆にGoの文法をKotlinに寄せるほうが筋がいい
283:デフォルトの名無しさん
19/02/14 13:00:16.45 DBAMfZpK.net
歪みってどういうの?
284:デフォルトの名無しさん
19/02/14 15:39:16.51 cVDEqZjL.net
>>279
逆に聞くが、仮に完全にゼロベースで Kotlin native を開発してたとして、今と同じ言語仕様になったと思う?
特定の処理系を前提にして作られて普及した言語が他へ移植されて成功した例はない
285:デフォルトの名無しさん
19/02/14 17:06:41.26 DBAMfZpK.net
具体的な支障は無いってことでいいの?
286:デフォルトの名無しさん
19/02/14 19:02:02.86 HgCh9LDM.net
横からだけどjvmの負の特性も引き継ぎやすいってことかと思った。
起動が遅いとか、メモリ食うとか。
287:デフォルトの名無しさん
19/02/14 21:20:40.39 FnxMJF+D.net
起動が遅い事は遅いが昔からすれば今時のPCは速いね。
Windows95や98の頃なんかどうしてくれようというほど遅かったからなあ。
昔はみんな忍耐力強かったよなあ。
288:デフォルトの名無しさん
19/02/15 05:29:24.84 Ytmv+Yd8.net
>>280
確かにJVMのジェネリクス型消去がなかったら、reifiedみたいな複雑怪奇な仕様はなかったろうな。
移植については大抵は非公式移植事例だから、楽観はできないけど、まだ決めつけるには速いかと。
Scala.NET...うっ、頭が...
289:デフォルトの名無しさん
19/02/15 08:15:53.64 EWf/hEPb.net
新しいところでいうと、inline classなんか普通にユーザー定義の値型があれば全く必要ないな
unsigned integerもだいぶ無理矢理感が酷い
Kotlin native特有の話だと、C interopのための構造体のマッピングとか超無理矢理で最高にエイリアン感ある
290:デフォルトの名無しさん
19/02/15 09:58:26.61 KLsspNaS.net
iPhoneにおけるSwiftの立ち位置=AndroidにおけるKotlinの立ち位置
291:デフォルトの名無しさん
19/02/15 10:48:24.63 szDoWtiX.net
あ、はい
292:デフォルトの名無しさん
19/02/15 10:54:34.88 tar5L0r6.net
inline class = ユーザー定義の値型 = C#のstruct
そして最適化が十分ならそれらが必要無いことをRustとGoが証明してる
ヒープかスタックかは自動で判断される
293:デフォルトの名無しさん
19/02/15 10:56:38.52 PR4djPv7.net
特定のVM前提で設計されて他へ移植されて成功した言語の例としてはAndroidのJava/KotlinやUnityのC#、Node.jsのJSあたりが該当すると言えなくもないけど、
それらは言語の移植ではなくVMごと移植だからなあ
基本的にVM言語の他への移植は成功しないよ
294:デフォルトの名無しさん
19/02/15 11:07:58.47 tar5L0r6.net
AndroidやC#のいくつかのターゲットはAOTで
それらも「VMごと」に含むなら
LLVMを使うC++(Clang)も同じ扱いになる
295:デフォルトの名無しさん
19/02/15 15:42:23.69 FI28dGgE.net
最近、kotlin触ってるけど、C#より学習コストが高いです
それで、C#erがkotlinに切り替える際に、意識すべき点って何かありますか?
296:デフォルトの名無しさん
19/02/15 16:15:05.26 PR4djPv7.net
>>291
Javaの制限を理解すること
JVMは.NETのCLRに比べて機能的にはずっとショボくて、その制限に由来する奇妙な仕様がKotlinには数多く存在する
Javaに慣れてないとそのあたりは直感的に理解しづらい
297:デフォルトの名無しさん
19/02/15 17:24:02.62 Hx3jejna.net
>>292さんの言ってる「Javaの制限」て例えばどんなこと?
298:デフォルトの名無しさん
19/02/15 17:29:59.00 tar5L0r6.net
>>291
プログラム言語全般に言えることだけど
各構文を概要程度でも良いので、まずは一通り知ること
C#知ってて引っ掛かりそうな箇所として思いついたのは
・最後のパラメータがラムダの場合は丸括弧の後に書ける
他に引数が無い場合は丸括弧も省略出来る
(GroovyやSwiftのTrailing Closureと同じ)
・レシーバ付きラムダ
・inlineラムダ
・returnはfunから抜けるもので、ラムダから抜けるものではない
・IterableとSequenceは遅延評価
・コンパイルでジェネリクス情報は消える
・suspendは同期(await)が基本動作
299:デフォルトの名無しさん
19/02/15 17:31:30.02 tar5L0r6.net
>>294脱字
× ・IterableとSequenceは遅延評価
〇 ・Iterableと違ってSequenceは遅延評価
300:デフォルトの名無しさん
19/02/15 22:07:22.01 KHCIiBIM.net
kotlin勉強中なんだけど、結局のところjetbrainsがscala推さずにkotlin出したのは何でなの?
商業的に旨みがあるから?それともbetter javaとしてのscalaに見切りをつけたから?それとも?
301:デフォルトの名無しさん
19/02/15 22:33:17.97 tar5L0r6.net
コンセプトの違い
302:デフォルトの名無しさん
19/02/15 23:10:54.49 9S5XTVoX.net
>>296
自分でScalaやってみればすぐにわかるよ
まともな感性があれば、あんなものが普及するわけがないことは明らかだった
JetBrainsもIDEを作る会社として自由にできる言語が一つは欲しかったというのはもちろんあっただろうけどね
303:デフォルトの名無しさん
19/02/15 23:25:58.35 KHCIiBIM.net
>>296
なるほど。Scalaのこれ以上の普及は難しいという判断があった(だろう)ってことなら納得。
304:デフォルトの名無しさん
19/02/15 23:41:27.98 KHCIiBIM.net
まちがえた。上は >>298
雑念を捨ててkotlin邁進してきます
305:デフォルトの名無しさん
19/02/16 15:17:06.30 lTjIe/CZ.net
Scalaは言語マニアのオナニー言語だよなあ
306:デフォルトの名無しさん
19/02/16 17:00:29.98 odkD9xpX.net
なんだかんだでscalaは採用企業多いけどね
kotlinもtwitterとかpaypalみたいな大手で使ってくれると宣伝になるんだけど
307:デフォルトの名無しさん
19/02/16 17:31:16.36 W7DuQqzW.net
日本のYahooがKotlin採用したくらいではさざなみさえ立たないか
308:デフォルトの名無しさん
19/02/17 08:06:13.22 8BWCGdz7.net
Scalaの方が出たのが早かったし意識高い系(笑)が挙って使ったから
でもそれを維持出来る新人たちが居ないのが現状
Scalaは端的に複雑で難解な部分が多い
2018年後半以降Scalaの記事殆ど見かけないやろ?
コップ本(笑)
309:デフォルトの名無しさん
19/02/17 11:12:07.88 IdBTBZJc.net
Androidの公式言語がScalaになる世界線もあり得たと思うけど、そうならなかったってことはつまりそういうこと
310:デフォルトの名無しさん
19/02/17 11:17:52.27 IdBTBZJc.net
一年くらいScalaで仕事してたしまあ慣れればどうってことはないと思うけど、ScalaとKotlinで選べるとしたらよほどの変人以外はKotlin選ぶと思うわw
311:デフォルトの名無しさん
19/02/17 11:30:47.79 OQFPUwNT.net
ScalaはHaskellを意識しすぎ
簡潔に書きたいだけならKotlinかClosureの方がいい
312:デフォルトの名無しさん
19/02/17 11:57:32.09 nzXhLQND.net
Scalaのコンセプトは、スケーラビリティの理論実証
オブジェクト指向と関数型の統合によりスケーラビリティが実現すると考え
小規模から大規模まで同じ書き方/考え方で記述出来るように設計されている
出自はコンピュータサイエンスの学者
Kotlinのコンセプトは、より良い産業向け言語
Javaからの移行や相互運用、コンパイル速度、使い勝手について
「仕事の道具」であることを意識して設計されている
出自はIDE製品を提供する企業
313:デフォルトの名無しさん
19/02/17 12:47:22.79 7MWZQWrl.net
どっちも我田引水なだけやん
314:デフォルトの名無しさん
19/02/17 13:01:53.97 nzXhLQND.net
設計思想と既存資産があるから多様に派生し人が集まる
C, C++, Objective-Cが合流しないのも同様
それを我田引水と評することに何の意味もない
315:デフォルトの名無しさん
19/02/17 15:40:49.55 1RbyA1NJ.net
>>310
クスクス
316:デフォルトの名無しさん
19/02/17 15:53:56.04 tF7RiGiR.net
scalaでAndroidのプラグインとかあった気がする
我田引水ってなんか意味わからんな
317:デフォルトの名無しさん
19/02/17 23:16:27.59 ek0K0t7B.net
>>309
むしろ我田引水でない言語なんかあるんだろうか。
強いて言うならgrassとかwwww
318:デフォルトの名無しさん
19/02/18 02:04:27.28 XPBhJDxI.net
我田引水ってのは共用物について不正に占有したり自らの便宜を図ったりするような場合を言う
自己アピールや競争を含めた利己的な行動すべてを我田引水と揶揄するのは農耕民族的な発想が過ぎる
そういうのは道徳というより村八分や出る杭が打たれるのを恐れる面が強くイノベーションの足枷
319:デフォルトの名無しさん
19/02/18 11:11:01.50 +13B6eaL.net
もはや何のスレだか分からない
320:デフォルトの名無しさん
19/02/18 13:20:37.82 cZFby2gr.net
道徳説教スレ
321:デフォルトの名無しさん
19/02/18 13:34:09.52 trvxFZJG.net
我田引水スレ
322:デフォルトの名無しさん
19/02/18 19:19:37.69 I6FKQlBO.net
後ろ盾がjetbrainsっていうのはどうなんやろ。
大手と比べてどんなメリットデメリットあると思う?
323:デフォルトの名無しさん
19/02/18 19:29:55.81 Sk2Bqw0/.net
てか、我田引水ってどういう意味だっけwwww
324:デフォルトの名無しさん
19/02/18 19:50:06.12 TrdfW/q6.net
>>318
googleと仲いいしintellijシリーズが売れなくなるとも思えんし安泰なんじゃ?
325:デフォルトの名無しさん
19/02/18 20:44:26.76 bWM4TeHv.net
スカラ信者がまた荒らしてるな
326:デフォルトの名無しさん
19/02/18 21:57:58.91 EXht3ErA.net
>>318
大手と比べるとメリットはない。後ろ盾のない言語よりはいい。
IDEの開発会社という意味では、言語の普及がIDEの売上に直結する可能性があるので
Oracleみたいに独立不採算だからマネタイズに走るという思考にはなりにくいが、
絶対的なものではない。
327:デフォルトの名無しさん
19/02/18 22:33:30.93 nEhvYQ88.net
IDEの開発会社であるが故のリスクもあるけどね
VSCodeのような強力な他の開発ツールがKotlinサポートにおいてIntelliJを超えてしまってユーザーが流れた場合、
JetBrainsにとってKotlinの開発を続けることにもはや意味がなくなってしまう
328:デフォルトの名無しさん
19/02/18 22:58:18.56 /oirkxE3.net
後ろ盾最強はやっぱrust?
329:デフォルトの名無しさん
19/02/18 23:02:22.94 3dpq5+94.net
Goでぇす!
330:デフォルトの名無しさん
19/02/19 08:14:46.86 cAOiK8uf.net
後ろ盾の強さでいったらGoだべ
あれだけの巨大企業がついてる上に、開発も独裁せずに異常なまでにオープンであることを重視してるし
331:デフォルトの名無しさん
19/02/19 09:12:17.39 D8b3v+Fo.net
>>326
最強のSEO力でそう見せてるだけだぞ
それでもDartに対するヘイトは抑えきれなかったようだが
332:デフォルトの名無しさん
19/02/19 09:33:24.18 cAOiK8uf.net
>>327
直接Go開発周りのディスカッションを見てきての感想だから、SEOも何も関係ねーよ
英語が読めるなら自分の目で確かめることをお勧めする
あれはある意味理想的なOSS開発の形かもしれない
333:デフォルトの名無しさん
19/02/19 13:20:28.53 VQ802aqj.net
goは好きじゃないが>>326の言うことには同意
でもDartちゃんは駄目だから早く眠らせてあげて…
334:デフォルトの名無しさん
19/02/19 14:47:06.45 dYxLB9sm.net
FlutterがDartじゃなければ一気に覇権を取るまでありえただろうにな
335:デフォルトの名無しさん
19/02/20 14:22:13.38 v2qgHXVs.net
Android次期OSの開発言語がDartになるみたいな話どうなったん
336:デフォルトの名無しさん
19/02/20 15:43:28.44 YlCEZG7R.net
夢のOSなので夢で終わる
337:デフォルトの名無しさん
19/02/20 15:54:05.41 agArr1lp.net
ダー子
338:デフォルトの名無しさん
19/02/20 16:09:47.41 xuurx1V0.net
>>331
URLリンク(9to5google.com)
つまりJavaもKotlin/JVMも使える
339:デフォルトの名無しさん
19/02/20 17:27:44.53 9tgV50SM.net
Dream → Nightmare
340:デフォルトの名無しさん
19/02/20 19:05:59.81 v7iPz90J.net
夢は見るもの
目標は叶えるもの
341:デフォルトの名無しさん
19/02/20 19:45:33.26 TCqLAjvR.net
夢を見る島
342:デフォルトの名無しさん
19/02/20 21:47:37.37 sBZRwN3G.net
>>337
小鳥ん島
>>336
揚げ足鳥で悪いが、目標は達成するものだと思う。
343:デフォルトの名無しさん
19/02/22 04:03:22.89 DtR1+6r8.net
>>334
まじかよダートいらねーじゃん
344:デフォルトの名無しさん
19/02/23 12:08:36.03 9pS68leH.net
Котлин
345:デフォルトの名無しさん
19/02/24 12:59:23.23 pmK9w2Lp.net
ランキング画面を作っていてRecyclerViewの項目のソートをしたいんですが、
Cellectionをお気に入り数の降順でソートした上で、
タイトルとサブタイトルの昇順にソートするにはどうしたらいいですか
以下でお気に入り数の降順でソートするところまではできたんですが。
RankingDatas.sortedByDescending { it.bookMarkCount }
346:デフォルトの名無しさん
19/02/24 17:16:45.57 DytDvOjA.net
俺だったらデータを抜いてくる時点でソートをかけて抜いてくる。
347:デフォルトの名無しさん
19/02/24 17:28:12.24 pmK9w2Lp.net
APIレスポンスはそうして返してるんですが、
ローカルでお気に入りオンオフしてランキング順位が変わった場合に
再度APIを叩いてデータを取り直すのも微妙なので
その場合はローカルでソートして
順番を入れ替えたいという感じです
348:デフォルトの名無しさん
19/02/24 18:25:01.14 nlMNXQkf.net
ドキュメントにこう書いてあるからascendingとdescendingを順次呼び出せばいいんじゃない?
The sort is stable. It means that equal elements preserve their order relative to each other after sorting.
呼び出す順序はソート優先順位の逆順で
349:デフォルトの名無しさん
19/02/24 20:05:27.33 pmK9w2Lp.net
rankingDatas.sortedByDescending { it.bookMarkCount }.sortedBy { it.title }.sortedBy { it.subTitle }
やってみましたが、途中の結果は捨てられて単に subTitle の降順になるようです
350:デフォルトの名無しさん
19/02/24 20:26:13.24 pmK9w2Lp.net
昇順か
351:デフォルトの名無しさん
19/02/24 21:01:47.88 DSwgvg4z.net
sortedWithつかえ
352:デフォルトの名無しさん
19/02/24 21:07:06.34 pmK9w2Lp.net
できましたありがとうございました
353:デフォルトの名無しさん
19/02/25 01:07:00.43 EPSsIluE.net
呼び出す順序はソート優先順位の逆順でと言ったのに伝わらなかったか
354:デフォルトの名無しさん
19/02/25 05:33:03.93 D5d9E5fI.net
「kotlin sort multiple fields」で検索!
355:デフォルトの名無しさん
19/02/26 03:00:37.89 lsok3PaS.net
こういうことしたかったのか?
URLリンク(code.i-harness.com)
356:デフォルトの名無しさん
19/02/26 06:27:00.41 oQJIDyJZ.net
久しぶりに触ったらcoroutineがだいぶ変わってるらしくて以前からとりあえず動くけどよく分かってない状態だったのにもう全然分からないよ……(´・ω・`)
357:デフォルトの名無しさん
19/02/26 07:07:49.29 UAPWfCGq.net
>>352
とりあえず前知識として「コールバック地獄」について知っておくといいかも
358:デフォルトの名無しさん
19/02/26 08:39:12.02 5k0N70Wq.net
coroutine登場人物多すぎ
359:デフォルトの名無しさん
19/02/26 09:55:03.32 E0EMtjG2.net
え?子ルーチンそんなに変わったの?
360:デフォルトの名無しさん
19/02/26 10:37:15.60 UAPWfCGq.net
experimental中は色々変わったけど正式版以降の使い方は基本的に変わってないよ
URLリンク(github.com)
361:デフォルトの名無しさん
19/02/26 12:06:54.02 5MxkS3P7.net
>>351
のリンク先で、数値なら、- で降順にできるのか?
list.sortedWith(compareBy({ -it.age }, { it.name }, { it.address }))
Ruby なら、
arr2 = arr.sort_by { |a| [ -a[:score], a[:room] ] }
362:デフォルトの名無しさん
19/02/26 18:17:15.84 k06atLuF.net
>>357
できる。
363:デフォルトの名無しさん
19/02/28 03:26:51.88 oRFlldUh.net
ま、しかし、複数項目で昇順降順が混在する場合は自分で Comparator 作っちゃった方が楽かもね。
364:デフォルトの名無しさん
19/02/28 07:06:25.14 Lh1ejLNL.net
いやいや rankingDatas.sortedBy { it.subTitle }.sortedBy { it.title }.sortedByDescending { it.bookMarkCount } でいいじゃん
365:デフォルトの名無しさん
19/02/28 09:12:21.78 sPMvbV7g.net
直感的でない
366:デフォルトの名無しさん
19/02/28 09:15:13.48 UGZ/YaG8.net
>>360
処理時間3倍かかるよそれ
367:デフォルトの名無しさん
19/02/28 10:37:24.91 o8LdAn98.net
>>362
10万件ソートするなら使えないし、1000件しかソートしないなら問題ない
ランキングならたいした件数ないんじゃない
368:デフォルトの名無しさん
19/02/28 13:05:23.62 oAFMMcaR.net
>>360
それって2番目の並べ替えで1番目の並べ替えの順序が変わらないことは保証されてるの?
369:デフォルトの名無しさん
19/02/28 13:16:03.81 TwQuwGRl.net
stable sortだから保証されてる
370:デフォルトの名無しさん
19/02/28 15:53:56.89 sPMvbV7g.net
mutableLivedataを外部に公開したら良くないってことで
別途livedataを作ってそいつに参照を持たせて
外部にはlivedataだけ公開するっていうのを
全部のmutableLivedataに対して行うの面倒臭いんですが
なにかいい方法ないですか
371:デフォルトの名無しさん
19/02/28 19:05:52.26 TwQuwGRl.net
よく知らないけどmutableLivedataをコンストラクタで貰って
それを元にlivedataを作って両方保持するクラスでも作って包めばいいんじゃないの
372:デフォルトの名無しさん
19/03/01 01:02:08.44 8x0yRf06.net
それで何か解決するんですかね
結局view側からmutableLivedataに
アクセスできるんじゃないですかね
373:デフォルトの名無しさん
19/03/01 06:35:34.41 eJTnddJA.net
本当にやり方が思いつかないならもうちょっと経験値の高い先輩なりに相談してみよう
374:デフォルトの名無しさん
19/03/01 08:39:12.55 8x0yRf06.net
分からないならレスしないでください。うざいだけです
375:デフォルトの名無しさん
19/03/01 09:24:26.88 ajbNVKsu.net
動かしてないけどこんな感じ
import android.arch.lifecycle.*
import kotlin.reflect.KProperty
//保持用
fun <T> unmodifiableLiveData(d:LiveData<T>): LiveData<T> = Transformations.map(d){it}
class MutLiveWrap<T>(val lv:MutableLiveData<T>) {
val readonlyLv = unmodifiableLiveData(lv)
operator fun getValue(thisRef: Any?, property: KProperty<*>) = readonlyLv
}
val <T> MutableLiveData<T>.wrap get() = MutLiveWrap<T>(this)
//使用
class Test {
private val aWr = MutableLiveData<Int>().wrap
val a by aWr
fun f(){
val mutLv: MutableLiveData<Int> = this.aWr.lv
val roLv : LiveData<Int> = this.a
}
}
376:デフォルトの名無しさん
19/03/01 11:13:31.72 PhmT31GH.net
>>370
分かりません。
377:デフォルトの名無しさん
19/03/01 11:44:05.14 AdJjcFYH.net
>>370
技術力がないだけじゃなくて人間とし�
378:トも終わってるのな
379:デフォルトの名無しさん
19/03/01 12:41:01.41 yZJ4Zkhu.net
荒らしに返事するな!
そいつは前からいる、荒らしだろ。
相手をすると、この板に居つくだけ!
380:デフォルトの名無しさん
19/03/01 12:57:49.73 PhmT31GH.net
ま、しかし、このスレの場合は日頃は過疎ってるのでたまに荒しが来てくれた方がスレが活性化して落ちる心配がなくなるなw
381:デフォルトの名無しさん
19/03/01 16:06:36.33 XD1TRf4c.net
developer.android.comの最近のページはコードサンプルがKotlinとJava両方載ってるんだね
タブで切り替えるんだけど最初に表示されてるのはKotlin
382:デフォルトの名無しさん
19/03/01 16:54:26.44 ae30enpy.net
俺も動かしてないけどつくってみた
import androidx.annotation.MainThread
import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.Observer
private class ReadOnlyLiveData<T>(private val liveData: LiveData<T>) : LiveData<T>() {
override fun setValue(value: T) { TODO("この関数を呼び出したとき、リードオンリーだから使えないよって教える。") }
override fun postValue(value: T) { TODO("この関数を呼び出したとき、リードオンリーだから使えないよって教える。") }
@MainThread override fun observe(owner: LifecycleOwner, observer: Observer<in T>) { liveData.observe(owner, observer) }
@MainThread override fun observeForever(observer: Observer<in T>) { liveData.observeForever(observer) }
@MainThread override fun removeObserver(observer: Observer<in T>) { liveData.removeObserver(observer) }
@MainThread override fun removeObservers(owner: LifecycleOwner) { liveData.removeObservers(owner) }
override fun getValue(): T? = liveData.value
@SuppressWarnings("WeakerAccess") override fun hasObservers(): Boolean = liveData.hasObservers()
@SuppressWarnings("WeakerAccess") override fun hasActiveObservers(): Boolean = liveData.hasActiveObservers()
}
fun <T> LiveData<T>.readOnly(): LiveData<T> {
if (this is ReadOnlyLiveData<T>) return this // もうすでにリードオンリー
return ReadOnlyLiveData(this)
}
383:デフォルトの名無しさん
19/03/02 06:14:14.54 qFBH5IQH.net
>>357
降順と昇順が混在する場合は compareBy または compareByDescending で Comparator 作って
それに対して thenBy または thenByDescending で追加させて行く方が楽だし速いと思う。
384:デフォルトの名無しさん
19/03/04 16:04:14.52 /4qbaGVQ.net
AnkoでBottom Sheetって使えますか?
385:デフォルトの名無しさん
19/03/08 09:22:28.79 Yj0eRJ2i.net
なんか面白い話題ないんかな。。
386:デフォルトの名無しさん
19/03/08 10:46:41.80 pv8HlopZ.net
君が面白くなりなさい。
387:デフォルトの名無しさん
19/03/08 13:24:56.87 AzqZJLRD.net
springがフルkotlinになるのはいつ?
388:デフォルトの名無しさん
19/03/08 18:01:21.77 rmua+rZ/.net
Exposed1.0が出るのはいつ?
389:デフォルトの名無しさん
19/03/10 12:52:23.09 t+kr7Jdy.net
sequenceってジェネレーターみたいなもの?
390:デフォルトの名無しさん
19/03/10 13:42:04.30 56gRJqyl.net
>>384
SequenceはIterableとほぼ同じ
違いは
Sequence: 遅延評価する (なのでジェネレーターも含む)
Iterable: 基本的には遅延評価でない (通常、実体はコレクション)
拡張関数も別れていて、例えば
Sequenceのmap は遅延評価するSequenceを返す
Iterableのmap はその場で全要素を処理してListを返す
391:デフォルトの名無しさん
19/03/11 00:27:22.19 +Nlo5Elt.net
ずばり説明が書いてあるページを発見した。
KotlinのListとSequenceって何が違うの?
URLリンク(qiita.com)
392:デフォルトの名無しさん
19/03/11 07:22:41.11 0boP2QX3.net
うんこは最後に出す方法
393:デフォルトの名無しさん
19/03/11 17:24:32.47 2ppgAkG/.net
げ、知らなかった。
ずっとIterableがStreamの代わりだとばかり。
PythonのSequenceと混同してた。
ならば、Iterableをあそこまでゴージャスにする必要があったのか?
394:デフォルトの名無しさん
19/03/11 18:33:50.09 JQuKUcCl.net
誰かの趣味だよきっと
395:デフォルトの名無しさん
19/03/11 18:35:48.60 oxE6wZ/Z.net
>>388
典型的なコレクション操作では遅延評価せずその場で全処理する方が早いため
意味付けが違うだけで、SequenceとIterableは同じ拡張関数を持ってるくらいの認識でOK
分かりやすさのため、あえて使い分けを用意しなかった
Javaの割り切り方もありだとは思うけどね
396:デフォルトの名無しさん
19/03/11 21:05:48.78 MDT71nit.net
SequenceはJava8のStreamと類似で、KotlinであえてStreamを使うべき機会はほとんどないからSequenceを使っておけば良いってことかな
397:デフォルトの名無しさん
19/03/11 23:18:53.36 +cXkYAGY.net
そしてSequenceって変数にぶち込んで使いまわせなかったっけ?