wrongwrongな開発日記

しんまいさんの忘備録

Kotlin

【Kotlin】通常ではfor文で回せないものをfor文っぽく扱う

Kotlinでは、浮動少数やBigIntegerなどはそのままだとfor文に入れて回すことができません。 こういったものはgenerateSequenceを使ってシーケンスにすることで、for文のように回すことができます。 やり方 以下はgenerateSequenceを使って階乗を実装したもの…

【Arrow】トランポリンを使う【Kotlin】

wrongwrong163377.hatenablog.com qiita.com続きです。 Arrowとは Kotlinで関数型プログラミングをするためのライブラリです。 以下の記事で知りました。 techblog.picappinc.jp トランポリンの実装と使い方 GitHubに実装と使い方(相互再帰で奇偶判定)が上…

【プログラミング】sealed classでトランポリンを実装する【Kotlin】

2018/12/22追記 ArrowというKotlinでの関数型プログラミングを支援するライブラリにトランポリンの実装が有りましたので、Arrowを使った方がいいです。 wrongwrong163377.hatenablog.com 本文 sealed classを使ってトランポリン(Trampoline)を実装します。…

【プログラミング】末尾再帰を使って反復法(ニュートン法)を実装する【Kotlin】

wrongwrong163377.hatenablog.com 続きです。 数値解析などで用いる反復法も末尾再帰で書いたほうがシンプルになりました。 ということで、今回は例としてニュートン法を実装します。 ニュートン法の解説はネット上にきちんとしたものが有ると思うので飛ばし…

【プログラミング】末尾再帰を使って累乗(バイナリ法)を実装する【Kotlin】

wrongwrong163377.hatenablog.com 続きです。 ネット上のループや通常の再帰を使った実装に比べ、末尾再帰で書いた方がシンプルにバイナリ法を実装できました。 バイナリ法とは をを掛け合わせた形に変形することで乗算回数を抑えるアルゴリズムです。が整数…

【プログラミング】末尾再帰を使う【Kotlin】

末尾再帰とは この記事ではtailrec funで宣言すると末尾再帰最適化がかかる関数全てを末尾再帰であるとします。 なぜ末尾再帰が必要なのか 再帰的な書き方ではコードが美しくなる反面、実行時間が遅い、スタックオーバーフローを引き起こすなど、実用上の問…

【Kotlin】バリデーション用のアノテーションを自作する【SpringBoot】

↓の続きです。 wrongwrong163377.hatenablog.com 記事執筆時点でのプロジェクトリポジトリは以下。 github.com やること フィールド用に名前が半角スペースで2分割できるかをチェックするCustom Validatorを作ります。 深い理解ができていないので、作って動…

【Kotlin】SpringBootでControllerが受け取った内容をバリデーションするまで【SpringBoot】

↓の続きです。 wrongwrong163377.hatenablog.com Post/Putで受け取った内容をBeanのバリデーション/相関チェックするところまでやります。 この記事の内容が完了した状態のリポジトリは以下。 github.com やること モデルを追加する コントローラーを追加す…

【Kotlin】SpringBootでGetのコントローラーを動かすまで【SpringBoot】

最近黒べこ本(会社のお金で)買いました。サーバーサイドでもKotlinはいいぞ。 今回はKotlinのSpringBootでハロワします。 記事執筆時点でのプロジェクトリポジトリは以下。 github.com やること SpringInitializrでプロジェクトの概形を作る Controllerを…

【Android】picassoでURLから画像をよしなに扱う【Kotlin】

URLで公開されている画像をAndroidから効率的に扱うライブラリとしてはPicassoとGlideが有名です。 今回はPicassoの導入について書きます。 Picassoとは 画像のダウンロード、変形、メモリキャッシュといった処理をよしなにやってくれるライブラリです。 や…

【Android】Retrofitの通信をOkHttpでデバッグする【Kotlin】

wrongwrong163377.hatenablog.com 続きです。 やりたいこと 前回の記事の時点ではRetrofitの通信がどうなっているか把握できないので、上手くいかないときにデバッグするのが困難です。 そこで、OkTTP3を用いて通信のデバッグを行います。 プロジェクトリポ…

【Android】ListViewを使う【Kotlin】

自作クラスを使ったListViewの使い方をまとめます。この記事を書いた時点で用いているサンプルプロジェクトは以下。 github.com やること 表示するレイアウトを作る Adapterクラスを作る アクティビティへの配置とAdapterのセット ListViewをレイアウトに配…

【Android】GitHubの言語ごとの色に対応するXMLを作る【Kotlin】

GitHubでは以下のように言語ごとに色が割り振られています。これをAndroidで利用したかったので、XML形式に変換しました。 やりかた 以下に定義が有るので、これをローカルに持ってきて解析します。 https://raw.githubusercontent.com/hiroppy/github-langu…

【Java】Intellij IDEAでWebSocketを導入する【Kotlin】

Intellij IDEAでWebSocketを使います。 やること やることは以下の通りです。 (Intellij IDEAでコンパイル・実行までできるようにする) Java EEを持ってきて配置する Application Serverを設定する 参考ページ ここから書く内容は以下のページと同様です。 j…

【Android】Retrofit2を使う【Kotlin】

KotlinでRetrofit2を使ってみました(2018/9/8全面的に書き直し)。 Retrofitとは プロジェクト やったこと Gradleに追記 Manifestに追記 受け取るためのデータクラス作成 Retrofitを使う 続き 参考URL Retrofitとは httpで公開されたAPI叩くライブラリです…

【Android】コードからアクションバーを変更する【Kotlin】

出てきた情報が古かったりしたのでまとめます。 やり方 変数で変更する方法と、supportActionBarを持ってきて変更する方法とが有ります。 ソースコード アクションバーのタイトルを「あああ」に、背景(色)をリソースのcolor内colorAccent変更します。 titl…

【Kotlin】APIを叩く【Java】

KotlinでAPIを叩いてJSONを取得します。 APIを叩くことを勉強しはじめたばかりなので分かってないことばかりですが、URLを叩くとJSONが帰ってくる状況を想定して作りました。 ソースコード GitHubAPIを叩いて、自分のアカウント(k163377)の全リポジトリの…

【Kotlin】mXparserを使う【Java】

mXparserを使ってみました。 mXparserとは やったこと ソースコード 実行結果 導入方法 mXparserとは Stringで諸々を入力してやることで数式を計算できるライブラリです。Javaや.Net、AndroidやXamarinといった多くの環境で動きます。Javaで動くので当然Kotl…