- 1 名前:デフォルトの名無しさん mailto:sage [2018/12/08(土) 20:29:41.41 ID:oXOQORcd.net]
- JetBrainsが開発した期待の新言語、Androidの公式開発言語にしてサーバーサイドもなんでもいけるKotlinについて語りましょう
※前スレ https://mevius.5ch.net/test/read.cgi/tech/1531818027/
- 2 名前:デフォルトの名無しさん mailto:sage [2018/12/08(土) 20:32:31.24 ID:oXOQORcd.net]
- 公式サイト
https://kotlinlang.org/ 公式ブログ https://blog.jetbrains.com/kotlin コードを貼れる所 rextester.com/l/kotlin_online_compiler オンラインコンパイラ https://ideone.com/ Google、KotlinをAndroidアプリ開発言語に選定 jp.techcrunch.com/2017/05/18/20170517google-makes-kotlin-a-first-class-language-for-writing-android-apps/ Library support for Kotlin coroutines https://github.com/Kotlin/kotlinx.coroutines
- 3 名前:デフォルトの名無しさん [2018/12/09(日) 14:57:10.33 ID:rgDJoSoN.net]
- O2
- 4 名前:デフォルトの名無しさん mailto:sage [2018/12/11(火) 17:55:58.71 ID:ZdF1Nxsw.net]
- c#でasnc/awaitを学んだから、そのノリでhogeAsync : Defered<Int>とか量産してたがこれclassic wayで駄目なんだ。
コルーチンムズいぞ。
- 5 名前:デフォルトの名無しさん mailto:sage [2018/12/11(火) 18:12:47.19 ID:ZdF1Nxsw.net]
- 今までクラス設計するとき、
class Hoge { fun action1(): Deferred<Int> { return GlobalScope.async() {} } fun cation2(): Deferred<String> {} } GlobalScopeなのはいずれどうにかしようととりあえず脇に置いといて、こう設計してたがダメっぽいな? 誰か詳しい人いないの?
- 6 名前:デフォルトの名無しさん mailto:sage [2018/12/11(火) 20:17:24.17 ID: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 名前:デフォルトの名無しさん mailto:sage [2018/12/11(火) 21:33:56.96 ID:m02gDU95.net]
- C#のasync = suspend って思っとけば大体おk
- 8 名前:デフォルトの名無しさん mailto:sage [2018/12/11(火) 21:59:01.90 ID:ZdF1Nxsw.net]
- async = suspendみたいのはだいたい分かるんだけど、>>6みたく、suspend関数を大量に用意するのがkotlinスタイルらしいんだけど、
じゃ、クラス設計するとき、誰がコルーチンビルダーでコルーチン作るの?って悩んでて。 例えば、「ライブラリ」として分割するケースを考えてみるとして、まず、REST APIを内部でたたいて結果を返すライブラリを作るとき、 class WebService { suspend fun action1() suspend fun action2() } みたく、全部suspend関数として外部にpublicなAPIとして公開するの??
- 9 名前:デフォルトの名無しさん mailto:sage [2018/12/11(火) 22:05:51.76 ID:ZdF1Nxsw.net]
- で、例えば、更に上のライブラリを内部で使って、キャッシュ機能だとかを提供するライブラリを作るとき、
(androidアプリの開発で見るRepositoryパターン)みたいなライブラリを作るときも class Repository { suspend fun action1() { webServcie.action1()など} suspend fun action2() } で、やっぱsuspend関数を公開して、このライブラリを使ってつくるアプリで、 launch() { repo.action1() } でここでコルーチンビルダーを使う??みたいな感じ?
- 10 名前:デフォルトの名無しさん mailto:sage [2018/12/11(火) 22:13:49.36 ID:ZdF1Nxsw.net]
- ちなみに>>6のcoroutineScope関数調べると、これ新しいスコープ作って呼び出し元からキャンセルできなくなるらしいから、キャンセルできるように
するには class Hoge { suspend fun action1(): Int { delay(2000) return 1 } suspend fun cation2(): String { delay(3000) return "hoge" } } でいいってことだよね?
- 11 名前:デフォルトの名無しさん mailto:sage [2018/12/11(火) 23:19:00.56 ID:ZdF1Nxsw.net]
- https://youtu.be/9HUFo4WyDPI?t=2178
見てたら、例でcoroutineScope使ってたな。 英語何言ってるか全然わからねぇけどw Structured Concurrency云々。 >>6は相当なプロフェッショナルと見た。
- 12 名前:デフォルトの名無しさん mailto:sage [2018/12/12(水) 12:16:15.38 ID:ehb+zc+O.net]
- つkotlinx
- 13 名前:デフォルトの名無しさん mailto:sage [2018/12/12(水) 13:12:24.30 ID:XfY7kHOC.net]
- Crystalのスレどこ?
- 14 名前:デフォルトの名無しさん mailto:sage [2018/12/12(水) 21:24:09.19 ID:jSpBUsB/.net]
- 非suspendも可能な場合に、suspend版と非suspend版を内部的に両方生成するオプションが欲しい
Kotlin/JS使ってるとJavaScriptのasyncより書きやすい(await相当がデフォだから)けど それでももう一手欲しいところ
- 15 名前:デフォルトの名無しさん [2018/12/18(火) 21:12:59.14 ID:h6+jV75s.net]
- kotlinてJavaがなくてもwindowsとMacで動くの?
- 16 名前:デフォルトの名無しさん mailto:sage [2018/12/18(火) 21:34:52.63 ID:yrNJ9cJf.net]
- いけるいける
- 17 名前:デフォルトの名無しさん [2018/12/18(火) 22:25:09.54 ID:92SsvGE7.net]
- Kotlin Native なら、な。
- 18 名前:デフォルトの名無しさん mailto:sage [2018/12/19(水) 09:00:14.59 ID:PF0aHy1W.net]
- Kotlin/NativeならKotlinコンパイラもLLVMだけが必要でJavaいらないの?
- 19 名前:デフォルトの名無しさん mailto:sage [2018/12/19(水) 09:45:25.24 ID:ab3sNZA3.net]
- そうだよ
かわりに愛情と寛容と忍耐と妥協が必要
- 20 名前:デフォルトの名無しさん [2018/12/19(水) 09:49:46.24 ID:WO8V2g+e.net]
- >>18
ああ。要らなかったよ。
- 21 名前:やってみな。 []
- [ここ壊れてます]
- 22 名前:デフォルトの名無しさん mailto:sage [2018/12/19(水) 21:31:55.75 ID:/PJ/xgrD.net]
- いやコンパイラ自体には必要でしょ
初期実装は全部Javaで、今でもかなり残ってる 自社製品のIntelliJがJVM前提だし統合もあるからNativeでのセルフホスティングは目指してないと思うよ
- 23 名前:デフォルトの名無しさん mailto:sage [2018/12/20(木) 00:01:10.39 ID:hst6D+g/.net]
- やっとマジレスが出てくれて若干安心した
- 24 名前:デフォルトの名無しさん [2018/12/20(木) 02:22:55.67 ID:6pIAvd2J.net]
- やがてコンパイラ自体も Kotlin native でコンパイルできるようになって完全に Java 不要になると思う。
- 25 名前:デフォルトの名無しさん mailto:sage [2018/12/20(木) 17:35:04.19 ID:FuA72n5Z.net]
- やっと林檎ユーザーに
泥は処理遅くて草 とか言われなくて済むんだね!
- 26 名前:デフォルトの名無しさん mailto:sage [2018/12/20(木) 19:18:48.12 ID:Jom6rq0W.net]
- コンパイラをKotlin native でコンパイルできるようになるのは比較的早くできるだろうけど
IntellijみたいなGUIの総合開発環境をマルチプラットフォームで動かすのをJavaなしでやるのは大変だろう。
- 27 名前:デフォルトの名無しさん [2018/12/21(金) 09:15:12.67 ID:mfb3XB1u.net]
- GUIの部分が大変かもな
- 28 名前:デフォルトの名無しさん mailto:sage [2018/12/21(金) 12:11:36.66 ID:gjfGeuPx.net]
- やるメリットもないだろうからやらんだろうな
- 29 名前:デフォルトの名無しさん mailto:sage [2018/12/21(金) 13:38:51.46 ID:I/9gCApZ.net]
- ただでさえVSCodeに追われてヤバいのに余計なことしてる余裕ないだろ
- 30 名前:デフォルトの名無しさん mailto:sage [2018/12/21(金) 13:49:31.79 ID:QUmSfmQB.net]
- なんだかんだでJVMは長生きすると信じてる
- 31 名前:デフォルトの名無しさん mailto:sage [2018/12/21(金) 15:27:32.04 ID:Tphe8pyQ.net]
- 長生きじゃなく、ただの延命処置だろ
- 32 名前:デフォルトの名無しさん [2018/12/21(金) 15:30:24.56 ID:mfb3XB1u.net]
- あ、そーだ。GUIはJavaScriptで書いてブラウザで実行させれば良い。
そのJavaScriptはKotlinのソースからコンパイルして作ったやつにすれば完璧。
- 33 名前:デフォルトの名無しさん mailto:sage [2018/12/21(金) 22:14:57.05 ID:8Iu4hnmd.net]
- アンケート入力の時間だ
https://blog.jetbrains.com/kotlin/2018/12/kotlin-census-2018/
- 34 名前:デフォルトの名無しさん mailto:sage [2018/12/21(金) 22:59:54.90 ID:/MQTzm2r.net]
- 項目多いな
- 35 名前:デフォルトの名無しさん [2018/12/22(土) 02:37:32.92 ID:JnEveBkB.net]
- いつの間にかこんな入門書が出ていた。但し Kindle 版のみだ(unlimited の人は 0 円で読める)。
速習 Kotlin amzn.asia/d/0ZiG6rB
- 36 名前:デフォルトの名無しさん mailto:sage [2018/12/25(火) 06:47:43.66 ID:1ThGctmt.net]
- メリーコトリン
- 37 名前:デフォルトの名無しさん [2018/12/25(火) 11:17:10.24 ID:yeWprDEr.net]
- つまんね
- 38 名前:デフォルトの名無しさん [2018/12/25(火) 19:25:24.16 ID:KSMuafeJ.net]
- 爆笑
- 39 名前:デフォルトの名無しさん mailto:sage [2018/12/26(水) 22:47:51.52 ID:5ub5SAQR.net]
- >>37
無理に>>36にて対抗しなくていいからww
- 40 名前:デフォルトの名無しさん mailto:sage [2018/12/27(木) 08:12:45.83 ID:DJ5Bt1eh.net]
- kotlinのコルーチンビルダーに渡す中断関数がレシーバー付きなのを止めてほしい。
public fun CoroutineScope.launch( context: CoroutineContext = EmptyCoroutineContext, start: CoroutineStart = CoroutineStart.DEFAULT, block: suspend CoroutineScope.() -> Unit blockパラメータにレシーバつけるんじゃねぇよ。というもの、なんでコルーチンビルダーに渡すルートの中断関数だけCorotineScopeにアクセスできるんだよ。 ルート以外の中断関数からはアセクスできないのに。この非対称性というか特別扱いやめて。
- 41 名前:デフォルトの名無しさん mailto:sage [2018/12/27(木) 08:17:42.92 ID:DJ5Bt1eh.net]
- 例えば、自分で定義した中断関数
suspend fun hoge() { } 内ではCoroutineScopeにアクセスできない。CoroutineScopeではなくCoroutineContextにはcoroutineContext関数経由でアセクスできるが。 こういう一貫性のなさはやめてほしい。なんか意味があるのかもしれんが。
- 42 名前:デフォルトの名無しさん mailto:sage [2018/12/27(木) 10:06:52.89 ID:g57/YEyR.net]
- ここじゃなくて公式に言ってこいよ
- 43 名前:デフォルトの名無しさん mailto:sage [2018/12/27(木) 23:27:31.48 ID:r4GKgwJE.net]
- >>32のアンケートに自由記載の欄があるから、そこで言うことは可能。
- 44 名前:デフォルトの名無しさん mailto:sage [2018/12/27(木) 23:47:52.20 ID:hAo/rJSd.net]
- >>39 >>40
CoroutineScopeはキャンセルの伝搬と構造化のためにあって意図的にそうなってる private funや全体制御クラスなどを除いては基本的に他所に渡しては駄目 渡された側がキャンセルすると子だけでなく親戚関係のものまで巻き込んでしまう スコープ直下のブロックは保護者のような役割になるので 渡さずに↓のようにしてスコープをネスト構造にするべき suspend fun hoge() = couroutineScope { }
- 45 名前:デフォルトの名無しさん [2019/01/02(水) 20:28:59.08 ID:MMKJrJD0.net]
- あけましておめでとうございます
ことりんもよろしくお願いします
- 46 名前:デフォルトの名無しさん mailto:sage [2019/01/02(水) 22:49:08.10 ID:sDzpRBwn.net]
- え?
- 47 名前:デフォルトの名無しさん mailto:sage [2019/01/03(木) 09:15:47.36 ID:h/ELqUHS.net]
- 山田さーん、>>44に座布団1枚持ってきて。
- 48 名前:デフォルトの名無しさん mailto:sage [2019/01/03(木) 10:25:22.96 ID:GKSM08/3.net]
- 座り小便した奴を持って来ました
- 49 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 18:42:28.96 ID:4PQEcpA5.net]
- supervisorScopeって上司っぽさがあるな
- 50 名前:デフォルトの名無しさん mailto:sage [2019/01/12(土) 11:30:26.17 ID:ygc4MJ1X.net]
- お前の勤務成績は丸見えだから
- 51 名前:デフォルトの名無しさん mailto:sage [2019/01/12(土) 12:51:17.46 ID:IzmxBuIw.net]
- そもそもcoroutinrScopeを他に渡して何をするつもりなんだろう
用途が思いつかない
- 52 名前:デフォルトの名無しさん [2019/01/14(月) 19:40:36.89 ID: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 名前:デフォルトの名無しさん mailto:sage [2019/01/14(月) 19:40:58.45 ID: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 名前:デフォルトの名無しさん mailto:sage [2019/01/14(月) 19:42:40.59 ID: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 名前:デフォルトの名無しさん mailto:sage [2019/01/14(月) 19:51:40.91 ID:mSU16be8.net]
- まず大事なこととして
・正確に伝える ・切り分けをしていく コンパイルエラーなのか実行時エラーなのか想定と違う動作なのか エラーであればどのような内容か 想定と違うのであれば想定と実際の両方を具体的に 実行可能な場合はログ出力を追加するなどして問題の箇所を絞り込む 技術者は答えより答えの出し方を知る方が大切
- 56 名前:デフォルトの名無しさん mailto:sage [2019/01/14(月) 19:54:33.86 ID:OowwBnZ2.net]
- >>54
コンパイルエラーです
- 57 名前:デフォルトの名無しさん mailto:sage [2019/01/14(月) 20:14:29.56 ID:pDL52XEr.net]
- AndroidStudio使っててどこがコンパイルエラーかわからないとかあんの?
- 58 名前:デフォルトの名無しさん mailto:sage [2019/01/14(月) 21:06:42.85 ID:eurbvKP4.net]
- まあぶっちゃけると「エラーが出て動かない」以上のことがさっぱりわからんことはあるにはある
IDEが表示するエラーが理解できるくらいならそもそも入門書など読まんw
- 59 名前:デフォルトの名無しさん mailto:sage [2019/01/14(月) 21:23:28.22 ID:fiLCWGOz.net]
- >>55
なぜエラーメッセージを読まないのか。せめて貼り付けろ
- 60 名前:デフォルトの名無しさん [2019/01/15(火) 00:32:52.94 ID:pIHkTAGg.net]
- Rなんとかは定義したの?
- 61 名前:デフォルトの名無しさん mailto:sage [2019/01/15(火) 01:25:57.81 ID:tO821mqa.net]
- >>51に当てはまるかは知らないけど
初心者って初心者向けの本を買うくせにちゃんと読まずに進めるんだよな 手順をすっ飛ばしてるパターンがほとんど
- 62 名前:デフォルトの名無しさん mailto:sage [2019/01/15(火) 01:38:02.87 ID:VjJwW0bc.net]
- >>59
あー文字定義してないのはいかにもありそうだな
- 63 名前:デフォルトの名無しさん [2019/01/15(火) 11:17:38.84 ID:uh3dx1w7.net]
- >>59
Rって、解説書でも唐突に出てくるんすけど、何を定義すればいいの?
- 64 名前:デフォルトの名無しさん mailto:sage [2019/01/15(火) 13:47:19.17 ID:1CaYwh4e.net]
- まずエラーメッセージを貼れ
- 65 名前:デフォルトの名無しさん mailto:sage [2019/01/15(火) 14:15:39.24 ID:pzxobvn7.net]
- >>62
そんな解説書は燃やせ Rクラスはxmlファイルの記述からAndroidStudioが(語弊あり)勝手に作成するリソース管理クラスだ xmlファイル(に転記するリソース名管理欄)での手動記述がミスってると生成失敗してRクラスなんぞ知らん系のエラーになる というかとっとと何も考えずに>>63するか餃子のラー油の小袋が半端にしか開かずに必ず指につく呪いにでもかかってしまえ
- 66 名前:デフォルトの名無しさん mailto:sage [2019/01/15(火) 15:05:34.53 ID:uh3dx1w7.net]
- >>64 dくす
エラーメッセージはたくさんありすぎて貼れないから貼ってない とりあえず自宅に戻ってからまた再現させる てゆーか、この程度のコードでバグる奴がなんで解説書を出版社から出せるんだよ まともな解説書ってないのかよ 尼見るともう一冊のほうもサンプルが動かんと書かれていて読む本がない
- 67 名前:デフォルトの名無しさん mailto:sage [2019/01/15(火) 16:58:26.54 ID:1CaYwh4e.net]
- サンプルコードがビルドできたからって何なんだ
そんなの目的にしても意味ない。必要な知識が吸収できればいいわけで。 サンプルコードをそのままビルドするアプローチじゃなく、 一旦空のプロジェクトを新規作成してそこに追加して動作確認するアプローチの方が 勉強になると思うけどなあ
- 68 名前:デフォルトの名無しさん mailto:sage [2019/01/15(火) 17:03:39.16 ID:1CaYwh4e.net]
- 新規作成しただけの状態なら確実にビルドが通るわけで
どこまでサンプルコードに近づいたら エラーが出るのか問題も切り分けやすい こういうのはもうAndroid関係ないし向いてないからしね
- 69 名前:デフォルトの名無しさん mailto:sage [2019/01/15(火) 17:21:56.05 ID:3lh9jTue.net]
- Androidアプリは「初心者の人に書籍通じて独学で覚えさせるのめんどくさいプログラミング技術ランキング」のベスト3常連だからな
なにせファイル1個やコマンド1発で収まらない
- 70 名前:デフォルトの名無しさん mailto:sage [2019/01/15(火) 18:24:55.36 ID:yTRP/eqO.net]
- エラーの見方も分からないレベルでいきなりAndroid本は飛ばしすぎだな
- 71 名前:デフォルトの名無しさん mailto:sage [2019/01/15(火) 23:41:09.53 ID:620Eb35B.net]
- 途中コメントアウトしてなんとか動いた
スマン、今日は時間切れ 最後、isEmpty()なんて使えないよ、と言われてたような・・・ 続きはまた明日
- 72 名前:デフォルトの名無しさん mailto:sage [2019/01/16(水) 11:02:30.64 ID:aTgtPKRZ.net]
- >>65
ほんとこれ 入門者の立場に立って書いてないからそうなるんだよ
- 73 名前:デフォルトの名無しさん mailto:sage [2019/01/16(水) 11:03:16.52 ID:aTgtPKRZ.net]
- >>64 だった
ごめん
- 74 名前:デフォルトの名無しさん [2019/01/16(水) 11:34:03.94 ID:vTKVQdGX.net]
- 馬鹿には無理
- 75 名前:デフォルトの名無しさん mailto:sage [2019/01/16(水) 13:16:59.84 ID:NBiSBr9E.net]
- 入門者は10年ROMってろ
- 76 名前:デフォルトの名無しさん mailto:sage [2019/01/16(水) 15:02:59.73 ID:c12bWRnm.net]
- >>54:エラーであればどのような内容か
>>55:コンパイルエラーです >>58 >>63:エラーメッセージ読め、貼れ >>65:たくさんありすぎて貼れない プログラミング言語より先に日本語と英語の勉強した方がいい
- 77 名前:デフォルトの名無しさん [2019/01/16(水) 15:05:34.92 ID:ECRqnYoc.net]
- _,,-'' ̄ ̄`-.、 / \
/ \ ,/ \ ,/ \ / ― ― ヽ / ― ― ヽ lヽ - 、 ! , _ | lヽ - 、 ! , _ | |r――-、_⊥ ,――'-、 |,-, |r――-、_⊥ ,――'-、 |,-, |::::::::::::::::/ |ヽ:::::::::::::::|-|'イ!| |::::::::::::::::/ |ヽ:::::::::::::::|-|'イ!| ト、__,,/: |: `、__,,/ ,|ソ/ ト、__,,/: |: `、__,,/ ,|ソ/ .| 、_ j| _,、 ,|-' .| 、_ j| _,、 ,|-' | /lll||||||||||l`、 ,| | /lll||||||||||l`、 ,| `i ,|||' ̄= ̄`|||、 / ト、 `i ,|||' ̄= ̄`|||、 / ト、 「|ヽ|ll||||||||||||||||| /i |::::\ 「|ヽ|ll||||||||||||||||| /i |::::\ ::::::\`!!||||||||||||!!' |::::::::\ /:::::\`!!||||||||||||!!' |::::::::::::::::::::::`ー-、.._ i |::::::::::::::\ /::::::::::::::`ー-、.._ i |::::::::::/:::::::::::::::::::::::::::::`ー-、. |:::::::::: /:::::::::::::::::::::::::::::::::::`ー-、. |:::::::::: ロムッテロ兄弟 ハントシー・ロムッテロ ハンツキー・ロムッテロ 1952〜 アメリカ 1955〜 アメリカ
- 78 名前:デフォルトの名無しさん mailto:sage [2019/01/16(水) 19:02:46.27 ID:czS9PHe8.net]
- こりゃまた懐しいものを
- 79 名前:デフォルトの名無しさん mailto:sage [2019/01/16(水) 22:02:17.64 ID:l4CxponB.net]
- できたー!
エラーログは結局見なかった。 モマエらの煽りも十分ヒントなので自力でできた。 要はIDEの使い方がよくわかってなかったってことらしい。 アプリの開発は初体験だったので、IDEがこんなにモッサリしていて ゆっくり打たないと反応しない、ということがわからなかった。 最初、赤字がエラーを起こしている場所すらもわからなかった。 本の通り入力されているのにエラーになるとか💩すぎる。
- 80 名前:デフォルトの名無しさん mailto:sage [2019/01/16(水) 22:54:20.38 ID:5qHX4ghP.net]
- お前が見栄張ってログ貼らないからだよ
- 81 名前:デフォルトの名無しさん mailto:sage [2019/01/16(水) 23:11:21.71 ID:s3+L+6VD.net]
- なんでエラー見ないんだよ…
見ましょ
- 82 名前:デフォルトの名無しさん mailto:sage [2019/01/17(木) 00:03:32.50 ID:gD7DqiQf.net]
- Android Studioは割と複雑なIDEだから馴れるまで大変かも、微バグも結構放置されてる
でもどんなときも根性があれば全て解決する
- 83 名前:デフォルトの名無しさん mailto:sage [2019/01/17(木) 01:00:34.53 ID:/w6CmWBz.net]
- Googleが開発環境作るのヘタクソなのはいつものこと
ベースのIntelliJ自体は優秀な子だから嫌いにならないで
- 84 名前:デフォルトの名無しさん mailto:sage [2019/01/17(木) 01:08:32.19 ID:F/bGJF7O.net]
- 入門書のコードもちょっと辛い感じだが
kotlinスレで聞いてきたりレスの感じからすると記載を読み飛ばしてるだけな気がするな…
- 85 名前:デフォルトの名無しさん mailto:sage [2019/01/17(木) 01:34:50.82 ID:D8uuaLO+.net]
- エラーメッセージを読まないような奴が本の解説を読んでるはずがない
- 86 名前:64 mailto:sage [2019/01/17(木) 02:05:52.76 ID:X/RlN8Mj.net]
- >>78
>できたー できてない >モマエらの煽り いまは心底馬鹿にしている 結局原因は理解せず対処法を学ぶ気もなくて今後似たようなことがあって詰まっても本を罵るだけなのだろう お前はなにか変わった?
- 87 名前:デフォルトの名無しさん mailto:sage [2019/01/17(木) 07:00:04.64 ID:FUK6mZ5G.net]
- >>できたー
>できてない ワロタ 相手の態度が気に入らないのはわかるが。
- 88 名前:デフォルトの名無しさん mailto:sage [2019/01/17(木) 08:54:40.63 ID:T+GiVQOD.net]
- 例えサンプルが間違っていても自分で間違いを見つけ修正するくらいの気概がないと、動きが速くカオスなAndroid開発環境に立ち向かうことはできないだろう
- 89 名前:デフォルトの名無しさん mailto:sage [2019/01/17(木) 11:08:41.33 ID:wwbjNcTV.net]
- そうはいうてもインストールが正しくやれたか、ライブラリは合っているかを確認したいんだから動くコードじゃないとアカンやろ
- 90 名前:デフォルトの名無しさん mailto:sage [2019/01/17(木) 12:07:23.58 ID:JNIrfwpM.net]
- エラーを見るのは基本中の基本だとこれだけ言われながら頑なにエラーを見ない理由が分からないw
それはそうと、Android StudioがもっさりするレベルのPCで開発するの辛そう
- 91 名前:デフォルトの名無しさん [2019/01/17(木) 12:21:24.77 ID:K+CX1G8n.net]
- 君の所ではシャキシャキ動くの?
いいね。
- 92 名前:デフォルトの名無しさん mailto:sage [2019/01/17(木) 12:29:42.70 ID:JNIrfwpM.net]
- 真面目なアドバイスだけど、アプリ開発というかプログラミングをするならそれなりのPCを用意した方がいいよ。
本格的に開発するなら各種ツールを同時に起動しながらやることになるから、IDE単体でもっさりするレベルのマシンだとかなり辛いと思う。
- 93 名前:デフォルトの名無しさん [2019/01/17(木) 12:40:50.40 ID:K+CX1G8n.net]
- ゲーミングPCみたいに開発用PC売ればいいのにな
- 94 名前:デフォルトの名無しさん mailto:sage [2019/01/17(木) 13:35:52.11 ID:h1O5LGNC.net]
- iMac Proやろ
- 95 名前:デフォルトの名無しさん mailto:sage [2019/01/17(木) 14:23:55.46 ID:JNIrfwpM.net]
- ゲーミングPCからグラボを省けばプログラミングに良いマシンになるだろう
要はCPUとメモリとSSDだし
- 96 名前:デフォルトの名無しさん mailto:sage [2019/01/17(木) 15:50:04.22 ID:UNKQSAY8.net]
- ビジネス用PCでよくね
- 97 名前:デフォルトの名無しさん [2019/01/17(木) 16:11:06.65 ID:8rj4oJ0j.net]
- https://egg.5ch.net/test/read.cgi/notepc/1544014307/
- 98 名前:デフォルトの名無しさん mailto:sage [2019/01/17(木) 16:50:50.76 ID:JNIrfwpM.net]
- >>95
お前のIDうんこじゃん
- 99 名前:デフォルトの名無しさん [2019/01/17(木) 16:58:20.51 ID:K+CX1G8n.net]
- >>94
そんな感じのスペックのやつを自作するしかないのかな? >>95 丁度いいのある?
- 100 名前:デフォルトの名無しさん mailto:sage [2019/01/17(木) 18:38:16.95 ID:BQPkrRK7.net]
- AVD使うならグラボはあった方がいい
ローエンドで十分だけど
- 101 名前:デフォルトの名無しさん mailto:sage [2019/01/17(木) 21:05:29.75 ID:9dtdj8/p.net]
- IDEまでは分かるけどスレタイから離れすぎw
- 102 名前:デフォルトの名無しさん mailto:sage [2019/01/18(金) 10:55:00.39 ID:biJOt7cE.net]
- 初心者用の本ってマジでろくなのないな
自分が読んだ本だと言語の仕様解説して、次の章でいきなりじゃんけんアプリ作りましょうだもんな 文字出すだけとかもちょっと地道なサンプルこなしてからにしてくれよ
|

|