import{_ as c}from"./nagasaki_soyo-RK2z5Lcj.js";import{_ as p,r as t,o as d,c as u,b as e,d as s,a as n,w as o,e as i}from"./app--CGKFO0X.js";const y={},A=e("h1",{id:"introduction",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#introduction","aria-hidden":"true"},"#"),s(" Introduction")],-1),m=e("blockquote",null,[e("p",null,[e("code",null,"Hikage"),s(" (Pronunciation /ˈhɪkɑːɡeɪ/) is an Android responsive UI building tool.")])],-1),h=e("h2",{id:"background",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#background","aria-hidden":"true"},"#"),s(" Background")],-1),g=e("p",null,[s("This is an Android responsive UI build tool designed to focus on "),e("strong",null,"real-time code-based UI building"),s(".")],-1),B={href:"https://github.com/Lagrio",target:"_blank",rel:"noopener noreferrer"},C=e("strong",null,"hikage",-1),b=i('<details><summary>Why...</summary><div align="center"><img src="'+c+'" width="100" height="100" alt="LOGO"><p><strong>なんで春日影レイアウト使いの？</strong></p></div></details><p>Unlike Jetpack Compose&#39;s declarative UI, Hikage focuses on Android native platforms, and its design goal is to enable developers to quickly build UIs and directly support Android native components.</p><p><strong><u>Hikage is just a UI build tool and does not provide any UI components themselves</u></strong>.</p><p>Rejecting duplicate wheels, our solution is always compatible and efficient. Now you can abandon ViewBinding and XML, and even <code>findViewById</code>, and try using code layout directly.</p>',4),D=e("code",null,"Hikage",-1),v={href:"https://github.com/BetterAndroid/BetterAndroid",target:"_blank",rel:"noopener noreferrer"},_=e("code",null,"Hikage",-1),f=e("code",null,"BetterAndroid",-1),k=e("h2",{id:"usage",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#usage","aria-hidden":"true"},"#"),s(" Usage")],-1),F=e("p",null,"Hikage is mainly suitable for developers focusing on native Android platform development. Since Kotlin became the primary development language, there hasn't been a perfect tool to implement dynamic code layouts using DSL. Therefore, projects that do not use Jetpack Compose still need to use the original XML. Although ViewBinding provides support, it is still not very user-friendly.",-1),x={href:"https://github.com/Kotlin/anko",target:"_blank",rel:"noopener noreferrer"},w={href:"https://github.com/LouisCAD/Splitties",target:"_blank",rel:"noopener noreferrer"},I=e("blockquote",null,[e("p",null,"Comparison of various DSL layout schemes")],-1),L=e("div",{class:"language-kotlin line-numbers-mode","data-ext":"kt"},[e("pre",{class:"shiki github-dark-dimmed",style:{"background-color":"#22272e"},tabindex:"0"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#DCBDFB"}},"LinearLayout"),e("span",{style:{color:"#ADBAC7"}},"(")]),s(`
`),e("span",{class:"line"},[e("span",{style:{color:"#ADBAC7"}},"    lparams "),e("span",{style:{color:"#F47067"}},"="),e("span",{style:{color:"#ADBAC7"}}," "),e("span",{style:{color:"#DCBDFB"}},"LayoutParams"),e("span",{style:{color:"#ADBAC7"}},"(matchParent "),e("span",{style:{color:"#F47067"}},"="),e("span",{style:{color:"#ADBAC7"}}," "),e("span",{style:{color:"#6CB6FF"}},"true"),e("span",{style:{color:"#ADBAC7"}},") {")]),s(`
`),e("span",{class:"line"},[e("span",{style:{color:"#ADBAC7"}},"        topMargin "),e("span",{style:{color:"#F47067"}},"="),e("span",{style:{color:"#ADBAC7"}}," "),e("span",{style:{color:"#6CB6FF"}},"16"),e("span",{style:{color:"#ADBAC7"}},".dp")]),s(`
`),e("span",{class:"line"},[e("span",{style:{color:"#ADBAC7"}},"    },")]),s(`
`),e("span",{class:"line"},[e("span",{style:{color:"#ADBAC7"}},"    init "),e("span",{style:{color:"#F47067"}},"="),e("span",{style:{color:"#ADBAC7"}}," {")]),s(`
`),e("span",{class:"line"},[e("span",{style:{color:"#ADBAC7"}},"        orientation "),e("span",{style:{color:"#F47067"}},"="),e("span",{style:{color:"#ADBAC7"}}," LinearLayout.VERTICAL")]),s(`
`),e("span",{class:"line"},[e("span",{style:{color:"#ADBAC7"}},"        gravity "),e("span",{style:{color:"#F47067"}},"="),e("span",{style:{color:"#ADBAC7"}}," Gravity.CENTER")]),s(`
`),e("span",{class:"line"},[e("span",{style:{color:"#ADBAC7"}},"    }")]),s(`
`),e("span",{class:"line"},[e("span",{style:{color:"#ADBAC7"}},") {")]),s(`
`),e("span",{class:"line"},[e("span",{style:{color:"#ADBAC7"}},"    "),e("span",{style:{color:"#DCBDFB"}},"TextView"),e("span",{style:{color:"#ADBAC7"}}," {")]),s(`
`),e("span",{class:"line"},[e("span",{style:{color:"#ADBAC7"}},"        text "),e("span",{style:{color:"#F47067"}},"="),e("span",{style:{color:"#ADBAC7"}}," "),e("span",{style:{color:"#96D0FF"}},'"Hello, World!"')]),s(`
`),e("span",{class:"line"},[e("span",{style:{color:"#ADBAC7"}},"        textSize "),e("span",{style:{color:"#F47067"}},"="),e("span",{style:{color:"#ADBAC7"}}," "),e("span",{style:{color:"#6CB6FF"}},"16f")]),s(`
`),e("span",{class:"line"},[e("span",{style:{color:"#ADBAC7"}},"        gravity "),e("span",{style:{color:"#F47067"}},"="),e("span",{style:{color:"#ADBAC7"}}," Gravity.CENTER")]),s(`
`),e("span",{class:"line"},[e("span",{style:{color:"#ADBAC7"}},"    }")]),s(`
`),e("span",{class:"line"},[e("span",{style:{color:"#ADBAC7"}},"}")]),s(`
`),e("span",{class:"line"})])]),e("div",{class:"line-numbers","aria-hidden":"true"},[e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"})])],-1),H=e("div",{class:"language-kotlin line-numbers-mode","data-ext":"kt"},[e("pre",{class:"shiki github-dark-dimmed",style:{"background-color":"#22272e"},tabindex:"0"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#DCBDFB"}},"verticalLayout"),e("span",{style:{color:"#ADBAC7"}}," {")]),s(`
`),e("span",{class:"line"},[e("span",{style:{color:"#ADBAC7"}},"    gravity "),e("span",{style:{color:"#F47067"}},"="),e("span",{style:{color:"#ADBAC7"}}," Gravity.CENTER")]),s(`
`),e("span",{class:"line"},[e("span",{style:{color:"#ADBAC7"}},"    "),e("span",{style:{color:"#DCBDFB"}},"textView"),e("span",{style:{color:"#ADBAC7"}},"("),e("span",{style:{color:"#96D0FF"}},'"Hello, World!"'),e("span",{style:{color:"#ADBAC7"}},") {")]),s(`
`),e("span",{class:"line"},[e("span",{style:{color:"#ADBAC7"}},"        textSize "),e("span",{style:{color:"#F47067"}},"="),e("span",{style:{color:"#ADBAC7"}}," "),e("span",{style:{color:"#6CB6FF"}},"16f")]),s(`
`),e("span",{class:"line"},[e("span",{style:{color:"#ADBAC7"}},"        gravity "),e("span",{style:{color:"#F47067"}},"="),e("span",{style:{color:"#ADBAC7"}}," Gravity.CENTER")]),s(`
`),e("span",{class:"line"},[e("span",{style:{color:"#ADBAC7"}},"    }")]),s(`
`),e("span",{class:"line"},[e("span",{style:{color:"#ADBAC7"}},"}."),e("span",{style:{color:"#DCBDFB"}},"lparams"),e("span",{style:{color:"#ADBAC7"}},"(")]),s(`
`),e("span",{class:"line"},[e("span",{style:{color:"#ADBAC7"}},"    width "),e("span",{style:{color:"#F47067"}},"="),e("span",{style:{color:"#ADBAC7"}}," matchParent,")]),s(`
`),e("span",{class:"line"},[e("span",{style:{color:"#ADBAC7"}},"    height "),e("span",{style:{color:"#F47067"}},"="),e("span",{style:{color:"#ADBAC7"}}," matchParent")]),s(`
`),e("span",{class:"line"},[e("span",{style:{color:"#ADBAC7"}},") {")]),s(`
`),e("span",{class:"line"},[e("span",{style:{color:"#ADBAC7"}},"    topMargin "),e("span",{style:{color:"#F47067"}},"="),e("span",{style:{color:"#ADBAC7"}}," "),e("span",{style:{color:"#DCBDFB"}},"dip"),e("span",{style:{color:"#ADBAC7"}},"("),e("span",{style:{color:"#6CB6FF"}},"16"),e("span",{style:{color:"#ADBAC7"}},")")]),s(`
`),e("span",{class:"line"},[e("span",{style:{color:"#ADBAC7"}},"}")]),s(`
`),e("span",{class:"line"})])]),e("div",{class:"line-numbers","aria-hidden":"true"},[e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"})])],-1),T=e("div",{class:"language-kotlin line-numbers-mode","data-ext":"kt"},[e("pre",{class:"shiki github-dark-dimmed",style:{"background-color":"#22272e"},tabindex:"0"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#DCBDFB"}},"Column"),e("span",{style:{color:"#ADBAC7"}},"(")]),s(`
`),e("span",{class:"line"},[e("span",{style:{color:"#ADBAC7"}},"    modifier "),e("span",{style:{color:"#F47067"}},"="),e("span",{style:{color:"#ADBAC7"}}," Modifier."),e("span",{style:{color:"#DCBDFB"}},"padding"),e("span",{style:{color:"#ADBAC7"}},"(top "),e("span",{style:{color:"#F47067"}},"="),e("span",{style:{color:"#ADBAC7"}}," "),e("span",{style:{color:"#6CB6FF"}},"16"),e("span",{style:{color:"#ADBAC7"}},".dp),")]),s(`
`),e("span",{class:"line"},[e("span",{style:{color:"#ADBAC7"}},"    verticalArrangement "),e("span",{style:{color:"#F47067"}},"="),e("span",{style:{color:"#ADBAC7"}}," Arrangement.Center,")]),s(`
`),e("span",{class:"line"},[e("span",{style:{color:"#ADBAC7"}},"    horizontalAlignment "),e("span",{style:{color:"#F47067"}},"="),e("span",{style:{color:"#ADBAC7"}}," Alignment.CenterHorizontally")]),s(`
`),e("span",{class:"line"},[e("span",{style:{color:"#ADBAC7"}},") {")]),s(`
`),e("span",{class:"line"},[e("span",{style:{color:"#ADBAC7"}},"    "),e("span",{style:{color:"#DCBDFB"}},"Text"),e("span",{style:{color:"#ADBAC7"}},"(")]),s(`
`),e("span",{class:"line"},[e("span",{style:{color:"#ADBAC7"}},"        text "),e("span",{style:{color:"#F47067"}},"="),e("span",{style:{color:"#ADBAC7"}}," "),e("span",{style:{color:"#96D0FF"}},'"Hello, World!"'),e("span",{style:{color:"#ADBAC7"}},",")]),s(`
`),e("span",{class:"line"},[e("span",{style:{color:"#ADBAC7"}},"        fontSize "),e("span",{style:{color:"#F47067"}},"="),e("span",{style:{color:"#ADBAC7"}}," "),e("span",{style:{color:"#6CB6FF"}},"16"),e("span",{style:{color:"#ADBAC7"}},".sp,")]),s(`
`),e("span",{class:"line"},[e("span",{style:{color:"#ADBAC7"}},"        textAlign "),e("span",{style:{color:"#F47067"}},"="),e("span",{style:{color:"#ADBAC7"}}," TextAlign.Center")]),s(`
`),e("span",{class:"line"},[e("span",{style:{color:"#ADBAC7"}},"    )")]),s(`
`),e("span",{class:"line"},[e("span",{style:{color:"#ADBAC7"}},"}")]),s(`
`),e("span",{class:"line"})])]),e("div",{class:"line-numbers","aria-hidden":"true"},[e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"})])],-1),E=i('<p>The basic part of Hikage <strong>does not require any external or additional compilation plugins</strong>. It can be <strong>plug-and-play</strong> and <strong>create a View object anywhere</strong> that can be set to the parent layout and <code>Window</code>.</p><p>Hikage <strong>fully supports</strong> hybrid layouts. You can embed XML (using the <code>R.layout</code> scheme to load layouts), ViewBinding, and even Jetpack Compose within Hikage.</p><h2 id="language-requirement" tabindex="-1"><a class="header-anchor" href="#language-requirement" aria-hidden="true">#</a> Language Requirement</h2><p>It is recommended to use Kotlin as the preferred development language. This project is entirely written in Kotlin, and there are no plans to support Java compatibility.</p><p>All demo examples in the documentation will be described using Kotlin. If you are not familiar with Kotlin, you may encounter difficulties in using this project effectively.</p><h2 id="contribution" tabindex="-1"><a class="header-anchor" href="#contribution" aria-hidden="true">#</a> Contribution</h2><p>The maintenance of this project is inseparable from the support and contributions of all developers.</p><p>This project is currently in its early stages, and there may still be some problems or lack of functions you need.</p>',8),G={href:"https://github.com/BetterAndroid/Hikage/issues",target:"_blank",rel:"noopener noreferrer"};function V(j,S){const l=t("ExternalLinkIcon"),a=t("CodeGroupItem"),r=t("CodeGroup");return d(),u("div",null,[A,m,h,g,e("p",null,[s("The project icon was designed by "),e("a",B,[s("MaiTungTM"),n(l)]),s(', the name is taken from the original song "Haru'),C,s(`" in "BanG Dream It's MyGO!!!!!".`)]),b,e("p",null,[D,s(" works better with another project "),e("a",v,[s("BetterAndroid"),n(l)]),s(", and "),_,s(" itself will automatically reference the "),f,s("-related dependencies as the core content.")]),k,F,e("p",null,[s("Hikage inherits the design schemes of "),e("a",x,[s("Anko"),n(l)]),s(" and "),e("a",w,[s("Splitties"),n(l)]),s(", and draws on the DSL function naming scheme of Jetpack Compose. On this basis, it has made many improvements, making it closer to native in terms of usage cost and closer to Jetpack Compose in terms of writing style.")]),I,n(r,null,{default:o(()=>[n(a,{title:"Hikage"},{default:o(()=>[L]),_:1}),n(a,{title:"Anko、Splitties"},{default:o(()=>[H]),_:1}),n(a,{title:"Jetpack Compose"},{default:o(()=>[T]),_:1})]),_:1}),E,e("p",null,[s("If possible, feel free to submit a PR to contribute features you think are needed to this project, or go to "),e("a",G,[s("GitHub Issues"),n(l)]),s(" to make suggestions to us.")])])}const R=p(y,[["render",V],["__file","home.html.vue"]]);export{R as default};
