2022年12月2日金曜日

windows11のメモ帳

一般的にはおそらくWindows10のメモ帳とWindows11のメモ帳ではWindows11の方が受けはいいとは思う。

ですが!

今までできたことができなくなるって結構致命的だったりします。

検索や置換でタブを含みたい場合は、コピーでクリップボードに入れてから入力フィールドにペーストすれば検索や置換が行えます。これが地味に効果的な場面も多く、微妙な表示が行われるものの、これはWindows11の現時点でのメモ帳でも行えました。

普通の人はこれぐらいだと思うのですが、環境設定や結構強引なプログラムソースなどはテキストファイルを一旦メモ帳に張り付けてから部分的に(とはいえ結構な行数)を一気に置換えたりする作業を行ったりします。その時に地味に改行コードを含めて置換えたりするんですが、これがWindows11のメモ帳ではできなかったり…クソですねw

なぜ改行コードを含めるかと言えば、行頭や行末に一括で挿入することができるのですが、これが行えなくなると地味に苦痛な作業を永遠に行う羽目になったりします。

 

ちなみに、Windows10のメモ帳の実行ファイルをWindows11上にもってきても動きませんでした。Vistaの時はできた記憶があるのだが…

まぁメモ帳だけでなく、地味に他のアプリもクソ化されてたりするのが痛い…その代わり便利になってる点があるといいのですけど。実感ないですねw

2022年11月23日水曜日

Caused by: org.jetbrains.org.objectweb.asm.MethodTooLargeException: Method too large:

最近 記述言語仕様が緩くなっていたので相当やばい作り方でなければ目にすることのなくなった様なコンパイル時エラーが出てきました。

相当やばい書き方…ちょうどしてますw

本来であればデータファイルやテーブルに落として使用するデータを、表計算のデータを CSV風にテキストにしてArray<Any?>として配列として取り込んでます。

そんな阿漕な配列を使ってデータを捏ね繰り回していました。

読み込み仕様を悩んだ場合は、結局値を直に変数として記述すれば扱えるわけですが、クラスの形で作って記述していたところ、途中でエラーが出てしまいました。

class SrouceData {
    companion object {
        val array_data1 = arrayOf(
            :
            :
        )
        val array_data2 = arrayOf(
            :
            :
        )
        :
    }
}

回避策はないかとクラスの枠を取っ払って(言い方が違ってる気がするが)グローバル変数的にしてみても結果はわからず。扱い上はグローバルレベルで一つのクラスとして扱われている気配。

何をやってもダメそうなので、結局データクラスを分離することでエラーが出なくなりました。

class SrouceData1 {
    companion object {
        val array_data1 = arrayOf(
            :
            :
        )
        :
    }
}

class SrouceData2 {
    companion object {
        val array_data2 = arrayOf(
            :
            :
        )
        :
    }
}

一つの配列の限界が来てしまった場合はどうすればいいのか分かりませんが、今回は一つのktファイル内で2つのクラスに分割するだけで回避できました。

2022年11月19日土曜日

Material3 Previewで試してみた

構造が少し異なってたので、もしかすると全く歯が立たないかと思われたものの、意外とあっさりとDrawerを組み込めたので早速確認してみました。

Android12だと少し表示が異なっていましたが、おそらくそれ以前のものはDrawer周りの表示は変わってなさそう。

とりあえず手持ちのAndroid12の画面

アクションバーが表示されていない状態でドロワーが思いっきり画面名いっぱいの大きさで表示されるようになりました。この辺はAndroid自体がアプリが基本的に全画面の表示を行うことを前提にシフトした結果だと思います。まぁ現行のMaterialベースだと中途半端になっていて、Drawerのヘッダが欠けて表示されていたのであれだったんですが。

なにもせずアクションバーが表示された場合は、こんな感じ。これはほぼ現行のものと変わらない状態に。

最後はテーマに<item name="windowActionModeOverlay">true</item>を含めた場合。これもほぼ現行のものと変わらない感じ。

詳しく見てないのではっきりしませんが、Material3はシステムナビゲーションバーの下に入り込む感じになっているのが大きく違ってそうです。

そもそも論になりますが、どうもAndroidのUIは現行のIOSのものに移行しようとしているのが伝わってきます。と、するとDrawer排除の流れは必然なのかもしれないが、正直IOSの操作を見ているとイマイチ直感的でない感じがしています。画面が小さければおそらくIOSのジェスチャーベースの操作の方が一貫性が保てる感じがします。

ただ、そこまで小さな画面でなければ現行の形の方が扱いやすいとは思うんだけど。どうなんでしょうかね?特にタブレットでジェスチャベースって疲れる気がするんですが。  

結局、どうするか悩みどころですねぇ。Drawer使わないほうがいいのかな?とはいえ、アクションバーも単純にtoolbarを上書きする形で実装すればよさげな感じはしてるw調べてないけどありそうな感じ。

2022年11月18日金曜日

Android: NavControllerとDrawerとAppBar(ActionBar) 未解決

最近の流れではAppBar(ActionBar)の中にToolbarを含め、そのToolbarがナビゲーションボタンやメニューを包括しています。

Drawerが無ければほぼ問題がないのですが、やはりDrawerは欲しいわけで。

実際のアプリではRecyclerViewで選択させたときにアクションモードを開始して問題が発生しました。問題を単純化させるために新規プロジェクトで作成してDrawerの雛形からアクションモードを発生させて試してみましたが結果は変わらず。

ちなみに最新情報を検索するのが面倒で開発環境はステーブルを使うようになっています。

何が問題になっているのかと言えば、単純にアクションモードを開始するとこんな感じに

これはこれで若干の問題があるのですがw、それはさておき、ここでアクションモードを設定してDrawerを開くと、

こんな感じに。

状況としてはずりっと画面がズレてToolbarの上部にアクションバーが表示され痛い感じに。

一般受けが良さそうではないので、一般的な形にするにはテーマに次の一行加えて

<item name="windowActionModeOverlay">true</item>

実行するといい感じにToolbarに重なって表示されるようになり、いい感じです。

このいい感じになった状態でDrawerを開くと…

なんかもう仕様書で「ツールバーに重ねて表示」とか書いてPGがやっつけで作ったような感じに。

 仕様書を書いた側は違うんだよなぁとか言いたい感じです。

最新のGMAILアプリを見る限りこの辺の表示方法がガラッと変わっているので全く参考になりませんでしたが、UIのガイドラインを無視すれば、そもそもDrawerをToolbarに重ねなければ表示上問題ないような気がします。スタックオーバーフローにもツールバーに重ねない方法は?という質問が上がっていますし、同様の結論を持っている人がいるようです。

テーマからレイアウトまで手を入れればこの辺は解決するのですが、カスタマイズすると結構核心部で痛い目を見るのであまり手を加えたくないのも事実。てか、この辺の仕様はもう変わらないんだろうなぁ…テーマやレイアウトで切り分けてるくせに、肝心の処理がその構造にべったりだったりして結局すべてに手を加えないといけないっていうクソめんどくささ。

なんかどこかに一発で綺麗になってくれそうな解決策ないかな?新しいマテリアルベースにするとこの辺変わったりするのかな?

2022年11月8日火曜日

prime musicアプリ

昨日少し書き込んだところ、タイムリーなことに今日FireHD10のシステムアップデートがかかりました。アプリ更新で単独で更新がかかるかもと期待していたのですが、ファーム自体アップデートされたようです。

例の微妙なサービス改悪変更がしっかり反映されたのかな?

ちなみに昨日の夜に電源ケーブルを接続したまま再生していたところ、再生が止まることもなくいい感じで再生し続けてくれていました。

で、さっそくアプリを起動して再生してみると、いい感じに再生されている感じでした。が、それも20分ぐらいでしょうか…止まりましたw

何度か再生してみてもしばらくするとやはり止まる。

設定を見直していると、オプションの設定で「自動再生 曲が終わると似たような曲を自動再生します。」という見慣れぬ設定があったのでそれをオフに。

すると今度は曲と曲の間で止まり、なんとなく数十分そのまま放置していたら突然次の曲が流れ始めました…よくわからんw

曲と曲の間は、もしかすると回線とかシステム系の過負荷による無反応かもしれない。

2022/11/08 22:58

~~~~~

設定のキャッシュをクリアを実行して今朝prime musicを電源接続無しで使っていますが結構調子がいいかも。

サーバー過負荷でなければ、キャッシュのクリアが解決策かな?