Android, iPhone等のスマートフォン向けアプリ開発などの話題を中心に、時事ネタなどを気の向くままに書いています。
Home
 

SkyArts.com’s X (Twitter) Updates for 2024-10-29 – 2024-11-05




2024-10-29
  • iOS 18.1 がリリースされていますね。

    Xcode 16.1 は RC のままなので少し待たないといけない様ですね。
    2024-10-29 01:12:02

  • Xcode 16.1 の正式版がリリースされた様です。 in reply to SkyArts_dot_com 2024-10-29 02:40:15

  • Android 15 対応するといきなり画面下部に Navigation Bar が上に重なって表示されるのですが、これってスクロールの下部も Navigation Bar が邪魔する事になるので Margin を考えないといけないのですよね。

    「これは互換性を破る変更であり、アプリの UI に悪影響を与える可能性があります。」って in reply to SkyArts_dot_com 2024-10-29 11:17:21

  • 画面数が数多いので結構な作業量になりそうかな。

    しかも、Insets って取得するタイミングが早いと null で返してくる●●仕様なのですよね。 in reply to SkyArts_dot_com 2024-10-29 11:18:37

  • 画面下部に Navigation Bar が上に重なって表示される、という事は、

    – 画面下部に広告を表示している場合、Navigation Bar が広告の上に重なって表示
    – 仕方ないので広告を上にずらすと AdMob から「広告がコンテンツの上に表示されているぞ!」と難癖を付けられる

    という流れになりそうな予感 in reply to SkyArts_dot_com 2024-10-29 11:23:07

  • iOS 17.7.1 がリリースされている様ですね。

    Apple 社の開発者向けの Downlods ページには iPadOS 17.7.1 しか表示されませんが。
    ※何故か iOS 17.7.x は一覧から消えています。 in reply to SkyArts_dot_com 2024-10-29 13:47:23


2024-10-31
  • Android 15 対応で targetSdkVersion 35 にすると画面上部のステータスバーの面倒まで見ないといけないのは無駄に手間がかかりますね。

    Android 15 環境では targetSdkVersion 34 だと画面上部と下部は黒なのでステータスバーの表示は見えますが、 35 にすると透明になって表示が見えなくなりますね。 https://twitter.com/SkyArts_dot_com/status/1851932618268512448/photo/1
    2024-10-31 19:21:58

  • Android の UI レイアウトは無駄に複雑で面倒なので、解析しないといけないかな。

    それでも、ステータスバーの表示は(iOS の様に) OS が面倒見て欲しいですね。 in reply to SkyArts_dot_com 2024-10-31 19:24:05

  • ステータスバーの色は変更できますが、Deprecated になっているので代替手段を考えないといけないですね。 in reply to SkyArts_dot_com 2024-10-31 19:31:20

  • Window#setStatusBarColor は

    Deprecated
    Draw proper background behind WindowInsets.Type.statusBars() instead.

    という事なので「独自に描画しろ!」という事なのかな?? in reply to SkyArts_dot_com 2024-10-31 19:35:01

  • Android のソースコードは、いつ Deprecated になったのかが不明なので結局 API ドキュメントを調べないといけなくなるのが不便ですね。

    iOS の場合は(実装はブラックボックス化されていますが)ソースコードを参照すれば、いつ追加されたとか、いつ Deprecated になったのかがわかりますしね。 in reply to SkyArts_dot_com 2024-10-31 19:41:16

  • iOS アプリでも画面上部のステータスバーと下部のホームバー(Android ではナビゲーションバー)部分の背景色を設定する為に独自 View を表示させているので、やる事は同じですが、Android の UI レイアウトは無駄に複雑なので面倒なのですよね。
    UI レイアウトをソースコードで指定しているもので。 in reply to SkyArts_dot_com 2024-10-31 19:45:04

  • そして、

    『しかも、Insets って取得するタイミングが早いと null で返してくる●●仕様なのですよね。』

    に繋がってくるのですよね。

    null ではなく全値を 0 埋めで返してくれれば良いものを。 in reply to SkyArts_dot_com 2024-10-31 19:53:30


2024-11-01
  • 結局、Android 15 の仕様変更の動作は、「これは互換性を破る変更であり、アプリの UI に悪影響を与える可能性があります。」というよりも

    – 複数画面での遷移の事をほとんど想定しておらず、単画面での使用しか考えていない欠陥品

    にしか見えないですね。 in reply to SkyArts_dot_com 2024-11-01 02:19:46

  • この欠陥仕様に準拠しないと Google Play では最長でも1年後には新OS向けには表示されなくなる、という事になるので半ば強制的な押し付けですね。 in reply to SkyArts_dot_com 2024-11-01 02:23:41

  • 何故 Android 15 環境で画面の上下(ステータスバーとナビゲーションバーの箇所)が開くのかがわかりました!

    Layout XML ファイルの android:fitsSystemWindows 属性値が true の場合は上下が開き、false の場合は上下の開きは無くなる、という事の様ですね。 in reply to SkyArts_dot_com 2024-11-01 23:05:51

  • 画面の上下(ステータスバーとナビゲーションバーの箇所)が開かなくなったとして、

    – 画面上部はステータスバーに埋まって表示される
    – 画面下部はナビゲーションバーに埋まって表示される(リストでの一覧表示時は一番下の項目がナビゲーションバーに重なってしまう)

    という問題が出るのですよね in reply to SkyArts_dot_com 2024-11-01 23:08:11

  • しかも、android:fitsSystemWindows 属性値を true にして上下(ステータスバーとナビゲーションバーの箇所)を開いて表示させた場合、開いている所に描画する事ができない様なので false 一択しかない状況。

    Android 15 の為に色々と手を加えないといけない様ですね。 in reply to SkyArts_dot_com 2024-11-01 23:11:36

  • ステータスバーとナビゲーションバーの背景の描画はできたので Android 15 でも今まで通りに違和感なく表示できそうではありますが、上下(ステータスバーとナビゲーションバーの箇所)の位置調整とリストの最下部の項目等が重ならないようにする調整は必要ですね。 in reply to SkyArts_dot_com 2024-11-01 23:17:52

  • この Android 15 の仕様、本当に必要だったのか疑問。

    不要に一票! in reply to SkyArts_dot_com 2024-11-01 23:18:24

  • Android 15 環境でも画面の上下を良い感じで表示できる様にできた!

    リストの下部はナビゲーションバーの高さを考慮して Padding を追加するとして、画面上部のステータスバーの所までリストを表示する必要はないかな。
    画面上部には独自のナビゲーションバーがありますしね。 https://twitter.com/SkyArts_dot_com/status/1852363955962098103/photo/1 in reply to SkyArts_dot_com 2024-11-01 23:55:57

  • これを後 70画面分位やらないといけないのかな(笑)

    まあ、ある程度は抽象化して継承させているので特別な画面だけ対応する形になるとは思いますが。 in reply to SkyArts_dot_com 2024-11-01 23:58:10


2024-11-02
  • ここまで互換性無視の仕様だと「これは互換性を破る変更であり、アプリの UI に悪影響を与える可能性があります。」というよりも「ほぼ作り直しを強いられる●●な仕様変更!」という方が正しい気がします。 in reply to SkyArts_dot_com 2024-11-02 12:26:23


2024-11-03
2024-11-04
  • Android 15 向けに WebView を Padding で上下の表示位置調整をした場合、スクロールバーの位置は調整できますが表示範囲はスクロール範囲無視で上下にはみ出ますね。
    一番上にスクロールしても更に上に表示される、しかも上に移動不可という感じ。

    WebView の不具合に見えますね。 in reply to SkyArts_dot_com 2024-11-04 01:34:29

  • Android 15 の画面の表示位置の仕様変更よりも先に WebView のこの問題の方を先に直して欲しいですね。

    WebView を使用している画面だけは全画面表示は止めて画面の上下に謎の隙間(ステータスバーとナビゲーションバー部分)がある状態にしておくのが一番良い解決方法なのかも。
    ナンセンスですが。 in reply to SkyArts_dot_com 2024-11-04 01:36:48

  • RecyclerView と NestedScrollView の Padding 指定時の挙動の違いも面倒ですね。

    NestedScrollView は中のコンテンツに Padding 指定する事で何とかできましたが、WebView 内のコンテンツは WebView が管理しているのでどうしようもな気もするのですけれどね。 in reply to SkyArts_dot_com 2024-11-04 02:01:00

  • スクロールなしの画面の場合は Android 15 向けに上下のシステムバーと重ならない様に

    – UI の位置を細かくずらす
    – 大外の Layout の中に(無駄に)Layout を一つ噛まして中の Layout で表示サイズを調整

    という事をしないといけないですね。 in reply to SkyArts_dot_com 2024-11-04 12:42:17

  • Android の Layout Manager 自体が無駄に複雑なのもあって色々と面倒ですね。

    まあ、ウチのアプリは元々ソースコードで色々と微調整していたので特定の Layout Manager のソースコード内での指定方法にはかなり詳しいので Android 15 向けの表示位置の微調整は何とかなりますが。 in reply to SkyArts_dot_com 2024-11-04 13:14:04

  • Android 版で大幅なデザイン変更を行い、「かなり使いにくくなった!」と凄く評判が悪くてすぐに旧版に戻した某証券会社のアプリの iOS 版のアップデートが出ていて、「まさか Android 版と同様に大幅なデザイン変更していないよな?」と疑ってしまいました(笑)
    2024-11-04 13:18:38

  • 流石に Android 版ですごく評判の悪かったデザイン変更を適用はしていない様で一安心。

    デザイン性よりも使い勝手の方が大切ですしね。 in reply to SkyArts_dot_com 2024-11-04 13:19:22

  • Layout XML ファイルの android:fitsSystemWindows 属性値が true の場合、Android 15 では意図しない Padding が勝手に付く事がありますね。

    コードで動的に Layout を結合する、という特殊な事をしているのもありますが、中に入れた Layout の上に勝手にステータスバー分下に下がって表示されました in reply to SkyArts_dot_com 2024-11-04 23:05:48

  • Android 15 では Layout XML ファイルの android:fitsSystemWindows 属性値を true にしない方が良さそう。

    それ以前に何故使用していたのか覚えていないですが(笑)
    一部の画面だけ何故か使用していたのですよね。 in reply to SkyArts_dot_com 2024-11-04 23:09:55

  • 取り敢えず、Android 15 向けの画面上下のシステムバー関連での画面修正は終了!
    全画面修正をしたのでテストが大変そう。ユーザーの方に外部テスターをお願いした方が良いかな。

    そして、画面以外にも色々と Deprecated な機能があるのでそちらも修正しないといけないのですよね。 in reply to SkyArts_dot_com 2024-11-04 23:18:46

  • Android の場合、大きく分けて Gesture Navigation と 3-Buttons Navigation の2つがあるので両方でテストしないといけないのですよね。

    まあ、画面上下のシステムバーの値をきちんと返してくれれば問題ないはずですが。 in reply to SkyArts_dot_com 2024-11-04 23:26:41

  • 一番問題なのは、Android は Activity の Lifecycle で画面表示のタイミングが取れない欠陥品なので、画面上下のシステムバーの高さを返してくれるタイミングを考慮するのが難しい所かな。
    取得が早すぎると null で返してくる●●仕様ですし。 in reply to SkyArts_dot_com 2024-11-04 23:28:52

  • Pixel 9 のスキンのエミュレータに何か違和感があると思っていたのですが、iPhone と比べると画面下部のナビゲーションバーの高さが足りなくてアプリの下部が画面の隅の丸い部分にめり込んでしまうのですね。

    対して iPhone の方はホームバーの高さを計算してあるのかめり込みは少ないですね。 https://twitter.com/SkyArts_dot_com/status/1853446911971500308/photo/1
    2024-11-04 23:39:13

  • Pixel 9 というか Android の画面下部のナビゲーションバーの高さは低すぎな気はしますが。

    画面上部のステータスバーは Pixel 9 の方が高さがある感じ。バランス良く考えられているのかな。 in reply to SkyArts_dot_com 2024-11-04 23:42:19

  • 改めて見比べると Android 版の方の独自のナビゲーションバー(アプリ上部のタイトル等を表示)が黒過ぎるので少し考えた方が良いかな(笑)
    iOS 版と同様にステータスバーの色(アプリで指定)と同じにしたら良い感じになるかな。 in reply to SkyArts_dot_com 2024-11-04 23:47:16


2024-11-05
  • Android 15 向けの画面上下のシステムバー関連での画面修正が終了したと思ったら、何故か1画面だけステータスバーに最初から色が付いているのですよね。
    透明になるはずなのに何故??

    Android はコードの外部で指定する箇所が多すぎてわかりにくいのですよね。 in reply to SkyArts_dot_com 2024-11-05 10:25:36

  • 1画面だけステータスバーに最初から色が付いている問題は、AndroidManifest.xml ファイルで android:theme 属性を指定していた為の様です。

    無駄に指定する場所が多すぎてわからなくなりますね。 in reply to SkyArts_dot_com 2024-11-05 11:35:05

  • ステータスバーに最初から色が付いている問題が解決したと思ったら Android 15 より前のバージョンで問題が出ますね。
    結局、ステータスバーの問題で下位互換性が無くなる、という結果。

    このままだと Android 15 とそれより前のバージョンで起動時に表示する画面を切り替えないと難しそう。 in reply to SkyArts_dot_com 2024-11-05 12:52:16

  • Android で起動時の Activity を切り替えられたかな??

    Android 15 より前から独自にステータスバーの透明化をやっていて、その後 OS レベルで対応されたらそれが邪魔をして来た、という感じ。 in reply to SkyArts_dot_com 2024-11-05 13:03:01

  • Android は、XML ファイルで色々指定できる機能の内、コードでは指定できない機能が意外にあるのですよね。
    それで XML ファイルを書く事を強いられているのですよね。 in reply to SkyArts_dot_com 2024-11-05 13:38:06

  • 下位互換性の為に Style 指定での色付き半透明ステータスバーを残し、その下に半透明の View を噛ませて意図している色に近い形で実現する事にしました!

    Style 指定での色付き半透明ステータスバーが Deprecated になったらかなり厳しいかな。 in reply to SkyArts_dot_com 2024-11-05 13:50:36

  • Android OS のバージョンアップの普及スピードが iOS と同等に早ければほとんど気にしないで済む問題なのですけれどね。 in reply to SkyArts_dot_com 2024-11-05 13:52:09

  • 結局、Android の WebView は Padding 機能が上手く動かないので上下のシステムバーが透明になっても(コンテンツのスクロール位置が調整されないので)無意味、という事なのかな。

    システムバーが透明になってアプリの上に重なって表示されるのであれば WebView も直してくれないとね。 in reply to SkyArts_dot_com 2024-11-05 14:41:24

  • ウチのアプリでは WebView はヘルプとかローカルファイル用ブラウザ機能だけの使用なので大きな影響は無いですが、全画面に WebView を表示していた場合は色々と問題が出そうですね。 in reply to SkyArts_dot_com 2024-11-05 14:49:39

  • Android の WebView は、Margin 指定で下の位置をずらした場合、下限までスクロールすると横スクロールバーまで一緒に上下にバウンドするのですね

    余りにも格好悪いので何とかならないものかな。
    スクロールバーの位置まで動いて欲しくないのですけれどね。 in reply to SkyArts_dot_com 2024-11-05 15:17:44

  • Activity 内でコードで動的に Theme (Style) を読み込める様ですね。
    これで Android 15 向けに無駄に View を重ねなくて良くなりました! in reply to SkyArts_dot_com 2024-11-05 23:15:02

  • 後は Android 14 以前のステータスバーを色なしの透明にできれば良いのですけれどね。

    “android:windowTranslucentStatus” を true にするだけでは駄目なのですよね。
    まあ、今後の為に Android 15 以降向けの事だけを考えていれば良いのですけれどね。 in reply to SkyArts_dot_com 2024-11-05 23:16:11

  • Android 向け Wrix (超高機能テキストエディタ)を Android 15 対応にして上下のシステムバーに重なる部分もテキストが描画される様にしてみました!

    見事に iOS 向け Wrix にそっくりになりましたね(笑)

    https://skyarts.com/japan/products/android/wrix/index.html https://twitter.com/SkyArts_dot_com/status/1853806595215692062/photo/1
    2024-11-05 23:28:29

  • 今まで Android 向け Wrix (超高機能テキストエディタ)は画面上部のステータスバーは独自に半透明にしてテキストを描画してていましたが、Android 15 向けに画面下部のナビゲーションバーと重なる部分も描画できるようにしました! in reply to SkyArts_dot_com 2024-11-05 23:31:47

  • Android 15 対応は見た目だけではなく内部の修正も必要なので正式版のリリースはもう少し先になります。 in reply to SkyArts_dot_com 2024-11-05 23:34:05

  • iOS / iPadOS 向け Wrix (超高機能テキストエディタ)のアップデートもしないといけないかな。

    https://skyarts.com/japan/products/ios/wrix/index.html
    2024-11-05 23:41:58

2024/11/06 This post was written by Categories: 未分類 No comments yet



コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

*

Top