LiveViewNative
关于
LiveView Native 是一个使用 Elixir 和 Phoenix LiveView 构建原生应用程序的平台。它允许单个 LiveView 通过将平台特定的模板代码转换为原生 UI 来同时服务于 Web 和非 Web 客户端:
# lib/my_app_web/live/hello_live.ex
defmodule MyAppWeb.HelloLive do
use MyAppWeb, :live_view
use MyAppNative, :live_view
end
# liv/my_app_web/live/hello_live_swiftui.ex
defmodule MyAppWeb.HelloLive.SwiftUI do
use MyAppNative, [:render_component, format: :swiftui]
def render(assigns, %{"target" => "watchos"}) do
~LVN"""
<VStack>
<Text>
Hello WatchOS!
</Text>
</VStack>
"""
end
def render(assigns, _interface) do
~LVN"""
<VStack>
<Text>
Hello SwiftUI!
</Text>
</VStack>
"""
end
end
入门
要开始使用 LiveView Native,你需要有一个现有的 Phoenix 应用程序 或创建一个新的。
在 mix.exs
文件中将 live_view_native
添加到你的依赖列表中。除了 live_view_native
,你可能还想包含一些额外的库:
{:live_view_native, "~> 0.3.0-rc.4"},
{:live_view_native_stylesheet, "~> 0.3.0-rc.4"},
{:live_view_native_swiftui, "~> 0.3.0-rc.4"},
{:live_view_native_live_form, "~> 0.3.0-rc.3"}
然后运行:
$ mix lvn.setup
并按照说明完成设置过程。
原生客户端
LiveView Native 支持以下客户端框架:
UI 框架 | 设备 | LiveView 客户端 |
---|---|---|
SwiftUI | iPhone、iPad、AppleTV、Apple Watch、MacOS、Apple Vision Pro | LiveView Native SwiftUI |
JetPack Compose | Android 系列 | LiveView Native Jetpack |
HTML | LiveView Native HTML |
有问题?
对 LiveView Native 有疑问或需要帮助?
请查看 Elixir Lang Slack 上的 #liveview-native
频道。