特定のDRMがサポートされているか MediaCrypto.isCryptoSchemeSupported(uuid) uuid には以下の値を指定する val WIDEVIDE_UUID = UUID.fromString("edef8ba9-79d6-4ace-a3c8-27dcd51d21ed") val PLAYREADY_UUID = UUID.fromString("9a04f079-9840-4286-ab92…
この記事の要約 AndroidのTextViewで文字列の一部にリンクを設定する方法について annotationタグを使って、リンク設定をする文字列の範囲を指定する 多言語化対応やリンク変更の負担が少ない やりたいこと 図のようにTextViewの一部( こちら )にリンクを設…
はじめに JUnitのParameterizedテストでテストケース名は以下の図のように、パラメータごとに test[0] , test[1], ... という表示がされます この表示では、いくつかのパラメータでテストが失敗した場合に、どのパラメータの時にテストが失敗しているかがわ…
mockitoとは mockitoはJavaのユニットテストでクラスをモック可能にするためのフレームワークです。 site.mockito.org gradleを使っている場合は以下のように mockito-core を依存に追加することで使用できます。 dependencies { testCompile "org.mockito:m…
EventBusライブラリを導入した際にkaptで生成されるはずのindexクラスが生成されなかった時にした事について github.com build.gradleの設定 まずはドキュメントに書いてある通りに build.gradle にkaptプラグインの導入やライブラリの設定を行います。 appl…
※ 2014年01月23日 ごろに書いた記事です(消そうと思いましたが懐かしいので残しておく) replaceでは引数に指定した文字をそのまま置き換えるが、 replaceAllでは引数に指定した文字を正規表現と見なして置き換える。 例えば、以下のようなコードでは、 Strin…
今回みる処理 以下のようにload(String).into(ImageView) を実行してから、画像が表示されるまでの処理の流れをみていきます。 Glide .with(imageView) .load(imageUrl) .into(imageView); intoでリクエストを開始するまで into(ImageView) の中では、ロード…
この記事では、Glideで使用されている DiskLruCache のキャッシュ情報を保存する処理の実装と仕様についてみていきます。 glide/DiskLruCache.java at v4.11.0 · bumptech/glide DiskLruCacheの概要 DiskLruCache は、LRUでファイルのキャッシュを行うクラス…
xmlで bitmap タグを使って画像を読み込む際に以下のようなエラーが起きた場合と、9-patch画像がただの画像になってハマった時のメモ Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #7: <bitmap> requires a valid 'src' attribute at an</bitmap>…
ディスクキャッシュのインスタンスの生成 ディスクキャッシュの処理を行うインスタンスは、 Glide.Builder で設定した DiskCache.Factory から作成されます。もしBuilderで設定しない場合は InternalCacheDiskCacheFactory が使われます。 if (diskCacheFact…
Androidの画像読み込みライブラリの Glide で画像を読み込む際に、 Glide.with に渡す引数による処理の違いについて書きます。 Glide.withの処理を追いかける Glide.with では以下のように getRetriever(Context) を使って取得した RequestManagerRetriever …
この記事は、 Android Advent Calendar 2019 - Qiita の23日目です。 はじめに この記事では、ベンチマークを行うためのJetpack Benchmarkライブラリの紹介と、ベンチマークの例として View#measure にかかる時間の計測を行います。 Jetpack Benchmarkとは …
概要 この記事ではIntellijでサポートされたKotlinのScratchファイルについて紹介を行います Scratchファイル自体はKotlinに限らずJavaなどもサポートされています Scratchファイルとは Kotlinなどの実行可能なコードを保存するファイルで、デフォルトではプ…
ブログなどのサイト上で実行可能なKotlinコードを表示するためのスクリプト(Kotlin Playground)がJetBrainsから公開され、 Try Kotlin や Kotlinのリファレンスにあるような機能を自分のサイトでも使うことが可能になりました。 all - Kotlin Programming La…
TL;DR Sequenceは1つの値に対する操作が全て行われた後、必要なら次の値が処理される。 Listはすべての値に対して1つの操作が行われた後、必要なら次の操作が行われる Kotlinでのデータの集合 Kotlinにはデータの集合を操作するためのクラスとして、List, Ar…
プラグインの概要 Kotlinの文字列中の変数が定数値の場合に、その値を文字列中に表示するプラグインです。 ↓の例では$tagの表示がtagの値であるtag nameになります。 プラグイン説明 インストール方法 以下の画像のように、IntellijやAndroidStudioの設定か…
data classとは data classは以下のようにクラスにdataをつけて宣言することで、 コンストラクタで宣言されたプロパティを使ったequals/hashCode/toString関数などを自動生成してくれます。 data class Book( val title: String, val page: Int ) val book1 …
Gradle Kotlin DSL メリット 1回ビルドできる状態にもっていけばあとはコードの補完が効く Groovyを知らなくてもKotlinで書くことができる デメリット gradle(Groovy版)からKotlinDSLに直すのがつらい あまり使っている人を見ないので思わぬバグを踏む可能性…
セッションについて 去年のDroidKaigiでは、MVP, MVVMを使った実装方法、RxJava, Kotlinなどをどう使うか、のようなすぐに役に立つ系の話が多かったイメージがあります。 しかし今年は、なぜそのような設計にしたのか、あるライブラリや技術がどのように実装…
フレームワークやライブラリの仕様で、Classインスタンスが必要になる場合があります。 例: AndroidのIntentを作る場合、jsonを特定の型にパースする場合など JavaとKotlinではこのような場合にどのような違いがあるのか調べました。 Javaの場合 以下のよう…
kotlinの標準ライブラリに条件式を満たさなければ例外を出すという動作を行う関数が定義されています。 関数内で引数の条件をチェックする場合などに使うと便利なので紹介したいと思います IllegalArgumentExceptionを発生させる 引数をチェックするための関…
少しツイートが古いですが、Kotlin + AndroidのFragmentで下記ツイートの方法を使っているコードを見かけたので自分の考えを書いておきます ※このツイートがどのような文脈で呟かれたのかを確認していないのでこのツイートだけを見て思った感想です。 class …
tl;dr Kotlinコードで定義したデフォルト値を使用した関数,コンストラクタをJavaコードで使う事を想定する場合には@JvmOverloadsアノテーションをつける @JvmOverloadsアノテーション Kotlinの関数やコンストラクタの宣言で、以下のようにデフォルト値を使う…
Kotlin1.1.50あたりからビルドスクリプトがgradle(Gradle Kotlin Script)になった。その影響かテストの実行方法が変わっていたので、メモしておく ※以下の情報は古くなる可能性が高いのでまずはKotlin(github)のReadmeを先に読んでください Gradleタブから実…
バーコード読み取り機能を作る場合などにいちいち実機でバーコードをスキャンするのが面倒臭かったのでなんとかPCに表示した画像をエミュレータのカメラソースにできないか調べてみました CamTwist CamTwistはニコニコ生放送やTwitchなどで配信する時に、Web…
Firebase Cloud Messaging(FCM)を使ってAndroid端末へ通知を送るスクリプトを作りました(iOSは非対応です) スクリプト内で送られているデータはcurlを使う場合を参照してください 作成したスクリプト ソースコードは https://github.com/sckm/fcm-send にあ…
FirebaseCrashReportingにAndroidのマッピングファイルをあげる際に相対パスが使えなかったり、google-services.jsonがapp直下にない時にAppIdなどを指定するのが面倒くさかったのでgolangでスクリプトを作ってみました ソースコードは https://github.com/s…
問題 RxJavaでたまにonErrorReturnItemなどでエラー処理をしていてもたまにエラーがすり抜けてきてアプリが落ちてしまうことがあった 問題となっていそうな部分を簡単に表すと以下のようになっていた Single.zip( Single Single ) .onErrorReturnItem 対処方…
基本的な方法 複数の値を渡す際には%1$sや%2$sなどを設定する。 1や2で何番目の引数を使うかを指定する <string name="string_res1">1番目%1$s 2番目%2$s"</string> getString(R.string.string_res1, "A", "B") 結果: 1番目A 2番目B 渡した値の一部を使わない場合 引数で複数の値を渡すが文字列リ…
AndroidのDataBindingでincludeしたレイアウトに値を渡す時に少し悩んだのでメモ 参考: Data Binding Library 変数の渡し方法 includeされるファイルが以下のような時 <layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:bind="http://schemas.android.com/apk/res-auto"> <data> </data></layout>