Kotlin 7
レス数が1000を超えています。これ以上書き込みはできません。
JetBrainsが開発した期待の新言語、Androidの公式開発言語にしてサーバーサイドもなんでもいけるKotlinについて語りましょう
※前スレ
Kotlin 6
https://mevius.5ch.net/test/read.cgi/tech/1561186797/ プログラミングコンテストあるよ!
Kotlin Heroes Coding Contest
https://www.jetbrains.com/promo/kotlin-heroes/
5月29日の夜から! Take risks. Learn from mistakes. Be fearless.
Join Kotlin Heroes
コミュニティに破滅のにおいしか感じない JetBrainsが競プロに熱心な理由は何なんだろう
機械学習ブームでアルゴリズム人材が欲しいとか? >>13
長所:better javaとして使える。
短所:javaを使えないと使えない。 Java のライブラリを使うから Java がわからないと使えないってことになってしまうのだろうが、
そこら辺を Kotlin でライブラリ作るなどして解消できたら残るは java コマンド使った実行方法だけにならないか?
一部はそうなってるよな。String クラスみたいな根幹に関わるようなクラスは Kotlin 側ライブラリにある。
もちろん Java 側ライブラリの処理を呼んでるだけのラッパーもあるけど。 >>18
> Kotlin でライブラリ作るなどして解消できたら
そういう実現していない仮定に基づく議論は良くない。
少なくとも>>16はそういう仮定に基づいて話していないと思われる。 Javaがわからないと使えないというのをデメリットとして捉える感覚がわからん
Kotlinを使うにはJavaのライブラリとKotlinのライブラリを覚える必要がある
Pythonを学ぶにはPythonのライブラリを覚える
.NET言語なら.NETライブラリを覚える
Kotlinのライブラリなんて核となる部分の改善だけなんだからどの言語も労力の差は誤差レベルだろ
Javaライブラリで既に事足りてる部分をKotlinライブラリで二重化されたら無駄が増えるだけでは 君はもう忘れてるかもしれないけど、サンプルをコピペできるって初心者には重要なんだよ >>21
それがbetter javaとして使えるメリットであり、巨大なjavaを理解しないと使えないデメリットなんだよ。
例えば、ヌルポを避けて使えるというメリットはあるけど、ヌルポそのものを知らないで使えるわけじゃない。
初期のc/c++の関係に近いわな。
少なくともc/c#の関係ではないよ。 >>22
なるほど、その説明なら腑に落ちるわ
サンプルのコピペってのは盲点だった Kotlin のコンパイラはココにあるよ
https://github.com/JetBrains/kotlin/releases/latest
scoopを使ってインストールするなら
https://scoop.sh/
>scoop search kotlin
'main' bucket:
kotlin-native (1.3.72)
kotlin (1.3.72)
>scoop install kotlin Windows 10 で IntelliJ IDEA の Community の新しいやつ (2020.1 とか 2020.1.1 とか) の起動ができない。
2019.3.5 はできて普通に動く。なので 2020.1.1 にアップデートしたくても出来ない状態なのだが、これ解消出来た人居る?
Windows 10 Home と Pro 両方試したんだけど症状は同じ。
IntelliJ IDEA の Ultimate の方は起動できたが、今の所これを使い続ける予定なし(今は完全に趣味で個人的に学習用
として使ってるので Community の方が良い)。
起動可能なまともなのが出てくるまで待つしかないんだろうか? まあフリーだしそうなったとしても仕方がないけどね。 >>30
Community 普段使ってないから試しにインストールしてみたけど普通に起動するよ?
Windows10で、2020.1.1 >>29
うっそーん!
getter, setter書かなくても良いだけKotlinがマシ。 俺的にはnull安全とwhen句あればあとはいいかな >>966
>プロトコルとインターフェースは呼び名が違うだけ
>
>JavaのインターフェースはObjective-Cのプロトコルを真似して違う名前を付けたもの
>SwiftはObjective-Cからプロトコルという名前をそのまま受け継いでる
Swiftは変数に値型(Struct)とそれのCopy-On-Writeを活用した言語。型の抽象化をする際にProtocolが使われる。
Javaの変数は参照型(Class)しかない。型の抽象化もInterfaceが使われる。
Swiftは値型を使って高速化と省メモリを実現しようとしているが、残念ながら今のところ、実現出来ていない。言語仕様が肥大化してるからか? >>31
えー。じゃあこっちの環境の問題か。
なんだろう?とりあえず色々入れてしまったプラグインをアンインストールしてからやってみるか。 >>31>>32
日本語化の Pleiades が怪しい感じだったのだが色々やってみても症状変わらなかったので
面倒だからもうアンインストールして残骸ファイルも全て削除して何もない状態にしてから
インストールしたらうまく行った。やはりこちらの環境の何かが悪かっただけだった。とほほ。 >>38
2020.1からJapanese Language Pack EAPがインスコできるようになったからそれと競合してんのかもね 現在日付がその月の第何週の何曜日かと言う情報を取得する方法はありますか? KotlinじゃなくてJavaでググれば一発で出てくるよ 現在Androidアプリを作っています
アプリのアップデートがある場合、アプリ起動時にその旨を通知する仕組みを実装したいのですが下記記事の方法で可能でしょうか?
まだリリースはしてないため動作確認ができないので教えてほしいです
また、この機能の動作確認をするには製品版もしくはベータ版でオープン状態でストアに公開しないとダメですか?
アルファ版と内部テスト版は公開ストアからのダウンロードではなくダウンロード用URLからアプリを端末に落とす仕組みのようなので、、。
https://developer.android.com/guide/app-bundle/in-app-updates?hl=ja >>39
なるほど。
>>40
例えば java.time.LocalDate クラスを使うと曜日が分かる。
後は算数の問題だな。週が月曜日始まりの場合は日の値から曜日の値を引いて6足して7で割って1足すと第何週か分かる。
Kotlin だとこんな感じで一発で出せる。
val n = LocalDate.now().run { (dayOfMonth - dayOfWeek.value + 6) / 7 + 1 }
週が日曜日始まりの場合でもずらせばいいだけなので分かると思う。 さっき気づいたこと。
""" で括るとどんな文字でもそのままになると思い込んでいたが、 $x みたいに変数埋め込みは効いていた。
"""$""" とか """$$""" みたいなのは大丈夫だが """$x""" みたいにすると変数 x の内容がそこに展開されるか、
または変数が宣言されていないならコンパイルエラーだ。じゃあ本当に文字列として """ の内側で $x と出したい
場合はどうするのか? もちろん """\$x""" は \ の効き目がないのでダメ。("\$x" で良いのは分かっているが、
""" で括られた長い長いエスケープを無視したい文字列の中の一部だけが $x になっていた場合に使いたい)。
散々色々やってみて """${'$'}x""" と """${"$"}x""" と """$${""}x""" と """${"\$x"}""" でやっと $x になった
のだが、もうちょっと見易い方法ないものか?
あ、もう一つあった。 val x = "\$x" とやっておいてから val s = """$x""" とする方法。しかしこれだと x を他の
事に使えない。 >>46
同感。
$が有効なraw stringはそれなりに便利なので
$無効なraw stringと両方あればよかったのにと思う。 変数宣言時の型後書きが激しく気持ち悪いけど、なれてきたらこれはこれでありかなって、この前豆腐ヨウ食べながらそんなことを思った。 昔からPascal系やBasic系は型後置なんだからどちらが流行った時期にプログラミングを習得したかの差でしかないやろ
型推論がある言語なら
var v
var i: Int
のように省略可能な方を後に書き足すのは一貫性があって適していると思う Android Studioなら推論された型を表示させる機能好き floatじゃなくてintに変更しよう!
と思ったら既にintだった >>49
新しく言語を始めた時の違和感は強烈だけど結局は慣れの問題。
>>51
Javaのvarでも、使って型を省略できる場面でも省略しない方がいいこともあるって公式見解があって
たとえば>>54のようなケースは省略しないことが推奨されている。 >>51
わかる。
後から見返したとき、結局型なんやねん!?ってなる。
プログラムの可読性の観点から省略しない方がいいと思うんやけどなー。 小数点以下を消したりf消すだけで勝手に変わるからね >>59
ざまりんちゃんってスレチじゃねえか!>>58 座間のゆるきゃらか。
座間と言えば座間9遺体事件のあった所だな。 viewModelでLiveData書くときいちいち
private val _liveData = MutableLiveData<Unit>()
val liveData: LiveData<Unit> = _liveData
するの面倒臭いんですけどMutableLiveDataをそのまま公開していいよね
MVVM的にはviewからviewModelへの参照は良いわけだから別に
viewから書き換えられたっていいじゃない Readonly<This, Read> where This : Read {
fun asReadOnly(): Read
}
interface MutableList<E> : List<E>, Readonly<MutableList<E>, List<E>>
...あんま意味ないね viewModelでcoroutine使うときviewModelScopeを使うじゃないですか
その通信処理をviewModelからその先のmodelクラスに移すと
そこにはviewModelScopeがないんですがどうしたらいいですか 別のviewModelから同じ通信処理を実行したいとなったときにmodelで共通化したいじゃない Androidよく知らんけど、処理の実態だけ他に移してCoroutineの生成はViewModelに置いておくとかじゃだめなの Androidでcoroutine使ってうれしいのはViewModelのライフサイクルに合わせて無効になった非同期処理を虐殺してくれるところだろ
Modelに移しちゃったらそれができなくなるやん contextとconstructorがわからん、、、 viewModelScopeはviewModelの中のままで
中の関数だけsuspend funでmodelに移す感じですね Javaのサンプルプログラムではconstructorでcontextを何かやってるんだけど(main activityとviewを何か繋いでる?)
kotlinに置き換えたときは省略可能?
なんか書かなくても動いてしまって逆に不安
constructorで囲わずに変数宣言して代入もするなら不要?
contextを何かやろうと後回しにしてたとこコメントアウトしたまま、、、w いまやってるのはsurface viewのクラスです
その前は普通のviewクラスでonDrawの中で線を多数描いてたんだけど、このときはなんとなくconstructor書いてその中にcontextもありました
それをsurfaceviewに変更してたらconstructor周りでエラーが出て、鬱陶しいからコメントアウトして他触ってたら普通に動いてなんじゃそれwってなってます
viewクラスで書いてたプロジェクトに戻ってみると、constructorの関数?って言うのかな?が黄色の警告になってて、実は削除できる?と(試してないけど)
なんか余計にcontextが分からなくなったw
kotlinから始めたからプライマリとセカンダリに分かれて何がいいのかすらも理解してないですw
いったんjavaで修行しようかな?と思う
資料も多いし、何かコツ掴めるかもしれない
遠回りだけど >>74
context(文章の前後関係の繋がり、文脈)
constructor(建設者、建造方法、生産手続き)
例えが良くないかもしれないけどJavaでいうと
ViewはFlameに直接描画してるような感じで
surfaceViewはpanelに描画してからFlameに貼るイメージかな SurfaceView継承して紺巣トラクタなしだと普通にエラーなるが >>80
panelだけだとWindow表示出来ないからエラーなるよ
ガラスだけで枠が無かったら窓じゃないようなもん KotlinでAndroidのViewを継承するならプライマリとセカンダリコンストラクタは必須だろ
でも特別なことやるわけじゃなければ、init{}にViewのインスタンス初期化時の処理を書いて、
あとこの三行コピペするだけでいいからKotlinは楽ちんだ
constructor(context:Context):super(context) {}
constructor(context:Context,attrs:AttributeSet):super(context, attrs) {}
constructor(context:Context,attrs:AttributeSet,defStyleAttr:Int):super(context,attrs,defStyleAttr) {}
contextとかconstructorの理解は後でもいい
class の行には context 書くなよ 同じ jar ファイルの中に入っている設定ファイル(要するに普通のファイル)を読む時は
クラスローダのインスタンスを取得してから getResourceAsStream() で InputStream の
インスタンス作って読み出すみたいなことをすると思うのだが、Kotlin ではこれは普通は
どうやっている?
まずクラスローダを取得するために Class クラスのインスタンスを取り出す必要があると
思うんだが、これをどのクラスにも属していない main() 関数でやろうとすると、たとえば
main.kt に main() があるとすると MainKt::class.java で良さそうだがコンパイル時に
unresolved reference でエラーになる。Class.forName("MainKt") ならできるが、
できれば文字列でやりたくない(ファイル名変更や他のファイルの関数にコピーされたら
コンパイルが通るのに意図した通りに動かない動かないプログラムになるから。せめて
コンパイルエラーで間違いが見つかるようになって欲しい)。 それ以外に方法はないの?
ないならしょうがないが。 あるいは少し反則気味に(this as java.lang.Object).getClass()みたいにするか >>87
それって this.javaClass なのではないか? firebaseのrealtimedatabaseで自分が開発したアプリからのみ
読み書きできるようにするにはどうしたら良いんでしょうか
userAgent的なものをコンソール画面のルールのところでチェックしたりできるんでしょうか ProgressDialogがdeprecatedですが
削除して全画面半透明viewの中心にProgressBar置くぐらいなら
ProgressBar使った方が良くないですか >>90
そうだね、ProgressBar使った方がいいね(あげ足取り)
そうじゃなくて、
どんな場合でも画面の操作を一切受け付けなくする設計は素人の証、
だからProgressDialogみたいなものは使うんじゃねぇとgoogle様からの教えだ
黙って従いたまえよキミ ログイン画面でユーザー名とパスワードのEditTextと
ログインボタンしかUIがない場合に
ログインボタン押したあとProgressDialog出さずにどうするつもりなん
通信結果が返ってくるまで全部のUIのvisibilityをgoneにでもするん
それが良いUI・UXなんですかねええ 非推奨のものを意地でも使おうとする意味がよくわからん >>96
言語仕様に論理的な正しさを求めてはダメだろう。 非推奨の理由はJavaDocに書いてある
日本人は安心安全安価に異様に執着するから使いたい気持ちは分かる
米国人は自由が大好きだから戻るボタンとかが押せなくなると訴訟か銃撃
開発者にとって便利なシーンがあったとしても、安易に多用されることでOS全体がダサくて使いにくいとエンドユーザーに判断されるとブランドイメージにも悪い > 戻るボタンとかが押せなくなると訴訟か銃撃
まじか・・過激だな米国人は ログインしたけど、あーやっぱやーめた
戻ろっと、て、アレ?戻れねーじゃん、クソが! OpenGLと加速度センサー使った玉転がしかなんかのサンプルってないかな?
surfaceViewしか見つからない てかたかだかログイン如きでRrogressdialog使うことなんてあるか?w 銀行系のアプリ開くと全画面半透明に中央グルグルなるな ここの奴らってJavaから入った口か?
いきなりコトリンマンって案外少ないよな いきコトだからjavaも同時進行で学んでる
javaは見て何してるか分かればいいって考えでとりあえずkotlin化してる
ちなみに変換は使わない、無駄にnullまみれになるから OpenGLはRendererに値送りたいんだけど継承がGLSurface View.RendererでViewじゃないからcontextが渡せない
だからセンサーの値が届かない >>107
どっちもインターフェースかな?
KotlinじゃないJavaですが
//GLアクティビティクラス作って
public class MyGLactivity extends Activity implements GLSurfaceView.Renderer{}
//センサー付きリスナーからメインを更新させて
public class MyAccelListener implements SensorEventListener{
public MyAccelListener(MainView view){MainView=view;}
public void onSensorChanged (SensorEvent event){mainView.invalidate();}
}
//メイン
public class MainView extends View
{
MyGLactivity activity;
//コンストラクタ
public MainView (Context context)
{
activity = (MyGLactivity)context;//キャストしたらダメかな?
}
protected void onDraw(Canvas canvas)
{
MyAccelListener listener = activity.getMyAccelListener();
} >>108
ありがと
頑張ってkotlin化してみます gpsの後進タイミングって何秒くらいが推奨なんですかね >>110
60fpsには対応してるだろうから
1000÷60= 16.66666666666667ミリ秒 >>112
バッテリーの消費は実験してみないとわからないんじゃないかな?
滑らかさとのトレードオフだと思うけど
映画並みの24コマまで落としても良いんじゃない?または倍の48とか
電子ペーパーでもない限り気にしなくて良いんじゃないですか?
一昔前は30fpsが普通だったし、
ゲームなら120とか144とかあるし、なんとも
最近の1000fpsプロジェクター並みでなくても良いでしょう? 16.67ミリ秒はジョークかと思って見てたがマジだったんか
小文字と”後進”で何か他の用語だと思ってるみたいだけど
Global Positioning SytemのGPSのことだと思うぞ どうもおかしいと思ったらそうかGPSロガーね
んじゃ1Hzから10Hzの製品があるからそれで 自分で調べることもできない時点で向いてないよキミ
挙句5ちゃんで質問して逆ギレとかアホすぎかと 言語とAPIと開発環境はそれぞれ別物だよね。
初心者には区別がつきにくいだろうけど、混乱を助長するような書籍は害悪。 >>125
この本=混乱を助長するような書籍
特定の本を指してはいない。
>>123は、>>122が自身の理解力が足りないことを書籍のせいにしていると
決めつけて揶揄したいだけ。 唐突かつ広範な主張
マウントスタート
主観的な理由
地に足のつかない結論
わずかな文章に愚かさが詰め込まれていて揶揄せずにおれない はじめてthreadに手を出したのですが↓こんな感じでおけ?
thread{}で囲った中身を別スレッドに放り投げて
その中身の処理が途中だろうと、完了しようと気にせず
UIスレッドの流れが継続していく
別スレッドに投げた処理が終わるまで待つみたいな方法あります?
いま使ってる例題ではsleepで待ってて、その無駄に長い時間の中でスレッド処理を待ってるみたいなので ありがと
threadだけ調べたくてもcoroutineが出てきて情報量に混乱してました >>128
例題と記載ありますが何かの本で勉強してますか? 本もネットも使ってます
やさしいkotlin入門という名前から想像できない文字だらけの本wとネットを参考にスレッドの勉強してます
thread{
for文1
for文2
}
sleep(1000)
と
for文{
thread1{}
thread2{}
}
sleep(1000)
を試すくらいのことしかまだできてないです
sleep(1)と短くしたら出力が変なことなりましてw Kotlin最強すぎないか?
これもはや派遣社員取ったろ 日頃どんなことを入力しているのかが何となく分かった。 結局KotlinのライブラリってJavaのライブラリってことでいいの?
例えばファイルの入出力とかは、書き方は変わるもののJavaのファイルIOを使えばいいの? >>143
そうだよ
Kotlinのライブラリは品質低いんで割り切って無視した方がいい 普通の Kotlin (Kotlin JVM) の場合は Java のライブラリ、Kotlin Native は Native のライブラリ(JetBrain製?)、JavaScript にするやつは JavaScript のライブラリ。
その他、他の実行環境が出来たらその実行環境でのライブラリ。 こんなのただのアンケートだからなサンプルが偏ってない保証もないし
たとえば
> 「オープンソースプロジェクトに貢献しているか」という質問に対し、
> 「貢献していないが、貢献したい」と答えた回答者が44%、
> 「数回しか貢献していない」が20%、
> 「時々貢献している(年数回)」が16%、
> 「定期的に貢献している(少なくとも月1回)」が11%、
> 「貢献していないし、貢献したくない」が4%
って書いてあると、なるほどみなオープンソースに貢献しようとしてるのかー
っていう印象になるけど、アンケートにこの選択肢あったとして普通に
最後選ぶやつおらんだろうし、普段ほとんどオープンソースにかかわりなく
正直かかわる予定もないやつがどれに入れるかっていうと一番上の選択肢
しかないっていう・・ほとんど誘導尋問みたいなもんだ 公平に統計を取る気があるなら本来この選択肢は
「貢献していない」
「数回程度貢献した」
「定期的に貢献している」
のように「気分の要素」を抜いた選択肢であるべきで
そうなるとおなじサンプルなのに「貢献していないが48%」
の結果がでるわけだ
ようするに、このアンケート自体が「何らかの意図を誘導
する目的でおこなわれている」のは明白なわけ いや、それ以前の問題として、JetBrainsがアンケートをすれば当然JetBrainsが気に入っている人の回答が多くなる。
主にそういう人がJetBrainsのサイトを見ていて、そしてそこで見つけたアンケートに答えるわけだから。
なのでどんな質問にしようが偏って当然。Webでのアンケートはどこでやろうとも無作為にはならないからそういう偏りが出る。
この場合Kotlinが多めに出ている事はまず間違いないと思う。 >>153
おめでとうございます!1.4の開発大変でしたか? >>154
いや、RCになったとはいえ正式版リリースまでは開発に使わないことにしている。 >>154
そうですね、Kotlin 1.4を開発することは我々にとって非常にタフなエクスペリエンスでした
しかし皆さんに必ず気に入っていただけると確信しています! C#が、C++に取って代わらなかったように、kotlinも中途半端な存在になるんだろうな そもそもC++に対するC#ほどの存在感までにすら到達してねーぞKotlin 時間は掛かるかもな。まあでもそんなに爆発的に流行らんでも良いと思うが。 普通にはやってるが
お前の職場がレベル低いだけだろ javaほど参考資料がないからNDKでC++使ったりしてる
わいのレベルが低いといわれたらそれまでだけど とりあえず、他言語のライブラリに寄生してる以上、better javaレベルでしかないからな現状..
マルチプラットホームが進んで標準ライブラリももっと豊富になれば..? 残念だけど、もうbetter javaを超える成長はないと思うよ
既に流行が旬を過ぎてしまった Androidアプリ書くなら今はKotlinが普通と
その手の会社の人に聞いたがどうなんだろ 新規でやるならJavaで書くより書きやすいから断然Kotlin選ぶよ Android StudioでkotlinソースファイルにJavaコードをコピペするとKotlinコードに自動変換してくれるので敷居は低い。 >>173
技術用語以外のカタカナ語はなるべく使わない方がいい。バカが詐欺師に見えるから。 >>174
敷居が高いという日本語の誤用よりもカタカナ語の方がマシだと思う
誤用を気にする神経質なタイプの方がエンジニアとしては信用できる
専門用語ならカタカナの方が誤解が少ないことも多いし なに言ってんの?
Kotlinファイルに節操なくJavaコードを貼り付ける不義理や面目のなさを感じずに済むのだから間違ってないよ。 誤用が定着してすでに新しい意味を含めて広辞苑にも載ってるにも関わらず、古い意味に固執して「俺は正しい」的な大局に無関係な主張する人間は間違いなく使えない
システムやソフトウェアの果たすべき目的よりも自分の考える正しさを押し付けるから、技術レベルがそれなりに高くても組織の邪魔になるのタイプ 新しいことを受け入れられない人がこの業界にいるなんて不思議だなあ Kotlinも採用できないレベルの低い職場でしか働けてない自分を恥じて転職活動しろ 頭柔らかい方と思う。
慎重で、こだわり強くて、融通が利かない人はどこにでもいるだろうけど、仕事が遅くない?何より扱いにくくて、足を引っ張る。
ミスもあるけど、柔軟で仕事早いほうが重宝がられる。
ミスもなく仕事も早い人は稀にいるが、大体コミュ障。 >>182
それはただのあなたの好き嫌いのレベルの話では。 >>177
ことコミュ力に関しては、マジギレしてる感じの人よりこういうユーモアのある返しができる人がいいわ kotlinの話しようよ
マ板でするような話はマ板で 5chあるある
なんか伸びてるとおもったらしょーもない煽り合戦 >>179
新しい古い関係なく、誤用なら相手に正しく伝わらない、間違って伝わる
誤用でも文脈から類推しろよとかは、一番の押し付けだと思う
だいたいコンピュータ言語やってて誤用はエラー出るの知ってるだろ C#にはどぼんがあったけど、あれでかなり助けられたなあ >>191
高レベル放射性廃棄物は地中深く埋葬されて下さい KotlinはC#と同じく統合開発環境の入力支援のおかげで難易度が低く感じやすい。
入力支援のないテキストエディタを使ってKotlinやC#の開発をするとつらみに気づく。 今時ただのテキストエディタでやってるとこなんてあるの? >>202
おっと今度は要件も聞かずに回答するのはエスパーなのか >>196
えーなんで?
Xamarin好きやで。
スレチになって申し訳ないけど。 >>196
えーなんで?
Xamarin好きやで。
スレチになって申し訳ないけど。 >>196
えーなんで?
Xamarin好きやで。
スレチになって申し訳ないけど。 >>196
ごめんm(_ _;)m
何回も書き込んてしまった。 久しぶりにkotlin native試してみたら、いまだにhelloworldのコンパイルに10秒以上かかる。。 build.gradle.ktsとか使ってるプロジェクトウザいな。
余計なプラグインが増えてビルド時間も長くなるわ、DSLもGroovyより劣化してて単純に読みにくいのに。 Groovyとかいうマイナー型なしクソ言語よりはマシだろ Groovyの方がDSLに向いた文法であるのは同感
優れたプログラミング言語があってもそれでビルドを記述したいとは限らんな build.gradle.kts の方が Intellj で編集するときに補完やエラーチェックがちゃんと効くという利点もある >>189
ま、しかし、たまにこうならないと過疎ってスレが沈んで消える。
逆に言うとこうなると言うことはまだまだ使う人が沢山居るということでもある。
使われなくなった言語のスレは見る人が少なすぎて煽っても何も起こらない。 > 使われなくなった言語のスレは見る人が少なすぎて煽っても何も起こらない。
Delphi をディスるのはやめなさい 5ちゃんが高齢化してるなぁと思うのは、Kotlinもそうだけど他の最近流行の言語やらフレームワークやらのスレが全然伸びないところよね
バリバリの若手世代が全然いない 拡張関数の中での this はその関数を呼び出したクラスのインスタンスになっているわけだが、
その拡張関数の中で object を作った場合はそのクラス内からはどうやってアクセスするのか?
this を使うと object のインスタンスになってしまう。かといって this@拡張関数のクラス にしてもできない。
例えばこれ。
fun String.hogeIterator() = object : Iterator<String> {
override fun hasNext(): Boolean { .... }
override fun next(): String {
/* ここでは substring() 等の拡張関数がアクセスしているインスタンスのメソッドを使えるが
* this@String はコンパイル時に unresolved reference: @String になって使えない。
* もちろん this は object を指すので使えない。
*/
}
} fun().this(hoge)
みたいな呼び方出来なかったっけ >>224
ありがとう。 this@hogeIterator でできた。
this@拡張関数名 ということだった。 kotlin/nativeがおもちゃじゃなくなるのはいつなんや。。 Puwede bang maglaro dito? if式をネストさせる場合、内側のif式ないで早期returnしたいんですがどうすればいいんでしょうか??
val hoge = if (条件) {
if (条件1)
return hoge値3 <- ここで早期returnで値を返したい
hoge値2
} else
hoge値1
内側のifをif elseにもっていけばいいのはわかるんですが、
その後、もっとifの早期returnがたくさんあって・・ var hoge = if (条件) {
if (条件)
return hoge値3 <- ここで早期returnで値を返したい
hoge値2
} else
hoge値1 無理にifの戻り値を使わなければよいのでは?
if (条件)
hoge = hoge値3
もしくは
if (条件) {
if (条件)
hoge値3
else
hoge値2
} else {
hoge値1
} うーん。なんかごめんなさい
わけわからないこだわりでしたね・・
おとなしくif else使っときます とりあえずベタで書いて放置
3日後に改めて見ると最適化出来る時あるよね
調子に乗ると思わぬ結果でバグるけど ifもラベルつけられた気がするから余裕でできるんでね?
ただそもそもクソコードの香りがプンプンするから、そもそもその部分は別メソッドに切り出すしたほうが良いと直感がいってる そもそも >>234 は何をやりたいのか? return 書いたら普通にそのメソッドから return しない?
そうではなくて変数 hoge に hoge値3 を代入させたいの? だったら return じゃなくて普通に else 書いてやれば良いだけだし、
それではブロックが巨大で見辛いというのであれば別にメソッド作って外に出せば? >>240
それ質問者の自省と>>239の良回答を言い直しただけじゃね? >>233です
でも元からそこまででかくなかったです
if (条件1)
値1 <- 1行
else if (条件2)
値2 <- メソッド呼び出しの1行
else if (条件3)
値3 <- メソッド呼び出しの1行
else {
//
// <- 13行くらい
//
値4
}
else ifでやると1行、1行、1行、13行くらいで、すげぇ尻だけでかだったので気になったのです
で、とりあえず、最後の13行を一つ別にメソッドに追い出して、最後を4行にもっていけました でも、正直、このレベルだったので、if文で早期returnできた方がいいし13行くらいはそのまま書きたいですね >>243
メソッドとして切り出すかどうかの判断は行数よりもそのコードの意味の単位を基準にするといいよ すごい抽象的な言い方しちゃったごめん
わかりやすいやり方だと、その処理で何をやってるかをそのままメソッド名にすれば分かりやすい
例えばgetNameAndSaveName()みたいになるならこれはgetとsaveに分けるべきだと明らかにわかる whenの方がいいな
AndroidStudioも警告出してないか android studioで警告はでてないですね
whenも考えたのですが、なんかどうもまだしっくりこなくて使ってません
もちろん、when (式) {}形式は使いますが、
when { bool式 ->, bool式 -> , else -> }このタイプは・・ >>244
もちろん、そうですけど
再利用されるならまだしも>>242のifを含むメソッド自体も>>242含めて、計30行くらいだったので
そこまで頑張って外に追い出してと思った次第です
そこは自分の適当なバランス感覚でやってます *そこまで頑張って外に追い出してもと思った次第です Kotlin派のお前らはKotlin以外にどんな言語に興味あるの? >>250
java 読めたらいい
swift iPhone向けも
C++ NDK
C♯ Unity >>251
サンクス。やっぱKotlinの人はスマホが多いのかね。
サーバーサイドだとみんな他に何使ってるんだろう。
まだまだRails多いのかな うちはJava/SpringBootからKotlin/SpringBootにした
サーバーサイドKotlinはJavaからの移行組が結構多いんじゃないかと思う
次にやるならやっぱりGoかなと思う Goって糞じゃね
なんで2020のいまどきポインタとか使わないといけないんだよ
スライスもなんか微妙やし
railsみたいに色んな便利機能が最初からないのも糞
大体Google自体もWebアプリ向けに作ったというより
C言語代替を目的に作ったんじゃないの >>254
全くその通りでGoはホント糞だと思う
でもFargate/マイクロサービス構成にした時にJVMが積み上がってメモリキツキツもつらい
Goの代替としてKotlin/Nativeに期待してたけど全然完成しないし、
Rustも入門してみたけど開発メンバ全員でこれをやるのは無理だなと思った。
なのでマイクロサービスやるんなら選択肢はGoしかないのかなって思ってる 気の利いた機能は排除する代わりに
アホでも書けるように設計してるんだろうな
分かってる人にとっては使うとイライラする GoとKotlinは使い所が違うわなー
Goはまさにマイクロサービス向きで、Spring Bootで作るようなものにはまったく向いてない そう思うとJava、というかSpringはほんとよくできてる jetbrainsがさっさとJSとかモバイルを諦めて、
Kotlin/Native(完成版) + SummerBoot(SpringBootのKotlin/Native版)を
出してくれたら俺のモヤモヤは全部解消する GoでマイクロサービスするならfargateよりもGAEの方が良いよ
fargateというかAWS自体重厚すぎる Goはこの時代に作ってなんやこのクソ言語ってなるのに使いどころあるところが、良くわかってるんだよなぁ Goはせめてジェネリック対応してくれ
ジェネリックもない言語とか今どきアホか、としか思わん >>267
わかる。好き嫌いでいえば嫌いだけど実用性は認めざるを得ない。 モノリシックに作ったサービスを売れてきた段階でマイクロサービス化できるのが真の理想
現状それはGoでもKotlin/JVMでもやりづらい
なので、みんなもっとKotlin/Native&SpringBoot的なFWに期待しようぜ ネイティブやるならrustの方が良くない?
kotlinの存在意義ってjavaのライブラリが利用できる事だと思ってた。 JAVAのライブラリと互換性のあるネイティブのライブラリは作りやすいのではないかな オラクルの訴訟の関係で、Javaライブラリの互換ライブラリは、今は誰もやろうとしないだろう >>275
Java資産を使わないならあんまり旨味ないよな gradleはkotlin dslでも何の不都合もないの? 次のプロジェクトのサーバーサイドを
kotlinにするかgoにするかで揉めとる。
goってそんなにいいの? その2つで揉めることある?
どんな性質のものを作るかで自ずと決まりそうだけど >>284
少し前まではsyntax heighlightが効かなかったりしていたけど、
今ではgroovyで書くときよりIntelliJの補完やIntelliSenseがよく機能していると思う。 goは何が糞といって名前が糞すぎ
なんだよ、goって goとこちょりんで揉めるのがどういう状況なのか想像できない
何を作ろうとしてるんだよ まずググラビリティの話になるけど余程気の利かない人以外はgolangで検索されるようにしてるよ YouTube で有名な雑食系エンジニア・KENTA は、
初心者が進む道を、サーバー側言語のRuby → Go を王道としてる
この2つ以外は、出てこない つーか、goはグーグルがつくったんだから
最初からググラビリティのことぐらい考えとけ、っていう >>293
なつかしいな、昔emacsから呼びだせるようにして
ちょいちょい打ってた >>285
goにはjvm使わなくてもいいという利点がある
なのでモノリシックにするならkotlin
サーバーレスにするならgo >>298
モノリスとサーバーレスは対になる概念じゃないからその判断軸はおかしい。なんでアプリケーションの構成の話とインフラの構成の話で比較してるのよ。
どういうものを作るのかで変わるっていうのは完全に同意。 テック系のユーチューバーってちょっと前はとんでもないのばっかだったけど、最近は違うのかな >>294
初心者に対して「王道」とか言う奴は詐欺師か素人なので、信じるやつはアホとしか言いようがない。 そもそもYouTuberなんて基本的に信者を作ってそこから何かしら金を巻き上げるのが仕事だからな
現実的な話をするより分かりやすくてキャッチーな話をするものだろ、そっちの方がウケるから じゃあ Kotlin の話をすれば常に再生数Maxだね。 YouTube で有名な雑食系エンジニア・KENTA は、日本一!
初心者が進む道を、サーバー側言語のRuby → Go を王道としてる。
この2つ以外は、出てこない
嘘がばれるから、他の言語を言えない
例えば、Python, Kotlin を勧めても、
仕事が少ない・取れないとか、難しいとか
唯一、Rubyで、サーバー側を1, 2年やれば、
10年以上のベテランに勝てるから、そこだけを狙っているわけ。
一種のチート技
他の言語では、初心者がベテランに勝てないので採用されないず、苦情が殺到するから 1、2年どころか半年でベテランに並べるみたいなことをいってる奴多すぎだよな、最近
んなわけねーだろとしか言いようがないんだけど 苦情って客先常駐か
そんな根無し草みたいな生き方じゃなく正社員目指せよ >>307
大手のITベンダーでも客先常駐の正社員腐るほどいるぞ
苦情 = 客先常駐 = 非正規って発想がヤバい 大手のITベンダーだから何
客先常駐は常駐先の奴隷のクズ 現場によるとしか言えん。自分の経験の範囲内では半々くらい。
それに疲れたから今は自社サ作ってる。 >>307
正社員て目指すものになったんだな
まあ卑屈にならず頑張れよ 自社サービスできる開発以外は実質派遣だからな
お前らが売ってるのは技術じゃなくて
使い捨てにできる労働力というサービスだ 年収1500万のコンサルタントでも普通に客先常駐する
正社員目指してる君が知らないだけ そのクラスになるとどこにいるかは自分で選べる、が正しいな >>306
新しいトレンドができるたびに飛びつけばよい
常にみんな同じスタートライン 同じスタートラインってまさに未経験者を騙してるインフルエンサーがよく言ってるよな
同じスタートラインなのはエンジニアとしたある程度普遍的な経験値を積んだもの同士の話であって、未経験者がいきなりそこのラインに立てるわけでは無い このスレの人からしたら馬鹿らしい質問かもしれませんが教えてください
ボタン等の押下処理を記述する際、
リスナを使った実装とonClickでメソッドを使った実装、
どのように使い分けるべきでしょうか?
こういう場面ではこっちが優れてる、或いはそもそもどんな場面でもこっちの方が優れてるとかあれば教えて欲しいです >>319
kotlinが初言語なので、kotlin関係ないのかすらわかってませんでした 初めての人のちんこが大きいと実感するのは二人目以降だからな いろいろなところで何度も呼ばれる処理はメソッド化して共通にする、
特定の画面、特定のボタン固有の処理はリスナでOK
という認識であってますか? よく分からんけど
例えばandroidの話ならandroidスレで聞いた方が良いよ Kotlinならリスナーの関数を渡したいところだな。
リスナーのクラスではなく。 >>325
なんかメリットある?
無駄な行数食うだけにしか見えん
setOnClickListener{〜〜〜〜}
の〜〜〜部分に処理書いた方がすっきりしない? あれ?
kotlinって関数オブジェクト使えましたっけ? android の java も、java8 指定してれば、リスナーにラムダ渡せるやろ 使えましたっけも何もKotlinの特性を活かそうと思ったら多用するだろ >>327
それそれ。Kotlin ならそういう風に関数渡す書き方が良かろう。 >>333
{ } で括って送ってるじゃん。
内部的には Java と同じにしてクラスのインスタンス送ってるだけだろうけどね。 >>334
それを関数を渡すって表現は違うだろw
初心者か?w ラムダ式は可読性を向上させるためのものだから、ラムダ式を使うべきかどうかはソースコードが読みやすいかどうか主観で判断してok ラムダを受け取るメソッドの定義を見れば、明らかに関数オブジェクトを受け取ってるのが分かるだろうにな
ていうか普通に書いてたら自分でもそういうメソッド作ることはいくらでもあるだろ >>339
多分そういう仕組みになってることを知らなかったんだろうな 引数の最後が {〜} の関数リテラルの場合に、それを引数の()の右外側に追い出せる
引数が {〜} の関数リテラル1つだけなら、引数の()そのものを省略できる だから {〜} の関数リテラルって書いてあるんでしょ
でも、書いたこと無かったけど、匿名関数でリスナー書けるんだねえ
setOnClickListener ( fun (v: View) { } )
これはたしかに丸括弧省略するとコンパイルがとおらん これみんな同じな。
fun f(s: String) = println("*$s*")
"abc".let(::f)
"abc".let(fun (s: String) { println("*$s*") } )
"abc".let { s -> println("*$s*") }
"abc".let { println("*$it*") } >>347
setOnClickListener fun (v: View) { }
Function invocation 'setOnClickListener(...)' expected. No value passed for parameter 'l'. >>348
これも
"abc".let() { println("*$it*") }
"abc".let( { println("*$it*") } ) >>346
ワンチャン通りそうにも見えるけど、だめなんだな。
まあそんなコード書くんじゃねえ、ですむ話だが。 (fun (s: String) { println("*$s*") } )("abc")
{ println("*$s*") }("abc") Kotlin入門したやつが増えてるんかな
いいことだ ({ println("*$s*") })("abc") こうだな
{s:String -> println("*$s*")}("abc") >>335
ところで、関数を渡している事がお分かりいただけただろうか?
C言語で言うなら関数へのポインタ渡してるみたいなものだな。 kotlinでAPI にリクエスト投げるときって何使うのが普通?
ライブラリとか使わずにJava標準のhttp URL connection? >>361
好きなの使えとしかいえないわ。apacheのやつとか、kotlin製がいいならfuelとか。 >>364
いや、俺が好きなのとかじゃなくて普通は何使うのか聞いてるわけよ
使用率とかね それこそググって見つけたライブラリのギフハブのスター数でも比べればいいだろ 聞き方がクソすぎるから教えない
初心者丸出しで初歩的な質問するなら普通に聞けよ なんか伸びてるなと思ったらクソみたいなガキの会話でワロタ
聞き方がムカつくから教えないとか。。。w
僕は使ってないので教えられません
詳しく無いので教えられません
の間違いだろwww >>361
何使うのが普通かは知らない。
俺の場合はJava標準のしか知らないので普通はそれを使う。 この手のキチガイはRuby界隈でよく見かけるけどこちょりんスレで見るのは珍しいな 煽ってるつもりなんだろうけど下手くそすぎて煽りにすらなってないのが趣深い 煽りにすらなってない(顔真っ赤だけど平静を装いながら)
草 問題を解決する気が無い
雑談したいだけ
ぱよちん野党と一緒だなω
前向きな話しようぜ できないことはないけどよほど暇でない限り車輪の再発明になるから仕事でやってはいけない
学習目的で個人的にやってみるのは良いと思う logcatに出力される内容をテキストファイルに出力したいんだけどどうすればいい?
openFileOutputで任意の文字列をファイルに出力するところまでは出来たから、logcatの内容をstring型で取得する方法を知りたい
ググってもよくわからんかった >>384
logcat の取得はセキュリティ的な危険性から一般アプリでは禁止されたんじゃないかな
なので自分のログをファイルに落としたかったら、Log クラスじゃなくて、別のロガーを使う
そのロガーの中から、Log クラスの関数呼んで logcat に出したり、ファイルに出力したりすればいい
探せばそういのが見つかる >>385
kotlinでの書き方聞いてるんだから関係あるだろバーカ
>>386
あざーす >>387
だったらJavaのソース出してKotlinでの書き方聞けよ
それができないのはKotlin関係ないからだろ? それKotlinじゃなくAndroidの質問だろってのはよく見るけど、非Android系のコトラーなんか1割も居なさそう
Kotlin/JSとKotlin/Native期待してたのに残念 勉強会行くと最近は3割くらいはサーバーサイドになってるな
まあそれでもAndroid勢が圧倒的に多いけど >>394
ポインタはC言語の概念だからスレ違い。
アドレス参照と表現してもらいたい。 ポン太カードはお持ちですか?ってLAWSONで聞かれなくなった 気持ち悪いくらい気持ちよく書けるな
もうjavaには戻れん
groovyも言語は良かったけどKotlinはIDEが凄まじすぎるわ !!を許容する派と認めない派で揉める
also派とwith派で揉める
by lazy派とlateinit派で揉める
kotlinはケンカになるからやめとけ >>396
そういやローソンって au PAY で払ったら自動でPontaポイント足されてると考えて良いんだろうか Kotlin必要になって少し触ってるけど、コンセプトがよくわからない。あるべき姿を追っちゃうとScalaみたいな敷居が高いものになるから、適当なところで妥協したものを作った、ってこと? Kotlinは学者の研究用言語じゃねえんだよ
現場のドカタにとっての使い勝手の良さを重視して作られてる
理想より現実を見ている言語なんだよ いがみ合っているように見えて>>406と>>407の意見にはそれほど違いがない。公式見解だった気がする。
>>406
コンセプトと言えるかどうかはわからないけど、KotlinのDSL記法を試してみると、
Kotlinの文法の多くはこのためにあるんだなと思うことができる(個人の感想です)。 DSLはどちらかというとGroovyの思想で、Kotlinはその流れを汲みつつも普段使いをやや優先したって印象かな >>406
Scalaは理論というか哲学レベルの完全性を、Kotlinは実務で使う上での利便性をとことん追求している。
出自がアカデミックセクターなのと商用IDEベンダーの違いがそのまま現れてると思うよ。 理論だけの頭でっかちの世の中の実際には何の役にも立たない無用の長物のゴミ >>411
自己紹介?
と思ったが理論すらないアホだったなお前は ありがとう。とすると、素のjavaからの量的な拡張というか、改善なんだね。生産効率は上がりそうだけど、既存言語の面倒な問題にはあまり突っ込まない感じするから、不具合が激減するとかは期待できないのかな。 理論がくだらない、とは自分はあまり思ってなくて、理論的にある種の不具合が根絶できるとわかるなら、それは追求する価値はあると思うけど。ただ、現実の開発現場でそれがペイするかはもちろん別だけどね。
最近は書きやすい言語が増えてきて、フレームワークも色々あるし、単に言語の量的な改善というのはコンセプトになり得ないと思ってたけど、色々便利なら採用する価値あるんだろうね。 結論付け方がおかしいぞ
nullセーフは既存の面倒な問題への対策と不具合削減だろ
Kotlinはあるべき姿の追求ではなく適当なところでの妥協の産物という話で合ってるというのに、量的な拡張、改善だって話はどこから出てきた?
今理解に必要なことは、Kotlinはあるべきを追求してデザインされたものではないからコンセプトから演繹的に学習しようというスタンスはやめて、イメージだけで決め付けず、nullセーフやDSLといった各論を学んでから帰納的に把握すればいい nullセーフは例外発生の警告度を強めるだけで、null自体をやめてるわけではない、ということだよね?量的、というのは例えばそういう意味でした。
まぁでもとりあえずは使ってみようと思います。ありがとうございました。 そもそも日本語の文章力が怪しすぎるだろ
技術書以外の本も読めよ わかりました。
5chをしっかり読むようにしますです。 >>418
それ
javaでもコンパイルでエラー吐いてくれるんなら全部Objectを使ったっていいんだぜ?ってなもんよ >>422
全部Optional<Object>とか? Optionalなんて臆病者のツールは論外だぜ
全部staticでグローバルなList
何でもいくつでも入れ放題
これ最強ね Kotlinを使うとケンカになる
!!を許容する派と認めない派で揉める
also派とwith派で揉める
by lazy派とlateinit派で揉める
やめとけ コンパイラプラグイン作ろうとしてるけど情報がなさ過ぎる
アノテーションプロセッサーも無い方だけどまだJavaの分だけマシだった そういうやつに限っていわゆる一般的な"宗教活動"については
たわごとをおしつけてくる迷惑なやつら扱いしてたりするが
自分も同じ穴のムジナにはいってることに気がついてない 宗教に無関心な人間からしたら誰でも迷惑じゃん
よく「そういうやつに限って」っていうけど全然限ってない ほかの言語にも手を出してます
ごめんなさいKotlinさま 1か0思考の人かな
Javaとの互換性のためにある程度nullと付き合わざるを得ない状況になってるのを見て「nullを排除できてないじゃない!意味ない!」って見くびってしまう人 null安全を持ち上げている人って、普段から糞コードや糞設計してオブジェクト指向もろくに理解していない人間だろ。
null安全な言語じゃなくてもnullチェックを多用するコードや設計は言語仕様以前にプログラマが糞。
だからnull安全なんて糖尿病患者のインシュリンみたいなもので根本的治療じゃないから馬鹿馬鹿しい。 null安全はクソコードクソ設計とは別のレイヤー
と理解できないアホとは一緒に仕事したくないな そんなのはどうでもいい
そろそるnullをヌルと呼ぶかナルと呼ぶか決着を着けないか >>438
null安全でないのは大抵クソコードクソ設計だろ。特にjava。 >>437
そのインシュリンで助かってる人もいてるんやで。
君このご時世マスクもせんとチョロチョロするタイプやろ? >>449
null安全なコード(null safe code)は
ヌルポが発生しないことが保証されてるコードのこと
null安全な言語は(language with null safety)は
ヌルポが発生を防ぐ安全装置が備わってる言語のこと null安全したところでデータの安全は保証しないからな。
下手したら試験時にnullで落ちてくれたほうがマシな場合もあるだろうよ。
だからnullは猫のように愛されてきたんだ。 APIレスポンス受ける data class のプロパティもコンパイル時に null安全できるようにしてほしい >>451
たしかにnullを安易に排斥したところで却って不具合を地下に潜らせることになる
nullの利用価値を保ったまま安全をサポートしてくれるのがKotlinのnull安全
null safeであってnull freeではない
Kotlinではnullかもしれない値を限定でき、その利用時に、分岐するのかエラーで落とすのか初期値で代用するのかを文法的に問うのでより安全
Javaでは試験時に落ちるところを、Kotlinではさらに早くコード補完時や自動ビルド時に気付かせてくれる Jetpack Compose for Desktop ってどうなんだろう。
TornadoFXが死に体なので脱出先を探しているが、
Android用の設計を無理に移植していびつだったりするんだろうか。 Kotlin って List の内容をローテートするメソッドって用意されてないの?
[1, 2, 3] の右回しなら結果が [3, 1, 2] で左回しなら [2, 3, 1] になるようなやつ。
(シフトしかできなくても組み合わせれば作れるから良いんだけど)。
自作するしかない?
ていうか自作することそのものは簡単なんだけどね。例えばこんな風に書けばいいだけだから。
fun <E> List<E>.rotateLeft() = ((1..lastIndex) + 0).map { get(it) }
ただ元からライブラリに用意されていたら無駄になるので存在の有無を知りたいということ。 >>457
おお!ありがとう。java.util.Collections.rotate() ね。
でもこれ、Kotlin の List でも使えるけど List の内容が変わっちゃうのな。
(MutableList じゃないのに)
>>> val ls = listOf(1, 2, 3, 4)
>>> ls
res14: kotlin.collections.List<kotlin.Int> = [1, 2, 3, 4]
>>> java.util.Collections.rotate(ls, 1)
>>> ls
res16: kotlin.collections.List<kotlin.Int> = [4, 1, 2, 3]
>>> java.util.Collections.rotate(ls, -1)
>>> ls
res18: kotlin.collections.List<kotlin.Int> = [1, 2, 3, 4]
>>> java.util.Collections.rotate(ls, -1)
>>> ls
res20: kotlin.collections.List<kotlin.Int> = [2, 3, 4, 1]
>>>
まあ変換して Java 側に渡してるだけだろうから仕方がないか。 お約束だけどKotlinのListには最初からイミュータブル性はないよ
変更機能に関心のないビューでしかない
MutableListがListを継承してるというのが何よりの性質 クロスプラットフォームは総じて糞と相場は決まっている できることがOR結合ではなくAND結合で絞られてしまうのがクロスプラットフォーム。
できることしかできない。 !!や?って説明できるなら使ってもいいんだよね
いま宣言したけど中身がない、下の行で関数かなんか呼び出して空の変数に入れる、その変数を使う
コードの中に書いたらダメならそもそも書けないし
見る人が嫌ってだけだよね javaでいいよ
無理矢理感有り過ぎの上
文法がひどい >>462
明快な話だよ
どちらの演算子も、if文を使ったそれと等価のロジックに置き換えて考えて、そのロジックを使うべきだと思えば使えばいい
特定の頻出イディオムの短縮記法に過ぎないと捉えれば、長ったらしく書くよりも演算子ですっきり書いた方がいいとわかるはず
追加メッセージのないNPEを送出するなんて絶対にムリという状況下なら !! は使わないことになるだろうし、低リスクな部分なんて元々エラーメッセージ考えないし万一落ちたらスタックトレース見りゃいいやという状況なら !! を使うのは理に適ってる
状況を問わず絶対に使うなというのは原理主義者かアホだと思う
Javaを使ってるのにクラスや例外を避けようとする老人と似たようなもの !!を使わなくても書けるのに敢えてクラッシュのリスクのある!!を使う必要ない コントラクト書いてもスマートキャストできないならアリ assert文もクラッシュのリスクがあるから使わないって言うんだろうか
フェイルセーフで進めるべきシーンとフェイルファストで落とすべき部分を判断して使い分けてほしい いろんな宗教食タブーに配慮した結果、鶏肉料理しか選択肢がなくなる感じ。それがクロスプラットフォーム。 >>459
あー。Stringとかと同じか。書き換えられないように作ってあるだけで言語レベルでリードオンリーというわけではないという。 そういうこと。ただ変更のためのAPIを提供してないだけ。 Stringはクラスがfinalで閉じてる分、変更可能性という意味では層が少し違うかな >>461
何つながりでいっているのか知らないけれど、まあ、それでも基本部分だけでも
動作すればだいぶ楽にはなる。
同じように書いてHelloWorldが出て、直線や矩形描画、文字描画、キー入力が
共通化されていて、同じ言語で書けるならかなり楽になるから。
クロスプラットフォームキットを何も使わなければ、言語自体も違ったりして、
ロジック部分すら共通化できず、大変なことになる。
WindowsではC++(またはC#), AndroidはJava, AppleはSwiftみたいに。
そしてprintf()文すら共通しては使えない。 型違いやぬるぽのエラーが動かす前にわかるというが
逆に言うと動かせばすぐわかることだ
今時そのパスとおってませんとかテストでありえんから
型なんかいらんかったんや 変数は全部public staticで MutableList<Object>じゃい!
goto文も好きに使え!
だって全部テストでパス通せばいいじんじゃい!
うん、暴論だと思う
null安全も型安全もカプセル化も、言ってしまえばほんのちょっとの便利ツールでしかないんだけど、そのほんのちょっとがバグを減らし、思考の負荷を落としてくれる 万全のテストが組み上がった後では言語ごとの安全設計の違いはプロダクトの品質に影響をほとんど及ぼさない、それはそうかもしれない
ただ、その万全のテストが手にはいるまでにどれだけのコストを要するかが違う
流れるように書くことができて、書き間違えや考慮漏れが起こりにくく、テスト作成中にfailが出てもすぐに特定して直せる、その結果生産性が高い、それがいい言語だと思う とても小さいスクリプトを書く場合と、バグをいくらでも作ってよく誰かが直してくれるならそうだな
VBの変数宣言不要のVariant天国は何でも格納できて極楽
一方である程度大きいものをバグなく作る必要があるなら脳内に展開する必要のあるデータ量が増えてスケールしなくなる 単純に型のあるなしだと設計を疎結合にしやすいとかリファクタの安全性が高いとか色々変わってきますがな シェルスクリプトやマクロみたいな簡単な治具には形を意識せずにすむ言語がお手軽だし、バックエンドのシステムを組み上げるにはnull安全のある厳しい静的型付き言語がフィットするので使い分けましょうねという結論でいいと思う
使い分けのミスマッチを解消したいい例がTypeScript Rubyも型のような何かを入れたし、時代の流れだわね 数値や String が保持出来て計算出来れば良いんだったらそういうクラス作って
operator で色々作って計算出来るようにしちゃえば良いんじゃないか?
効率悪いかも知れないが。 >>478
> 今時そのパスとおってませんとかテストでありえんから
そのテストを自動で実現するテストフレームワークが無いんじゃない?
せめてnull安全ぐらい関数1つで実現してほしいわ。 君らみたいにkotlinやってる人ってアプリ開発者が多いのか? Android以外でKotlin使ってんだなぁて思う
JavaだったとこをKotlinに置き換えてんの? サーバーサイドだね
完全にbetter Javaとして使ってる
既存コードの置き換えもするし、新規実装するものに関しては完全にことりん Androidやってるだけだからサーバーとか行っても戦力にならないんだろうな
同じ言語なのにここに出てくるサーバーサイドの会話がなんとなくわかったつもりの異次元 サーバーサイドkotlinは採用も意外に楽よ
それ自体の経験者はほぼいないけど、Kotlin書きたいJava経験者はかなりいるから >>494
それはお互いにそうでしょ。
言語そのものの知識なんて大して重要じゃないし。 DBカラムに入ってるはずのデータがなかったときどんなエラーがでるんすか APIのレスポンスがnullじゃないはずなのにnullが返ってきたときどうしたらいいんですか nullsafe って言うのは Null チェックしなくていいという意味じゃないよ?
チェック必要なものと不要なものを区別して、必要なものはチェックしてからアクセスしないとコンパイルエラーになるんだよ? >>502
普通にnullチェック入れればいいんじゃないの? >>502
nullチェックしながら
APIの作者にバグレポート上げろよ。 まずレスポンスのデータクラスのフィールドををnullableにしないといけない
nonnullでもコンパイルエラーならないのにだ 何で companion object って一番下なんすか
一番上じゃ駄目なんすか kotlin世界との境界部分はもろもろを自分で気を付けるしかない kotlin/nativeでサーバーサイド作る話はどうなった? SuperJobだと、子の失敗は親に影響与えないとのことですが、子をキャンセルすると親もキャンセルされてしまうとのことです
子が失敗しようが、子をキャンセルしようが親に全く影響を与えたくないのですがどうすればいいでしょうか? SupervisorJobだった
つか、なんかややこしくなってきた
間違ってた、SupervisorJobは子のキャンセルは親に影響しないからスーパーなのか? 間違ってた
子Jobのcacelメソッドによるキャンセルは親が普通のJobだろうがSupervisorJobだろうが親をキャンセルさせない
子JobがCacellationException以外の例外で失敗したとき、違いがでてくるのか 明けましておめでとうございます。
ことりんもよろしくお願いします。 ことりんじゅうさまです
なんてことならないように使っていこう 例えばUserクラスがあって、userIdプロパティとネストしたUser型のuserプロパティがあります
このときList<User> users
から、users.map?とかcollection apiを使ってネストしたUserも含めたすべてのuserIdのリストを求める方法があれば教えて下さい
再帰関数を用意しないと無理? userプロパティは多段ネストする可能性があるんですがflatMapでいけましたっけ? プロパティをどう辿るかはcollection apiだけじゃどうにもならないから自分で実装するしかないでしょ
扱うデータによっては重複や循環なんかも考慮が必要かも
https://paiza.io/projects/JkGNST_vjmARbX8XFfMLnA >>521
そのロジックに意味のあるものならUserにallChildrenUser : List<User>メソッドを作って子のallChildrenUserを呼び出す、つまり再帰構造、allChildrenUser() -> users.flatmap{ it.allChildrenUser() }
かな
ネスト構造の時点で循環参照の可能性があるわけで言語機能でどうにかなる話とは違うと思う
または、データ構造として最適なツリーを採用したほうが良いかもしれん 自分が出来ると心から信じることができれば必ずやれる 言語機能でどうにかなるか否かはまた別の話でしょう
データが循環していたらスタックオーバーフローなりその他の例外なりが出るように標準ライブラリが設計されていればいいだけなので 余談だけどグラフの探索は再帰を使わなくてもループに書き換えることができる
スタックオーバーフローしなくなるのが利点
ループではなく再帰でしか解決できないアルゴリズム問題が存在し得るかどうかは不勉強なので知らない 木の探索は横探索すればいいか
スタックのかわりにヒープがあふれる >>534
理論上はflatmapで何でも解決できるとしても、実装するには十分な数学的能力が必要なのだ。 >>537
そうか。じゃあお前なら出来るんだな。任せたぞ。 プログラミングは
気合いだ
たとえば1万件のソートをするのに
処理のオーダーがどうとか
クイックソートのライブラリがないとか
代替するものをつくるかどうかとか
悩むときに
Excelにはっつけたり
2重ループで平気で馬鹿ソートする
周囲の嘲笑をものともしない決断力
そういうやつができるやつなんだ >>539
そういう能力の人は便利屋として安い単価で使い捨てられるだけです いうほどflatmap使うか?
そりゃたまには使うけどさ 1万件程度なら普通にExcelも使うし
バカソートも使う
もちろん製品コードではそんな事はないけど >>538
STモナドの中に入れたら増やせそうな気がするが、取り出せなくなるけどいい? >>545
簡易的なアサーションとして理解した上でNPEが出てほしい場合は使っていいよ
知らない間に大事な処理が実行されずスルーされたりするよりも、バグなのでとっとと例外を出して知らせてほしい場合とかね
https://kotlinlang.org/docs/reference/null-safety.html
> Thus, if you want an NPE, you can have it, but you have to ask for it explicitly, and it does not appear out of the blue. kotlinではnullチェックの代わりに?.を使うべきですか nullチェックと一口に言ってもバリエーションを考えないとだめ
nullなら何もしない
nullなら空白で表示する
nullならハイフンで表示する
nullなら代替手段で値を取りに行く
nullならログを吐いてフォールバックする
nullならフェイルファストで例外を出す
?.は上記のうちの一部に最適ではあるものの、一部には役に立たない
実現したいことや状況に沿った措置が先にあり、それをコードで表現するために適した言語機能を選ぶという順序で考えるべき Kotlinって、SwiftやRuby以上にWindows切り捨て感があるのな >>551
なんでそう思うの?
普通にJVMだからむしろWindowsに優しい方の言語だと思うけど。
Rubyなんて酷いものだろう。。 >>553
そもそもその2つもそれぞれMacとUNIX系のことしか考えてないってだけで切り捨て云々以前の話 >>557
最初だけ話題になったけどすぐ話聞かなくなったもんな >>559
TornadoFXで作ったソフトウェアがあるんだが、Java8の終了と共に沈めるしかないか… 今KotlinでGUIアプリ作ろうと思ったら何がいいんだろうな >>567
何がどうなっても変わる事のがない最底辺の awt ではないか? kotlin.awt というのを作ってみたらどうか?
無駄だな。 未だにkotlin nativeのサーバーサイドに可能性を感じてるんだがどう思う? JVMを捨てて得られるメリットと比べて、Javaの資産を失うデメリットが多すぎかな
そのメリットの方を重視する人は普通はGoやRustを使うだろうし、あえてKotlin/Nativeを使うのはかなりニッチになるだろうから、JetBrainsもそこに注力しようと思わないし流行らない
まあでも、整備してくれるなら使ってあげるよw >>573
nativeにしたところでパフォーマンスはせいぜい数倍にしか上がらない。
事業が順調に展開してパフォーマンスが求められるような幸運なケースでは、
分散やクラウドでスケールしないと早々に限界にぶち当たるのではと。
やったことないけどね。 頼みのAndroidもFlutterにやられて終わりだな。 今そんなにflutter伸びてるの?
AndroidといえばKotlinの時代はおわり? DartはChromeに組み込みが失敗して終わったと思ったのに、Flutterで巻き返してくるとは。
先日Flutter 2.0になりWebもデスクトップもカバーして、
クロスプラットフォームではReact Nativeを抜いてトップになったらしいけど、
モバイル全体で見た時のシェアはどうなんだろう。
>>578
そういえばこのスレでもXamarinの名前をすっかり見かけなくなった。 xamarinは.NETに統合されるから単独の話題には
もうならないのではなかろうか Cocoaの件で悪い意味で話題の的になると思ってたが Googleと取り組むオンライン施策についての件名でGoogleからメールがきたんだが趣味アプリなのに返事しちゃっていいの? >>582
詐欺メールでなければ。
内容がわからないけど、趣味でやっているなら解約時に違約金を取られないか注意するくらいかな。 >>576
kotlin nativeはkotlin jvmより遅いよ
起動とメモリ使用量は有利だけど >>575
jetbrains視点で、vs flutterよりvs golangの方がマシな気がするんやが。
rustは競合しないから置いとくとして、
golangより書きやすいのは間違いないんやし。 Googleの女性担当者とビデオ通話で内容をご案内とか書いてあるんだけど趣味アプリなのにいいの? >>586
守秘義務とかがないならもう少し詳しく説明してもらえないと分からない。
内容をご案内、も何の内容を誰(Google?あなた?ユーザー?)に案内なのかさっぱりだし。
>>584,>>585
アンカ逆かな サーバーサイドのJVMって別にパフォーマンス悪くないからなー
nativeにするメリットがあまりない YMobileのCMに出てくる芦田愛菜ちゃんはかわいいと思う nativeにするのは
javaの遺産を継承したくないからだと思われる >>580
継承したくないなら使わなければ済むと思うのですが。 nativeにしたいのは起動時間短縮(aws lambda利用とか)と、jvmレスによるメモリ軽減(kubeで複数pod利用とか)狙い
goと被ってるから倒したい Kotlinでそれをやりたい人は少数派だろうし、倒さずに住み分けするんじゃだめなの java勝ったからもうお前に用はない
○ ←google
く|)へ
〉 ヾ○シ ←Kotlin
 ̄ ̄7 ヘ/
/ ノ
|
/
`|
/ いやkotlinはjavaのラッパーでしかないだろ そういやOracleとGoogleで争ってたAndroidのJavaの件はGoogle勝ったんだってな。 そういやOracleとGoogleで争ってたAndroidのJavaの件はGoogle勝ったんだってな そういやOracleとGoogleで争ってたAndroidのJavaの件はGoogle勝ったんだってな 今日ハマッたこと
IntelliJ IDEA で Kotlin の Coroutine のプログラムを作って試そうと思い、ネットで調べて
そのままではできず、 build.gradle.kts の dipendencies の所に implementation(...) で
追加するライブラリを書かねばならないと分かり、追加した。その後簡単なプログラムを
入力しコンパイルしたがエラーになる。そう言えば runBlocking がずっと赤いままで、
IntelliJ IDEA 側にはそれがあるとは分かっていない模様。しかし build.gradle.kts は
ちゃんと書いたし何がおかしいか分からない。
↓ 8時間後
build.gradle.kts を編集すると右上に薄っすらボタンのようなものが現れていることに気付く。
それ押すと build.gradle.kts の内容が反映されて外部ライブラリが追加されコンパイルも成功。
なんだよこれw 分かり辛すぎだろw
ていうかネットで検索しても誰もこのこと書いてないのは何故だ?たまたま見つからなかっただけ?
それとも当たり前過ぎる話なのか?しかしこれかなり重要なことだろ。編集しないと現れない幻の
ボタンって。 サーバーサイドKotlinか?
AndroidStudioでやらないからそうなる >>612
AndroidStudio だとやらなくて良いの?
それとも最初からデフォルトでコルーチン使えるようになってるとか? てか、 build.gradle.kts を編集したらあのボタン押さないと反映されないのは同じだよね? AndroidStudioでAndroidのKotlinでbuild.gradleだと、編集したら目立つ色で通知が出る
「Gradle files have changed since last project sync. Aproject sync may be necessary for the IDE to work properly.」
右にSync NowとIgnore these changeが出るんで、Sync Now 押せば反映される IntelljIDEA2021.1.1でbuild.gradleとbuild.gradle.ktsのkotlinプロジェクト作ってみたよ
上記の通知の表示方法が変わって変なとこに象さんクルクルのアイコンが表示されるようになってるね
たぶん2021バージョンで変更された新しい表示なんだと思われる
今まで使ってた奴からすると、何だこれって感じでカーソルのせてみてSyncNowの代わりにこれ押せばいいとわかるから迷わない
ネットに情報が出てないのは、これに引っかかるのはホントの初心者だけだからじゃないかな
AndroidStudioも将来はこの表示になる可能性が高い Androidで使うのが一般的なのにイキって
IntellijIdeaなんかでやるから天罰が下るんだ >>611
普通にgradleタブのぐるぐる押せばいいのに
まずgradle使わないでどうやって実行しようとしたんだ intellijのスプラッシュが気持ち悪い
早く変わってくれ >>616
初心者というか、IntelliJ IDEA の初心者だな。
エディタを横に大きく広げていたのと白に近い灰色で表示されて気付かなかった感じだな。
色の問題もあるかな。
>>617
なんでこれでイキってることになるのか?w
Kotlinそのものの学習なら要らんだろう。Android開発部分は後から追加できるようだし。
>>618
なんだそれと思ってよく見たら右にGradleって出ててそれ押すと出てくるやつか。
これもよく見ないと発見できない "秘密のボタン" じゃねえかw
まるで昔のアドベンチャーゲームやってるかのようだ。 なんでもすぐイキってるとか言っちゃう子はそんなに他人や世間が怖いのかなと心配になる
もっと自由でええんやで 何らかのmap関連APIで、ある地点AとBを結ぶ経路を表示することはできると思う
そこからさらに、100mなどの距離を与えてスタート地点AからB地点へ
100m歩いた軌跡を表示することは可能ですか 質問の意味が分からないが、もしやAndroidの質問?
だったらAndroidのスレがあったと思うのでそっちで聞いた方がいいと思う。 >>625
それはKotlinでもAndroidでもなく使うマップの仕様によるだろう。
スタート地点+距離を受け付けるAPIがあるならできるし、ないならできない。 ハッとして グッときて
パッと目覚める Kotlinだから >>632
Javaと同じくローリングリリースになったからな。
パッとしなくてもスケジュールが優先でリリースされる。 ハッとして グッときて
パッと目覚める Kotlinだから 俺は今頃 Compose for Desktop というものがあることを知った。 Kotlin使ってるやつ仕事でどんなもの作ってるの? なんでコードでレイアウト実装したいと思うの
レイアウトはXMLに分離することで可読性を上げたいということでそうしたんじゃないの ひさしぶりにKotlinでコードを書く機会があったが
意外と悪くない
残念なのはこれがほとんどAndroidのアプリ開発でしか使われていないことだ・・ >>641
XMLはわりと嫌われているからね
みんながXML大好きならJSONやYAMLなんかが今みたいに流行ることはなかっただろう
そういうXML嫌いな一派に内部DSL好きな人達がいる
rubyとかから流れてきた人達かな
kotlinは言語仕様の決定に内部DSLの書きやすさが考慮されていたりして、その内部DSL好きの意見が多く取り入れられてる
なのでレイアウトも内部DSLでやろうという話がでてくる コードそのものじゃなくて、内部DSLを使えば可読性は向上するという考えだね
XMLを使わなくても いまはJSON言っても末尾カンマやコメント可能な拡張されたJSONを
設定ファイルに使えるでしょ
VSCodeとか レイアウトをコードで書く流れなのはKotlin関係ないけどな ちょっと違う話だが、 IntelliJ IDEA で新規プロジェクトを作る時に Ktor の所は後ろにカッコつきで Obsolete ってなってんだけど、Ktor って廃止される予定なの? >>650
Ktorのプラグインが新しくなったんじゃないかな
旧プラグイン1.5.1-obsolateと1.5.3は別のプラグインとしてインストールするようになってるように見える
新規プロジェクトの前に新しい方のプラグインインをストールすればobsolate無しのKtorが選択できると思う >>651
なるほど。プラグインだけか。
と思ってアップデートしようとしたが obsolete のやつしか出て来ない。
おかしいなと思って JetBrain のサイトで検索したら出てきたが、 Community はサポートしていなかった。Ultimate だけだった。 それでも無理矢理ダウンロードしてZIPファイルからインストールするとこれが出て動かない。
プラグイン 'Ktor' はプラグイン 'com.intellij.microservices.uast' をインストールすることを要求しています
まあいいか。plugin使えなくても。 質問1
Android studioのkotlin使ってるんやけどカレントディレクトリってどうやって取得すればいい?
System.getProperty(”user.dir”)
でも
Path.get(””).toAbsolutePath().toString()
でも/としか表示されへん
質問2
カレントディレクトリに有るファイルの場合はファイル名だけ指定したらjava.io.Fileを使ってファイル名だけでディレクトリの指定なしに操作できる? ktorのプラグインって廃止されてバンドルになったんじゃなかったっけ >>654
アプリのプロセスのカレントディレクトリがルートディレクトリなんだろ
もちろんルートディレクトリに対する読み書き権限は無いはず
アプリがデフォルトで読み書きできるディレクトリはこの辺
https://developer.android.com/training/data-storage/app-specific?hl=ja
Fileクラスのコンストラクタはカレントディレクトリからの相対指定パスをしてもいいはずだけど、
アプリのプロセスのカレントディレクトリを勝手に変更していいかどうかは知らん >>654
そもそも何がしたくてカレントディレクトリを取得したいん?
直感だけど、根本的にあまりやらない方がいいことをしようとしている気がする Javaってカレントディレクトリ変更できないしあまりあてにしない方がいいよね。同じようにJVMでJavaのライブラリ使って動くKotlinも同じ。
(nativeとか他のは別として) ファイルを操作したいならカレントディレクトリは使わずに環境変数なりなんなりで絶対パスを指定して、そこを利用した方が良いと思う >>659
やと、アプリ専用のフォルダーを勝手につくっちゃうってこと?
アプリを内部にするか外部に保存するかわからんくない? アプリと一緒にデータファイル配布して、アプリからそれを読み込もうとしているとかか? 配布したいのか、保存したいのか
保存したいのなら>>656のリンクを見ろ
配布したいのなら簡単なのはリソースに含めるとか
配布したファイルへ保存はやったらダメ >>665
それなら>>656のリンク見てそこに書き込みな。
Androidはアプリごとに書き込んでいい場所が用意されてるから。 kotlinのfirsrOrNullの検索効率ってどんな感じなんすか
Javaで2重ループで検索とかすると計算処理を削減するために工夫したりするんだけど
firstOrNullはそういうこと気にしなくてもいんすか 二重ループで検索てのが何かよくわからないけど、firstornullは上から順番に一致するものを探してるだけだよ。
高速な検索が必要ならハッシュテーブルとか二分探索とか検討すれば 簡素に書けるからプログラム入門者向けというわけではないな
慣れるとコード量が減って読み書きの時間短縮になるが、知らないと直感的に理解できないデメリットのほうが大きい
プロ向けの言語だと思うわ もうすぐ Kotlin 10周年だな。
WikipediaのKotlinのページ見たら2011年7月20日に発表されたって書いてあった。 kotlin.ranges.ClosedFloatingPointRange の lessThanOrEquals() メソッドって a <= b やってるのと同じだと思うんだが、どういう時に使う事を想定してわざわざ abstract で定義されてるの?
a <= b の結果を返す実装をしない場合向け? しかし ClosedFloatingPointRange のインスタンスでやれるようにする理由がわからない。 勘だけどcompareToで実装した場合BoxingとUnboxingが発生するからとか? 何の話かとソースを見たら簡単なことだった
抽象クラスでcontainsやisEmptyをテンプレートパターンで提供するために使ってるじゃん >>677
で?ググったが、君が何を言いたいのか全く分からない。
>>678
Kotlin はプリミティブ型はないから Boxing, Unboxing の概念自体がないよ。
もちろんコンパイラは最適化して内部的にはやっているコードを作るだろうけどね。
かといってそれで動作が変わる事はない。
それと Kotlin は <= 演算子は compareTo() 使うように置き換えられるだけだ。 >>679
lessThanOrEquals() メソッドを用意する意味は? 何のために必要なの? どういう時に使うの?
このクラスのインスタンスを通さずに a <= b と書いても同じなんだけど、そう書かない方が良い場合やそう書けない場合があるの? >>681
外から使わせたい意図なんじゃなくて中でもう使ってるんだよ >>682
ああ。ソースの上の方の interface の所で使ってるこれか。
上の方見てなかった。ClosedDoubleRange とかの実装部分では全て override してるから気付かなかった。 >>679
ClosedFloatingPointRangeはClosedRangeを継承してて、ClosedRangeはcontainsとisEmptyを不等号演算子で実装してるのに、
なんでそれをlessThanOrEqualsを使ったものにoverrideしてるのは何故なんだぜ
ClosedFloatingPointRangeのComparable<T>はoperatorのcompareToを実装してるから不等号演算子使えるはずだろ >>684
不等号演算子ではIEEE754の定める順序が厳密に実装できないからじゃね?
正負の0をどう順序付けるかとか 標準の実装だと0.1を10回足した結果が1.0..2.0の範囲外になるからな Androidアプリ開発始めようと思うんだけど、いきなりKotlinの勉強初めて大丈夫?
JAVAの入門書1冊くらい目を通しておいた方がいいかな
HTMLとCSSはわかる
昔やさしいCを一通り読んだり、ドットインストールのPHPのとこを見た程度で、まともなプログラミング経験はないんだけど… 別に問題ないけどandroidの開発はUIを作る部分は今はjetpack composeという新しい
フレームワークが登場しようとしてる時期だからな
今までのやり方を勉強するかjetpack composeを勉強するかそこが悩ましいところ
kotlinのところは共通だから問題ないが
javaは必要になったらその都度調べるでいいんじゃ なにより動機が大切
作りたいアプリがあるとかあれば完遂できる高くなると思う composeは糞、流行るわけない
元々ロジックとデザインが混在してカオスだったのをうまく分離した歴史があるのに
なんでまた混在させようとしてるんだ
コードが見にくくなるだけセンスねえな 流行って貰いたいものが流行らず、流行って貰いたくないものが流行る。
世の中とはそういうものだ。 本質的に結合しているものを分離すると逆に分かりにくくなるんやで
Web の HTML, CSS, JavaScript を1ファイルでコンポーネント化するようなもん
関心の分離っていってな、関心の単位で分離すべきであって言語とか拡張子といった技術で分離すべきではないんねん >>690
ありがとう、いきなりKotlinでいくことにする
作りたいアプリがいくつかあるから動機の点では問題ないと思う KotlinをマスターすればJAVAを学ぶのも楽になったりする? Korlinから入るとJavaがダルすぎるだろうな Kotlinは概ねJavaのスーパーセットだから、Kotlinをマスターすれば自動的にJavaもマスターしたことになる
逆に言えばJavaの知識は漏れなくKotlinで通用するので、言語の基礎からじっくり学びたいならJavaから入ったほうが効率はいい オナシャス!
あしたー!
をマスターすれば
よろしくお願いします!
ありがとうございましたー!
をマスターしたことになるということか AndroidにおいてもはやJavaは古語
外人が日本語学ぶときに古文から勉強なんてしないでしょ
エスアイヤーに入ってサーバサイドJavaを書く予定でもない限り、Javaは無視してKotlinだけ勉強すれば充分だと思う
古典解読の必要に迫られてなければ極力関わらないほうがいい Javaを代替するのかと思ったらぜんぜんそんなことないし
新しいもの好きはKotlinのかわりにPython使うありさま
どうなってん お前がいけてないゴミ企業に勤めてるだけだろ
ああん?かかってこいよ うーん、Androidならともかく、Pythonが比較対象になるってことはサーバーサイドだろ?
サーバーサイドでKotlinが採用されるのって基本的に環境にJVM縛りがある場合なわけで、その時点でイケてないと思うけどな こういうやつが多いからこそ今のうちにKotlinをマスターしておく >>704
Android のアプリ開発でもまだ Java を新規で使う? >>704は「Javaを代替するのかと思ったらぜんぜんそんなことないし」と断定しているわけだが、
ぜんぜんそんなことないなんてことはないよな? まあしかし自分でどんどん使って自分で布教活動して自分が世界に流行らせようというぐらいの勢いが欲しいところではある。人として。 Int型だけ扱うならArrayよりIntArrayの方が速いってのはわかったんだけど
FloatArrayとかでも同じくArrayより速いの? 速いんじゃないの?多分 Java の float[] になっているから。 オーバーヘッドがボクシングにあるんだから当然じゃよ
類推できないならわかったというより覚えただけじゃな ボクシング???ググったらなんか出てきました…
読んで精進します
ありがとうございました boxing の「箱詰め」って意味の方だな。
殴り合いの方も囲まれた中に人を入れてやってるので何となく概念は同じかな。 ラムダが世界を支配して関数型プログラマー大勝利!!
そして、さらなる新型株により新しい時代の幕が開く。 jdkってコンパイル遅すぎない?ハローワールドだけで数秒かからないか? javac も JVM 上で動く一つの Java プログラムなので起動時に JVM の初期化で時間が掛かる。 kotlinですごく単純なメモアプリ作ってるんだけどここで質問していいのかな? https://dotup.org/uploda/dotup.org2557718.png
menuレイアウトにsave,deleteの二つを作ってんだけど
deleteボタンを押下したらデータを削除する機能を付けたいと思ってる
んで上図でclear()を追加したらできたんだけど、即時反映されない
clear()の後にcommit()を追加してみたけどダメだった
どうすりゃ即時反映できるんのですか? 反映されないとはどういうことか
データが消えていないということか deleteボタンを押してアプリを終了→再起動したらデータは消えてるので
おそらく画面が更新されていない?と思っています
てことは画面の更新処理を追加すればいいのかな⁉ invalidateはjavaの機能?頭が痛くなってきた... 画面の更新処理書けばいいだけだろ
22行目で自分で更新処理かいてるんだから同じ事すればいいだけだろ bindingよく知らないんだけど、onCreateでやってるbinding.textInputEdit.setText()は、deleteしたときにもやらないといけないんじゃないの? すいません、風呂入って頭空っぽにしたらすんなり理解できました
binding.textInputEdit.setText("")
これ追加するだけでしたね、ありがとうございました
お騒がせしました 手詰まりになったと思った時はだいたいそういう簡単なポカしてるものよ
風呂入ったり散歩したりすればだいたい解決する こんばんは
あれから機能追加してるんですけどまた行き詰ってます
また質問いいですか? AndroidならKotlin関係ないのでこちらで
Androidプログラミング質問スレ revision53
https://mevius.5ch.net/test/read.cgi/tech/1488362439/ 専用板あるんですね、ありがとうございます
そっち行きます、 >>710
年寄りが最近と言いつつ十年前の話を始めるのに似ているな いきことだったけどJava先にやった方が結局早い気がしてきた 「いきこと」という、俺の知らない日本語がまだあったのかと思い、ネットで検索して出てきたのがこれ。
https://ikikoto.com/ まあしかしこないだ本当に「しくはない」という言葉があることがわかって驚いたんだけどね。
最初見た時「惜しくはない」の「惜」が編集ミスで消えただけだと思ったが、文脈からして変だと思って検索して発覚。 百聞は一見に如かずという諺もあるし、そこまで聞かない言葉でもないような気がするけど。 如くは無しは高校の漢文で習ってるはず
ゆとり世代はその限りではない で、>>745の「いきこと」って何?間違えたとしても何をどう間違えたのか推測できない。文脈からも分からない。 >>750
Javaをやらずに「いき」なり「こと」りんから入った、の略。
Java先にやった方が、という続きの文章と、KotlinをやるにはJavaの知識は必須かという
議論の存在を知らないと推測できない。
自分もわかるまで数分かかった。>>750でなく>>745が悪いと思う。 「いき」なりそんな「こと」言われたら困るじゃん
もう「いき」なりあんな「こと」しないでよね 羽ばたいーたらー 戻らなーいーと言ってー♪
いきことがかりも一度Flutterを始めたらJavaに戻るなと歌で訴えているよ >>754
Flutterの言語がdartでなくKotlinだったらなあ KotlinはFlutterが求める要件は満たせてないんじゃね
ネイティブコードとJavaScriptへのトランスパイルが重要なのにKotlinは全然良くならないし
DartVMによるホットリロードはJVMでも出来るのかな
プログラマが直接書く部分はKotlinが優れてるけど、それ以外はDartの方が良い/今後良くなりやすい
DartはほぼFlutter専用なのでFlutterに合わせて言語側に変更を加えられる Kotlinマスターになるぞ!
これから絶対にKotlinの覇権がくる!
使えるのはアンドロイドだけじゃないんだ! chromebookがmacbookくらいのシェアになったらなあ 何年か前に米のラップトップの販売シェアはすでにトップって聞いたけど デスクトップOS 2021年
順位 プロダクト 4月のシェア
1 Windows 65.88%
2 Unknown 16.64%
3 OS X 15.63%
4 Linux 1.34
ノートパソコンOS,2019,2020にChromeがマック追い抜く
Windows 85.4% 80.5%
Chrome OS 6.4% 10.8%
macOS 6.7% 7.5
スマートフォンOS 2021年3月,4月
1 Android 72.19% 71.83% ↑
2 iOS 27.00% 27.41% ↓
3 Samsung 0.39% 0.38 今は全然日本語の情報ないからな
今のうちに英語の情報仕入れまくって数年後にくるであろうKotlinフィーバーに備えるぜ え? Kotlin の日本語情報? Webに沢山あると思うが? 本も沢山出てるよ。 まあでもこの頃は自動翻訳でも結構読めるようになったよね。修正してくれてる人が居るのかも知れないが。 ネット上の情報は増えたけど書籍はまだまだだわ。
諸初学者向けの入門書はあるけど、書籍でそれ以上深掘りたいなら英語ばっかだな。 Javaの本に書いてることをKotlinで再現していけばいい 昔は結構深い本があった気がするんだけど、
ここ10年くらいで入門書ばかりでネットの情報見た方が良くなった >>766
最初の頃はそれでいいけどKotlinしかない記法は身につきにくいからなぁ フィールドはsetter, getter使ってアクセスしろって言ってたくせに
kotlinになったらcallbackとか var callbackにして直接アクセスokになったのなんなん kotlinのプロパティなら後からでも影響最小限度でsetter, getterに書き換えできるからでしょ Kotlinのクラスに書けるのはフィールドではなくプロパティだから問題ないでしょ
内部では同じことで、同じメリットも享受できる Kotlinはgetter, setterが自動で作られてるよね?表に見えるように書く必要がないだけで。 Androidアプリマンいたら聞きたいんだがネイティブで作るのって実際の現場だとどれくらい選択されてる?
ググってるとネイティブ学んでおけばOK的な記事が見つかる一方で実際の現場では保守工数を考えてマルチプラットフォームでiOSも合わせて同資源で作るのが多いのか気になった 現場つっても業界によってだいぶ事情が違うんじゃないの
顧客の一律の端末に特定のアプリを開発してインストールする(例えば飲食のタブレット注文アプリ)
ならネイティブで開発が普通だろうが
例えばゲームのようにアプリそれ自体を一般に販売するような場合、特定の事情でもない限り
アンドロイドのみ、iOSのみということはありえないので当然マルチプラットフォーム前提になる 最近はもうあいぽん無視するとこも出てきてるでしょ
シェア2割しかないし unityやマルチ使ってわざわざiPhone外すことはない
Androidだけなのはswiftできなかったとか特殊な事情だろ知らんけど まともなアプリはネイティブ
webからサービス展開していったような会社はreactNativeとかwebViewだけのガワアプリだったりするけど大抵クオリティが微妙
君が普段使っているアプリを見てみたら良い大体まともなアプリはネイティブだろう ソシャゲとかはマルチプラットフォーム使って1資源で両OSビルドしてるイメージ
その他のアプリは要件に応じて同じようにマルチにするかネイティブで別々で作るか決めてるイメージ 基本的にはネイティブが第一選択肢かな
マルチプラットフォームで出来ちゃいそうなものだったり、開発リソース次第ではそちらを選ぶ
マルチプラットフォームで開発するにしても、結局ちょっと込み入ったことになると両プラットフォーム用に実装分けなくちゃいけなくなるのよね そういう意味ではFlutterはとても良くできてるからマルチプラットフォームでできる範囲がすごく広がったな、
ネイティブを完全に置き換えるまではまだ行ってないけど、かなりの部分を吸収してくれる
開発言語がDartであることを除けばとても良い センサ類あれこれ触るならネイティブだわなって気がする スマホVRの為にジャイロ取得したいんだけど取説ページありませんか? constつけられるならつけた方が処理が早くなる可能性がある
でも、つけられるのはプリミティブ型か文字列だけだし、実行時に値が変わるような場所にはつけられないし、つけられる定義の場所にも制限がある 便乗して教えて欲しいんだけどさ
constってつけても、その内容ってテキスト領域からスタックにコピーされるの?
それともテキスト領域への参照になるの? うっせ警告出るから付けてるだけじゃjetbrainsに文句言えや 太麺で生麺タイプのカップうどんってなんて名前だったっけ
constじゃなくて 教えてください。
関数の中のmodifierとcontentの構文の意味がわかりません
@Composable
fun StaggeredGrid(
modifier: Modifier = Modifier,
content: @Composable () -> Unit
) {... jetpack compose とかイキリやがって modifierの=はただdefault値設定してるだけじゃ
でcontentの方の() ->Unit
はただの関数型でしょ
引数なしで戻り値がUnitの関数型
@Composableはアノテーション >>800
ありがとう
なるほど!解るような、解ってないような。
もらったワードでさらに調べてみます スマホあり。ネットなしでkotlin使うのは厳しいかのう。 今ここには何を使って書いてるんだ?ここにネット接続しないで書ける立場の人なのか? スマホあるから調べ物はできるけどスタンドアロンPCで開発したいってことかな
テザリングすればいいんじゃないかな A≠B や A⊄B だからといって反対とはならんやろ AWS Cloud9 とか、ああいうのはタブレットやスマホで使えないのかな?
ブラウザ上で動く IDE のようだが。
まあそこまでしなくても Android の場合は中が Linux だからシェル動かすアプリ入れれば動かない事はないだろうが、Kotlin コンパイラについてはインストールできるか分からんな。
理屈の上ではできそうだが。 千葉興業銀行、4月から副業解禁 県内地銀初
南都銀行、4月から行員の副業制度導入 ウェブ制作など
荘内銀、行員の副業・兼業解禁
フィデアHD、副業・兼業制度を導入
横浜銀行、10月から従業員の副業・兼業解禁
鹿児島銀、副業解禁を検討 九州FGと肥後銀は10月導入
肥後銀行が副業制度導入へ 多様な働き方認める 10月から あけましておめでとうございます。
ことりんもよろしくお願いいたします。 >>811
座布団一枚と言おうとしたが、>>515で既出だった...
まあ、恒例行事にしてもいいかもしれない...? 1年に300レスすら書かれないのかぁ
話すことないんだね >>814
いや、3度目だ。一昨年の正月にも書いた。(本当) win, linux, macどれでも動くソフト作りたいから悩んでたけど、色々心配なcompose for desktopか、JavaFXか、まだpreviewの.NET MAUIか、どれ選べばいいのか...... FlutterとかElectronも選択肢に入れたげて >>822
Electronは忘れてた、ありがとう。
Flutterってfor desktopもあるのか。
Kotlinが好きだから、composeかJavaFX、最悪C#と思ってた。 本なんかいらんよ、はっきりいってWebの情報ググればいい
昨今はどの分野、言語もトレンドや情報更新が速すぎて出版されてる本の内容は出た時点で古くなってることが多い
逆にWebの情報ググって習得できないようなら本を買っても何も習得できないと断言できるので本が無駄になるだけ
匿名ネットにいて本をすすめてくるやつはその出版にかかわってるやつ、つまりステマ勢だけ class の中で companion object Default: クラス名 { ... } みたいにするとクラス名と同じ名前のインスタンス名でアクセスできることに、今わかった。
kotlin.random.Random 調べていてわかったんだけどね。どうしていきなり Random.nextInt() みたいなことが出来るのか、どこかで Random という名前でプロパティ作ってあるのか、とか探し求めて2時間後に判明。
こういうのって入門書に書いてないような気がするが、書いてあるんだろうか? (昔のCのK&Rみたいに重要な事がさらっと簡単に書いてあったり?) Kotlin の第一人者は太郎!
ちょっと古いけど、良くまとまっている
Kotlinスタートブック -新しいAndroidプログラミング、長澤 太郎、2016 >>826
https://dogwood008.github.io/kotlin-web-site-ja/docs/reference/object-declarations.html
このリファレンスの和訳のコンパニオンオブジェクト(Companion Objects)で説明されていることだよね?
たぶんオリジナルのリファレンスにも同じ記述があるはず
入門書でもこの辺は書いてあるんじゃないのかな?
companion objectには名前をつけることができて、RandomクラスではDefaultという名前をつけてる
この名前は省略できてその場合にはCompanionという名前になる
普通にcompanion object内の物を使うときにはこのDefaultとかCompanionは省略できるので、Random.nextInt()みたいに使える >>828
やはり重要な事がサラッと簡単に書いてあるパターンだな・・・ companion objectは文法がちょっと独特だけど、Androidならクラス内の定数を定義する場所の定番だし、createInstance()みたいなのを書く場所にもなるので、これを知らないとかは普通無いと思う
単にクラス名.メソッド名()で呼び出せるようにするのならcompanion objectの中にメソッドを書くだけでいい
Randomの使い方(抽象クラス内のcompanion objectがその抽象クラスを継承具象化してクラスメソッドとしてアクセス可能にする)はちょっと特殊だけど、companion objectの仕様が理解できてれば何やってるかわかるはず >>830
何やってるかわかるはず?
そんなのみんなわかってるよw Jetbrainsって実質ロシア企業だよね
Kotlinの将来性が急に不安になってきた https://www.itmedia.co.jp/news/spv/2202/25/news091.html
ロシア系ベンダーJetBrainsがウクライナ侵攻を非難 「IntelliJ」「PyCharm」など人気IDE開発
かなり素早く対応したから大事にはならなさそう >>834
めちゃナイーブな見方やな
the attackがロシア軍によるウクライナ侵略行為を指してるかどうか分からない
ロシアが主張するようにウクライナ軍による東部のロシア系住民の虐殺を指してるのかもしれない
表面的に立場を明確にしたように見えて意図的にどちらの立場にも取れるように計算し作られたツイート
実際アメリカではサブスク解除する人が続出してる カスペ、JetBrains以外だとよく使われてるのはWinRARだな
WinRARは先週新バージョンが・・・ >>835
こんなところにも逆張りバカか工作員来るの? nginxはもうロシア系じゃない
開発拠点も移ってる プログラミング学び始めてみたんだけどKotlinだとガッしてもらえないんですか 難しいな。Kotlin だと null.toString() が文字列の "null" 返してくるしな。 Kotlin の class の中の companion object {} の中の変数って Java の static と同じかと思ったら微妙に違うな。
クラス名を通してアクセスできるけどクラスのインスタンスを通したらできない。
class X { companion object { val a = 123 } }
val xxx = X()
のように書いた場合 X.a は大丈夫だが xxx.a は Unresolved reference になって駄目。 インスタンス変数を経由してクラスメソッドにアクセスできるというのがJavaの文法的な欠陥だからね
Kotlinはそれを改善してる
Javaでもそう書いたらIDEや静的解析ツールは警告してくれるよ
メソッドをシームレスに扱えることはメリットだけど、異なる型に代入したとき、親をオーバーライドするのか隠すのかで異なる振る舞いをするから間違いを誘発する 言語はできることが多いほど使いやすいとはならない
できることを絞ることで使いやすくした好例がJava
本来シームレスに扱うことができないものをシームレス風に書けるようにしてしまった過ち kotlinでロガーの定義書くのがめんどい。ここだけは lombok 使って @Slf4J で済ませてた時代から明確に退化した。 >>850
Kotlinは入門レベルではベターJava言語だから、Javaができるなら容易だしできないならそりゃ厳しい
これはJava→Kotlinで学ばなければいけないでは決してなくてKotlinが理解できるなら基本的なレベルのJavaは容易に理解できるようになってるよ 初心者です
arrayデータをプリファレンスに保存するの難しくないですか? >>852
あなた以外の人はみんな難しいと思っていません。
難しいと思うのであれば、何が難しいか具体的に書かないと、欲しい回答は得られません。
たとえば、keyの設定が困るとか、可変の場合どうしたらいいか分からないとか。 プリファレンスって、Android の話?
文字列にする必要があるなら JSON にすれば良いのでは? androidのSharedPreferenesはInt,Long,Float,Boolean,String,Set<String>を格納するためのモノで、新しく置き換わる予定の新クラスPreferencesDataStoreでもこの方針は変わっていない
多様な型を格納したい場合にはProtoDataStoreやRoomを使えという方針
公式日本語ドキュメントも用意されてるんだから読めよ
https://developer.android.com/topic/libraries/architecture/datastore?hl=ja androidのkotlinはもう発展してないよ
進歩:sdkでこういうことができます!
現在:パーミッションが必要!さらにアーキテクチャはこうした方がいいよ!
Androidの進歩は終わって、作り方とかアプリの品質に向かってる。
これが進歩なら他の言語を知らないやつなんだろうなと思う >>856
それでいい
機能発展で破壊的アップデートが来るほうが迷惑 c#アプリを今まで作っていて、androidアプリをやることで、javaで殆ど同じ書き方で勉強しなくても良かったけどコピペ出来る例はkotlinばかりなんで、kotlin勉強しようと思うが、javaで組んでいるアプリを途中でkotlinに変更する方法ありますか? java-kotlinで互換があるから相互運用でいいと思うけど、
気になるならintellij系IDEとかのjava->kotlin変換機能を使うとか Android StudioはJavaをコピペしたらKotlinに変換してくれた記憶が
https://developer.android.com/kotlin/add-kotlin?hl=ja
既存の Java コードを Kotlin コードに変換する JavaコピペでKotlin変換昨日は、コンバーターとしてではなく
Java人がKotlinを習得するときの勉強機能として最適
ソースは俺 そこは手作業~♪
ひたすら?を消してnull安全にする作業はご愛嬌 Kotlinをお題に一発笑わせてくれというオファーかな kotlin/nativeのコンパイル速くなった? 泥アプリはとりあえずjvmと分離させたからいつでもnativeとして動かせる kotlin native ってWebAssembly も出来るんでしょ?これから伸びると思うけどなあ 政治的な意味でもSwiftを差し置いて使う機会なんてあるのだろうか… >>881
有名どころではNetfixが使ってる
flutterやXamarinみたいにAndroidとソース共通化するのが目的だね それはApple自信がやらなければ、他には誰もメリット無いしやらんだろうね 自社製品内でしかクロスプラットフォーム対応する気のない糞林檎のSwiftカス、
と思い込んでたけど、Swift実装のScadeとやらがあるらしい、知らんしスレチだけど
https://qiita.com/hcrane/items/ea445c65a903c42ce86e スコープ内だけで使う変数をスコープ終わりにメモリ解放する方法ってありますか? 意味よくわからんけど、ガベージコレクション自動管理でメモリが自動開放されるだけじゃだめなんか? ガーベジする言語って明示的にメモリ解放する方法ってないのかな >>890
GCの仕様次第。
ゴミ集めを実行すれば開放することが多いけど、GC仕様として保証していないこともあるから注意。 System.gc() でいいんじゃね
けどアホな人間が解放を強制するより賢いシステムに任せたほうが合理的なので上司や客から強いられた場合を除けば任せたほうがいい
しかしGCをガベージと略すの気色悪いなゴミする言語ってなんだ >>888
今どきのJVMはエスケープ解析でブロックやメソッド内に閉じる変数は開放してくれてるんじゃなかったっけ。 >>890
そもそもなんでそれをやる必要があるのか?
やらないとまずい状況になったのか? 丸々1か月何も書き込みなし。
やはりKotlinをボロクソに悪く書くようなアンチ書き込みがないとスレは活性化しないか。 悪く書きたくても悪い所が見つからなくて書けませんw 結局、Android入門するにはKotlinで良いのかい? 決った案件の仕事とかでなく、趣味でただやってみるならそんでいい
ただ現状でもネット等の参考ソース等は未だJavaが多いとおおもうから余裕があるなら
まずJavaからスタートして、あとでKotlinやればいい
仕事なんだったら、発注元の意見きいてそれに従え余計な事は考えるな >>902
おじさんにもわかるようにブチクシを説明してくれ。 IOライブラリのokioすげえな
むちゃくちゃコード減らせたわ すくなくともGoとかいうクソ言語名よりははるかにまし
Goは何が駄目といってネーミングがクソすぎる >>905
じゃあこれからは Котлин と書きなさい。 >>899
むしろ今更javaで書いてたら時代遅れ Kotlinの中にJavaのコード混ぜても動く
つまりKotlin使いつつも全部Javaでも書ける
もちろん逆はできない
したがって今からやるならKotlinおすすめ
Kotlinが気にいらないならKotlinの中でJavaで書けばいい コルーチンを使うときだけkotlin使ってる
それ以外はjava 全部 Kotlin で書けばスッキリしたソースになるんじゃないかな。
慣れてないとグチャグチャになるだろうけど。その辺はJavaでも他の言語でも同じだな。 >>914
コルーチンとかいうカスよりrxjavaだろ null安全強制してくれないとjava使う気にはなれんなあ 実際のところ古いプログラムでJava書いてると、全部Kotlinに書き換えたくはなる。 みなさん、Kotlinで何を作ってるんですか?
play ストアで満足して、特に開発したいと思うアプリが無いんだが… 最近はKotlin/Nativeを使ってみたくて、適当にクロスプラットフォームCLIバイナリ作って遊んでた >>919
個人だとオープンソースアプリにプルリク突き付けるくらいで、イチからはやれてない 昔は定期メール送らなきゃいけない仕事してたときにFrom偽装して定時にメール送信するアプリ作ったわ やっぱり必要にせまられないと作れませんよね
例えば今タバタタイマーって筋力トレーニング用のアプリ使ってるんだけど、こういうのもそういうトレーニングの専門家が側にいないと素人が監修してもろくなアプリにならないと思う
無理ですよね そういう既存のやつにないこの機能欲しいってなってアプリ作ったよ 既存のやつに機能がない場合か、もうひとつのパターンは
既存のやつにはあまりやらせたくない(つまりプライバシーがからむ情報を扱うもの)は自作することがあるな 普段はJavaScriptでadobeソフトのスクリプト作ってるんだけど、その方面しか何もわからない
もう少し勉強して画像加工のアプリを作ってみようかな?
写真を撮る人は多いので需要はありそう…
でもKotlinで出来るのかな?
Javaの方がいい? Android向けならGPUImage for Androidってのがあるね >>927
面白そうですね
でもちょっと情報が少なくて作成するとき困るかな?
難易度高そう… すごく大まかに言えば、まず画面デザインをプログラムして、それからそれぞれのボタンに処理を与えていくという流れでしょうか?
何を作ろうかと思ってたけど、そう考えるとゲームが一番ハードルが高いのでしょうか?
画面デザインの段階で人の目をひくような面白いものにしないといけないので…
ゲーム以外のアプリだとデザインはそんなに凝って無くて地味なのでも使ってもらえる >>930
大まかな流れはあってるけど、実際のところは処理のコアの部分の作成がどこかしらで必要(プロジェクトによる)。
ゲームはどちらかというと、やることがシンプルなので簡単な印象。
ゲーム以外のアプリが地味でも使ってもらえるっていうのは有り得ない。
むしろゲームよりUIなど、洗練されてないと、見向きもしてもらえない。 個人アプリのデザインなんてまず作ってみれ
足りないもの面倒なところいくらでもでてくるからそれ直していけばいい クロスワードパズルみたいなゲームなら簡単
アクションゲームみたいなのは普通に難しい
インベーダーすら作れないプログラマーは多いと思う 特許とか著作権ってどうやって調べるんでしょうか?
Play ストアでも似たようなアプリが何本も出てるけど、同じようなアプリを販売して訴えられたりしない?
最近地元の公立中学校の教員が、イラストレーターが描いたイラストを学校のホームページで無断で使用して、市が著作権の侵害で賠償金27万円を支払うことにしたってニュースを知って怖かったんだけど… そんなのいちいち個人開発で気にしてもしょうがないし ライセンスは
material-design-icons
https://developers.google.com/fonts/docs/material_icons
みたいにちゃんと明確に書いてあるっしょ
商用利用可能かどうかはそのライセンス名でググるといい
上のリンクのやつはAndroidアプリでよく使われる商用利用可能なApache2.0ライセンスね Play ストアを見たら、作者が違う同じ用途のアプリがいくつもアップされてるね
例えば「スクリーンオフ」で検索してみたらわかるけど。
類似品でも好きなように作ればいいのか
気が楽になった androidにあってiOSに無いアプリが多いのでぜひswiftでiOS版を作ってみたいんだけど、Mac必須なのがなぁ…
Windows版も出てるけどWindowsだけではまず無理だろう
Macが欲しくなるのが目に見えてる
類似アプリの開発になってしまってもKotlinにするか… androにあってiOSに無いのはたいていの場合Appleの規約で禁止されてるとか
そもそも実装方法が無い、みたいな事が多いよ
まあ個人でインストールして動かすのはできるかもしれないがおそらくアプリとしてリリースはできない事が多いだろう >>942
いや開発環境に制限があるってのが一番大きい
いつまで林檎はxcode出し渋ってんねん そうだ
iOS制限が多いの忘れてた
ほんといじれないもんね 俺がメインで使ってるvivaldiブラウザがiOSiPadOS版のリリースが未だに滞ってるのもそのあたりが原因みたいだ やっぱ止めるかな
play ストアって評価があるよね?
★1~3で更新を続けて行く自信が無い
「ゴミアプリです」なんて書かれたら絶対無理だ w
他所でプログラムを売ってるんだけど、売れないけど評価が無いのでやって行けてるんだと思う >>941
公開、個人名で公開しないとダメだよ今。 >>947
ほんとだ
「Androidの場合、課金アプリを公開するには「住所」の表示が必須のよう」
こっちはどうですか?
家の近所めっちゃ平和なのに、これはダメだ
iOSの方もダメだけど iOSって年間料金100ドルくらいいるのがなんとも… iOSのゲームも嫌いだな
最初から真剣にやらないと、初めからやり直したいのにアプリの再インストール以外に手段が無い(メニューに用意されてたら別だが)
androidはちょこっとお試しでやってみてストレージのデータを消して、時間がゆっくりある時に真剣にやり直したりしてる Kotlin syntheticsが廃止との事ですが、これに対応した入門書は有りますかね? Kotlinは鳴物入りで登場した割にあまり浸透せずに下降局面に入ったな Kotlinなー
ビルドエラーがJavaのソース表示される場合が結構あるし
それだったらJavaでいいじゃんってなるよな みんなKotlin/Native使ってないんけ?
結構Native使い勝手いいよ JVMが嫌なだけならTypeScriptかC#でいいし、ネイティブならGoかRustだろ
Kotlinの出る幕はない いやいや採用するかどうかの検討のためには、全く普及していない現状をまずは認識し、そうなった理由を理解することが重要だろ
Kotlinは何らかの制約により不幸にもJVMを使わざるを得ない場合に使用する言語であり、Kotlinを前提にしてプラットフォームを選定するなんてあり得ないんだよ Kotlin最高に好きなんだけど、あんまり浸透してないんか。
個人的にはめちゃくちゃ書きやすくて好き。 Kotlinは言語自体は良いんだけどエコシステムがJavaに引っ張られすぎてるのが残念
せっかく簡潔に書ける言語使ってんだから、いろんな「賢い」フレームワークを駆使せずとも十分に高い生産性を実現できると思うのだけど、
KotlinのプロジェクトってJavaの資産やスキルが活かせてしまうが故に、ゴッテゴテにフレームワーク使いまくって結果的にJavaと大して変わんなくなっちゃうケースが多いんだよね
結局Javaの巨大なエコシステムのお作法を習得しなければならないという大きなハードルは解消しないし、既にJavaのお作法に習熟している人にとっては生産性もJavaと大差ないっていう 最近はKtorとかマルチプラットフォームに対応してサーバーサイドで使いやすい 古い資産使いまわさざるをえないから仕方なくjavaってだけで基本はkotlinやろ
nullかもしれないコードなんて使わせたくないし見たくもない いや、取得したデータがDBに登録されてなかったら0じゃなく未入力をセットしたい場合とかNULL欲しいだろ
よくあることだし Kotlinアンチ湧いてて草
Javaに親を殺されたんかな笑 いやnull欲しいものは明示的にnullableにできるから良いんだよ コトリンのコルーチンはユーザビリティ高くてかなり使いやすかったよ
既存のrxjava部分は全部コルーチンに置き換えた いきなりCompose MultiplatformでKotlinを触ったけどコルーチンはいいなぁと思ってる ネットで頻繁に質問するのならJAVAの方がいいでしょうか?
JavaScriptはなんとか書けるようになって、今度はandroidのアプリを作ってみたいのですが…
周りにプログラマが居ないのでネットで尋ねるしか手段が無いです >>975
javaでやって駄目だったらkotlinでやれば? >>975
公式ドキュメントがほとんどKotlinだし、Javaで書いてあるプログラム、古すぎて今のAndroidで動かなかったりするから、素直にKotlin使えばよいと思う。 kotlinもjavaも変わらない
機能としてはせいぜい非同期処理が違うくらい Kotlinが使えないJavaおじさん「KotlinとJavaは同じ」 JavaScriptちょっと物足りなくなってきた
ショートプログラムだからすぐに出来てしまう… JavaScriptから移るならnullを意識したプログラムを勉強した方がいいだろうしkotlin推し >>980
非同期処理のコルーチンまわりを除いたらほぼ同じだよ
kotlinxを見ればわかる kotlinでしかできないのは非同期処理まわり以外では無い
スコープ関数は単に便利ってだけだし無くてもいい 俺自身は新規プロジェクトはjavaよりkotlinを採用すべきだと思うけど、現状サーバーまわりでjavaのが普及してるからjavaを勉強するべき
泥ならkotlinしか有り得ない >>985
javaを勉強するべき
kotlinしか有り得ない
って結局どっちなのよ w >>986
自分ごときのレスで草生してくれるなら俺嬉しいよ あー
ここandroidスレじゃないのか
androidの人しかいないのかと思ってた Kotlinの本、早く届かないかなー
JavaScript、作りたいものがこんなに早くネタ切れになるとは思わなかった… あけましておめでとうございます。
ことりんもよろしくおねがいします。 今年はkotlinがnativeも強力だってことを知ってもらえる一年になるといいな Kotlinの本届いた
今年はこれを頑張ろう
半年で使えるようになるかな? ∧,,,∧
( ・∀・) 1000ならジュースでも飲むか
( )
し─J このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 970日 20時間 54分 35秒 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php レス数が1000を超えています。これ以上書き込みはできません。