Kotlin 5

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

※前スレ
https://mevius.5ch.net/test/read.cgi/tech/1531818027/
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
ザマリンてなんか医薬品みたいだよね
「風邪にはザマリン!! お近くの薬局でお求めください!」みたいな
2019/01/22(火) 05:45:08.82ID:+WHDBYOc
ていうかふらったーの1番のネックはDart言語なのに、それを多言語に変換されてもって感じだな
方向が逆だ
2019/01/22(火) 08:19:51.51ID:gn5FLTFP
え?だから他言語のC#に変換してDartとおさらばできるってことだろ。
2019/01/22(火) 09:06:02.79ID:8X9EpfV1
Xamarin程の糞はない
2019/01/22(火) 12:58:57.64ID:oFmOrikq
ざまりんは座間市のマスコットキャラクターです
2019/01/22(火) 19:17:28.51ID:HZ2hjuw/
ざまりん!ことりん!天気予報〜♪
2019/01/22(火) 23:00:57.36ID:vhFDea91
僕の名前はXamarin! 僕の名前はKotlin! 二人合わせて...?
2019/01/23(水) 04:35:21.49ID:VDPZgNNi
聳え立つ糞
2019/01/23(水) 11:21:53.63ID:KXFSPWv5
C#erだがXamarinはノーカンで
2019/01/23(水) 12:30:44.99ID:6pYQH9bm
kotlin界隈にもちょまどみたいなアイドル欲しいなぁ
2019/01/23(水) 12:46:10.71ID:s7nkbb3U
きも
2019/01/23(水) 16:31:27.63ID:rdYi3jIq
おまえがVtuberになってアイドルになればいいじゃないか
2019/01/23(水) 17:25:35.59ID:zR45o/Hn
koilin入門書には、作者が分かっていないのかjavaの文法が混じって分かりにくい
ごちゃ混ぜで混乱必至

結局kotlinlang.orgしか信用ならん
2019/01/23(水) 20:24:53.45ID:Uzogy9i5
Kotlin class destroyerって使ったことある人居る?
2019/01/23(水) 21:45:50.98ID:Pa8D4EMx
>>132
検索してフイタwww 日本語の読めるやつには居ないだろうなwwwww
2019/01/24(木) 02:16:31.75ID:HZcP4zux
Котлин
2019/01/24(木) 06:26:15.14ID:SamtYSKx
>>131
例えば?
136デフォルトの名無しさん
垢版 |
2019/01/24(木) 07:53:39.37ID:nbtsb27b
これから本を出す人は、SwiftとKotlinを同時に学べるような本を書いてほしいな
2019/01/24(木) 09:17:38.10ID:fuJ4iKDY
>>136
なんで?
2019/01/24(木) 09:40:30.41ID:iE4PKA0k
SwiftとKotlinは書き方が似すぎてて紛らわしいから、
どちらかの書き方が染み付くまでは同時にやらないほうがいいと思う
139デフォルトの名無しさん
垢版 |
2019/01/25(金) 00:52:03.47ID:oyKZWLKP
Go->Node(TypeScript)->Rust->Scala->Kotlin
去年の年末から色んな言語に入門してHelloCRUDしまくってたけど
やっと本命見つけたわ。これは流行るで。ほんま。
2019/01/25(金) 06:46:14.56ID:SWXByf/r
>>139
フレームワークはSpring? Ktor?
2019/01/25(金) 07:20:23.97ID:PIdTSIvJ
Sparkも良くできてるから選択肢に加えてあげて
日本だと空気だけど海外の事例だとめっちゃ使われてる
2019/01/25(金) 09:23:10.32ID:cY+a6SZr
Sparkは名前変えろ
Apache Sparkと紛らわしいから絶対に流行らん
2019/01/25(金) 09:40:00.17ID:84FUhWJo
ことりん☆
2019/01/25(金) 13:25:04.49ID:ra6+4Hwa
>>138
紛らわしいけど、両方同時に学べる人に書籍が必要とは思えない。
2019/01/25(金) 15:30:25.59ID:PIdTSIvJ
>>142
これ。まじでこれ。
ググラビリティ低すぎて辛い。
2019/01/25(金) 15:52:10.81ID:aoOWMbCl
ググラビリティwww
2019/01/25(金) 16:10:17.86ID:cY+a6SZr
ITにいて Apache Spark 知らないとかアホ丸出しだから作者が Spark なんて名前を付けている時点で不安になるのが当然で、普通は避ける
それなのに Spark 使ってる奴はそいつも Apache Spark を知らない可能性が高く、同様にアホ丸出し
2019/01/25(金) 16:59:39.24ID:2xvx7HDE
>>147
作者が知らないも何もApache Sparkの方が後発だし、その頃にはSpark Frameworkは今さら改名できないくらい広く使われてたぞ
149デフォルトの名無しさん
垢版 |
2019/01/25(金) 18:04:32.01ID:fUiZiF+t
>>147はアホを丸出しにしてみたかったのかも知れない。
150デフォルトの名無しさん
垢版 |
2019/01/25(金) 19:52:16.96ID:h/3l4eZA
君とSpark
2019/01/25(金) 20:15:44.23ID:PIdTSIvJ
>>147
これは恥ずかしい
2019/01/25(金) 21:28:25.32ID:NpmoGBI+
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"))
の行をコメントにすると普通に起動する

本当はラジオボタンで選んでバックグラウンドを変える処理だけど、抜き出してやってみてもうまくいかない
2019/01/25(金) 21:40:17.98ID:9WShTN4K
流行るわけないとか言ってるあたり、マジで最近出てきたフレームワークだと思ってたんだろうな
Javaのマイクロフレームワークとしてはほぼデファクトなのに
2019/01/25(金) 21:41:18.91ID:9WShTN4K
>>152
エラーメッセージに答えが書いてあると思うよ
2019/01/25(金) 21:58:54.35ID:NpmoGBI+
>154
コンパイルは普通に通り、ワーニングも出ない
ただ、アプリは起動直後に停止してしまう。

デバッグ用のスマホが悪いかと、別の機種つないでみても同じく起動直後に停止して

MyApplicationが停止しました

と表示される
2019/01/25(金) 22:30:34.06ID:T4sCfJsj
なんでAndroidスレで聞かないわけ?
エラーメッセージ読めないのと一緒なの?
2019/01/25(金) 22:30:36.78ID:pxW0IIRd
所謂おまじないはともかくとして
入門書や入門サイトが最初に教えるべきは println と throw RuntimeException() だと思う
最初に転び方だわ
2019/01/25(金) 22:48:55.25ID:NpmoGBI+
ありがとございます
すこしスレチみたいなので、こっちでもう少し調べてみます。
2019/01/25(金) 23:56:18.60ID:k0QCMDX+
>>158
ちょっと暇だから相手してやるよ
ほんとに LinearLayout 使ってる?最近の環境で新規アプリ作ったら ConstraintLayout だと思うんだけど

たぶんここが
val background = findViewById<LinearLayout>(R.id.back) as LinearLayout
こうだ
val background = findViewById<ConstraintLayout>(R.id.back)
2019/01/25(金) 23:57:28.33ID:k0QCMDX+
ちょっと面白いと思ったのは、ConstraintLayout に対して
val background = findViewById<LinearLayout>(R.id.back) as LinearLayout
background.setBackgroundColor(Color.parseColor("#FF0000"))
これだと val background = 〜の行で ClassCastException で落ちるのに、

background.setBackgroundColor をコメントアウトすると落ちずに普通に動いちゃうのね
これは background が使われないなら background へキャストして代入する処理自体を kotlin が無効化しちゃうのかな
2019/01/27(日) 18:18:09.78ID:jDwbvKDS
いろいろな意見を参考にやってみました

原因
コンパイルエラーは出なかったけどIDが変なところをさしていて、カラー情報を書き込んだ瞬間に落ちていました。

対処1
actibity_main.xmに
android:id="@+id/back"を消して

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android";
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でした

ありがとうございました
2019/01/27(日) 19:32:56.92ID:dhHHmXdZ
>>161
>>154のエラーメッセージ >>157のRuntimeException >>160のClassCastException
これらはどれも実行時エラーのことで、それを表示する方法や読み解き方をググるなりした方が良いと思うよ
今後のためにね
163デフォルトの名無しさん
垢版 |
2019/01/27(日) 21:32:10.99ID:jv36ci7O
>>140
Ktorやで
2019/01/28(月) 00:27:33.91ID:A5w6Cdea
圭太
2019/01/28(月) 09:34:18.83ID:j8L/fU4R
Ktorええよな、今作ってるAPIサーバーで使ってる。
Webアプリにはあんまり向かなそうだけど
2019/01/28(月) 10:43:40.13ID:c8FVptT0
幸太
2019/01/28(月) 10:51:26.03ID:qhu0cqfw
古都鈴
2019/01/28(月) 18:09:48.33ID:YkAtt80R
昔、古都ひかるってAV女優が好きだったの思い出した
2019/01/28(月) 18:25:17.41ID:ncjyAVYK
ググったけどお前微妙な趣味してるな
2019/01/28(月) 18:43:54.94ID:qhu0cqfw
>>168
ワイも好きでした
2019/01/28(月) 18:44:53.31ID:SEDlCRnu
>>165
Webアプリしようと思ってKtor勉強中なのだが、向いてないのか...
172デフォルトの名無しさん
垢版 |
2019/01/28(月) 18:45:00.57ID:MtItNdsU
今から考えればそうだが
昔はあんなのでもレベル高かった気がする
あの頃のやつだと河井さくらとかいう人が文字通り面白かったし水野栞も良かった

今は顔面偏差値すごい底上げされてて嬉しい
2019/01/28(月) 18:54:36.48ID:qhu0cqfw
今でも通用すると思うで
2019/01/28(月) 19:24:55.14ID:j8L/fU4R
>>171
Ktorでももちろん作れるけど、ログイン前提のWebアプリを作るなら自分で作らなくちゃいけない部品が多い。
大人しくSpring使っておけばそこらへんは全部用意されてる。
2019/01/28(月) 19:28:08.60ID:ncjyAVYK
>>171
Ktorはいわゆるマイクロフレームワークに分類されるフレームワークだから、ガチガチのWebアプリを作るのはめんどいよ
まあ認証やらセッション管理やらDBやらのことだから最初に一度作ってしまえば後は別に面倒なことはないけど
176デフォルトの名無しさん
垢版 |
2019/01/29(火) 08:13:36.09ID:Yq72SlCs
>>165
いいよね。SpringBootと棲み分けできそうやし。

ところでどんな構成(アーキテクチャ)で使ってる?
ワイはもうKtorならRepository無いほうがええような気がしてきてるんやが。
177デフォルトの名無しさん
垢版 |
2019/01/29(火) 08:36:23.24ID:Yq72SlCs
https://ideone.com/Xghedx

ExposedではUserTable2に便利メソッドが生えるのでRepository分けても委譲とentity変換ばっかりになりそうだったから
それならModelクラスと同じ場所に置いて、DB変更時にミスりにくい方がいいかと思った。
こんな構成で作ってみてるんだけど、どう思う?
2019/01/29(火) 12:07:29.18ID:Ghu5z8kR
>>177
その割り切った作りはいいと思う。特にチームが大きく無いならメリットの方が多いんじゃないかな。

俺はAPIサーバーと連動するプログラムも同時開発してて、共有できるものは共有してさせるためにクリーンアーキテクチャにしてるからrepositoryも含めてクラスはやたら多くなってるけども。
2019/01/29(火) 23:38:56.61ID:rUlqj1XI
>177
Ktorみていて、データベース接続部分がないような気がしていたけど、やっぱりExposedを使うのか.
180デフォルトの名無しさん
垢版 |
2019/01/30(水) 08:07:46.80ID:5baYxL1g
>>178
そしたらちょっと作りきってみるわ。ありがと。

>>179
Kotlin製で統一しようと思ったらそうなるね。
2019/01/30(水) 17:18:23.70ID:JsLx868V
>>179
ExposedでもMyBatisでもなんでもお好きなものをお使い下さいってスタンスだな
めんどいから標準で何か入れてくれるような仕組みがあれば楽なんだけども
2019/02/01(金) 00:51:36.05ID:HFNNmxMu
>>145
ググラビティすき
2019/02/01(金) 06:19:43.90ID:oyUXC//m
ぐぐらびりてぃって日本だけかと思ってたら海外でも普通に使われてるのな
google(検索する)って動詞とセットで辞書に載っててわろたわw
184デフォルトの名無しさん
垢版 |
2019/02/01(金) 12:52:22.08ID:5o/o/nGk
動詞か。とすると過去形が googled か。
2019/02/01(金) 13:06:37.22ID:ad6+KOec
むしろ日本よりも英語圏での方がよく使われてる気がする
海外のフォーラムとかで普通に見る
2019/02/01(金) 18:28:47.94ID:Oa2LgpWH
んじゃヤフーでググれもあながち間違いじゃない?
ソニーのファミコン的な
187デフォルトの名無しさん
垢版 |
2019/02/01(金) 21:35:19.79ID:5o/o/nGk
Infoseek と Exite もよろしく
2019/02/02(土) 07:20:45.10ID:vIqKCsXY
ビンガビリティ
強そう
189デフォルトの名無しさん
垢版 |
2019/02/02(土) 12:34:49.40ID:ecMf0cvm
Anko使ってる?
2019/02/02(土) 20:52:18.84ID:rNm5OL0i
Unko?
2019/02/02(土) 21:18:44.79ID:60g8Sasz
大体レイアウトとロジックが混在してるのは良くないねってことで
レイアウトはxnlファイルに分離するようにしたんだと思うんだけど
何でAnkoってまたレイアウトとロジックを混在させるようなことしてんの
時代に逆行してるだけでは
2019/02/02(土) 21:38:35.91ID:mZCa7M9L
>>191
アーキテクチャ上重要なのはビューとロジックの分離
一方で、レイアウトとロジックの分離というのはビューに閉じた話であり、
マークアップエンジニア(笑)とフロントエンドエンジニア(笑)の分業をしやすくするだけのものでしかない
フロントエンドエンジニアが十分有能でマークアップエンジニア(笑)の仕事も自分でこなせるなら分ける必要は全く無い
2019/02/02(土) 21:43:01.16ID:hUtwc62g
流行りのキーワード並べてドヤ顔
2019/02/03(日) 07:45:41.73ID:gLy6KBGU
レイアウトの中にロジックがダラダラ書かれたら見通し悪くてUnkoだけどそこは経験とコード規約とレビューで制御できる
適正なメソッド分割は主に人間の仕事であってライブラリーの責務ではない
XMLの欠点とDSLの利点はGitHubのWikiで説明されてる
設計開発にイチイチXML使うのは微妙じゃね?DSLとかいいよな!ってのは時流でもある
だから少なくとも時代に逆行しているだけということはない
2019/02/03(日) 10:09:31.17ID:nQr97LtT
いーや、Ankoは糞
2019/02/03(日) 12:29:21.29ID:Wt38prvY
anko味のunko
2019/02/03(日) 12:36:56.63ID:FHrrfvzD
unko味のankoとanko味のunko
2019/02/03(日) 15:59:31.11ID:sWvJHh2u
あんこ餅食いたくなってきたからスーパー行ってくる
2019/02/03(日) 18:35:49.59ID:FHrrfvzD
Anko程の糞はない
2019/02/03(日) 21:27:31.59ID:WjHZzJrh
気になってるんやがkotlin nativeが完成したらgoは駆逐できるんやろか。
それともシングルバイナリやら並列化でgoのメリット残るんやろか。
2019/02/03(日) 21:58:54.28ID:OYz8YI9S
>>200
現実的に考えると、全く話題にもならずにひっそり消える可能性が一番高いよ
kotlin nativeが
202デフォルトの名無しさん
垢版 |
2019/02/03(日) 22:10:09.65ID:WjHZzJrh
マジかあ。Scala状態は残念やのー。
俺にキラーアプリ作れるような力があればなぁ。。
203デフォルトの名無しさん
垢版 |
2019/02/03(日) 22:19:22.36ID:WjHZzJrh
githubでkotlin-native使ってるプロジェクト探してみたけど、確かにあんまり盛り上がってる感じではないね。
今作ってるクソアプリが一段落ついたら何か作ってみよう。
2019/02/03(日) 22:43:39.24ID:0oNu2+nX
アプリよりFWだよな
2019/02/03(日) 22:49:54.08ID:OYz8YI9S
「オーケーグーグル、エロくて楽しいアプリ作って」でエロくて楽しいkotlin nativeアプリのソースが生成されるAIを作れば流行る
2019/02/03(日) 23:03:35.29ID:hpvKsGCb
Kotlin/Native自体は現在進行中のSubstrate VMが出来上がるとやや辛い立ち位置になる

でもKotlin全体としては間接的にエコシステムが大きく強化されるし
Kotlin/Nativeから「Kotlin with Substrate VM」への移行は
性質的に割と容易なものになる期待もあるから使っても大丈夫だと思う

補足だけど Substrate VM はOracle主導のオープンソースプロジェクトGraalの一部で
JavaバイトコードをAOTするもの、
これによりjavaパッケージが使えるKotlin/JVMのままネイティブ化出来るようになる
Linux向けは出来ていてWindowsやiOSなどはまだこれから
2019/02/03(日) 23:43:07.23ID:hpvKsGCb
ちなみにAndroid Runtimeも同様にAOTしている
こっちはJDKをGoogleが好きなように取捨選択してるのでJava互換性テストは通らない

Android Runtimeの技術を利用してJava(Kotlin/JVM含む)からiOS用のネイティブを生成してるのが
RoboVMやMulti-OS Engine

Substrate VMはこれら(Kotlin/Native含む)に対して
後追いだけどOpenJDKフルサポートのAOT、ということになる
出来上がるまでまだかなりの時間が掛かりそうだけど
2019/02/04(月) 00:38:33.17ID:udiwpstp
結局Java版Xamarinを作ろうとしてるだけだな
目的不在で技術だけが独り歩きしてる感すごい
2019/02/04(月) 06:16:54.78ID:jDY9Ysuj
>>200
無理だね。というかそもそもGoの得意分野とKotlin(native)の得意分野がかぶってないから現時点であまり競合してない
210デフォルトの名無しさん
垢版 |
2019/02/04(月) 08:21:30.46ID:+iZnVKUh
>>209
そうなんか。kotlin nativeの得意分野って何なんや?
2019/02/04(月) 10:20:12.21ID:RwYNgFWa
>>208
Graalの主目的はHotSpotのJITコンパイラ(C2)の刷新

20年以上前に設計され、修正が積み上げられたC++コードなので
保守し辛く新技術の導入も困難とのこと

JITコンパイラ(Graal本体)はインタプリタやAOTとも関連が深く、
それらも考慮したエコシステムとしてサブプロジェクトを内包してる
Truffle / Sulong / Substrate VM
2019/02/04(月) 10:38:08.20ID:RwYNgFWa
>>210
Kotlinの対応プラットフォームを広げるものだから
強いて言うならKotlin/JVMと同じく通常アプリでは

Goは並列処理や低レイテンシGC(リアルタイム用途)など
システム寄りが得意
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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