Kotlin 5

■ このスレッドは過去ログ倉庫に格納されています
2018/12/08(土) 20:29:41.41ID:oXOQORcd
JetBrainsが開発した期待の新言語、Androidの公式開発言語にしてサーバーサイドもなんでもいけるKotlinについて語りましょう

※前スレ
https://mevius.5ch.net/test/read.cgi/tech/1531818027/
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でのセルフホスティングは目指してないと思うよ
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なしでやるのは大変だろう。
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のソースからコンパイルして作ったやつにすれば完璧。
2018/12/21(金) 22:14:57.05ID:8Iu4hnmd
アンケート入力の時間だ
https://blog.jetbrains.com/kotlin/2018/12/kotlin-census-2018/
2018/12/21(金) 22:59:54.90ID:/MQTzm2r
項目多いな
34デフォルトの名無しさん
垢版 |
2018/12/22(土) 02:37:32.92ID:JnEveBkB
いつの間にかこんな入門書が出ていた。但し Kindle 版のみだ(unlimited の人は 0 円で読める)。

速習 Kotlin
http://amzn.asia/d/0ZiG6rB
2018/12/25(火) 06:47:43.66ID:1ThGctmt
メリーコトリン
36デフォルトの名無しさん
垢版 |
2018/12/25(火) 11:17:10.24ID:yeWprDEr
つまんね
37デフォルトの名無しさん
垢版 |
2018/12/25(火) 19:25:24.16ID:KSMuafeJ
爆笑
2018/12/26(水) 22:47:51.52ID:5ub5SAQR
>>37
無理に>>36にて対抗しなくていいからww
2018/12/27(木) 08:12:45.83ID:DJ5Bt1eh
kotlinのコルーチンビルダーに渡す中断関数がレシーバー付きなのを止めてほしい。
public fun CoroutineScope.launch(
 context: CoroutineContext = EmptyCoroutineContext,
 start: CoroutineStart = CoroutineStart.DEFAULT,
 block: suspend CoroutineScope.() -> Unit
blockパラメータにレシーバつけるんじゃねぇよ。というもの、なんでコルーチンビルダーに渡すルートの中断関数だけCorotineScopeにアクセスできるんだよ。
ルート以外の中断関数からはアセクスできないのに。この非対称性というか特別扱いやめて。
2018/12/27(木) 08:17:42.92ID:DJ5Bt1eh
例えば、自分で定義した中断関数
suspend fun hoge() {
}
内ではCoroutineScopeにアクセスできない。CoroutineScopeではなくCoroutineContextにはcoroutineContext関数経由でアセクスできるが。
こういう一貫性のなさはやめてほしい。なんか意味があるのかもしれんが。
2018/12/27(木) 10:06:52.89ID:g57/YEyR
ここじゃなくて公式に言ってこいよ
2018/12/27(木) 23:27:31.48ID:r4GKgwJE
>>32のアンケートに自由記載の欄があるから、そこで言うことは可能。
2018/12/27(木) 23:47:52.20ID:hAo/rJSd
>>39 >>40
CoroutineScopeはキャンセルの伝搬と構造化のためにあって意図的にそうなってる
private funや全体制御クラスなどを除いては基本的に他所に渡しては駄目

渡された側がキャンセルすると子だけでなく親戚関係のものまで巻き込んでしまう

スコープ直下のブロックは保護者のような役割になるので
渡さずに↓のようにしてスコープをネスト構造にするべき
suspend fun hoge() = couroutineScope {
}
44デフォルトの名無しさん
垢版 |
2019/01/02(水) 20:28:59.08ID:MMKJrJD0
あけましておめでとうございます
ことりんもよろしくお願いします
2019/01/02(水) 22:49:08.10ID:sDzpRBwn
え?
2019/01/03(木) 09:15:47.36ID:h/ELqUHS
山田さーん、>>44に座布団1枚持ってきて。
2019/01/03(木) 10:25:22.96ID:GKSM08/3
座り小便した奴を持って来ました
2019/01/07(月) 18:42:28.96ID:4PQEcpA5
supervisorScopeって上司っぽさがあるな
2019/01/12(土) 11:30:26.17ID:ygc4MJ1X
お前の勤務成績は丸見えだから
2019/01/12(土) 12:51:17.46ID:IzmxBuIw
そもそもcoroutinrScopeを他に渡して何をするつもりなんだろう
用途が思いつかない
51デフォルトの名無しさん
垢版 |
2019/01/14(月) 19:40:36.89ID:OowwBnZ2
「基本からしっかり身につく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
}
2019/01/14(月) 19:40:58.45ID:OowwBnZ2
>>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)
}
}
2019/01/14(月) 19:42:40.59ID:OowwBnZ2
>>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)
2019/01/14(月) 19:51:40.91ID:mSU16be8
まず大事なこととして
・正確に伝える
・切り分けをしていく

コンパイルエラーなのか実行時エラーなのか想定と違う動作なのか
エラーであればどのような内容か
想定と違うのであれば想定と実際の両方を具体的に

実行可能な場合はログ出力を追加するなどして問題の箇所を絞り込む

技術者は答えより答えの出し方を知る方が大切
2019/01/14(月) 19:54:33.86ID:OowwBnZ2
>>54
コンパイルエラーです
2019/01/14(月) 20:14:29.56ID:pDL52XEr
AndroidStudio使っててどこがコンパイルエラーかわからないとかあんの?
2019/01/14(月) 21:06:42.85ID:eurbvKP4
まあぶっちゃけると「エラーが出て動かない」以上のことがさっぱりわからんことはあるにはある
IDEが表示するエラーが理解できるくらいならそもそも入門書など読まんw
2019/01/14(月) 21:23:28.22ID:fiLCWGOz
>>55
なぜエラーメッセージを読まないのか。せめて貼り付けろ
59デフォルトの名無しさん
垢版 |
2019/01/15(火) 00:32:52.94ID:pIHkTAGg
Rなんとかは定義したの?
2019/01/15(火) 01:25:57.81ID:tO821mqa
>>51に当てはまるかは知らないけど
初心者って初心者向けの本を買うくせにちゃんと読まずに進めるんだよな
手順をすっ飛ばしてるパターンがほとんど
2019/01/15(火) 01:38:02.87ID:VjJwW0bc
>>59
あー文字定義してないのはいかにもありそうだな
62デフォルトの名無しさん
垢版 |
2019/01/15(火) 11:17:38.84ID:uh3dx1w7
>>59
Rって、解説書でも唐突に出てくるんすけど、何を定義すればいいの?
2019/01/15(火) 13:47:19.17ID:1CaYwh4e
まずエラーメッセージを貼れ
2019/01/15(火) 14:15:39.24ID:pzxobvn7
>>62
そんな解説書は燃やせ

Rクラスはxmlファイルの記述からAndroidStudioが(語弊あり)勝手に作成するリソース管理クラスだ
xmlファイル(に転記するリソース名管理欄)での手動記述がミスってると生成失敗してRクラスなんぞ知らん系のエラーになる
というかとっとと何も考えずに>>63するか餃子のラー油の小袋が半端にしか開かずに必ず指につく呪いにでもかかってしまえ
2019/01/15(火) 15:05:34.53ID:uh3dx1w7
>>64 dくす
エラーメッセージはたくさんありすぎて貼れないから貼ってない
とりあえず自宅に戻ってからまた再現させる


てゆーか、この程度のコードでバグる奴がなんで解説書を出版社から出せるんだよ
まともな解説書ってないのかよ
尼見るともう一冊のほうもサンプルが動かんと書かれていて読む本がない
2019/01/15(火) 16:58:26.54ID:1CaYwh4e
サンプルコードがビルドできたからって何なんだ
そんなの目的にしても意味ない。必要な知識が吸収できればいいわけで。
サンプルコードをそのままビルドするアプローチじゃなく、
一旦空のプロジェクトを新規作成してそこに追加して動作確認するアプローチの方が
勉強になると思うけどなあ
2019/01/15(火) 17:03:39.16ID:1CaYwh4e
新規作成しただけの状態なら確実にビルドが通るわけで
どこまでサンプルコードに近づいたら
エラーが出るのか問題も切り分けやすい
こういうのはもうAndroid関係ないし向いてないからしね
2019/01/15(火) 17:21:56.05ID:3lh9jTue
Androidアプリは「初心者の人に書籍通じて独学で覚えさせるのめんどくさいプログラミング技術ランキング」のベスト3常連だからな
なにせファイル1個やコマンド1発で収まらない
2019/01/15(火) 18:24:55.36ID:yTRP/eqO
エラーの見方も分からないレベルでいきなりAndroid本は飛ばしすぎだな
2019/01/15(火) 23:41:09.53ID:620Eb35B
途中コメントアウトしてなんとか動いた
スマン、今日は時間切れ

最後、isEmpty()なんて使えないよ、と言われてたような・・・

続きはまた明日
2019/01/16(水) 11:02:30.64ID:aTgtPKRZ
>>65
ほんとこれ
入門者の立場に立って書いてないからそうなるんだよ
2019/01/16(水) 11:03:16.52ID:aTgtPKRZ
>>64 だった
ごめん
73デフォルトの名無しさん
垢版 |
2019/01/16(水) 11:34:03.94ID:vTKVQdGX
馬鹿には無理
2019/01/16(水) 13:16:59.84ID:NBiSBr9E
入門者は10年ROMってろ
2019/01/16(水) 15:02:59.73ID:c12bWRnm
>>54:エラーであればどのような内容か
>>55:コンパイルエラーです

>>58 >>63:エラーメッセージ読め、貼れ
>>65:たくさんありすぎて貼れない

プログラミング言語より先に日本語と英語の勉強した方がいい
76デフォルトの名無しさん
垢版 |
2019/01/16(水) 15:05:34.92ID:ECRqnYoc
       _,,-'' ̄ ̄`-.、         /        \
       /        \      ,/           \
      ,/           \    /   ―  ―     ヽ
     /   ―  ―     ヽ   lヽ  - 、 ! , _     |
    lヽ  - 、 ! , _     |   |r――-、_⊥ ,――'-、 |,-,
    |r――-、_⊥ ,――'-、 |,-,  |::::::::::::::::/ |ヽ:::::::::::::::|-|'イ!|
    |::::::::::::::::/ |ヽ:::::::::::::::|-|'イ!|  ト、__,,/:  |: `、__,,/ ,|ソ/
     ト、__,,/:  |: `、__,,/ ,|ソ/  .|    、_ j| _,、     ,|-'
     .|    、_ j| _,、     ,|-'   |   /lll||||||||||l`、   ,|
     |   /lll||||||||||l`、   ,|     `i ,|||' ̄= ̄`|||、 / ト、
     `i ,|||' ̄= ̄`|||、 / ト、   「|ヽ|ll||||||||||||||||| /i |::::\
     「|ヽ|ll||||||||||||||||| /i |::::\ ::::::\`!!||||||||||||!!'   |::::::::\
    /:::::\`!!||||||||||||!!'   |::::::::::::::::::::::`ー-、.._ i     |::::::::::::::\
   /::::::::::::::`ー-、.._ i     |::::::::::/:::::::::::::::::::::::::::::`ー-、. |::::::::::
  /:::::::::::::::::::::::::::::::::::`ー-、. |::::::::::

                ロムッテロ兄弟
   ハントシー・ロムッテロ       ハンツキー・ロムッテロ
    1952〜  アメリカ          1955〜 アメリカ
2019/01/16(水) 19:02:46.27ID:czS9PHe8
こりゃまた懐しいものを
2019/01/16(水) 22:02:17.64ID:l4CxponB
できたー!

エラーログは結局見なかった。
モマエらの煽りも十分ヒントなので自力でできた。

要はIDEの使い方がよくわかってなかったってことらしい。
アプリの開発は初体験だったので、IDEがこんなにモッサリしていて
ゆっくり打たないと反応しない、ということがわからなかった。

最初、赤字がエラーを起こしている場所すらもわからなかった。
本の通り入力されているのにエラーになるとか💩すぎる。
2019/01/16(水) 22:54:20.38ID:5qHX4ghP
お前が見栄張ってログ貼らないからだよ
2019/01/16(水) 23:11:21.71ID:s3+L+6VD
なんでエラー見ないんだよ…
見ましょ
2019/01/17(木) 00:03:32.50ID:gD7DqiQf
Android Studioは割と複雑なIDEだから馴れるまで大変かも、微バグも結構放置されてる
でもどんなときも根性があれば全て解決する
2019/01/17(木) 01:00:34.53ID:/w6CmWBz
Googleが開発環境作るのヘタクソなのはいつものこと
ベースのIntelliJ自体は優秀な子だから嫌いにならないで
2019/01/17(木) 01:08:32.19ID:F/bGJF7O
入門書のコードもちょっと辛い感じだが
kotlinスレで聞いてきたりレスの感じからすると記載を読み飛ばしてるだけな気がするな…
2019/01/17(木) 01:34:50.82ID:D8uuaLO+
エラーメッセージを読まないような奴が本の解説を読んでるはずがない
8564
垢版 |
2019/01/17(木) 02:05:52.76ID:X/RlN8Mj
>>78
>できたー
できてない

>モマエらの煽り
いまは心底馬鹿にしている

結局原因は理解せず対処法を学ぶ気もなくて今後似たようなことがあって詰まっても本を罵るだけなのだろう
お前はなにか変わった?
2019/01/17(木) 07:00:04.64ID:FUK6mZ5G
>>できたー
>できてない

ワロタ
相手の態度が気に入らないのはわかるが。
2019/01/17(木) 08:54:40.63ID:T+GiVQOD
例えサンプルが間違っていても自分で間違いを見つけ修正するくらいの気概がないと、動きが速くカオスなAndroid開発環境に立ち向かうことはできないだろう
2019/01/17(木) 11:08:41.33ID:wwbjNcTV
そうはいうてもインストールが正しくやれたか、ライブラリは合っているかを確認したいんだから動くコードじゃないとアカンやろ
2019/01/17(木) 12:07:23.58ID:JNIrfwpM
エラーを見るのは基本中の基本だとこれだけ言われながら頑なにエラーを見ない理由が分からないw

それはそうと、Android StudioがもっさりするレベルのPCで開発するの辛そう
90デフォルトの名無しさん
垢版 |
2019/01/17(木) 12:21:24.77ID:K+CX1G8n
君の所ではシャキシャキ動くの?
いいね。
2019/01/17(木) 12:29:42.70ID:JNIrfwpM
真面目なアドバイスだけど、アプリ開発というかプログラミングをするならそれなりのPCを用意した方がいいよ。
本格的に開発するなら各種ツールを同時に起動しながらやることになるから、IDE単体でもっさりするレベルのマシンだとかなり辛いと思う。
92デフォルトの名無しさん
垢版 |
2019/01/17(木) 12:40:50.40ID:K+CX1G8n
ゲーミングPCみたいに開発用PC売ればいいのにな
2019/01/17(木) 13:35:52.11ID:h1O5LGNC
iMac Proやろ
2019/01/17(木) 14:23:55.46ID:JNIrfwpM
ゲーミングPCからグラボを省けばプログラミングに良いマシンになるだろう
要はCPUとメモリとSSDだし
2019/01/17(木) 15:50:04.22ID:UNKQSAY8
ビジネス用PCでよくね
96デフォルトの名無しさん
垢版 |
2019/01/17(木) 16:11:06.65ID:8rj4oJ0j
https://egg.5ch.net/test/read.cgi/notepc/1544014307/
2019/01/17(木) 16:50:50.76ID:JNIrfwpM
>>95
お前のIDうんこじゃん
98デフォルトの名無しさん
垢版 |
2019/01/17(木) 16:58:20.51ID:K+CX1G8n
>>94
そんな感じのスペックのやつを自作するしかないのかな?

>>95
丁度いいのある?
2019/01/17(木) 18:38:16.95ID:BQPkrRK7
AVD使うならグラボはあった方がいい
ローエンドで十分だけど
2019/01/17(木) 21:05:29.75ID:9dtdj8/p
IDEまでは分かるけどスレタイから離れすぎw
2019/01/18(金) 10:55:00.39ID:biJOt7cE
初心者用の本ってマジでろくなのないな
自分が読んだ本だと言語の仕様解説して、次の章でいきなりじゃんけんアプリ作りましょうだもんな
文字出すだけとかもちょっと地道なサンプルこなしてからにしてくれよ
2019/01/18(金) 13:23:27.72ID:Gw7rawdB
そういう本を書いて売れるのなら書くけど
2019/01/18(金) 13:36:11.74ID:EPNqXegi
初心者はプログラミングすんな
104デフォルトの名無しさん
垢版 |
2019/01/18(金) 15:38:04.17ID:dETdnGdx
>>101
君が書け。紙の本にする必要はない。AmazonでKindle用の電子書籍で出すなら多分すぐ出せる。
105デフォルトの名無しさん
垢版 |
2019/01/18(金) 15:39:03.82ID:dETdnGdx
>>103
それでは誰も使わなくなって終わるではないかw
2019/01/18(金) 16:34:36.03ID:QNzHnga9
本を読んでからアプリを作るんじゃなくて、アプリを作ってから本を読むんだ
2019/01/18(金) 17:57:35.76ID:EPNqXegi
本を読んで勉強するという姿勢が気に入らない
お前の目的は言語学者になることか
アプリが作りたいならまず作れ
それで行き詰まったら初めて必要な知識を調べる
2019/01/18(金) 18:10:19.30ID:DtJxFJYk
http://www.atmarkit.co.jp/ait/articles/1712/08/news010_2.html

この通り作ってもエラーが出るのだが
なんなん
2019/01/18(金) 19:01:23.89ID:Jv0pMDsL
>>108
だからエラーを貼れよ
2019/01/18(金) 19:10:06.53ID:Jv0pMDsL
あとAndroid Studio のことはこっちのスレ来い

Android Studio Part3
https://mevius.5ch.net/test/read.cgi/tech/1547473943/
2019/01/18(金) 19:18:36.09ID:9pECFNv0
>>108
飲み会ドタキャンされて暇だからエラーの内容を貼ったら教えてあげるかもしれない
とりあえず一年以上前の記事みたいだからバージョン違いの何かな気がするけど
2019/01/18(金) 20:40:32.07ID:EPNqXegi
Android Studio3.0とか原始時代のツールだろ
113デフォルトの名無しさん
垢版 |
2019/01/20(日) 17:15:03.83ID:km2ubjIi
1ヶ月以上たってまだ100レス程度ってkotlinで開発してる人はんと少ないんだな
2019/01/20(日) 17:53:32.56ID:7J7VHbME
>>113
お前が書き込むんだよ
2019/01/20(日) 19:22:48.93ID:6E5SSl+w
仕方ないなあ。じゃあこのスレ向きの話題でもふるか。

flatter for xamarinだってよ
https://adtmag.com/articles/2019/01/08/flutter-for-xamarin.aspx?m=1
2019/01/21(月) 08:55:03.29ID:cyd5L15X
>>115
カオスだな。
2019/01/21(月) 13:17:33.75ID:jDpmEG8W
flutter for xamsrin for kotlin nativeが待たれる
2019/01/22(火) 02:09:57.73ID:gn5FLTFP
なにこれ。flutter sdkをc#に変換するのか。すげぇな。つか、xamarinの名前冠するなよ。負のイメージしかねぇ。
2019/01/22(火) 02:22:18.20ID:Ygwng9tV
ザマリンてなんか医薬品みたいだよね
「風邪にはザマリン!! お近くの薬局でお求めください!」みたいな
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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