X



Kotlin 5

■ このスレッドは過去ログ倉庫に格納されています
0141デフォルトの名無しさん
垢版 |
2019/01/25(金) 07:20:23.97ID:PIdTSIvJ
Sparkも良くできてるから選択肢に加えてあげて
日本だと空気だけど海外の事例だとめっちゃ使われてる
0147デフォルトの名無しさん
垢版 |
2019/01/25(金) 16:10:17.86ID:cY+a6SZr
ITにいて Apache Spark 知らないとかアホ丸出しだから作者が Spark なんて名前を付けている時点で不安になるのが当然で、普通は避ける
それなのに Spark 使ってる奴はそいつも Apache Spark を知らない可能性が高く、同様にアホ丸出し
0148デフォルトの名無しさん
垢版 |
2019/01/25(金) 16:59:39.24ID:2xvx7HDE
>>147
作者が知らないも何もApache Sparkの方が後発だし、その頃にはSpark Frameworkは今さら改名できないくらい広く使われてたぞ
0149デフォルトの名無しさん
垢版 |
2019/01/25(金) 18:04:32.01ID:fUiZiF+t
>>147はアホを丸出しにしてみたかったのかも知れない。
0150デフォルトの名無しさん
垢版 |
2019/01/25(金) 19:52:16.96ID:h/3l4eZA
君とSpark
0152デフォルトの名無しさん
垢版 |
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"))
の行をコメントにすると普通に起動する

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

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

MyApplicationが停止しました

と表示される
0156デフォルトの名無しさん
垢版 |
2019/01/25(金) 22:30:34.06ID:T4sCfJsj
なんでAndroidスレで聞かないわけ?
エラーメッセージ読めないのと一緒なの?
0157デフォルトの名無しさん
垢版 |
2019/01/25(金) 22:30:36.78ID:pxW0IIRd
所謂おまじないはともかくとして
入門書や入門サイトが最初に教えるべきは println と throw RuntimeException() だと思う
最初に転び方だわ
0158デフォルトの名無しさん
垢版 |
2019/01/25(金) 22:48:55.25ID:NpmoGBI+
ありがとございます
すこしスレチみたいなので、こっちでもう少し調べてみます。
0159デフォルトの名無しさん
垢版 |
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)
0160デフォルトの名無しさん
垢版 |
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 が無効化しちゃうのかな
0161デフォルトの名無しさん
垢版 |
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でした

ありがとうございました
0162デフォルトの名無しさん
垢版 |
2019/01/27(日) 19:32:56.92ID:dhHHmXdZ
>>161
>>154のエラーメッセージ >>157のRuntimeException >>160のClassCastException
これらはどれも実行時エラーのことで、それを表示する方法や読み解き方をググるなりした方が良いと思うよ
今後のためにね
0163デフォルトの名無しさん
垢版 |
2019/01/27(日) 21:32:10.99ID:jv36ci7O
>>140
Ktorやで
0165デフォルトの名無しさん
垢版 |
2019/01/28(月) 09:34:18.83ID:j8L/fU4R
Ktorええよな、今作ってるAPIサーバーで使ってる。
Webアプリにはあんまり向かなそうだけど
0172デフォルトの名無しさん
垢版 |
2019/01/28(月) 18:45:00.57ID:MtItNdsU
今から考えればそうだが
昔はあんなのでもレベル高かった気がする
あの頃のやつだと河井さくらとかいう人が文字通り面白かったし水野栞も良かった

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

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

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

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

>>179
Kotlin製で統一しようと思ったらそうなるね。
0181デフォルトの名無しさん
垢版 |
2019/01/30(水) 17:18:23.70ID:JsLx868V
>>179
ExposedでもMyBatisでもなんでもお好きなものをお使い下さいってスタンスだな
めんどいから標準で何か入れてくれるような仕組みがあれば楽なんだけども
0183デフォルトの名無しさん
垢版 |
2019/02/01(金) 06:19:43.90ID:oyUXC//m
ぐぐらびりてぃって日本だけかと思ってたら海外でも普通に使われてるのな
google(検索する)って動詞とセットで辞書に載っててわろたわw
0184デフォルトの名無しさん
垢版 |
2019/02/01(金) 12:52:22.08ID:5o/o/nGk
動詞か。とすると過去形が googled か。
0185デフォルトの名無しさん
垢版 |
2019/02/01(金) 13:06:37.22ID:ad6+KOec
むしろ日本よりも英語圏での方がよく使われてる気がする
海外のフォーラムとかで普通に見る
0186デフォルトの名無しさん
垢版 |
2019/02/01(金) 18:28:47.94ID:Oa2LgpWH
んじゃヤフーでググれもあながち間違いじゃない?
ソニーのファミコン的な
0187デフォルトの名無しさん
垢版 |
2019/02/01(金) 21:35:19.79ID:5o/o/nGk
Infoseek と Exite もよろしく
0189デフォルトの名無しさん
垢版 |
2019/02/02(土) 12:34:49.40ID:ecMf0cvm
Anko使ってる?
0191デフォルトの名無しさん
垢版 |
2019/02/02(土) 21:18:44.79ID:60g8Sasz
大体レイアウトとロジックが混在してるのは良くないねってことで
レイアウトはxnlファイルに分離するようにしたんだと思うんだけど
何でAnkoってまたレイアウトとロジックを混在させるようなことしてんの
時代に逆行してるだけでは
0192デフォルトの名無しさん
垢版 |
2019/02/02(土) 21:38:35.91ID:mZCa7M9L
>>191
アーキテクチャ上重要なのはビューとロジックの分離
一方で、レイアウトとロジックの分離というのはビューに閉じた話であり、
マークアップエンジニア(笑)とフロントエンドエンジニア(笑)の分業をしやすくするだけのものでしかない
フロントエンドエンジニアが十分有能でマークアップエンジニア(笑)の仕事も自分でこなせるなら分ける必要は全く無い
0194デフォルトの名無しさん
垢版 |
2019/02/03(日) 07:45:41.73ID:gLy6KBGU
レイアウトの中にロジックがダラダラ書かれたら見通し悪くてUnkoだけどそこは経験とコード規約とレビューで制御できる
適正なメソッド分割は主に人間の仕事であってライブラリーの責務ではない
XMLの欠点とDSLの利点はGitHubのWikiで説明されてる
設計開発にイチイチXML使うのは微妙じゃね?DSLとかいいよな!ってのは時流でもある
だから少なくとも時代に逆行しているだけということはない
0200デフォルトの名無しさん
垢版 |
2019/02/03(日) 21:27:31.59ID:WjHZzJrh
気になってるんやがkotlin nativeが完成したらgoは駆逐できるんやろか。
それともシングルバイナリやら並列化でgoのメリット残るんやろか。
0201デフォルトの名無しさん
垢版 |
2019/02/03(日) 21:58:54.28ID:OYz8YI9S
>>200
現実的に考えると、全く話題にもならずにひっそり消える可能性が一番高いよ
kotlin nativeが
0202デフォルトの名無しさん
垢版 |
2019/02/03(日) 22:10:09.65ID:WjHZzJrh
マジかあ。Scala状態は残念やのー。
俺にキラーアプリ作れるような力があればなぁ。。
0203デフォルトの名無しさん
垢版 |
2019/02/03(日) 22:19:22.36ID:WjHZzJrh
githubでkotlin-native使ってるプロジェクト探してみたけど、確かにあんまり盛り上がってる感じではないね。
今作ってるクソアプリが一段落ついたら何か作ってみよう。
0205デフォルトの名無しさん
垢版 |
2019/02/03(日) 22:49:54.08ID:OYz8YI9S
「オーケーグーグル、エロくて楽しいアプリ作って」でエロくて楽しいkotlin nativeアプリのソースが生成されるAIを作れば流行る
0206デフォルトの名無しさん
垢版 |
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などはまだこれから
0207デフォルトの名無しさん
垢版 |
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、ということになる
出来上がるまでまだかなりの時間が掛かりそうだけど
0208デフォルトの名無しさん
垢版 |
2019/02/04(月) 00:38:33.17ID:udiwpstp
結局Java版Xamarinを作ろうとしてるだけだな
目的不在で技術だけが独り歩きしてる感すごい
0209デフォルトの名無しさん
垢版 |
2019/02/04(月) 06:16:54.78ID:jDY9Ysuj
>>200
無理だね。というかそもそもGoの得意分野とKotlin(native)の得意分野がかぶってないから現時点であまり競合してない
0210デフォルトの名無しさん
垢版 |
2019/02/04(月) 08:21:30.46ID:+iZnVKUh
>>209
そうなんか。kotlin nativeの得意分野って何なんや?
0211デフォルトの名無しさん
垢版 |
2019/02/04(月) 10:20:12.21ID:RwYNgFWa
>>208
Graalの主目的はHotSpotのJITコンパイラ(C2)の刷新

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

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

Goは並列処理や低レイテンシGC(リアルタイム用途)など
システム寄りが得意
0213デフォルトの名無しさん
垢版 |
2019/02/04(月) 12:40:41.74ID:Mgc+6WQD
Kotlin nativeは悪く言えば現状では得意分野などはっきり言って存在しないし、良く言えばこれから何に使ってもいいとも言える
Goの代わりに使うことももちろん可能
0217デフォルトの名無しさん
垢版 |
2019/02/05(火) 06:59:09.94ID:+mMHH6yh
マジで聞いたことすらなかった
悪くなさそうだけど、英語も含めて情報が少なすぎて趣味以外には使えないかな
0218デフォルトの名無しさん
垢版 |
2019/02/05(火) 07:02:18.31ID:+mMHH6yh
軽く調べた感じだからよく分かってないんだけど、これ例えばSparkと比べて何が良いの?
0219デフォルトの名無しさん
垢版 |
2019/02/05(火) 09:02:22.82ID:855O/xU5
Kotlin を今のプロジェクトに使いたいけど、eclipse とか言う糞IDE使ってて相性悪すぎて笑えない
SWT とか JFace とかでUI作ってるから、eclipse を外すのは無理だし
0220デフォルトの名無しさん
垢版 |
2019/02/05(火) 09:40:26.01ID:NCwCR2JI
ググると槍投げ画像が沢山出てくるな・・・
0222デフォルトの名無しさん
垢版 |
2019/02/05(火) 10:17:58.97ID:LEHFEUGy
>>216
宇宙刑事っぽさもあるし、使うと風呂釜が綺麗になって身体が芯からあたたまりそうな感じもする
0226デフォルトの名無しさん
垢版 |
2019/02/05(火) 11:27:24.21ID:NCwCR2JI
宇宙刑事 Javalin
0229デフォルトの名無しさん
垢版 |
2019/02/05(火) 12:42:55.22ID:NCwCR2JI
リン付ければなんでも可愛らしくなると思いやがってそうはいかねえぞべらんめえ ←江戸っ子
0231デフォルトの名無しさん
垢版 |
2019/02/05(火) 15:25:14.63ID:NCwCR2JI
うざりん
0232デフォルトの名無しさん
垢版 |
2019/02/06(水) 19:35:52.56ID:59jOjkSQ
上でシステム系にはGoみたいに書かれてるんだけど、kotlin/nativeはGoより遅いのかな。
現状ではそうなのかも知れないけど、最終的にはGoと同等の速度が出せるポテンシャル(仕組み)だと
思ってるんだけどそうでもないの?
0234デフォルトの名無しさん
垢版 |
2019/02/06(水) 20:35:25.96ID:gjOdQxAx
Goに比べたら遥かに複雑怪奇な言語だから最適化は不利だろう
JVMの挙動をエミュレーションするための無駄な処理は少なからず必要だろうし
0236デフォルトの名無しさん
垢版 |
2019/02/07(木) 05:59:54.51ID:Ftq4Fy0N
>>232
構造的に無理
Goは構造をシンプルに保って高速軽量を維持するために言語仕様を必要最低限にしてるから、
書く人間の使いやすさを追求してるこちょりんとは根本的に目指してるものからして違う
0239デフォルトの名無しさん
垢版 |
2019/02/07(木) 10:01:05.59ID:ygKhuk/7
>>238
根幹の言語機能の所有権とライフタイムにより
C++でのムーブセマンティクスやRAIIみたいなのをより高度にコンパイラが認識出来るので
速度(効率)を保ったまま安全性を高められてる
0240デフォルトの名無しさん
垢版 |
2019/02/07(木) 10:55:21.09ID:esduY2Xd
Goはフットプリントも小さいからな。
C++だと、iostreamを静的リンクしただけでもそこそこ大きくなるのに。
■ このスレッドは過去ログ倉庫に格納されています

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