答え: アプリ・Activityに適用しているテーマ、起動するAndroid OS VersionとcompileSdkVersionとサポートライブラリのバージョンによる。 Theme.AppCompat.Light を使っていてAndroid 5.0以上でcompileSdkVersion 28でAndroidXなら #21000000 以下解説 ?att…
2019/2/7~2/8に行われたDroidkaigi 2019に参加してきました。 droidkaigi.jp 弁当おいしかった。 バリスタさんは長蛇の列でした。おいしかった。 今年はコントリビュートしました(左上) パーティーはめっちゃ人がいました... 以下参加したセッションのメモ…
先日Android Studio 3.3と共にGradle plugin 3.3.0がきたのでアップデートしてみた。 Crashlyticsを使っているとWarning WARNING: API 'variant.getExternalNativeBuildTasks()' is obsolete and has been replaced with 'variant.getExternalNativeBuildPro…
Support Libraryに依存した3rd party libraryが入っていないせいかあっさり終わった。 移行前の環境 Android Studio 3.2.1 compileSdkVersion 28 targetSdkVersion 28 Support Library 28.0.0 Refactor -> Migrate to AndroidX ほぼこれで終わる。ただこれだ…
今リビングで使っているテレビでは入力1がPS4、入力2がChromecast、入力3がNintendo Switchとなっている。テレビは基本的にPS4のトルネで見ている。 よくChromecastでYoutubeを見たりすると入力が切り替わるのだが、Chromecastに入力切替の操作が奪われてし…
嵌ったのでメモ。 BottomNavigationBar のタブの Fragment 内で ViewPager を使っていて、そのタブから別タブに切り替えて再びそのタブに戻ってきたとき、FragmentPagerAdapter#getItem() が呼ばれず、 ViewPager 内が再読込みされない現象が起きた。 調査の…
以下の記事を昔に書いたが、内容が古くなってきたようなので書き直す。 phicdy.hatenablog.com Androidの設定画面について AndroidではAPI1から設定画面を生成してくれる PreferenceActivity が用意されている Android 3.0で各設定画面をFragmentに分けるた…
自分の中で混乱してきたので整理する。 環境 Kotlin 1.2.71 Kotlin Coroutines 0.30.1 本題 以下のようなClean Architecuteベースの設計のアプリがあるとする。 このときKotlin Coroutineを使って非同期処理を行ってUIを更新するとする。 各クラスの責務を分…
2018/8/25に品川で開催されたKotlin Fest 2018に参加してきました。 kotlin.connpass.com 飲み物とか食事。パンプディング美味しかった。 mixiさんブースでやってKotlinクイズの景品。7問中3問正解でプランニングポーカーもらいました。 以下参加したセッシ…
Androidの世界では基本的に1アプリのみが前面に出る。 しかし android.permission.SYSTEM_ALERT_WINDOW を宣言することで他のアプリが前面の場合でも Viewを表示できる Android 6.0未満 制限はなく、 android.permission.SYSTEM_ALERT_WINDOW を宣言するだけ…
Firebaseを使ってみたかったので置き換えてみた。 プロジェクトのbuild.gradle dependencies { ... classpath 'com.google.gms:google-services:4.0.0' } アプリのbuild.gradle dependencies { ... implementation "com.google.firebase:firebase-core:16.0.…
最近どうもdが押しにくく、ファームウェアをアップデートしても直らなかったため、キースイッチを交換することにしました。 okapies.hateblo.jp を参考にやりました。 必要なもの キーキャップを引き抜く器具(494円) https://www.amazon.co.jp/FILCO-Keypull…
今年の11月以降、Google PlayにはtargetSdkVersion26(Android 8.0)以上のアプリしかアップロードできなくなる(新規アプリは8月)。 developers-jp.googleblog.com それでも状況によってはAndroid 2.3をサポートしなければならない場合がある・・・ しかし、…
GitHubでソースを公開していてリリース署名の設定をしたい場合、公開用にはダミーの署名を置き、手元ではそれを上書きしたい。かつ git status でnot stagedのところに上書き内容がいちいち出ないようにプロジェクト外から上書きしたい。 gradle.properties …
ポイントはonOptionsItemSelected()でandroid.R.id.homeをハンドリングしないと反応してくれない点 class MainActivity: AppCompatActivity { ... override fun onCreateOptionsMenu(menu: Menu): Boolean { // Inflate menu resource file. menuInflater.in…
例えばRSSのリストがあり、それを別々のスレッドで処理して全部の処理が終わったらUIを更新したいとする。 RxJavaのflatMap(mapper, combine)を使えばリストのデータを1つ1つのObservable/Flowableに変換して処理できる。 まず第一引数のmapper部分でそれぞ…
自分用。 環境 Mac OS 10.12.6 Karabiner-Elements 11.6.0 日本語外付けキーボード 手順 Karabiner-Elementsをインストールする。 Complex Modifications -> Add rule -> Import more rules from Internet(open a web browser) -> For Japanese (日本語環境…
久し振りにjacocoの結果みたらあれ・・・なんか結果がおかしいなとなった。 よく見てみるとkotlinに変換したファイル達がコードカバレッジ対象から外れていた・・・ phicdy.hatenablog.com 以下で対応できた sourceDirectories に src/main/kotlin を入れる…
去年の11/5に注文して12/23に届いた。 13000円。 今在庫を見てみたら2~3日後配達になっていてかなり在庫が充実している・・・ nature.global (置き方がこれでいいかは疑問が残る・・・) いわゆるスマートリモコンで赤外線リモコンで操作できる家電(エアコ…
UIテストを実行しようとしたらエラー・・・ ひとまずRun with --stacktraceを押してみる。 ... Caused by: com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536 at com.android.dx.merge.DexMerger$8.updateIndex(DexMerger.ja…
とある商品の価格を監視したくてなんかいい方法ないかと考えていたところ、Google App Scriptでやったという記事を見たのを思い出してやってみた。 実装 スプレッドシートを作成→ツール→スクリプトエディタで作成開始。 今回はデバッグ用に実行ボタンを追加…
6.2.1入っているように見えるのに怒られる・・・ 再インストールしたら直った。
結論:前もって規約を読んでおけ Gambling | Restricted Content - Developer Policy Center 現在は公開中ですが、最初に公開しようとしたときには公開できませんでした。 play.google.com 規約によるとオンライン ギャンブルを推進するコンテンツおよびサー…
Kotlinに何も考えずにTheoryとDataPointsを使ったテストを書こうとするとデータがJUnitから参照できずエラーになる。 Kotlinにstaticはないのでcompanion objectを作って@JvmFieldをつけることでJUnitから参照できるようになる。 @RunWith(Theories::class) …
なにも考えずに実装を行うとActivityが2重で開いてしまうことがある。 例えばボタンを押して次のActivityが開くとき、そのActivityやIntentに設定をしていなければ、素早く連打することで2重に開くことができる。 修正方法 AndroidManifestでActivityのlaunc…
ImageButtonを使えば簡単にできたので自分用にメモ。 <ImageButton android:id="@+id/ib_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/your_imgae" android:background="?android:selectableItemBackground" android:contentDescription="@string/your_image_desc" /> 参考 stacko…</imagebutton>
Jenkinsのビルドでパラメータをつけてビルドするときに何のパラメータでビルドしたかいちいち確認するのが面倒なので自動化した。 まずパラメータに必要なビルドオプション(build_option)とビルドの説明(description)を入力できるようにする。 そしてパイプ…
環境 [root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core) 結論 gccとpython-develをyumで入れる 調査 デフォルトで入れようとすると以下ログでこける。Cコンパイラがないとのことなのでgccを入れる [root@localhost ~]# pip…
自分用にメモ。以下のコードを実行したときのAndroid OSバージョンごとのUIを調べた。 Intent intent = new Intent(context, MainActivity.class); PendingIntent pi = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); …
CircleCIで普通にビルドしていると毎回Android SDKとGradleのダウンロードが行われてビルド時間が長くなってくる。CircleCIにはデフォルトのキャッシュ以外にも自分でキャッシュの設定ができるので、Android SDKとGradleをキャッシュすることでビルドを短く…