Kotlin 5

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

※前スレ
https://mevius.5ch.net/test/read.cgi/tech/1531818027/
2019/04/26(金) 20:00:10.59ID:ErNxnYz2
>>651
まあまあまぁまァ、落ち着けよ
このスレのレベルはピンキリさ
654デフォルトの名無しさん
垢版 |
2019/04/26(金) 20:32:30.11ID:MEdB7GvY
>>651

thx.

That is originated in “soup HTML document up beautifully”, it seems.
2019/04/26(金) 21:06:34.41ID:XuSZUgKR
個人の試行錯誤の実況でスレが消費されてくより過疎ってた方がマシ
2019/04/27(土) 09:33:03.49ID:2kV59Ab3
スレの消費はどうでもいいんだけど、試行錯誤の記録はqiitaなりブログなり自分で管理できるところに残しておいた方が後々良いと思うんだよね
2019/04/27(土) 09:47:43.31ID:X+HWf3Sy
>>516
fragmentは再利用されるからlateinit var
2019/05/08(水) 08:51:45.05ID:7421dKds
Google、Androidにおける「Kotlinファースト」強化を表明。Google I/O 2019
https://www.publickey1.jp/blog/19/googleandroidkotlingoogle_io_2019.html
2019/05/08(水) 09:08:00.50ID:1o0ZoV2Z
>>658
わかったからFlutterで(を?)使えるようにしてくれ
現時点で構造的に対応超絶困難だ
マテリアルデザインの普及にも役立つだろ
660デフォルトの名無しさん
垢版 |
2019/05/08(水) 19:13:02.95ID:PdqlbBMH
kotlin day17、object式
クラスAをインターフェースBによって僅かに修正したクラスCのインスタンスが必要となった時に、サブクラスCを宣言せずにそのインスタンスabを生成できる。
```kt
open class A(x: Int) {
public open val y: Int = x
}

interface B {...}

val ab: A = object : A(1), B {
override val y = 15
}
```
2019/05/08(水) 21:35:17.96ID:1/kiWGBR
前スレでも書いたがKotlin/JSに続く、Kotlin/Dartトランスパイラをだな・・
まぁやれるとしたらJB側だからリソース的に無理なんだけどな
2019/05/09(木) 00:39:13.38ID:62rwCBNY
>>661
Flutterが目当てなら、必ずしもDartを介することはないのでは?
2019/05/09(木) 07:27:30.06ID:bwcjejUH
どういう意味?
2019/05/09(木) 07:28:01.24ID:bwcjejUH
ああ、ごめん分かったよく読んでなかった
2019/05/09(木) 07:49:34.83ID:p+Gqts9i
>>662
少なくともDart Kernel binaryを生成出来ないとFlutterのホットリロードが使えない
Kernel binaryの仕様はDart自体より安定してない

https://flutter.dev/docs/development/tools/hot-reload
https://mrale.ph/dartvm/

Flutterのクロスプラットフォーム性や開発時の機能などの結構な割合を
Dart自体の機能により実現しているのでその辺の仕組みに乗っかれないと逆に厳しいと思うぞ
2019/05/09(木) 09:45:14.22ID:Gvcl+e3N
flutterも最初素晴らしいと触ってたけど、dartの糞さに嫌気さしてさわるのやめたな。つか、flutterは致命的な問題もあるしな
2019/05/09(木) 13:10:55.61ID:fgBYrKh8
kotlinのgraphqlライブラリ微妙だからscalaのsangria使えないかなー
sangriaどころかscala触ったことないけど
2019/05/09(木) 15:52:18.57ID:drrQ8Z5A
>>666
どんな問題?
2019/05/09(木) 20:53:25.89ID:Gvcl+e3N
モバイルアプリはメモリ不足によってプロセスキルされ、キル前の状態に戻すために復元の仕組みが用意されてるがflutterではどうすればいいの?問題。
例えばandroidならonSaveInstanceStateがあるが、flutterではどうすれば?
flutterは1つのActivity上でページ遷移してるが、ページ毎に状態保存、復元は?
https://github.com/flutter/flutter/issues/6827
2019/05/09(木) 20:58:48.44ID:Gvcl+e3N
モバイルアプリ開発したことあれば必ずプロセスキルの問題に出くわすと思うんだがflutterの開発チームはこれ放置してるという。普通flutterの設計段階でこの事考慮すべきだが全く考慮してなさそうというあほっぷり。
2019/05/09(木) 23:07:11.65ID:p+GF1Adw
地方都市だけど最近Android本が本屋に数冊しかない
他言語は田舎のわりにはけっこう置いてるんだけど
Kotlin移行の影響なのかも
2019/05/10(金) 00:21:35.88ID:JD2pFQw6
>>670
flutter詳しくは知らんが、もしそれが本当ならモバイル用途としてはたしかに致命的欠陥だな
後付けでflutterのフレームワークの中で強引に全部保存復帰するようにするから気にするな、みたいなこと
考えてるとしたらヤバイ
そういうことができないモバイルだからステートの保存と復帰はアプリに投げるように作ってあるのに・・
673デフォルトの名無しさん
垢版 |
2019/05/10(金) 03:07:44.06ID:+vHN15fT
>>671
Amazon使いなさい。
2019/05/10(金) 10:49:17.54ID:pdzLc3IS
Kotlin/Everywhere
https://blog.jetbrains.com/kotlin/2019/05/kotlin-is-everywhere-join-the-global-event-series/

・イベントは主に5月のGoogle I/Oと12月上旬のKotlinConfの間に行われる
・イベント予定は以下の地図に表示される(今後追加されていく)
https://events.withgoogle.com/kotlin-everywhere/
675デフォルトの名無しさん
垢版 |
2019/05/10(金) 16:19:08.62ID:54LLglmL
>>671
同志
Android関連本、俺のところも本屋には少ない。
大阪に隣接の県の県庁所在地なんだけど。

大阪のデカイ本屋へは往復2,000円掛かっちまう。
2019/05/10(金) 19:41:51.78ID:iG629wI3
>>675
奈良市かな?
2019/05/10(金) 21:37:10.49ID:shkkgOQu
>>675
Kindleおすすめ
マルチディスプレイで勉強捗る
678デフォルトの名無しさん
垢版 |
2019/05/10(金) 21:56:19.96ID:54LLglmL
>>677
Kindleも試したけど、俺、紙の本派なんだよねぇ。
書き込みできるのが紙の本がありがたい。

KindleのためにiPad Pro 12inchも買ったけどやっぱり紙が良いんだよねぇ。
俺って、変かなぁ。
2019/05/10(金) 22:08:26.51ID:3MWdvG+0
紙の解像度にはまだまだ電子書籍は敵わない
紙の優位性はあるから書見台(ブックスタンド)とか使え、そしてやっぱイマイチだってしまい込むんだ
印刷したデータは死んだデータだってのは、まあ、その通りなんだけども
2019/05/10(金) 23:11:37.34ID:msYu7Wbl
ktorでhttpsやろうとしてサンプル試してみたけどなんかダメだな
2019/05/11(土) 01:07:57.25ID:i9FGZXUp
>>673

Amazonも楽天も使ってるよ
ただ本屋に置いてない状況を見ると
Android開発の人気無くなってきてるのかなと思って
本屋は内容確認できる長所あるし
もう少し置いてほしいところ
2019/05/11(土) 06:20:49.01ID:J+BhWrkd
>>680
オレオレ認証局だけど出来たよ。Let'sEncryptのところでなければ答えられるかも。

>>681
Android開発者が紙の本からKindleに移住している可能性も。
といいつつ自分はPC本は紙派。読んだ後確認する時にこのあたりかなとパラパラとめくりながら探せるので。
683デフォルトの名無しさん
垢版 |
2019/05/11(土) 07:17:10.19ID:g6fo75+g
[改訂新版]Android SDKポケットリファレンス
これのKindle版って、サンプルコード見やすいですか?

[改訂新版]Swiftポケットリファレンス、こいつのKindle版掲載のサンプルコードは、文字の拡大縮小も可能で、Goodなんだけど。

Kindle Paper Whiteで閲覧します。iPad Pro 12inchもあるけど。
684デフォルトの名無しさん
垢版 |
2019/05/11(土) 07:18:23.32ID:g6fo75+g
ちなみに、お試し版をPaperwhiteで見てみたけど、お試し版は最初の数ページ、しかもサンプルコードが無いページしか、試し読みできませんでした。
2019/05/11(土) 07:25:20.42ID:BxWOidMY
kindleはコピペできないからPDF版のあるやつは、そっちを買うようにしてる。
2019/05/13(月) 07:33:21.30ID:x9oQSWJz
その本つてKotlin対応してなかった気がするけど
Javaでも良いの?
2019/05/13(月) 09:37:44.97ID:Brt5xi0Z
ここが過疎ってるような気がしてslack見てみたけどそっちも過疎ってるのかな。
slackの使い方間違えてるのかな。。
688デフォルトの名無しさん
垢版 |
2019/05/13(月) 10:33:56.13ID:4rccaZT+
>>686
JaveでもOKっす。
689デフォルトの名無しさん
垢版 |
2019/05/14(火) 02:33:08.66ID:3xJ0OqNt
forEach は Iterable<T> と Iterator<T> にあるのに forEachIndexed は Iterable<T> にあっても Iterator<T> にないのは何故か?
2019/05/14(火) 07:44:27.90ID:DWuOpB8T
昔ケンカしたから
2019/05/14(火) 07:49:34.32ID:rV66FunX
Iteratorは拡張関数が4つしかなくインターフェース変換を除くと実質2つ
なのでむしろforEachとwithIndexだけが特別扱いのようなもの
2019/05/14(火) 10:12:17.90ID:jvXWFm+P
うんことりん
2019/05/14(火) 12:25:52.36ID:zeev4Evh
Ruby では、クラスに、each メソッドが定義されていれば、
include Enumerable で、map, each_line などの便利な機能を使える(Mix-in)

Enumerableのラッパーが、Enumerator で、
eachを定義していないクラス、例えば、String クラスに、Enumerable の機能を追加する

Enumerableは内部イテレータで、Enumeratorは外部イテレータ。
外部イテレータは、繰り返しの進行を制御できる

enum = "a\nb".to_enum( :each_line ) # Enumerator
enum.with_index do | line, idx | # 1行ずつ処理する
p [ idx, line ]
end

出力
[0, "a\n"]
[1, "b"]

with_index は、Enumeratorクラスのメソッドで、
map に、インデックスを渡すことも出来る

p enum.with_index.map { | line, idx | "#{ idx } : #{ line.swapcase }" }
#=> ["0 : A\n", "1 : B"]
694デフォルトの名無しさん
垢版 |
2019/05/14(火) 12:36:39.21ID:eEvxk7yL
>>691
あー。そうか。

まあ Iterable は中に Iterator 返すやつ一つ作ってしまえば良いだけなので object で作ってそのまま forEachOndexed で使えば良いだけなのだがなんというか面倒。

あ、自分でそういう拡張関数作ればいいだけか。てか作っておいて欲しかっな。
2019/05/14(火) 12:45:32.34ID:BT1Jap6O
>>689
イテレーターは列挙するものだからインデックスと直結しないのでは
n件のリストがあったとして、それをイテラブルとして回すときのインデックスはほぼ自明だけど
そいつを3から始めるイテレーターや逆順のイテレーター
3歩進んで2歩下がるイテレーターのインデックスというのは
ルールを決めてしまえばいいんだけど本質的な属性ではないと思う
2019/05/14(火) 13:05:37.50ID:4HZJg8yK
拡張関数ってグローバルだよな
どこに書けばいいか迷ったあげく使うクラスと同じファイルに書いてしまう
2019/05/14(火) 16:08:52.35ID:o/ZzSQAi
拡張関数めっちゃ便利だけど、用法用量を守らないととても危険だよな
2019/05/14(火) 17:29:04.99ID:IaXs534s
拡張関数の定義を interface の中にすれば、使用可能範囲をコントロールできる
2019/05/14(火) 18:31:50.97ID:hlTwFz7+
Kotlin用ゲームエンジンらしい

https://korge.soywiz.com
2019/05/14(火) 19:29:46.17ID:o/ZzSQAi
>>698
知らなかった
701デフォルトの名無しさん
垢版 |
2019/05/15(水) 12:44:33.69ID:laKGlnoI
どのみち、IDEがないと読み難い言語だから、Extensionはさして気にならない。
プロパティアクセスのせいで、知らず知らずにシャドウしてしまう方がずっと気になる。
2019/05/16(木) 18:46:37.64ID:ctMRzncm
ts2ktって放置されているっぽいけど、今でも使いものになるの?
703デフォルトの名無しさん
垢版 |
2019/05/16(木) 19:36:52.04ID:9YitK9mS
>>699
Android以外はちゃんと動くんかな・・・・?
2019/05/17(金) 22:06:49.39ID:5qYZVYSF
>>698
拡張した本人しか認識できないのもができるからな。
705デフォルトの名無しさん
垢版 |
2019/05/18(土) 09:09:23.16ID:cPFyVnxJ
>>699
興味あるわこれ
今やってるの終わったら使ってみようと思うんだけど誰か試してみた?
2019/05/18(土) 12:51:09.41ID:JYN3Apin
社内の持ち回りの勉強会で、vimでKotlin開発する環境を気合いで整える、という発表をしたら大受けしたわ
もちろんネタとしてな。絶対idea使った方がいいぞ。
2019/05/18(土) 13:41:12.48ID:1MmHbsk/
無駄なことに時間使ってんな
708デフォルトの名無しさん
垢版 |
2019/05/18(土) 16:19:18.33ID:IkSg3I69
やらないと後で「おまえやるって言ったよな」と責められるw
2019/05/18(土) 22:59:21.42ID:rrFT3N/c
kotlinでandroid開発の記事載ってる雑誌ないですか
ネットや書籍から情報得るしかない?
2019/05/19(日) 01:39:23.54ID:jp3Kdatt
本とかもう時代遅れ
711デフォルトの名無しさん
垢版 |
2019/05/19(日) 05:37:35.31ID:+tXYNnhs
なぜ雑誌?本ならあるのだが。
712デフォルトの名無しさん
垢版 |
2019/05/19(日) 16:40:35.01ID:+tXYNnhs
そもそも今ではプログラミングについての雑誌が少ないよね。
Software Design か日経ソフトウェアぐらいなんじゃないか?
ハードウェア寄りな Interface みたいなのもあるが。
2019/05/19(日) 18:23:21.54ID:fqpGXrMP
>>710
そんなこたぁ無い
2019/05/19(日) 19:18:58.24ID:Ma/nTg+4
本はディスプレイ以外に開けるから便利だよね
2019/05/19(日) 19:40:59.75ID:jp3Kdatt
掌田津耶乃でも読んでろカス
2019/05/19(日) 20:36:47.66ID:fqpGXrMP
つやのちゃん知ってるんだw
2019/05/20(月) 00:21:44.28ID:pT4TPZWt
断片的なのはネットで調べればいいが、
体系的に全体をまんべんなく知りたいってときは、
やっぱり書籍が適してると思う。
2019/05/20(月) 06:11:32.77ID:BYsItzt6
書籍もガッツリ読むなら紙の本がいいし、写経するなら電子書籍の方がいいし
選択肢が増えた分だけむしろ選ぶのが大変になってるな
719デフォルトの名無しさん
垢版 |
2019/05/20(月) 11:03:48.81ID:+QyKHsoF
SoftwareDesignは最近はもう読んでない
バックナンバーも大量に棄てた
川上さんの連載のだけ残してる
2019/05/20(月) 11:35:05.49ID:MLZoEYDf
雑誌のいいとこは判型が大きいことだなw
ただのブログよりは読者層を意識してる率が高くて、Web記事よりはまとまりと終わりがある可能性が高いという感じか
なにの情報を欲しいと思ってるのかに依存する気がするぞ
2019/05/20(月) 11:43:30.49ID:3K6cHyBG
雑誌の良いところは、本よりも情報の鮮度が高いってとこだね。
2019/05/20(月) 15:22:51.14ID:poyp5Kqc
日経ソフトウェアは、素人向け

SoftwareDesign ぐらいか。
WEB+DB は、システム環境・プログラマーが半々ぐらい

他は、日経Linux は、ラズパイが多い

フレームワークの巨匠と言えば、掌田津耶乃・山田祥寛

山田の講習会は、数万円とか。
掌田なら、十万円ぐらい行きそうw
2019/05/20(月) 16:58:22.74ID:E7kxjeRz
つやのって読む価値のない入門書しか出してないだろ
2019/05/20(月) 20:22:34.07ID:Nm/yOzhN
最近の日経ソフトウェアはPython雑誌みたいになってる
Kotlinの記事なんて全く載らない
725デフォルトの名無しさん
垢版 |
2019/05/20(月) 20:48:41.91ID:oKvxv21R
そういやPython大ブームだね。
機械学習関係で火が着いた感じか。
2019/05/20(月) 21:27:41.17ID:QYS7YbVl
数年後に始まる小学校でのプログラミング授業もPython採用と予想。
2019/05/20(月) 21:33:58.54ID:TjPZT1E7
授業は基本マイクラを使うぞ
2019/05/20(月) 22:00:59.30ID:9o82qJOc
kotlinのおすすめ無料学習教材は?
2019/05/20(月) 22:10:44.54ID:0DZMUBSm
勧めるようなものは特にない
2019/05/21(火) 08:28:21.83ID:2xcSjans
なんか公式のチュートリアルみたいなのなかったっけ
2019/05/21(火) 08:31:57.13ID:qls//8Wz
おすすめかどうかを意識しろ
あるかどうかではなく、おすすめかどうかだ
検索すりゃこのご時世英語含めてたくさん出てくる
そんなの見りゃわかる
おすすめできるものかどうかがいちばん大事
2019/05/21(火) 10:08:36.16ID:x7pfOsc7
ただで教える側に求めすぎだろw
733デフォルトの名無しさん
垢版 |
2019/05/21(火) 10:10:30.25ID:YlTjoOUk
>>723
NGに入れろ
スッキリ

734デフォルトの名無しさん
垢版 |
2019/05/21(火) 10:56:17.04ID:KjOgf3b2
kotlin使った事無くて勉強中なんですが
null安全は通信で届いたオブジェクトについてどう働きますか?
あるいはデシリアライズされたオブジェクトについて
そこでもnull安全ですか?
2019/05/21(火) 11:04:08.23ID:x7pfOsc7
当然どんなオブジェクトであれKotlinで書かれている限りnull安全は機能するけど、君はそもそもnull安全を誤解してそうな予感がする
736デフォルトの名無しさん
垢版 |
2019/05/21(火) 11:11:41.76ID:KjOgf3b2
検索すると、null不可な変数にnullを代入できないこと、とあります。
そうすると通信で受信したオブジェクト等はどうなるのかなと。
この理解は間違っていますか?
2019/05/21(火) 11:39:29.09ID:c7g0QxSl
どこまで「使ったことない」かにもよるんだが
・nullかどうかの条件分岐をクリアした変数
・nullかどうかの条件分岐をまだやってない変数
の2つがあるだけだと思っていい

外部から取得したデータがあったとして、nullチェックをまだしていないならnullableだ
どこかで誰かが(静的文法解析上)nullではないという条件分岐を通したあとならそれはnonnull
どこかで誰かがその後にnullになるかもしれない処理を通したらnullableに戻る
2019/05/21(火) 12:29:35.90ID:ZAINLMmO
>>736
文字列とか通信データから、新たなオブジェクトを構築するのでしょ?

構築できたら、null ではないし、
データがおかしくて構築できなかったら、エラー!
2019/05/21(火) 12:40:36.99ID:sr6+MIRN
当然nonnull出ない変数ににnullをぶち込んだらエラーになる
2019/05/21(火) 13:55:21.57ID:2xcSjans
>>736
nullを入れられない型なのにnullを入れようとしたらその時点でオブジェクトを生成できずにエラー
なので、json文字列を受け取ってオブジェクトを生成する部分で要件に合わせて適宜いい感じに処理する必要がある
741デフォルトの名無しさん
垢版 |
2019/05/21(火) 14:53:46.84ID:BVi2WQ22
>>736
試してみればわかると思うが、nillableな型にnull入れてObjectOutputStreamで書いた後でnullableでなくしてコンパイルしなおしてからObjectInputStreamで読もうとするとInvalidClassExceptionが出る。
2019/05/21(火) 15:17:02.88ID:RVxsm+ja
kotlin使ったことないって奴向けの説明ではないな
743デフォルトの名無しさん
垢版 |
2019/05/21(火) 16:06:22.73ID:BVi2WQ22
図解しないとダメか?w
2019/05/21(火) 17:40:26.31ID:x7pfOsc7
そもそも聞かれてることに対する回答としてはピントがズレてる
自分の知識自慢したいイキリオタク感がすごい
2019/05/21(火) 18:43:35.05ID:gj4VcULk
>>734がおそらくしているであろう幻想を抱いていた時期が自分にもありました
とエスパーしながらいうと、通信で受信したオブジェクト等はnullableな型を持つことになるだけで、
Kotlinにしたからといってnullチェックが要らなくなるわけではない。

>>736には誰の説明が分かりやすかっただろうか。
746デフォルトの名無しさん
垢版 |
2019/05/21(火) 20:08:28.33ID:BVi2WQ22
>>744
ずれてないだろ。通信でオブジェクト送る話なんだから。
747デフォルトの名無しさん
垢版 |
2019/05/21(火) 20:11:45.34ID:grT0tw0/
Javaのコードを呼び出すところは、全部そうだね。
Kotlinはnullableであることを「強制しない」。
AndroidとかjavaxのAnnotationでもついていない限り。
2019/05/21(火) 20:44:09.88ID:wTyF+2my
>>728
https://play.kotlinlang.org/koans/overview
749デフォルトの名無しさん
垢版 |
2019/05/21(火) 21:17:46.88ID:KjOgf3b2
null安全は@NotNullとどう違いますか?
2019/05/21(火) 23:00:11.33ID:MtIoFqpw
コンパイルエラーになるかぬるぽでばーんってなるかの違い
2019/05/21(火) 23:15:32.28ID:dJ+4PuSm
null安全は以下の機能を包括する言葉
 ・型システムでnull許容とnull不可を区別出来る
 ・null許容型の取扱いを容易にするモナド操作などを言語仕様や標準ライブラリに持つ
752デフォルトの名無しさん
垢版 |
2019/05/22(水) 00:26:45.64ID:s0RuNCYO
  ∧_∧  / ̄ ̄
 ( ´∀`)<  ド?
 (     )  \__
 │ │ │
 (__)___)
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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