【问题标题】:Can we build a full stack webapp with kotlin?我们可以用 kotlin 构建一个全栈 webapp 吗?
【发布时间】:2020-07-15 14:53:22
【问题描述】:

Kotlin 官方文档告诉它支持 Web 开发。以及它对java的替代品。我正在尝试使用 Kotlin 构建一个 Web 应用程序。到目前为止,我在 YouTube 上阅读了很多博客、课程和视频,但我没有成功地想出一个流程。我遇到了这个链接https://medium.com/bcgdv-engineering/building-a-full-stack-web-app-in-kotlin-af8e8fe1f5dc,我无法单独进行。我只需要一个前端并通过正常的 http 请求连接到我的服务器。有没有在 kotlin 中做一个网络应用程序的正确方法。请帮我解决一下这个。提前致谢!

【问题讨论】:

  • 你的问题感觉很不完整。您提到您找到了一篇演练文章,但“无法单独进行”-您介意澄清您遇到的具体问题吗?我不清楚你在寻找什么样的答案。
  • 在那个链接中,他正在做前端和后端。我需要知道我们可以拥有 html css 并且我们可以拥有漂亮的 UI,像这样调用 API 吗?有很多选择,例如 ktor、spring.io spark 等等。我不能做传统的html css吗?我不知道继续。我在 android kotlin 工作,我们只需要 android studio 并编写我们的代码。像这样可以使用 kotlin 进行 Web 吗? @Egor

标签: kotlin web-applications ktor spring-kotlin


【解决方案1】:

我在 Ktor 中开发 Web 应用程序时使用什么:

前端:

  • FreeMaker - 用于模板(小胡子和速度是其他选项)
  • 引导程序 - 用于 HTML - CSS - Javascript 部分

还有 Kotlinx.html 和 KotlinJS 如果您需要编写 Kotlin Style,它们是 JetBrains 的官方工具集。

Kotlinx.HTML Github

KotlinJS

您可以向 Ktor 本身添加功能(它们被称为特性):

特点:

  • GSON - 用于内容协商(将 Kotlin 转换为 JSON,反之亦然)
  • 位置 - 用于类型安全的路由
  • 公开(用于轻松使用基于 JDBC 驱动程序的 PostgreSQL、MySQL 和 SQLite 的接口)
  • 身份验证(用于用户身份验证)

Ktor 网站包含所有这些功能的详细文档,将它们添加到您的项目中非常容易。

  • 添加依赖

  • install(FEATURE) 在应用程序中。

IDE 方面:

  • IntelliJ Ultimate(Ultimate 支持 FreeMarker 的 .ftl)
  • 安装 IntelliJ 时必备的 Ktor 插件

对于网络服务器引擎:

  • Netty(我用这个)
  • 雄猫
  • 码头

您可以使用 Ktor 惊人的 DSL(领域特定语言)轻松开发 API 和 Wen 应用程序

我唯一遇到的问题是我讨厌 Kotlin 协程,并且更喜欢 RxKotlin 来开发异步应用程序,这似乎是可能的,但那里没有足够的教程和示例来开始使用它。 + 如果您坚持新的和具有挑战性的事情,那么您只能靠自己了,因为互联网上没有足够的示例和指南。

但归根结底,我只向那些不想学习 Web 开发语言的 Android 开发者推荐 Ktor,例如PHP、Phyton、Javascript,和我一样。

【讨论】:

  • PHP 我做了 10 年,但它的衰落,无论如何都不是用于编程的。带有 Flask 的 Python 看起来不错。 ktor 作为我喜欢的服务器,主要是因为它的行为类似于 java 而不让我使用它(最不喜欢的语言,它类似于 C++,但需要 VM)。不过,在使用 ktor 时,我需要一个适合此的良好前端解决方案。你如何处理你的 JS 文件,把它们放在资源文件夹中?它有 HTML 和 CSS,但没有固有的 JS DSL,而我听说 kotlinJS 并没有真正被开发出来。
猜你喜欢
  • 2013-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-20
  • 1970-01-01
  • 1970-01-01
  • 2016-05-22
  • 2016-04-19
相关资源
最近更新 更多