October 30, 2022

Android Surface View上のVisibility

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

September 30, 2022

【Dart】Labelを使ってGoto

DartにはLabelがあります。Cでいうgotoです。KotlinやSwiftにもLabelがあるので、モダンな言語には大体備わっている機能かもしれません。 DartのLabelはCのgotoのように任意の場所に飛べるのではなく、主にループから抜け出す処理等で使います。 DartではSwitch文でもラベルを使うのでまずはその使い方を見てみましょう。 Read more

August 31, 2022

【Dart】Public getter, Private setter

Dartには言語レベルでgetter, setterが用意されていて、それぞれget set をつけるとgetter, setterとして扱われます。 シンプルにgetterもsetterもpublicな場合は当然このようになります。 Read more

June 30, 2022

【BigQuery】Flutter Firebase Analytics/Crashlyticsで送ったログをBigQueryで調べる

Firease Analytics, Crashlyticsは配列でネストされているので少し分析しづらいです。 個人的によく使うクエリを少しメモしておきます。 今回はFlutterからログを送信しています。FlutterではSDK側でよしなにやってはくれないので event_name などの部分は独自で定義した名前になります。 例) page_view, screen_name 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

February 28, 2022

【Flutter】異なる文字サイズを整えてきれいに見せる

デザインの世界ではテキストの文字間隔を整えてきれいに見せることをカーニング(kerning)と呼びます。 ロゴ等はsvgなどのベクターや画像で用意すると思うので、アプリの世界でカーニングをきっちりやる機会は少ないかと思いますが、 カーニングと同様にテキストをきれいに見せる手法として、数字より単位等の文字を小さくすると 必要な情報の優先度が上がり美しく見える法則があります。 そのため、よくデザイナーの方から渡されるデザインでフォントサイズが異なるテキストが横に並んでいる場合があります。 Read more

© AAkira 2023