August 31, 2024

Android12以降のSplash画面をパワープレイでカスタマイズする

Android12から独自Splashが非推奨になりました。Splashの名前を含む独自クラスがあるとLintで注意されます。 もともとGoogleは起動画面が遅くなるとかでSplash Screen反対派だった気がしますが(雑な記憶なので、ソースなし)、昨今はどのアプリにもSplashが表示されることが多くなったためか、Android側に標準のSplashが搭載されることになりました。正確にはAndroid12以降のアプリは強制的にSplash画面が表示されます。 そのため、すでにSplash画面を用意しているアプリはAndroid12以降で独自のSplashとOSによるSplashが2重に表示されてしまうため注意が必要になります。 Read more

February 29, 2024

Flutter 3.19(3.16)に上げるときに困ったこと

2024年2月16日にFlutter3.19がリリースされました。[What's new] メイントピックはGemini AI SDKかなと思うのですが、個人的に気になっているのはスクロールの改善などのImpelerによるパフォーマンスの向上です。 他にも実装が面倒なDeep linkを簡単に実装できるようになるDeepLinking web validatorや、iOSのネイティブフォントが適用されるようになった点、Adaptive Switchが追加されて、iOSネイティブと同じUIが簡単に実装できるようになっていっているのは良い流れかなと思います。 Read more

October 30, 2022

Android Surface View上のVisibility

意外と忘れがちなので小ネタ。 AndroidでSurfaceViewの上にViewを配置してVisibilityを切り替える場合、Viewの再配置はそれなりの処理が入ってしまうので、少しでも処理を減らそうと思いデフォルトのVisibilityをView.INVISIBLEで定義しておき、 Read more

March 31, 2022

AndroidのSYSTEM_ALERT_WINDOWの歴史

Androidには初期の頃から他のアプリの上にも独自のViewを表示できる素晴らしい機能SYSTEM_ALERT_WINDOWの機能があります。 Facebook Messangerのメッセージ受信時に表示されるオーバーレイもこの機能を使って実装されています。(現在はおそらく違う。後述) PiPが無い時代もこの機能を使ってYouTubeや動画を画面に重ねていつでも見れるアプリを作ってる友人がいました。 他のアプリを開いている時にも任意のViewを重ねられるので、Twitterを見ながら動画を見るなどができてSYSTEM_ALERT_WINDOWが実装されているアプリは同類のアプリと差別化できていたり、便利なものが多々ありました。 Read more

May 30, 2020

Dagger Android Hiltが神

Androidでよく使われているDIライブラリであるDaggerは今まで「分かりづらい」「学習コストが高い」「難しい」という声が多くありました。 Read more

October 10, 2018

GoogleのPixel戦略は正しい

Pixel3日本発売 2018年ついに日本でもPixelシリーズが発売される事になった。めでたい。 2016年にAndroid One の発売はあったものの、Google純正フラグシップAndroid端末はNexus5X, Nexus6Pを最後に日本市場には投入されていなかった。 日本には通称 技適と呼ばれる「技術基準適合証明と技術基準適合認定のいずれかあるいは両者の認証」がなされていない端末は、日本国内において電波を発してはいけないとう法律があるため、Android O(8.x)までしかサポートしていないNexus5X, 6Pを最後に最新のOSを搭載したAndroidが使用出来ないという問題が2018年から発生していた。 技適に関しては、同じ端末を利用していても外国人旅行者が日本に来た場合は90日間は使ってもオッケー!というザル法律なため、本来の既存電波との混信を守るという法律の意味をなしていないので早く法改正することを願う。 Read more

July 25, 2018

Android エラー: シンボルを見つけられません

Android Studioからbuildした場合は問題が無かったのだが、Gradle taskからのbuildは エラー: シンボルを見つけられません と表示されて失敗していた。 Build cacheによってProtobufの時や、kaptで生成されるクラスの時があったので、自動生成系のクラスが参照出来なかった。 結論を先に言うと、最近PCを変えてインストールしていたJDKのversionが10だったのが原因だった。 AndroidはGradle Plugin 2.4からJava8が使えるようになったので、ここ からJDK1.8をインストールする。 Read more

© AAkira 2023