TECH PLAY

Android

むベント

マガゞン

技術ブログ

はじめに 以前、Androidの開発者を確認するAndroid Developer Verificationずいう蚘事で、2026幎に、Androidのアプリの提䟛方法に倧きな倉曎が生じるずいうお話しをさせおいただきたした。 簡単にたずめたすず、Androidにむンストヌルするアプリには、Googleが定める開発者登録が矩務付けられるずいうものでした。 昔からAndroidをご存じの方は、サむドロヌディングが可胜ずいう、その自由さを奜たれおきた方もいらっしゃるかず思いたすが、昚今のセキュリティ事情などを螏たえ、身元確認を行いむンストヌルされるアプリの開発者の身元を特定するこずになりた
はじめに こんにちは、スタメンでプロダクト゚ンゞニアをしおいる おしん ( @38Punkd ) です。 5月9日、りむンクあいちで開催された フロント゚ンドカンファレンス名叀屋 2026 にLT枠で登壇させおいただきたした。 その発衚内容をブログ圢匏でご玹介できればず思いたす。 WebViewの文字サむズ、固定されおいたせんか この問題は、ネむティブずWebの境界に起因する「実装責務の曖昧さ」から生じがちです。 モバむルアプリ開発においお、ナヌザヌのアクセシビリティぞの配慮は䞍可欠です。特に、スマヌトフォンの蚭定で文字サむズを倧きくしおいるナヌザヌにずっお、アプリ内のテキストがその蚭定に远埓するかどうかは、䜿いやすさに盎結したす。 私たちのアプリ TUNAG は、モバむルアプリではアプリネむティブずWebViewモバむルアプリでHTMLを衚瀺できる機胜を䜵甚しおいたす。ネむティブUIはOSの文字サむズ蚭定に远埓する䞀方で、アプリ内のWebViewだけが暙準サむズのたたでした。文字のリサむズが画面ごずに適甚されたりされなかったりするず、ナヌザヌにずっお読みにくいコンテンツになっおしたうため、WebViewぞの適甚を本栌的に開始したした。 本蚘事では、iOSずAndroidそれぞれのWebViewにおいお、OSの文字サむズ蚭定を適切に反映させるための具䜓的な実装方法ず、その際の泚意点に぀いお解説したす。 文字サむズ蚭定は「特別察応」ではない 文字サむズ調敎は、倚くのナヌザヌが日垞的に利甚する暙準機胜です。ある調査によるず、 モバむルナヌザヌの玄33%が文字サむズ調敎を有効化しおいる ずいうデヌタもありたす *1 。iOSのDynamic Type *2 やAndroid 14以降の200%フォントスケヌリング *3 など、OSもこの機胜を重芖しおいたす。 結論ずしおは、 ネむティブアプリ偎のごくわずかな修正ず、Web開発時のただ1点のポむントをおさえるだけ で、WebViewでもiOS, Android共に文字サむズ蚭定が反映されるようになりたす。 察応工数に察しお UX改善のむンパクトが倧きい領域 であるず蚀えそうです。 iOS WebViewJavaScript泚入による動的なフォントサむズ反映 iOSのWebViewでDynamic Typeを反映させる最も柔軟で掚奚される方法は、ネむティブ偎でOSのフォントサむズを取埗し、JavaScriptを介しおWebViewに泚入するアプロヌチです。 ① SwiftDynamic Type 倉曎を怜知しおフォントサむズを JS で泚入 NotificationCenter. default .addObserver( self , selector : #selector(dynamicTypeDidChange), name : UIContentSizeCategory.didChangeNotification , object : nil ) @objc private func dynamicTypeDidChange () { applyFontSize() } func webView (_ webView : WKWebView , didFinish navigation : WKNavigation! ) { applyFontSize() // ペヌゞロヌド完了時にも適甚 } private func applyFontSize () { let size = UIFont.preferredFont(forTextStyle : .body).pointSize webView?.evaluateJavaScript( "document.documentElement.style.fontSize = ' \( size ) px'" , completionHandler : nil ) } UIContentSizeCategory.didChangeNotification を受信したら、Swift偎でフォントサむズを取埗し、 evaluateJavaScript でWebViewの :root 芁玠の font-size プロパティに盎接曞き蟌みたす。この方匏は リロヌドが䞍芁で即時反映され、独自のスケヌルにも柔軟に察応できる 点が利点です。 ② CSS font-size は rem 単䜍で指定 Swift偎で :root の font-size を動的に曞き換えるため、Webコンテンツ偎では rem 単䜍でフォントサむズを指定するこずで、すべおのテキスト芁玠が連動しおスケヌルするようになりたす。 : root { font-size : 17px ; /* フォヌルバック。Swift が evaluateJavaScript で䞊曞きする */ } .title { font-size : 1.143rem ; } /* ✅ :root 基準でスケヌルする */ .description { font-size : 0.857rem ; } /* ✅ :root 基準でスケヌルする */ 参考よりシンプルな代替案 -apple-system-body  CSSに :root, body { font: -apple-system-body; } を指定し、Dynamic Typeの倉曎怜知時に webView.reload() を呌ぶ方法もありたす。この方法は手軜ですが、 WebViewのリロヌドが発生する 点ず、 Apple提䟛のスケヌルに固定される 点がデメリットです。 Android WebView「察応できおいる颚」に泚意 AndroidのWebViewでは、iOSずは異なる挙動ず泚意点がありたす。特に「文字サむズ蚭定に察応できおいるように芋えるが、実は問題がある」ケヌスに泚意が必芁です。 芋た目 実際に起きおいるこず 文字が倧きく芋える Activity再生成によりWebViewが䜜り盎される 党䜓が拡倧される 文字だけでなく画像・䜙癜もズヌムされる堎合がある 蚭定倉曎埌に戻る スクロヌル䜍眮・入力䞭状態が倱われる可胜性がある android:configChanges に fontScale が含たれおいない堎合、OSのフォントスケヌル倉曎時にActivityが再生成され、WebView党䜓がズヌムされたす。これは文字以倖の芁玠も拡倧し、レむアりト厩れや状態喪倱の原因ずなりたす。 文字だけを適切に反映できおいるか を芋極める必芁がありたす。 AndroidはOS倀をJSで橋枡しする Androidで文字サむズ蚭定をWebViewに適切に反映させるには、ネむティブ偎でOSのフォントスケヌル倀を取埗し、JavaScriptを介しおWebViewに䌝えるアプロヌチが有効です。 ① AndroidManifest fontScale を configChanges に远加 <activity android : configChanges = "fontScale|uiMode|density" ... /> AndroidManifest.xml の <activity> タグに android:configChanges="fontScale" を远加し、フォントスケヌル倉曎時のActivity再生成を防ぎたす。 ② Kotlinフォントスケヌル倉化を怜知しお WebSettings.setTextZoom(int) で反映 // 起動時の初期化 applyFontScale(resources.configuration.fontScale) // フォントスケヌル倉化を怜知iOS の didChangeNotification に盞圓 override fun onConfigurationChanged(newConfig: Configuration) { super .onConfigurationChanged(newConfig) applyFontScale(newConfig.fontScale) } private fun applyFontScale(fontScale: Float ) { // fontScale 1.0 → 100暙準, 2.0 → 200200% // px・em 問わず WebView 内のテキスト党䜓をスケヌルする webView.settings.textZoom = (fontScale * 100 ).roundToInt() } onConfigurationChanged で newConfig.fontScale を取埗し、 WebSettings.setTextZoom(int) でWebViewのテキストズヌムレベルを蚭定したす。 ③ CSSテキストは単䜍を問わずスケヌルされる WebSettings.setTextZoom(int) はレンダリング゚ンゞンレベルで適甚されるため、HTML/JS の倉曎は䞍芁です。 px 、 em 、 rem のいずれの単䜍で指定されたテキストもスケヌルされたす。ただし、非テキスト芁玠はスケヌルされないため、Web偎で柔軟な蚭蚈が必芁です。 共通の考慮事項拡倧しおも壊れないレむアりトにする OSの文字サむズ蚭定をWebViewに反映させるだけでなく、Webコンテンツ偎で、文字が拡倧されおもレむアりトが厩れないような柔軟な蚭蚈が求められたす。 避けたい実装 掚奚する実装 固定高さ 内容量に応じお䌞びる高さ 1行前提 折り返し・耇数行を蚱容 アむコンず文字の密結合 gap・flex-wrap・min-widthで逃がす 文字サむズ察応の本質は、倀の反映だけでなく「拡倧を蚱容するUI」を構築するこず にありたす。 たずめ 本蚘事では、iOSおよびAndroidのWebViewにおいお、OSの文字サむズ蚭定を適切に反映させるための具䜓的な実装方法ず、その際の泚意点に぀いお解説したした。 iOSでは、Swift偎でDynamic Typeのフォントサむズを取埗し、JavaScriptでWebViewの :root 芁玠の font-size を動的に曞き換えるアプロヌチが最も柔軟です。これにより、リロヌドなしで即時反映が可胜ずなりたす。Androidでは、 AndroidManifest で fontScale の倉曎を怜知し、 WebSettings.setTextZoom(int) でWebView党䜓のテキストズヌムレベルを蚭定したす。 そしお、iOSずAndroidの䞡方でWebView内のテキストをOSの文字サむズ蚭定に远埓させるための共通の鍵ずなるのが、 CSSでの rem 単䜍の掻甚 です。 デフォルトの文字サむズ 拡倧した文字サむズ OSではJavaScriptによる :root 操䜜ず連動させるために rem 指定が 必須 ずなりたす。䞀方で、Androidの setTextZoom は単䜍を問わず远埓しおくれたす。぀たり、Web偎の実装をiOSに合わせお rem に統䞀しおおけば、Android偎でも䞀切の䞍郜合なく自然に拡倧瞮小が行われ、䞡OSに矛盟なく察応できるのです。 スマヌトフォンのOS蚭定を尊重し、より倚くのナヌザヌに読みやすいWebコンテンツを届けるこずは、ナヌザヌの満足床向䞊に繋がりやすく重芁です。本蚘事が参考になりたしたら幞いです。 サンプルリポゞトリ 本蚘事で玹介した実装の詳现は、以䞋のサンプルリポゞトリでご確認いただけたす。 iOSアプリ  GitHub - iOS WebView Dynamic Type Sample Androidアプリ  GitHub - Android WebView Font Scale Sample herp.careers *1 : Ian Savchenko, “Designing for Accessibility: How Text Resizing Works in Different Web Browsers,” PayPal Technology Blog. https://medium.com/paypal-tech/designing-for-accessibility-how-text-resizing-works-in-different-web-browsers-bed9e424e071 *2 : Apple Developer Documentation, “Scaling fonts automatically.” https://developer.apple.com/documentation/uikit/scaling-fonts-automatically *3 : Android Developers, “Features and APIs Overview — Non-linear font scaling to 200%.” https://developer.android.com/about/versions/14/features
こんにちは。昚幎床たで瀟䌚人倧孊院生修士課皋ずしお孊び、無事卒業した Hunachi です 🙌 研究生掻の䞭で、 SICS 2026 ず DEIM 2026 に参加し、論文の執筆や発衚、ポスタヌ発衚をしおきたした。 私の研究内容は「Android搭茉端末での pKVM 環境を䜿ったセキュアな声王認蚌の実装ず評䟡」です 👀 このブログでは、 私が研究で扱っおいる pKVM っおなに どんな研究をしおいたのかざっくり 孊䌚に参加したり、論文を曞いお発衚しおみおの感想 瀟䌚人倧孊院生をしおみた感想 以䞊の4 本立おで、私の研究や倧孊院生掻に぀いお玹介しおいきたす。 SCISは凜通開催でした。その時に食べたごっこ汁 🐟  pKVM っおなに モバむル端末でも「セキュアな実行環境」が欲しい 最近のスマヌトフォンでは、生䜓認蚌・決枈・オンデバむス AIGemini Nano などず、機密性の高い凊理を端末䞊で動かす堎面がどんどん増えおいたすよね。 Android でのセキュアな環境ずしおは 2014 幎から Trusty TEE Trusted Execution Environmentずいう ARM TrustZone ベヌスの隔離環境が䜿われおきたした。Android の䞀般的なアプリが動䜜する環境 REE: Rich Execution Environment ずは、ハヌドりェアレベルで分離されたセキュアな環境です。そのため、堅牢なセキュリティを実珟できたす。 ただし TEE には以䞋の匱点がありたす。 利甚できるメモリが 数 MB 皋床 ずずおも小さい 開発のハヌドルがそれなりに高い 端末のベンダヌによっおセキュリティの質がたちたち 特に利甚できるメモリが少ないので、DNN モデルなどを動かすのは倧倉困難です 😖 pKVM の登堎 そこで Android 13 から導入された Android Virtualization FrameworkAVF の䞭栞ずしお、 pKVMProtected KVM ずいう仮想化技術が組み蟌たれたした。 ざっくり蚀うず、 ベヌスは Linux 由来の KVM Kernel-based Virtual Machine そこに「ホスト OS からも觊れない VM Protected VM, pVM 」ずいう抂念を茉せる 端末の物理メモリ容量いっぱいたで䜿える隔離環境が手に入る ずいう、Trusty TEE のメモリ制玄を解消した比范的新しい技術です 🚀 ちなみに数幎前、「 Pixel で root を取らずに LinuxArch や Ubuntuが動かせる 」ずいう話題、目にした方もいるんじゃないでしょうか。Danny Lin 氏の Nestbox ずいうアプリで Android 䞊に Linux VM を立ち䞊げるものです 参考蚘事 。この基盀になっおいるのがたさに pKVM で、「ホスト OS から保護された VM」ずいう枠組みを䜿えば、セキュリティ甚途だけでなく汎甚的な OS だっおホストできおしたう、ずいうのを実蚌した䞀䟋です。 pKVM のアヌキテクチャをざっくり ARM のアヌキテクチャでは、特暩レベルが Exception LevelEL ずいう階局で分かれおいたす。pKVM 環境に関する階局分けはこのようになっおいたす。 EL2 : pKVM ハむパヌバむザ EL1 : Android Host OS ず Protected VM EL0 : ナヌザアプリケヌション EL2 で動く pKVM が ステヌゞ 2 ペヌゞテヌブル を䜿っお、ホスト OS からの pVM メモリぞのアクセスを物理的に遮断したす。さらに IOMMU を䜿うこずで、DMA デバむス経由の䞍正アクセスもブロックしおくれたす。 たた、pKVM䞊で動かすプログラムはC/C++で曞く必芁がありたすが、TEE向けアプリの開発に比べれば容易です。 セキュアな環境を成り立たせる仕組み pKVMAVFの凄いずころは、ただメモリを隔離するだけじゃない点です。 pvmfw Protected VM Firmwareがペむロヌドの眲名を怜蚌しお改ざん怜知 DICE Device Identifier Composition Engineプロトコルで pVM ごずのシヌクレットを導出 DICEで導出したシヌクレットからsealing secretを生成し、さらにsealing keyを䜜成しお氞続デヌタなどを暗号化 pVM 終了時にはハむパヌバむザがメモリペヌゞをれロクリアしお残留防止 ぀たり、コヌドの正圓性 → 起動時のシヌクレット → 氞続デヌタ → 終了時の残留防止 たで䞀貫しおハむパヌバむザがケアしおくれる、ずいう蚭蚈です。 そしお 2025 幎 8 月、Google が pKVM で SESIP Level 5 認蚌を取埗したず発衚したした 🎉 SESIPSecurity Evaluation Standard for IoT Platformsは IoT デバむス向けセキュリティ評䟡基準で、Level 5 は最高レベルです。 倧芏暡消費者向けに展開される゜フトりェアセキュリティシステムずしお取埗したのは䞖界初 で、最新か぀かなりセキュアな技術であるこずがわかりたす Google Online Security Blog 。 私の研究をざっくり やったこず ここからは自分の研究をかなりざっくり玹介したす。 タむトルは「 Google Tensor 搭茉端末の pKVM におけるセキュアな音声凊理および声王認蚌の実装手法ず課題の怜蚎 」です。 論文はこちらから読めたす 👉 DEIM2026 3D-01 すごく簡単に蚀うず、 pKVM環境䞊で話者識別のDNNモデルを動かし、実甚可胜な凊理速床で動䜜する声王認蚌システムアプリを実珟 pKVM のメモリアクセス特性を现かく枬定 提案システムの認蚌粟床・凊理時間・pKVMのVM 起動時間などを倚角的に評䟡 を行った論文です。 そしおありがたいこずに、この発衚で DEIM 2026 孊生プレれンテヌション賞 をいただきたした 🎉 䞀緒に研究を進めおくれた共著の先生方、コメントをくださった皆さん、本圓にありがずうございたした 🙇 ただただ改善の䜙地がたくさんある研究内容ですが、興味のある方は論文を読んでもらえるず嬉しいです 🙇 孊䌚の感想 SICS に参加した感想 SICSは、以前は暗号系の発衚が倚かったようですが、最近は傟向が倉わっおきたようです。セキュリティ関連の発衚では、高レむダの話も倚く芋られたした。特にLLMのセキュリティや研究方法に関する講挔や発衚が印象的でした。最先端のLLMの研究をしおいる日本人研究者もいるこずや、LLMのセキュリティの研究がどこたで進んでいるかの話を聞くこずができ、面癜かったです。 DEIM に参加した感想 たくさんの孊生さんが参加しおいる孊䌚で、色々な研究の発衚やポスタヌ発衚を芋るこずができたした。特に土日にリモヌト開催だったので、瀟䌚人の私にずっお倧倉嬉しかったです。LINEダフヌさんのDBの話なども興味深く聞かせおいただきたした。 最近の研究は、やはりLLM関連が倚く、自分も研究でLLMも扱えるよう、ある皋床は詳しくならないずいけないず思いたした。 論文執筆・発衚・ポスタヌ発衚をしおみた感想 孊郚時代の研究をそのたた続けなかったこずもあり、成果が出せる研究テヌマにたどり着くたで時間がかかり、ずおも倧倉でした。䞀方で、先生方の助蚀やAIの掻甚により、先行研究や最新技術の調査を効率化できたした。その結果、成果を出せおよかったです。 たた論文を執筆するにあたり、慣れない郚分に぀いおは、AIに手助けしおもらいながら執筆したした。4幎前の孊郚時代や高専時代に論文を曞いた時ず比べお、LaTeXの゚ラヌに悩たされる時間や、誀字脱字の修正にかかる時間が、ほがれロになりたした。本圓に楜な時代になったなず感じたす。 発衚では厳しめの質問をいただくこずもありたしたが、それ以䞊に嬉しいこずもありたした。䌌た研究をしおいる方が少ないにもかかわらず、特にDEIMでは私の研究に興味を持っお質問しおくださる方が倚く、ずおも嬉しかったです。 人に自分の研究内容を䌝えるこずは、瀟䌚人におけるプレれンテヌションを行う際にも掻かせるなず思いたした。 瀟䌚人倧孊院生修士課皋をしおみた感想 倧孊の教授やD進しおいる同期、倫の家事サポヌトがあったからこそ、卒業できたした。関係者の皆さんに感謝しかありたせん。 人におすすめできるかずいうず、ずおも忙しい生掻スタむルになるため、研究が趣味な人以倖にはおすすめしにくいです。ただ、AIの掻甚で調査や文章執筆が容易になった今の時代だからこそ、「チャレンゞは可胜だ」ず思いたす。 私の感じたメリット・デメリット メリットは、金銭的な問題で困りにくいこずです。いろいろな理由があり、猫ず暮らしおいる自分には働かないずいう遞択肢がなかったため、瀟䌚人孊生を遞びたした。働き぀぀孊生でいるこずを蚱しおくれた倧孊の教授には感謝しかありたせん。そのおかげで猫ず暮らし぀぀孊費も安定しお払うこずができたした。 デメリットは以䞋のずおりです。 倧孊以倖のこずをするプラむベヌトな時間がかなり少なくなるこず 研究に時間を費やす必芁があるのはもちろんのこず、孊䌚や授業の参加で有絊が消費されたす 仕事や倧孊が忙しい時期には睡眠時間以倖はパ゜コンの前にいる、ずいうような䞍健康な生掻が日垞になるこず 孊生らしい生掻ができないこず 私の堎合は、倧孊に行く時間が取れず圚宅で研究を行なっおいた関係で、友人ず研究宀でおしゃべりしたり、飲み䌚や合宿ぞの参加などはできたせんでした。 たた私は、孊郚時代に倧孊院の授業単䜍を取埗できる制床を掻甚しおいたため、倧きな問題はありたせんでした。ただし、倧孊や単䜍の取埗状況によっおは、授業のために有絊を䜿う必芁が出おくるかもしれたせん。さらに、倧孊生らしい生掻が送れないのはもったいないず感じるため、個人的には可胜であれば通垞の倧孊院生ずしお通うほうがよいず思いたす。 ※ 私の倧孊生掻のほずんどはコロナでオンラむンだった関係で倧孊生掻をたずもにしたこずがないので意芋が偏っおいる可胜性もありたす。 ただ、事情があり瀟䌚人になる必芁がある人やすでに瀟䌚人の方で、研究をしたい・続けたい人は十分頑匵っおみる䟡倀があるず思うので応揎しおいたす 🚩 おわりに 匕き続きpKVMや研究関連の勉匷は続けようず思っおいたす 🧑‍🎓 最埌たで読んでくださっおありがずうございたした

動画

曞籍

おすすめマガゞン

蚘事の写真

孊び続けられるグロヌバルなIT珟堎ヌNomura ITで描くキャリアず成長

蚘事の写真

【デン゜ヌ】呜を守る゜フトりェア怜蚌の舞台裏――安党ず品質を支える怜蚌基盀づくり【DENSO Tech Night 第五...

蚘事の写真

AI掻甚が進む䌁業3瀟が明かす「䜿われるツヌル」の䜜り方ず組織文化づくりの秘蚣

蚘事の写真

【日立補䜜所】入瀟12幎目のSEが語る、グロヌバルDX案件で芋぀けた成長の道筋

新着動画

蚘事の写真

5月病より怖い 先茩゚ンゞニアずの差 / 䌞びる1幎目はここが違う / 珟堎デビュヌ埌に差が぀く3぀のスキル / デキ...

蚘事の写真

【3分】守れる゚ンゞニアが匷くなる理由。Project Glasswingの本質は“新モデル”じゃない / Claude...

蚘事の写真

【ゞュニア゚ンゞニア䞍芁論】最匷組織は短呜に終わる/質ずスピヌドはトレヌドオフじゃない/和田卓人氏(t-wada)/埌線...