OS別

Android

【Android開発の罠】周りは全員iPhone!60歳の私がクローズドテストで大苦戦した話

個人開発したAndroidアプリをリリースするための最大の難所、それが「12人以上のテスターを集めて14日間のクローズドテストを行う」というGoogleの規約です。今回、私がこの壁に挑む中で、「一番やっかいだったこと」とその舞台裏をお話しし...
Android

【再生・プレビュー編】暗号化と究極のサクサク感を両立する、画像・動画再生画面の仕様設計

アプリの「顔」であり、最もユーザーが触れる場所――それが「画像プレビュー画面」と「動画再生画面」です。データをガチガチに暗号化しつつも、ユーザーにはそれを意識させないほど「サクサク、快適に」動かす。そして高齢の両親が迷わず、子供の誤操作にも...
Android

【設計・仕様決め編】「フォト・守」の裏側に隠された、割り切りとUI/UXのリアルなトレードオフ

アプリをビルドするにあたり、最もエネルギーを使うのが「仕様決め」です。特にプライバシーやセキュリティを扱うアプリでは、機能を増やせば増やすほどユーザーの手間が増え、シンプルさが失われてしまいます。今回は、AIと共に一つずつ課題をクリアしてい...
Android

【技術編】Androidで暗号化動画ストリーミングとセキュリティ挙動に泣き笑いした話

前回の記事では、完全ローカル完結の暗号化カメラアプリ「フォト・守」の開発思想について書きました。今回は、実際にJavaのコードを叩き、AI(Copilot)と壁打ちしながら直面した、具体的な実装の苦労と泥臭いバグ対策の記録を技術メモとして残...
Android

【Android】AIと試行錯誤しながら、完全ローカル完結の動画再生付き暗号化アプリをビルドした話

開発のきっかけ:日常に潜む「うっかり」と「広告」の壁今回このアプリを開発するに至ったのは、私の家庭内で起きた3つの切実な問題がきっかけでした。高齢の両親の「画面放置」リスク 高齢の両親のスマホに、家族や孫の写真・動画を入れてあげていたのです...
Avalonia

【Avalonia】Avalonia の ListBox をスワイプでスクロールさせる方法

Avalonia の ListBox は内部に ScrollViewer を含んでおり、 タッチ操作(スワイプ)でのスクロールはデフォルトで有効です。もしスワイプが効かない場合のチェックポイントScrollViewer が無効化されていない...
Android

【Android】内部ストレージ化(Adoptable Storage)の設定が正しく行われていても、プログラムから context.getFilesDir() で取得したパスに保存するだけでは、自動的にSDカード側が優先的に使われるわけではない。

内部ストレージ化(Adoptable Storage)の設定が正しく行われていても、プログラムから context.getFilesDir() で取得したパスに保存するだけでは、自動的にSDカード側が優先的に使われるわけではないという点に注...
Android

【Android】保存されたsecretKey.key(鍵)、salt.key(ソルト)、iv.key(初期化ベクトル)を使用して、データを暗号化する方法

必要な手順保存されたデータの読み込み鍵 (secretKey.key)、ソルト (salt.key)、初期化ベクトル (iv.key) をそれぞれファイルから読み込みます。暗号器の初期化読み込んだsecretKey と ivを用いて、 Ch...
Android

【Android】ファイルパス情報から一つ上の階層のパスの取得

AndroidのJavaでファイルパス情報から一つ上の階層のパスを取得するには、File クラスの getParent() メソッドを使用するのが簡単で、確実に動作します。以下に具体的な例を示しますpublic class ParentPa...
Android

【Android】ファイル転送中に他の操作を禁止する方法

転送中に他の操作を禁止するには、プログレスダイアログやローディングスピナーを表示し、完了するまでユーザーの操作をブロックする方法があります。以下に、例としてプログレスダイアログを表示する方法を示します。まず、メインスレッドでプログレスダイア...
Android

【Android】ファイルを種類別とかファイル名順に一覧表示する

ファイルを読み込んだ後にソート処理を行う必要があります。Javaでは、Arrays.sort() や Collections.sort() を使用して簡単にソートできます。以下に具体的な例を示します:ファイルを名前順にソートする場合java...
Android

【Android】pixel dpの相互変換

ndroidアプリ開発では、ビューのサイズやマージン、パディングを設定する際に、ピクセル(px)と密度依存ピクセル(dp)の相互変換が重要になります。以下はその方法です。ピクセルからdpへの変換javapublic static int p...