PageSourceSearch

https://shinagawa.app/_next/static/chunks/pages/posts/compose_multiplatform_admob_banner-9c4fe097ed48390d.js

js shinagawa.app collected 2026-10-02 01:15:51 UTC 95,868 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1568],{9677:function(e,s,o){(window.__NEXT_P=window.__NEXT_P||[]).push(["/posts/compose_multiplatform_admob_banner",function(){return o(7164)}])},8177:function(e,s,o){"use strict";var n=o(5893),i=o(1857),r=o.n(i);let l=new Date().getFullYear();s.Z={footer:(0,n.jsxs)("small",{style:{display:"block",marginTop:"8rem"},className:"jsx-7c359fde634f3543",children:[(0,n.jsx)("time",{className:"jsx-7c359fde634f3543",children:l})," \xa9 品川アプリ.",(0,n.jsx)("a",{href:"/feed.xml",className:"jsx-7c359fde634f3543",children:"RSS"}),(0,n.jsx)(r(),{id:"7c359fde634f3543",children:"a.jsx-7c359fde634f3543{float:right}@media screen and (max-width:480px){article.jsx-7c359fde634f3543{padding-top:2rem;padding-bottom:4rem}}"})]}),head:e=>{let{title:s,meta:o}=e;return(0,n.jsxs)(n.Fragment,{children:[o.description&&(0,n.jsx)("meta",{name:"description",content:o.description}),o.tag&&(0,n.jsx)("meta",{name:"keywords",content:o.tag}),o.author&&(0,n.jsx)("meta",{name:"author",content:o.author})]})},readMore:"Read More →",darkMode:!0}},7164:function(e,s,o){"use strict";o.r(s),o.d(s,{__toc:function(){return a}});var n=o(5893),i=o(2673),r=o(8473),l=o(8177);o(7707);var t=o(2643);let a=[{depth:2,value:"概要",id:"概要"},{depth:2,value:"使用するライブラリ",id:"使用するライブラリ"},{depth:2,value:"実装",id:"実装"},{depth:3,value:"commonMain",id:"commonmain"},{depth:3,value:"androidMain",id:"androidmain"},{depth:3,value:"iosMain",id:"iosmain"},{depth:2,value:"iosApp",id:"iosapp"},{depth:2,value:"参考",id:"参考"}];function c(e){let s=Object.assign({h2:"h2",p:"p",ol:"ol",li:"li",ul:"ul",a:"a",h3:"h3",pre:"pre",code:"code",span:"span"},(0,t.a)(),e.components);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.h2,{id:"概要",children:"概要"}),"\n",(0,n.jsx)(s.p,{children:"Compose Multiplatform で、Android/iOSの環境で Admob のバナー広告を表示する方法を解説します。"}),"\n",(0,n.jsx)(s.p,{children:"バナー広告を表示する手順は以下の通りです。"}),"\n",(0,n.jsxs)(s.ol,{children:["\n",(0,n.jsx)(s.li,{children:"commonMain 以下で、 AdFactoryインターフェイスを作成する。AdFactoryはバナー広告を表示する AdBanner() メソッドを持つ。"}),"\n",(0,n.jsx)(s.li,{children:"androidMain と iosMain 以下で、AdFactory を継承した AdFactoryImpl を実装する。そして、Koinを使って commonMainから呼び出せるようにする。"}),"\n",(0,n.jsx)(s.li,{children:"commonMain 以下で、Compose Multiplatformで作成した画面内で、AdFactory.AdBanner() を呼び出す。"}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"使用するライブラリ",children:"使用するライブラリ"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://developers.google.com/admob/android/quick-start?hl=ja",children:"Mobile Ads SDK (Android)"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://developers.google.com/admob/ios/quick-start?hl=ja",children:"Mobile Ads SDK (iOS)"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://www.jetbrains.com/ja-jp/lp/compose-multiplatform/",children:"Compose Multiplatform"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://insert-koin.io/docs/reference/koin-mp/kmp",children:"Koin"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/adrielcafe/voyager",children:"voyager"})}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"実装",children:"実装"}),"\n",(0,n.jsx)(s.h3,{id:"commonmain",children:"commonMain"}),"\n",(0,n.jsx)(s.pre,{"data-language":"kotlin","data-theme":"default",filename:"commonMain/../ad/AdFactory.kt",children:(0,n.jsxs)(s.code,{"data-language":"kotlin","data-theme":"default",children:[(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"import"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" androidx.compose.runtime.Composable"})]}),"\n",(0,n.jsx)(s.span,{className:"line",children:" "}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"interface"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"AdFactory"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" {"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"    "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"@Composable"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"    "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"fun"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"AdBanner"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"}
1,children:"()"})]}),"\n",(0,n.jsx)(s.span,{className:"line",children:(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"}"})})]})}),"\n",(0,n.jsx)(s.pre,{"data-language":"kotlin","data-theme":"default",filename:"commonMain/../ui/screens/MainScreen.kt",children:(0,n.jsxs)(s.code,{"data-language":"kotlin","data-theme":"default",children:[(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"import"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" androidx.compose.foundation.layout.Column"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"import"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" androidx.compose.foundation.layout.Spacer"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"import"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" androidx.compose.foundation.layout.fillMaxWidth"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"import"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" androidx.compose.runtime.Composable"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"import"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" androidx.compose.ui.Alignment"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"import"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" androidx.compose.ui.Modifier"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"import"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" cafe.adriel.voyager.core.screen.Screen"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"import"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" org.koin.core.component.KoinComponent"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"import"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" org.koin.core.component.inject"})]}),"\n",(0,n.jsx)(s.span,{className:"line",children:" "}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"class"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"MainScreen"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" : "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"Screen"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:", "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"KoinComponent"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" {"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"    "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"@Composable"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"    "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"override"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"fun"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"Content"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"() {"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"        "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"val"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" adFactory: "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"AdFactory"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"by"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"inject"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"}
1,children:"()"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"        "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"Column"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"(Modifier."}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"fillMaxWidth"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"(), horizontalAlignment "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"="}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" Alignment.CenterHorizontally) {"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"            "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"Spacer"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"(Modifier."}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"weight"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"("}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-constant)"},children:"1f"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"))"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"            "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-comment)"},children:"// バナー広告を表示"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"            adFactory."}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"AdBanner"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"()"})]}),"\n",(0,n.jsx)(s.span,{className:"line",children:(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"        }"})}),"\n",(0,n.jsx)(s.span,{className:"line",children:(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"    }"})}),"\n",(0,n.jsx)(s.span,{className:"line",children:(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"}"})})]})}),"\n",(0,n.jsx)(s.h3,{id:"androidmain",children:"androidMain"}),"\n",(0,n.jsx)(s.pre,{"data-language":"kotlin","data-theme":"default",filename:"androidMain/../ad/AdFactoryImpl.kt",children:(0,n.jsxs)(s.code,{"data-language":"kotlin","data-theme":"default",children:[(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"import"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" android.content.Context"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"import"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" android.content.res.Resources"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"import"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" androidx.compose.foundation.layout.fillMaxWidth"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"import"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" androidx.compose.foundation.layout.height"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"import"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" androidx.compose.runtime.Composable"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"import"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" androidx.compose.ui.Modifier"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"import"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" androidx.compose.ui.platform.LocalContext"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"import"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" androidx.compose.ui.platform.LocalDensity"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"import"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" androidx.compose.ui.platform.LocalInspectionMode"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"import"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" androidx.compose.ui.viewinterop.AndroidView"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"import"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" com.google.android.gms.ads.AdRequest"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"import"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" com.google.android.gms.ads.AdSize"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"import"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" com.google.android.gms.ads.AdView"})]}),"\n",(0,n.jsx)(s.span,{className:"line",children:" "}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"class"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"AdFactoryImpl"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" : "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"AdFactory"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" {"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"    "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"@Composable"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"    "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"override"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"fun"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"AdBanner"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"}
1,children:"() {"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"        "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"if"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" (LocalInspectionMode.current) {"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"            "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-comment)"},children:"// プレビュー時は表示しない"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"            "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"return"})]}),"\n",(0,n.jsx)(s.span,{className:"line",children:(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"        }"})}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"        "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"val"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" displayMetrics "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"="}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" Resources."}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"getSystem"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"().displayMetrics"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"        "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"val"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" width "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"="}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" ((displayMetrics.widthPixels) "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"/"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" displayMetrics.density)."}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"toInt"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"()"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"        "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"val"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" adSize "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"="}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"getAdBannerSize"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"(LocalContext.current, width)"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"        "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"val"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" heightDp "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"="}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"with"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"(LocalDensity.current) {"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"            adSize."}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"getHeightInPixels"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"(LocalContext.current)."}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"toDp"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"}
1,children:"()"})]}),"\n",(0,n.jsx)(s.span,{className:"line",children:(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"        }"})}),"\n",(0,n.jsx)(s.span,{className:"line",children:" "}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"        "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"AndroidView"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"("})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"            modifier "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"="}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" Modifier"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"                ."}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"fillMaxWidth"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"()"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"                ."}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"height"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"(heightDp),"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"            factory "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"="}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" { context "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"->"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"                "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"val"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" adView "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"="}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"AdView"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"(context)"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"                adView."}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"setAdSize"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"(adSize)"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"                adView.adUnitId "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"="}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" Admob."}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"getAdBannerUnitId"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"()"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"                adView."}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"loadAd"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"(AdRequest."}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"Builder"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"()."}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"build"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"())"})]}),"\n",(0,n.jsx)(s.span,{className:"line",children:(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"                adView"})}),"\n",(0,n.jsx)(s.span,{className:"line",children:(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"            },"})}),"\n",(0,n.jsx)(s.span,{className:"line",children:(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"        )"})}),"\n",(0,n.jsx)(s.span,{className:"line",children:(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"    }"})}),"\n",(0,n.jsx)(s.span,{className:"line",children:" "}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"    "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"private"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"fun"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"getAdBannerSize"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"(context: "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"Context"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:", width: "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"Int"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"): "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"AdSize"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" {"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"        "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"return"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"if"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" (Admob.IS_BANNER_HIDDEN) {"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"            "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"AdSize"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"(width, "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-constant)"},children:"0"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:")"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"        } "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"else"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" {"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"            AdSize."}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"getCurrentOrientationAnchoredAdaptiveBannerAdSize"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"(context, width)"})]}),"\n",(0,n.jsx)(s.span,{className:"line",children:(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"        }"})}),"\n",(0,n.jsx)(s.span,{className:"line",children:(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"    }"})}),"\n",(0,n.jsx)(s.span,{className:"line",children:(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"}"})})]})}),"\n",(0,n.jsx)(s.pre,{"data-language":"kotlin","data-theme":"default",filename:"androidMain/../MainApplication.kt",children:(0,n.jsxs)(s.code,{"data-language":"kotlin","data-theme":"default",children:[(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"class"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"MainApplication"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" : "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"Application"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"}
1,children:"(), Application.ActivityLifecycleCallbacks, LifecycleObserver,"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"    "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"KoinComponent"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" {"})]}),"\n",(0,n.jsx)(s.span,{className:"line",children:" "}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"    "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"override"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"fun"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"onCreate"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"() {"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"        "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-constant)"},children:"super"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"."}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"onCreate"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"()"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"        MobileAds."}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"initialize"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"("}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-constant)"},children:"this"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:") { }"})]}),"\n",(0,n.jsx)(s.span,{className:"line",children:" "}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"        "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"startKoin"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" {"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"            "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"androidContext"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"("}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-constant)"},children:"this@MainApplication"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:")"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"            "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"modules"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"(appModule)"})]}),"\n",(0,n.jsx)(s.span,{className:"line",children:(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"        }"})}),"\n",(0,n.jsx)(s.span,{className:"line",children:(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"    }"})})]})}),"\n",(0,n.jsx)(s.pre,{"data-language":"kotlin","data-theme":"default",filename:"androidMain/../AppModule.kt",children:(0,n.jsxs)(s.code,{"data-language":"kotlin","data-theme":"default",children:[(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"import"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" org.koin.dsl.module"})]}),"\n",(0,n.jsx)(s.span,{className:"line",children:" "}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"val"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" appModule "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"="}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"module"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" {"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"    "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"single"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"<"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"AdFactory"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"> { "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"AdFactoryImpl"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"}
1,children:"() }"})]}),"\n",(0,n.jsx)(s.span,{className:"line",children:(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"}"})})]})}),"\n",(0,n.jsx)(s.h3,{id:"iosmain",children:"iosMain"}),"\n",(0,n.jsx)(s.pre,{"data-language":"kotlin","data-theme":"default",filename:"iosMain/../ad/AdFactoryImpl.kt",children:(0,n.jsxs)(s.code,{"data-language":"kotlin","data-theme":"default",children:[(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"import"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" androidx.compose.foundation.layout.fillMaxWidth"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"import"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" androidx.compose.foundation.layout.height"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"import"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" androidx.compose.runtime.Composable"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"import"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" androidx.compose.ui.Modifier"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"import"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" androidx.compose.ui.interop.UIKitView"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"import"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" androidx.compose.ui.unit.dp"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"import"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" kotlinx.cinterop.ExperimentalForeignApi"})]}),"\n",(0,n.jsx)(s.span,{className:"line",children:" "}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"class"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"AdFactoryImpl"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"("}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"private"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"val"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" adBannerViewFactory: "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"AdBannerViewFactory"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:") : "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"AdFactory"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" {"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"    "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"@OptIn"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"(ExperimentalForeignApi::"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"class"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:")"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"    "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"@Composable"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"    "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"override"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"fun"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"AdBanner"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"}
1,children:"() {"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"        "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"UIKitView"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"("})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"            factory "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"="}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" {"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"                adBannerViewFactory."}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"createAdBannerView"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"()"})]}),"\n",(0,n.jsx)(s.span,{className:"line",children:(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"            },"})}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"            modifier "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"="}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" Modifier."}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"fillMaxWidth"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"()."}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"height"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"(adBannerViewFactory."}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"getHeight"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"().dp)"})]}),"\n",(0,n.jsx)(s.span,{className:"line",children:(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"        )"})}),"\n",(0,n.jsx)(s.span,{className:"line",children:(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"    }"})}),"\n",(0,n.jsx)(s.span,{className:"line",children:(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"}"})})]})}),"\n",(0,n.jsx)(s.pre,{"data-language":"kotlin","data-theme":"default",filename:"iosMain/../ad/AdBannerViewFactory.kt",children:(0,n.jsxs)(s.code,{"data-language":"kotlin","data-theme":"default",children:[(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"import"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" platform.UIKit.UIView"})]}),"\n",(0,n.jsx)(s.span,{className:"line",children:" "}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"interface"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"AdBannerViewFactory"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" {"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"    "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"fun"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"createAdBannerView"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"(): "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"UIView"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"    "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"fun"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"getHeight"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"}
1,children:"(): "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"Int"})]}),"\n",(0,n.jsx)(s.span,{className:"line",children:(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"}"})})]})}),"\n",(0,n.jsx)(s.pre,{"data-language":"kotlin","data-theme":"default",filename:"iosMain/../KoinHelper.kt",children:(0,n.jsxs)(s.code,{"data-language":"kotlin","data-theme":"default",children:[(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"import"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" org.koin.core.context.startKoin"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"import"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" org.koin.dsl.module"})]}),"\n",(0,n.jsx)(s.span,{className:"line",children:" "}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"fun"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"initKoin"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"("})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"    adBannerViewFactory: "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"AdBannerViewFactory"})]}),"\n",(0,n.jsx)(s.span,{className:"line",children:(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:") {"})}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"    "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"startKoin"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" {"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"        "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"modules"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"("}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"module"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" {"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"            "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"single"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"<"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"AdFactory"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"> { "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"AdFactoryImpl"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"(adBannerViewFactory) }"})]}),"\n",(0,n.jsx)(s.span,{className:"line",children:(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"        })"})}),"\n",(0,n.jsx)(s.span,{className:"line",children:(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"    }"})}),"\n",(0,n.jsx)(s.span,{className:"line",children:(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"}"})})]})}),"\n",(0,n.jsx)(s.h2,{id:"iosapp",children:"iosApp"}),"\n",(0,n.jsx)(s.pre,{"data-language":"swift","data-theme":"default",filename:"iosApp/Ad/AdBannerViewFactoryImpl.swift",children:(0,n.jsxs)(s.code,{"data-language":"swift","data-theme":"default",children:[(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"import"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"Foundation"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"import"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"GoogleMobileAds"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"import"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"shared"})]}),"\n",(0,n.jsx)(s.span,{className:"line",children:" "}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"class"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"AdBannerViewFactoryImpl"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-punctuation)"},children:":"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"AdBannerViewFactory "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"{"})]}),"\n",(0,n.jsx)(s.span,{className:"line",children:" "}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"    "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"func"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"createAdBannerView"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"}
1,children:"() "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"->"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" UIView {"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"        "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"let"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" bannerView "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"="}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"GADBannerView"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-punctuation)"},children:"("}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"adSize"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-punctuation)"},children:":"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:" GADAdSizeBanner"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-punctuation)"},children:")"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"        bannerView.adUnitID "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"="}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" Admob."}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"getBannerAdUnitId"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-punctuation)"},children:"()"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"        bannerView.rootViewController "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"="}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" UIWindow."}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"getWindow"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-punctuation)"},children:"()"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"?"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:".rootViewController"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"        bannerView.adSize "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"="}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"getAdSize"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-punctuation)"},children:"("}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"width"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-punctuation)"},children:":"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:" UIScreen.screenWidth"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-punctuation)"},children:")"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"        bannerView."}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"load"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-punctuation)"},children:"("}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"GADRequest"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-punctuation)"},children:"())"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"        "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"return"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" bannerView"})]}),"\n",(0,n.jsx)(s.span,{className:"line",children:(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"    }"})}),"\n",(0,n.jsx)(s.span,{className:"line",children:" "}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"    "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"func"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"getHeight"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"}
1,children:"() "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"->"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-constant)"},children:"Int32"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" {"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"        "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"return"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-constant)"},children:"Int32"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-punctuation)"},children:"("}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"getAdSize"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-punctuation)"},children:"("}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"width"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-punctuation)"},children:":"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:" UIScreen.screenWidth"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-punctuation)"},children:")"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"."}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-constant)"},children:"size"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:".height"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-punctuation)"},children:")"})]}),"\n",(0,n.jsx)(s.span,{className:"line",children:(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"    }"})}),"\n",(0,n.jsx)(s.span,{className:"line",children:" "}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"    "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"private"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"func"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"getAdSize"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"("}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"width"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:": CGFloat) "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"->"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" GADAdSize {"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"        "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"if"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" Admob.IsBannerHidden {"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"            "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"return"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"GADAdSize"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-punctuation)"},children:"()"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"        } "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"else"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" {"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"            "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"return"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"GADCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-punctuation)"},children:"("}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"width"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-punctuation)"},children:")"})]}),"\n",(0,n.jsx)(s.span,{className:"line",children:(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"        }"})}),"\n",(0,n.jsx)(s.span,{className:"line",children:(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"    }"})}),"\n",(0,n.jsx)(s.span,{className:"line",children:(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"}"})})]})}),"\n",(0,n.jsx)(s.pre,{"data-language":"swift","data-theme":"default",filename:"iosApp/Extension/UIWindow+.swift",children:(0,n.jsxs)(s.code,{"data-language":"swift","data-theme":"default",children:[(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"import"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"UIKit"})]}),"\n",(0,n.jsx)(s.span,{className:"line",children:" "}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"extension"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"UIWindow"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" {"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"    "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"static"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"func"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"getWindow"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"}
1,children:"() "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"->"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" UIWindow"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"?"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" {"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"        "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"let"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" scenes "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"="}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" UIApplication.shared.connectedScenes"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"        "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"let"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" windowScene "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"="}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" scenes."}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-constant)"},children:"first"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"as?"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" UIWindowScene"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"        "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"return"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" windowScene"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"?"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:".windows."}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-constant)"},children:"first"})]}),"\n",(0,n.jsx)(s.span,{className:"line",children:(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"    }"})}),"\n",(0,n.jsx)(s.span,{className:"line",children:(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"}"})})]})}),"\n",(0,n.jsx)(s.pre,{"data-language":"swift","data-theme":"default",filename:"iosApp/Extension/UIScreen+.swift",children:(0,n.jsxs)(s.code,{"data-language":"swift","data-theme":"default",children:[(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"import"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"UIKit"})]}),"\n",(0,n.jsx)(s.span,{className:"line",children:" "}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"extension"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"UIScreen"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" {"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"   "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"static"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"let"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" screenWidth "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"="}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" UIScreen.main.bounds."}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-constant)"},children:"size"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:".width"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"   "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"static"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"let"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" screenHeight "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"="}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" UIScreen.main.bounds."}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-constant)"},children:"size"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:".height"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"   "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"static"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"let"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" screenSize "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"="}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" UIScreen.main.bounds."}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-constant)"},children:"size"})]}),"\n",(0,n.jsx)(s.span,{className:"line",children:(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"}"})})]})}),"\n",(0,n.jsx)(s.pre,{"data-language":"swift","data-theme":"default",filename:"iosApp/iOSApp.swift",children:(0,n.jsxs)(s.code,{"data-language":"swift","data-theme":"default",children:[(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"import"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"SwiftUI"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"import"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"GoogleMobileAds"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"import"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"shared"})]}),"\n",(0,n.jsx)(s.span,{className:"line",children:" "}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"class"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"AppDelegate"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-punctuation)"},children:":"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"NSObject"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:", "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"UIApplicationDelegate "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"{"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"  "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"func"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"application"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"("}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"_"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-parameter)"},children:"application"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:": UIApplication,"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"                   "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"didFinishLaunchingWithOptions"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-parameter)"},children:"launchOptions"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:": [UIApplication.LaunchOptionsKey "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:":"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-constant)"},children:"Any"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"]"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"?"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"="}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-constant)"},children:"nil"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:") "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"->"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-constant)"},children:"Bool"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" {"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"      GADMobileAds."}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"sharedInstance"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-punctuation)"}
1,children:"()"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"."}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-constant)"},children:"start"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-punctuation)"},children:"("}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"completionHandler"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-punctuation)"},children:":"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-constant)"},children:"nil"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-punctuation)"},children:")"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"      "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"return"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-constant)"},children:"true"})]}),"\n",(0,n.jsx)(s.span,{className:"line",children:(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"  }"})}),"\n",(0,n.jsx)(s.span,{className:"line",children:(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"}"})}),"\n",(0,n.jsx)(s.span,{className:"line",children:" "}),"\n",(0,n.jsx)(s.span,{className:"line",children:" "}),"\n",(0,n.jsx)(s.span,{className:"line",children:(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"@main"})}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"struct"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"iOSApp"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-punctuation)"},children:":"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"App "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"{"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"    "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-comment)"},children:"// register app delegate for Firebase setup"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"    "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"@UIApplicationDelegateAdaptor"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-punctuation)"},children:"("}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"AppDelegate."}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"self"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-punctuation)"},children:")"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"var"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" delegate"})]}),"\n",(0,n.jsx)(s.span,{className:"line",children:" "}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"    "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"init"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"() {"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"        KoinHelperKt."}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"doInitKoin"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-punctuation)"},children:"("})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"            adBannerViewFactory"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-punctuation)"},children:":"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:" AdBannerViewFactoryImpl"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-punctuation)"}
1,children:"()"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"        "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-punctuation)"},children:")"})]}),"\n",(0,n.jsx)(s.span,{className:"line",children:(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"    }"})}),"\n",(0,n.jsx)(s.span,{className:"line",children:" "}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"	"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"var"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" body: "}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"some"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" Scene {"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"		"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"WindowGroup"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" {"})]}),"\n",(0,n.jsxs)(s.span,{className:"line",children:[(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"			"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-function)"},children:"ContentView"}),(0,n.jsx)(s.span,{style:{color:"var(--shiki-token-punctuation)"},children:"()"})]}),"\n",(0,n.jsx)(s.span,{className:"line",children:(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"		}"})}),"\n",(0,n.jsx)(s.span,{className:"line",children:(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"	}"})}),"\n",(0,n.jsx)(s.span,{className:"line",children:(0,n.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"}"})})]})}),"\n",(0,n.jsx)(s.h2,{id:"参考",children:"参考"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://www.jetbrains.com/help/kotlin-multiplatform-dev/compose-uikit-integration.html",children:"Integration with the UIKit framework"})}),"\n"]})]})}let d={MDXContent:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{wrapper:s}=Object.assign({},(0,t.a)(),e.components);return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(c,{...e})}):c(e)},pageOpts:{filePath:"pages/posts/compose_multiplatform_admob_banner.mdx",route:"/posts/compose_multiplatform_admob_banner",frontMatter:{title:"Compose Multiplatform で Admobのバナー広告を表示する",date:"2024/6/3",description:"Compose Multiplatform で、Android/iOSの環境で Admob のバナー広告を表示する方法を解説します。",tag:"Kotlin, ComposeMultiplatform, Admob",author:"kyamada"},timestamp:1737168189e3,pageMap:[{kind:"MdxPage",name:"about",route:"/about",frontMatter:{type:"page",title:"About",date:"2022-07-24T00:00:00.000Z"}},{kind:"Folder",name:"eigovision",route:"/eigovision",children:[{kind:"MdxPage",name:"core-nlp-en",route:"/eigovision/core-nlp-en",frontMatter:{type:"tag",date:"2024-12-04T00:00:00.000Z"}},{kind:"MdxPage",name:"core-nlp-ja",route:"/eigovision/core-nlp-ja",frontMatter:{type:"tag",date:"2024-12-04T00:00:00.000Z"}},{kind:"MdxPage",name:"privacy-policy",route:"/eigovision/privacy-policy",frontMatter:{type:"tag",date:"2025-02-15T00:00:00.000Z"}},{kind:"MdxPage",name:"support",route:"/eigovision/support",frontMatter:{type:"tag",date:"2025-02-15T00:00:00.000Z"}},{kind:"MdxPage",name:"terms-and-conditions",route:"/eigovision/terms-and-conditions",frontMatter:{type:"tag",date:"2025-02-15T00:00:00.000Z"}},{kind:"Meta",data:{"privacy-policy":"Privacy Policy",support:"Support","terms-and-conditions":"Terms and Conditions","core-nlp-en":"Core Nlp En","core-nlp-ja":"Core Nlp Ja"}}]},{kind:"Folder",name:"english_reading",route:"/english_reading",children:[{kind:"MdxPage",name:"privacy-policy",route:"/english_reading/privacy-policy",frontMatter:{type:"tag",date:"2023-01-15T00:00:00.000Z"}},{kind:"MdxPage",name:"terms-and-conditions",route:"/english_reading/terms-and-conditions",frontMatter:{type:"tag",date:"2023-01-15T00:00:00.000Z"}},{kind:"Meta",data:{"privacy-policy":"Privacy Policy","terms-and-conditions":"Terms and Conditions"}}]},{kind:"Folder",name:"etymology",route:"/etymology",children:[{kind:"MdxPage",name:"privacy-policy",route:"/etymology/privacy-policy",frontMatter:{type:"tag",date:"2023-01-15T00:00:00.000Z"}},{kind:"MdxPage",name:"terms-and-conditions",route:"/etymology/terms-and-conditions",frontMatter:{type:"tag",date:"2023-01-15T00:00:00.000Z"}},{kind:"Meta",data:{"privacy-policy":"Privacy Policy","terms-and-conditions":"Terms and Conditions"}}]},{kind:"MdxPage",name:"index",route:"/",frontMatter:{type:"page",title:"Ap
1ps",date:"2022-07-24T00:00:00.000Z"}},{kind:"Folder",name:"listen-to-novels",route:"/listen-to-novels",children:[{kind:"MdxPage",name:"display-mode-en",route:"/listen-to-novels/display-mode-en",frontMatter:{type:"tag",date:"2025-08-21T00:00:00.000Z"}},{kind:"MdxPage",name:"display-mode-ja",route:"/listen-to-novels/display-mode-ja",frontMatter:{type:"tag",date:"2025-08-21T00:00:00.000Z"}},{kind:"MdxPage",name:"faq-en",route:"/listen-to-novels/faq-en",frontMatter:{type:"tag",date:"2023-05-08T00:00:00.000Z"}},{kind:"MdxPage",name:"how-to-use-en",route:"/listen-to-novels/how-to-use-en",frontMatter:{type:"tag",date:"2023-12-17T00:00:00.000Z"}},{kind:"MdxPage",name:"how-to-use-ja",route:"/listen-to-novels/how-to-use-ja",frontMatter:{type:"tag",date:"2023-12-17T00:00:00.000Z"}},{kind:"MdxPage",name:"privacy-policy",route:"/listen-to-novels/privacy-policy",frontMatter:{type:"tag",date:"2025-01-24T00:00:00.000Z"}},{kind:"MdxPage",name:"regex-ja",route:"/listen-to-novels/regex-ja",frontMatter:{type:"tag",date:"2023-10-20T00:00:00.000Z"}},{kind:"MdxPage",name:"support",route:"/listen-to-novels/support",frontMatter:{type:"tag",date:"2025-02-11T00:00:00.000Z"}},{kind:"MdxPage",name:"terms-and-conditions",route:"/listen-to-novels/terms-and-conditions",frontMatter:{type:"tag",date:"2025-01-24T00:00:00.000Z"}},{kind:"Meta",data:{"display-mode-en":"Display Mode En","display-mode-ja":"Display Mode Ja",support:"Support","privacy-policy":"Privacy Policy","terms-and-conditions":"Terms and Conditions","how-to-use-en":"How to Use En","how-to-use-ja":"How to Use Ja","regex-ja":"Regex Ja","faq-en":"Faq En"}}]}
1,{kind:"Folder",name:"mangavision",route:"/mangavision",children:[{kind:"MdxPage",name:"privacy-policy",route:"/mangavision/privacy-policy",frontMatter:{type:"tag",date:"2025-01-24T00:00:00.000Z"}},{kind:"MdxPage",name:"support",route:"/mangavision/support",frontMatter:{type:"tag",date:"2025-02-20T00:00:00.000Z"}},{kind:"MdxPage",name:"terms-and-conditions",route:"/mangavision/terms-and-conditions",frontMatter:{type:"tag",date:"2025-01-24T00:00:00.000Z"}},{kind:"Meta",data:{support:"Support","privacy-policy":"Privacy Policy","terms-and-conditions":"Terms and Conditions"}}]},{kind:"Folder",name:"posts",route:"/posts",children:[{kind:"MdxPage",name:"admob_adaptive_banner",route:"/posts/admob_adaptive_banner",frontMatter:{title:"AdMobのアダプティブバナーをJetpack ComposeとSwiftUIで使用する",date:"2023/1/12",description:"ライブラリには Jetpack Compose や SwiftUI 用のアダプティブバナーは用意されていないので、使用するには一工夫必要になります。",tag:"JetpackCompose, SwiftUI, AdMob, アダプティブバナー",author:"kyamada"}},{kind:"MdxPage",name:"admob_native_ad_android",route:"/posts/admob_native_ad_android",frontMatter:{title:"AdMobのネイティブ広告をJetpack Composeで表示し、プリロード対応する",date:"2023/2/18",description:"Google Mobile Ads SDK は Jetpack Compose に対応していないので、広告のレイアウトは従来の xml で組む必要があります。また、広告表示のタイムラグをなくすためには、広告を事前に取得(プリロード)するのが有効です。",tag:"JetpackCompose, AdMob, ネイティブ広告",author:"kyamada"}},{kind:"MdxPage",name:"android_edge_to_edge",route:"/posts/android_edge_to_edge",frontMatter:{title:"Android 15 の edge-to-edgeに対応する",date:"2025/1/18",description:"Android 15 の edge-to-edge に対応した時の変更点を記載します",tag:"Android, edge-to-edge",author:"kyamada"}},{kind:"MdxPage",name:"android_share_activity",route:"/posts/android_share_activity",frontMatter:{title:"ブラウザの共有からAndroidアプリを開く",date:"2024/10/15",description:"ブラウザの共有からAndroidアプリを開く方法を説明します。",tag:"Android",author:"kyamada"}},{kind:"MdxPage",name:"compose_multiplatform_admob_banner",route:"/posts/compose_multiplatform_admob_banner",frontMatter:{title:"Compose Multiplatform で Admobのバナー広告を表示する",date:"2024/6/3",description:"Compose Multiplatform で、Android/iOSの環境で Admob のバナー広告を表示する方法を解説します。",tag:"Kotlin, ComposeMultiplatform, Admob",author:"kyamada"}},{kind:"MdxPage",name:"compose_multiplatform_keyboard",route:"/posts/compose_multiplatform_keyboard",frontMatter:{title:"Compose Multiplatform で キーボードショートカットを実装する",date:"2024/8/16",description:"Compose Multiplatform で、キーボードショートカット処理を実装する方法を解説します。",tag:"Kotlin, ComposeMultiplatform",author:"kyamada"}},{kind:"MdxPage",name:"compose_multiplatform_subscription",route:"/posts/compose_multiplatform_subscription",frontMatter:{title:"Compose Multiplatform で サブスクリプションを実装する",date:"2025/1/24",description:"Android/iOSの両方でサブスクリプションの課金処理を実装する方法をまとめました。",tag:"Kotlin, ComposeMultiplatform, subscription",author:"kyamada"}},{kind:"MdxPage",name:"create_android_aab_by_command_line",route:"/posts/create_android_aab_by_command_line",frontMatter:{title:"Androidのリリース用App Bundle(.aab)をコマンドラインから生成する",date:"2023/1/13",description:"Android アプリのリリース時に Ap
1pBundle(.aab)を作成する必要があります。GUI から行うと面倒なので、コマンドラインから AppBundle を作成する方法をまとめました。",tag:"Android, aab, App Bundle",author:"kyamada"}},{kind:"MdxPage",name:"flutter_exists_image",route:"/posts/flutter_exists_image",frontMatter:{title:"Flutterで画像が存在するかどうかを画像をロードせずに調べる方法",date:"2022/9/14",description:"画像の存在チェックをするコードを自動生成するスクリプトを作成します",tag:"flutter, existsImageFile",author:"kyamada"}},{kind:"MdxPage",name:"flutter_font",route:"/posts/flutter_font",frontMatter:{title:"Flutterでカスタムフォントを導入して発音記号を表示する",date:"2022/9/11",description:"Flutterのデフォルトのフォント(Roboto)で発音記号を表示しようとしたら文字化けしたのですが、カスタムフォントを導入することで解決できたので、その方法を紹介します。",tag:"flutter, font, M+FONTS",author:"kyamada"}},{kind:"MdxPage",name:"flutter_ios_install_error",route:"/posts/flutter_ios_install_error",frontMatter:{title:"FlutterでビルドしたipaファイルがTestFlightでインストールできない問題の解決法",date:"2022/9/21",description:"bundle identifierの末尾に .add を追加すると解決します。",tag:"flutter, iOS",author:"kyamada"}},{kind:"MdxPage",name:"get_csr_html_multiplatform",route:"/posts/get_csr_html_multiplatform",frontMatter:{title:"CSRのHTMLをAndroidとiOSで取得する方法",date:"2023/1/2",description:"CSR(クライアントサイドレンダリング)で生成されるHTMLを取得する方法です",tag:"Android, iOS, html, CSR, javascript",author:"kyamada"}},{kind:"MdxPage",name:"index",route:"/posts",frontMatter:{type:"posts",title:"Blog",date:"2021-03-18T00:00:00.000Z"}},{kind:"MdxPage",name:"ios_background_process",route:"/posts/ios_background_process",frontMatter:{title:"iOSアプリがバックグラウンド状態の時に処理を継続する方法",date:"2022/10/9",description:"iOSアプリでバックグラウンド中に処理を継続する方法を調べ、実現可能だった方法と不可だった方法に分類しました。",tag:"ios, background, ble",author:"kyamada"}},{kind:"MdxPage",name:"ios_share_extension",route:"/posts/ios_share_extension",frontMatter:{title:"iOS の Share Extensionで Safari からアプリを開く",date:"2023/2/9",description:"iOS アプリに Share Extension を導入し、Safari からアプリを開く方法を説明します。",tag:"iOS, Share Extension, Safari",author:"kyamada"}},{kind:"MdxPage",name:"jetpack_compose_shared_storage_document",route:"/posts/jetpack_compose_shared_storage_document",frontMatter:{title:"JetpackCompose から 共有ストレージのファイルにアクセスする",date:"2023/8/18",description:"1. ユーザにフォルダーを選択させ、そこにファイルを作成する。2. ユーザにファイルを選択させ、その内容を読み取る",tag:"JetpackCompose,CreateDocument,OpenDocument",author:"kyamada"}},{kind:"MdxPage",name:"kotlin_multiplatform_recommended_libs",route:"/posts/kotlin_multiplatform_recommended_libs",frontMatter:{title:"Kotlin Multiplatform (KMP) の使い方やお勧めのライブラリの紹介",date:"2024/5/25",description:null,tag:"Kotlin, Compose",author:"kyamada"}},{kind:"MdxPage",name:"kotlin_native_string_replace_bug",route:"/posts/kotlin_native_string_replace_bug",frontMatter:{title:"Kotlin/Nativeの String.replace のバグを回避する",date:"2023/2/14",description:"Kotlin/Nativeの String.replace を使うとiOSでバグが発生します。それを回避する方法を説明します",tag:"KotlinNative",author:"kyamada"}},{kind:"MdxPage",name:"ktor_okio_download_file",route:"/posts/ktor_okio_download_file",frontMatter:{title:"ktor と okio を使って大きなファイルをダウンロードする",date:"2024/5/10",description:"大きなファイルをダウンロードする場合、ファイルの内容をすべてメモリに展開してしまうと、OutOfMemoryError が発生してしまいます。",tag:"Multiplatform,ktor,okio",author:"kyamada"}},{kind:"MdxPage",name:"moomoo_acm_dns",route:"/posts/moomoo_acm_dns",frontMatter:{title:"ムームードメインでAWS Certificate Manager(ACM)のSSL証明書を取得する",date:"2022/7/24",description:"ムームードメインでドメインを取得し、AWS Certificate Manager(ACM)のSSL 証明書を取得する方法を説明します。",tag:"acm, moomoo, dns",author:"kyamada"}},{kind:"MdxPage",name:"nextjs_portfolio",route:"/posts/nextjs_portfolio",frontMatter:{title:"next.jsでポートフォリオサイトを作ってS3にデプロイする",date:"2022/7/25",description:"nextjs-portfolio-starterをベースにポートフォリオサイトを作成し、S3にデプロイする方法を説明します。",tag:"next.js, s3",author:"kyamada"}},{kind:"MdxPage",name:"nextjs_s3_cloudfront_dynamic_routes",route:"/posts/nextjs_s3_cloudfront_dynamic_routes",frontMatter:{title:"next.jsをS3+CloudFrontにデプロイした時に、Dynamic Routesを処理する方法",date:"2022/9/19",description:"pages/404.tsxの作成し、CloudFrontでカスタムエラーレスポンスを作成します",tag:"next.js, s3, cloudfront",author:"kyamada"}},{kind:"MdxPage",name:"react_scroll_position_from_bottom",route:"/posts/react_scroll_position_from_bottom",frontMatter:{title:"Reactでスクロール可能な要素の下からのスクロールポジションを取得する",date:"2022/6/21",description:"Reactでスクロール可能な要素の下からのスクロールポジションを取得する方法です",tag:"react, next.js",author:"kyamada"}},{kind:"MdxPage",name:"reducing_mac_system_data_storage",route:"/posts/reducing_mac_system_data_storage",frontMatter:{title:"Macのシステムデータの容量を削減する",date:"2026/3/6",description:"Macのシステムデータの容量が600GBを超えていたので、原因を調べて容量を削減しました。",tag:"Mac, Storage",author:"kyamada"}},{kind:"MdxPage",name:"swiftui_document_picker",route:"/posts/swiftui_document_picker",frontMatter:{title:"Swift
1UI から UIDocumentPickerViewController を呼び出す",date:"2023/8/18",description:"1. ユーザにフォルダーを選択させ、そこにファイルを作成する。2. ユーザにファイルを選択させ、その内容を読み取る",tag:"SwiftUI, UIDocumentPickerViewController",author:"kyamada"}},{kind:"MdxPage",name:"swiftui_textfield_in_sheet",route:"/posts/swiftui_textfield_in_sheet",frontMatter:{title:"SwiftUIのTextFieldに入力した1文字目が変換対象にならない問題とその対処法",date:"2023/3/13",description:"TextField に日本語入力キーボードで文字を入力すると、1 文字目が変換対象にならないことがあります。例えば、キーボードで「a」「u」と入力すると、1文字目の「あ」が変換対象になりません。",tag:"SwiftUI, TextField, UITextField",author:"kyamada"}},{kind:"MdxPage",name:"ump_sdk_reject",route:"/posts/ump_sdk_reject",frontMatter:{title:"Googleの User Messaging Platform (UMP) SDK でGDPRに対応したら、AppStoreの審査でリジェクトされた",date:"2023/12/22",description:"ようするに、ATTメッセージを表示する前に、同意を促すようなメッセージ(ここではGDPRメッセージ)を表示してはいけないようです。",tag:"UMP, GDPR, ATT",author:"kyamada"}},{kind:"MdxPage",name:"webview_http",route:"/posts/webview_http",frontMatter:{title:"AndroidとiOSのWebViewでhttp通信を許可する",date:"2024/11/14",description:"全てのドメインに対してHTTPのクリアテキスト通信を許可したい場合は...",tag:"Android, iOS, WebView",author:"kyamada"}},{kind:"Meta",data:{reducing_mac_system_data_storage:"Macのシステムデータの容量を削減する",compose_multiplatform_subscription:"Compose Multiplatform で サブスクリプションを実装する",android_edge_to_edge:"Android 15 の edge-to-edgeに対応する",webview_http:"AndroidとiOSのWebViewでhttp通信を許可する",android_share_activity:"ブラウザの共有からAndroidアプリを開く",compose_multiplatform_keyboard:"Compose Multiplatform で キーボードショートカットを実装する",compose_multiplatform_admob_banner:"Compose Multiplatform で Admobのバナー広告を表示する",kotlin_multiplatform_recommended_libs:"Kotlin Multiplatform (KMP) の使い方やお勧めのライブラリの紹介",ktor_okio_download_file:"ktor と okio を使って大きなファイルをダウンロードする",ump_sdk_reject:"Googleの User Messaging Platform (UMP) SDK でGDPRに対応したら、AppStoreの審査でリジェクトされた",jetpack_compose_shared_storage_document:"JetpackCompose から 共有ストレージのファイルにアクセスする",swiftui_document_picker:"SwiftUI から UIDocumentPickerViewController を呼び出す",swiftui_textfield_in_sheet:"SwiftUIのTextFieldに入力した1文字目が変換対象にならない問題とその対処法",admob_native_ad_android:"AdMobのネイティブ広告をJetpack Composeで表示し、プリロード対応する",kotlin_native_string_replace_bug:"Kotlin/Nativeの String.replace のバグを回避する",ios_share_extension:"iOS の Share Extensionで Safari からアプリを開く",create_android_aab_by_command_line:"Androidのリリース用App Bundle(.aab)をコマンドラインから生成する",admob_adaptive_banner:"AdMobのアダプティブバナーをJetpack ComposeとSwiftUIで使用する",get_csr_html_multiplatform:"CSRのHTMLをAndroidとiOSで取得する方法",ios_background_process:"iOSアプリがバックグラウンド状態の時に処理を継続する方法",flutter_ios_install_error:"FlutterでビルドしたipaファイルがTestFlightでインストールできない問題の解決法",nextjs_s3_cloudfront_dynamic_routes:"next.jsをS3+CloudFrontにデプロイした時に、Dynamic Routesを処理する方法",flutter_exists_image:"Flutterで画像が存在するかどうかを画像をロードせずに調べる方法",flutter_font:"Flutterでカスタムフォントを導入して発音記号を表示する",nextjs_portfolio:"next.jsでポートフォリオサイトを作ってS3にデプロイする",moomoo_acm_dns:"ムームードメインでAWS Certificate Manager(ACM)のSSL証明書を取得する",react_scroll_position_from_bottom:"Reactでスクロール可能な要素の下からのスクロールポジションを取得する",index:"Blog"}}]},{kind:"Folder",name:"translation-browser",route:"/translation-browser",children:[{kind:"MdxPage",name:"privacy-policy",route:"/translation-browser/privacy-policy",frontMatter:{type:"tag",date:"2025-01-24T00:00:00.000Z"}},{kind:"MdxPage",name:"terms-and-conditions",route:"/translation-browser/terms-and-conditions",frontMatter:{type:"tag",date:"2025-01-24T00:00:00.000Z"}},{kind:"Meta",data:{"privacy-policy":"Privacy Policy","terms-and-conditions":"Terms and Conditions"}}]},{kind:"Folder",name:"voicevox-tts",route:"/voicevox-tts",children:[{kind:"MdxPage",name:"privacy-policy",route:"/voicevox-tts/privacy-policy",frontMatter:{type:"tag",date:"2025-01-24T00:00:00.000Z"}},{kind:"MdxPage",name:"support",route:"/voicevox-tts/support",frontMatter:{type:"tag",date:"2025-01-24T00:00:00.000Z"}},{kind:"MdxPage",name:"terms-and-conditions",route:"/voicevox-tts/terms-and-conditions",frontMatter:{type:"tag",date:"2025-01-24T00:00:00.000Z"}}
1,{kind:"Meta",data:{"privacy-policy":"Privacy Policy",support:"Support","terms-and-conditions":"Terms and Conditions"}}]},{kind:"Meta",data:{about:"About",index:"Apps"}}],flexsearch:{codeblocks:!0},title:"Compose Multiplatform で Admobのバナー広告を表示する",headings:a},pageNextRoute:"/posts/compose_multiplatform_admob_banner",nextraLayout:r.ZP,themeConfig:l.Z};s.default=(0,i.j)(d)}},function(e){e.O(0,[1917,9774,2888,179],function(){return e(e.s=9677)}),_N_E=e.O()}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.