101010

プログラミング備忘録とともに、ポエムってます。

Kotlin

Androidアプリをコマンドラインからビルドする | Android

AndroidアプリをMacのターミナル上でコマンドからビルド実行してみたのでメモしておく。 シェルにパスを通す エミュレータの名前を確認する エミュレータ起動 ビルド実行 参考 シェルにパスを通す emulatorやadbコマンドを使えるようにするため以下のパスを…

HttpsURLConnectionを使ったHTTPリクエスト | Android Kotlin

HTTPリクエストはOkHttpで行うようにしていこうと思うが、せっかく作ったHttpsURLConnectionを捨ててしまうのももったいないのでこのページにプログラムコードを載せておくことにしよう。 PostParamsのようなクラスもわざわざ作ったが、OkHttpにはFormBody.B…

非同期処理でCoroutine(コルーチン)を使ってみる | Android Kotlin

いよいよ非同期処理もコルーチンへ移行しようと思っているので理解できている範囲で使い方をまとめておく。 ライブラリのインストール ScopedAppActivityクラスの作成 launchを使う コルーチンで非同期処理を書く suspend関数 asyncを使わずwithContextを使…

Mockitoを使ったはじめてのテスト | Android Kotlin

Mockitoの使い方を学ぶために行ったサンプルテストを記述していく。 Mockitoを使えるようにGradleでインストール 簡単なプログラムでテストする whenとthenReturnを理解する whenとthenReturnを理解する2 spyを理解する verifyでメソッドが何回呼ばれたか確…

Kotlinでオブジェクト(object)の動作確認 | Kotlin Android

objectを使っていくつか遊びがてら実験してみた。オブジェクトに関してもやもやしていたが少しだけつかめてきた気がする。 companion object でシングルトンの動作確認 メソッドの関数オブジェクト インタフェースとオブジェクトの組み合わせ companion obje…

デバッグに役立つ例外処理のメモ

Android x Kotlinにおけるデバッグに役立つ例外処理のメソッドを紹介する。 どちらとも例外を投げてプログラムを強制終了させることが出来る。またクラッシュした際にメッセージを投げることが可能だ。 requireNotNull var nullableHoge: Hoge? ... requireN…

Adapter内でのリソースファイル操作のメモ | Android Kotlin

リストビューやリサイクラービューのAdapter内においてViewの操作をするときのメモ書き。 ビューを表示制御する リソースファイルにアクセスする ビューを表示制御する 次のようにしてViewの表示、非表示を操作できる。 holder.imageView.visibility = View.…

AndroidManifest.xmlの細かな設定 | Android Kotlin

AndroidManifest.xmlでよく使いそうな設定をまとめておく。 applicationタグがWarningで覆われてしまう 画面を縦のみに固定する インターネットの利用を許可する ボタン連打によるActivityの二重起動を防ぎたい 参考 applicationタグがWarningで覆われてしま…

SoundPoolを使ってゲームの効果音を再生する | Android Kotlin

今回はSoundPoolを使ってサウンド再生を行ってみた。 図のように2つのボタンを設置してクリックしたときに効果音が鳴るようなプログラムである。 サウンドファイルはres/rawへ配置する SoundPoolをシングルトンで管理する LOLLIPOP以降はBuilderで生成する …

OnClickListenerを使わずにボタンイベントをフックする | Android Kotlin

追記(3/6) 元記事 参考 追記(3/6) 本ブログで説明しているonClick属性だが、Androidアプリ開発逆引きレシピ (PROGRAMMER’S RECiPE)によればProGuard(難読化処理)を施した際にクリックイベントが取得できなくなるようだ。onClick属性を利用する場合には、この…

Assetsに存在するテキストファイルを読み込む | Android Kotlin

Androidプロジェクト内のAssetsフォルダに設置したテキストファイルを、読み込んで処理したい場合はこれでいける。 try { context.assets.open("hoge.csv").reader(charset=Charsets.UTF_8).forEachLine{} } catch (e: IOException) { e.printStackTrace() }…

Nothing型はコンパイラに、関数が決して正常に完了しないことを保証する | Android Kotlin

Kotlinプログラミング を読んで、いままで謎だったNothing型のことをようやく理解できたのでメモしておく。 Kotlinでは関数において何も返さない場合にはUnit型を使う。そのUnit型と似たものにNothing型というのがある。Nothing型も何も返さないという意味な…

IntelliJでちょっと便利な機能、KotlinからJavaへ逆コンパイル | Android Kotlin

IntelliJにて、KotlinからJavaに逆コンパイルする方法をメモっておく。(このことはKotlinコードと等価なJavaコードを見たい場合に便利である。) Kotlinで書かれたソースコードを、Kotlinコンパイラで一旦バイトコードへ変換する。それを更に、Javaのソース…

データクラスとタプル | Android Kotlin

データクラスとタプル データクラス classを構造体のデータ管理するために使いたい場合に、次のようにプロパティだけもたせたクラスを作ることがあるだろう。 class Kami(val level:Int, val kanji: String, val kana:String) このようなクラスは、修飾子dat…

Null安全、ぬるぽバイバイ | Android Kotlin

Null安全です スマートキャスト エルビス演算子 安全呼び出し Booleanだってnullableになりたい! 参考 Kotlin の基礎を学んだので、今回はNull安全についてまとめてみる。 Javaでは、ぬるぽ (NullPointerException) が許されているが、Kotlinではぬるぽにな…

抽象クラスとインターフェース | Kotlin

抽象クラスからインタフェースを実装してインスタンス生成するまでのイメージ Kotlinスタートブック -新しいAndroidプログラミング を読んだことで、Kotlinへの理解がだいぶ深まった。 おかげでKotlinリファレンスをスラスラ読めるようになってきたので嬉し…

UNIXタイムスタンプの取得 | Android Kotlin

System.currentTimeMillis() これでUNIXタイムスタンプが取得できた!、と思ったらつまづく。 正解はこちら。 val unixTimestamp = System.currentTimeMillis() / 1000 1000で割る。 UNIXタイムスタンプの単位は秒だから。 一方、System.currentTimeMillis()…