idea公司,又出新神器,一套代码适应多端!

xhmj12 xhmj12     2022-12-06     439

关键词:

相关阅读:一个90后员工猝死的全过程

最近正在考虑开发一款APP,今天就看到一款基于多端的 UI 调试工具,一套代码适应多端,真的是太棒了,下面分享给大家。
前言该工具是大名鼎鼎的 JetBrains 公司新推出的,名曰:“Jetpack Compose for Web”,官方介绍称此项目基于 Google 现代 UI 工具包 Jetpack Compose,支持使用 Kotlin 编写响应式 Web UI。
Jetpack Compose 是用于构建原生界面的新款 Android 工具包。它可简化并加快 Android 上的界面开发。使用更少的代码、强大的工具和直观的 Kotlin API,快速让应用生动而精彩。
UI 代码和预览如下图所示:94_1.png据介绍,Jetpack Compose for Web 可简化并加速 Web 应用的 UI 开发,目标是在 Web、桌面和 Android APP 之间实现 UI 代码共享,一套代码适应多端。目前处于技术预览阶段。
fun greet() = listOf("Hello", "Hallo", "Hola", "Servus").random()

renderComposable("greetingContainer") 
    var greeting by remember  mutableStateOf(greet()) 
    Button(attrs =  onClick  greeting = greet()  ) 
        Text(greeting)
    

Result: Servus
94_2.png使用 Compose for Web 构建用户界面借助 Compose for Web,开发者通过使用 Kotlin 并应用 Jetpack Compose 的概念和 API 为 Web 构建响应式用户界面,以表达应用程序的状态、行为和逻辑。
可组合的 DOM API通过 DOM 元素和 HTML 标签表达设计和布局使用类型安全的 HTML DSL 构建 UI 表示形式通过使用类型安全的 CSS DSL 创建样式表来完全控制应用程序的外观通过 DOM 子树与其他 JavaScript 库集成fun main() 
    renderComposable("root") 
        var platform by remember  mutableStateOf("a platform") 
        P 
            Text("Welcome to Compose for $platform! ")
            Button(attrs =  onClick  platform = "Web"  ) 
                Text("...for what?")
            
        
        A("https://www.jetbrains.com/lp/compose-web") 
            Text("Learn more!")
        
    

94_3.png具有 Web 支持的多平台小部件通过利用 Kotlin 的 Expect-actual 机制来提供特定于平台的实现,从而使用和构建可在 Android、桌面和 Web 上运行的 Compose 小部件
处于实验性阶段的一组布局原语 (layout primitives) 和API,这些原语和 API 与 Compose for Desktop/Android 的功能相似
示例代码使用 Composable DOM 编写简单的计数器
fun main() 
    val count = mutableStateOf(0)
    renderComposable(rootElementId = "root") 
        Button(attrs = 
            onClick  count.value = count.value - 1 
        ) 
            Text("-")
        
        Span(style =  padding(15.px) )  /* we use inline style here */
            Text("$count.value")
        
        Button(attrs = 
            onClick  count.value = count.value + 1 
        ) 
            Text("+")
        
    

声明和使用样式表object MyStyleSheet : StyleSheet() 
    val container by style  /* define a class `container` */
        border(1.px, LineStyle.Solid, Color.RGB(255, 0, 0))
    


@Composable
fun MyComponent() 
    Div(attrs = 
        classes(MyStyleSheet.container) /* use `container` class */
    ) 
        Text("Hello world!")
    


fun main() 
    renderComposable(rootElementId = "root") 
        Style(MyStyleSheet) /* mount the stylesheet */
        MyComponent()
    

声明和使用 CSS 变量object MyVariables : CSSVariables 
    val contentBackgroundColor by variable<Color>() /* declare a variable */


object MyStyleSheet: StyleSheet() 
    val container by style 
        MyVariables.contentBackgroundColor(Color("blue")) /* set its value */
    

    val content by style 
        backgroundColor(MyVariables.contentBackgroundColor.value()) /* use it */
    


@Composable
fun MyComponent() 
    Div(attrs = 
        classes(MyStyleSheet.container)
    ) 
        Span(attrs = 
            classes(MyStyleSheet.content)
        ) 
            Text("Hello world!")
        
    



idea又出新神器,一套代码适应多端!

...ff0c;下面分享给大家。前言该工具是大名鼎鼎的 JetBrains 公司新推出的,名曰:“JetpackComposeforWeb”,官方介绍称此项目基于Google现代UI工具包JetpackCompose,支持使用Kot 查看详情

jetbrains又出了一款新神器,一套代码适应多端!

...;下面分享给大家。1、前言该工具是大名鼎鼎的 JetBrains 公司新推出的,名曰:“JetpackComposeforWeb”,官方介绍称此项目基于Google现代UI工具包JetpackCompose,支持使用Kot 查看详情

jetbrains又出了一款新神器,一套代码适应多端!

...;下面分享给大家。1、前言该工具是大名鼎鼎的 JetBrains 公司新推出的,名曰:“JetpackComposeforWeb”,官方介绍称此项目基于Google现代UI工具包JetpackCompose,支持使用Kot 查看详情

jetbrains又出了一款新神器,一套代码适应多端!(代码片段)

...ff0c;下面分享给大家。1、前言该工具是大名鼎鼎的JetBrains公司新推出的,名曰:“JetpackComposeforWeb”,官方介绍称此项目基于Google现代UI工具包JetpackCompose,支持使用Kotlin编写响应式Web 查看详情

jetbrains打造的开发神器,一套代码适应多端!

...,下面分享给大家。前言该工具是大名鼎鼎的JetBrains公司新推出的,名曰:“JetpackComposeforWeb”,官方介绍称此项目基于Google现代UI工具包JetpackCompose,支持使用Kotlin编写响应式WebUI。JetpackCompose是用于构建原生... 查看详情

jetbrains打造的开发神器,一套代码适应多端!

...,下面分享给大家。前言该工具是大名鼎鼎的JetBrains公司新推出的,名曰:“JetpackComposeforWeb”,官方介绍称此项目基于Google现代UI工具包JetpackCompose,支持使用Kotlin编写响应式WebUI。JetpackCompose是用于构建原生... 查看详情

多端统一开发解决方案---taro(代码片段)

...端的能力就显得极为需要。2.准备工作注册小程序(公司账号管理者),管理=>成员管理模块添加开发者微信号;获取appid:开发=>开发管理=>开发设置模块获取appid,appSecret服务器域名:开发=>... 查看详情

taro,多端适配方案(代码片段)

最近公司几款可以在微信小程序端和H5端同时运行的一套商城,接着就是任务下发喽,但是有一点,时间紧任务重,Boss直接说其他的不管,反正一个半月之内必须上线,~~~头疼。那就只好想办法喽机缘巧合京东泰罗版本,研究下... 查看详情

idea插件神器教你如何使用idea一键set实体类中所有属性(代码片段)

...,又浪费时间,而且容易漏掉。给大家推荐一款神器:GenerateAllSetteridea有款叫GenerateAllSetter的插件。idea打开File->Plugins搜索GenerateAllSetter点击Installed,下载后无需重启idea使用方法: 查看详情

idea插件神器教你如何使用idea一键set实体类中所有属性(代码片段)

...,又浪费时间,而且容易漏掉。给大家推荐一款神器:GenerateAllSetteridea有款叫GenerateAllSetter的插件。idea打开File->Plugins搜索GenerateAllSetter点击Installed,下载后无需重启idea使用方法: 查看详情

介绍一个欧神写的剪贴板多端同步神器(代码片段)

经常会遇到这样的场景:手机上看到某位大佬发了一段醍醐灌顶的话,马上想记录到自己的笔记系统里去。但电脑上并没有登录微信,所以还得先登录电脑端微信,再自动同步消息,找到那段话,复制࿰... 查看详情

阿里出品!springboot应用自动化部署神器,idea版jenkins?(代码片段)

Hollis的新书限时折扣中,一本深入讲解Java基础的干货笔记!最近发现一款阿里出品的IDEA插件CloudToolkit,不仅支持直接打包应用部署到远程服务器上,而且还能当终端工具使用。试用了一把这个插件,非常不错... 查看详情

html多端适应响应式布局案例(代码片段)

...t;</div> <divclass="aa"></div></div>CSS代码:设置视口:<metaname="viewport"content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable&# 查看详情

两台电脑共享一套键盘鼠标的神器

  实验室有台台式电脑,自己又带了笔记本,现在键盘鼠标是连接在台式机上的,当要使用笔记本的时候再去用笔记本的触摸板是很不习惯,就想找找有没有能什么东西能实现一套键盘鼠标给两台电脑用的,从某宝上搜到的是... 查看详情

推荐一款idea代码生成神器,写代码效率翻倍!(代码片段)

Easycode是idea的一个插件,可以直接对数据的表生成entity,controller,service,dao,mapper,无需任何编码,简单而强大。1、安装(EasyCode)我这里的话是已经那装好了。建议大家在安装一个插件,叫做Lombok。Lombok能通过注解的方式,在编译时自... 查看详情

代码神器:拒绝重复编码,这款idea插件了解一下.....

作者:HeloWxlwww.jianshu.com/p/e4192d7c6844Easycode是idea的一个插件,可以直接对数据的表生成entity、controller、service、dao、mapper无需任何编码,简单而强大。1、安装(EasyCode) 我这里的话是已经那装好了。建议大家在安装一个插件,叫... 查看详情

idea-日志管理神器(代码片段)

...onsole面板。5.其它功能暂时还用不到,有待开发~日志管理神器-bug绕着走记录每一个学习瞬间 查看详情

推荐一款idea生成代码神器,写代码再也不用加班了!(代码片段)

👇👇关注后回复 “进群” ,拉你进程序员交流群👇👇Easycode是idea的一个插件,可以直接对数据的表生成entity,controller,service,dao,mapper,无需任何编码,简单而强大。1、安装(EasyCode)我这里的话是已经... 查看详情