Fuse

开始

开始使用 Fuse 非常简单。首先,你需要下载 Fuse 的最新版本

什么是 Fuse?

Fuse 是一个开发者和设计师用来为iOS 和 Android 创建原生的、跨平台的移动应用的工具包。

使用用户界面标记语言(我们称之为「UX」)使得绘制动画和自适应的用户界面变得容易了。你的应用逻辑采用 Javascript 来解释, 一切渲染都编译成为最优新能的原生带代码 。你可以在真实的原生 UI 控件和自定义的跨平台控件之间选择。Fuse 不是一个黑盒子,但是一个灵活的工具箱可以使用 Uno 来扩展。Fuse 不是生成 HTML5/混合型的应用,它输出原生的移动应用。

当你开发你的应用的时候,你的改变将实时地反映在你的电脑和你的设备上,不需要重新编译,和重新发布。虽然用 Fuse 来制作应用原型挺好的,但是它不是一个原型工具,它是一个完全独立的,不需要Xcode 或者 Android studio 单独用 Fuse 来开发的开发工具。一些完全使用 Fuse 来开发的应用已经在 App store 里上线了,每天还有很多应用投入开发。

安装

我们常花功夫使得整个开发过程丝般顺滑,但是偶尔事情还是会出错,如果问题真的发生了,请一定让我们知道

OSXWindows 的安装说明可以在链接中找到,当然这儿还有在OSX中卸载的说明,如果你需要的话。

示例

我们建议你从跟随我们的示例开始,你可以在我们的示例页面找到范围宽广的准备完就运行的例子,也有一堆 Youtube 上的示例视频

项目结构

创建新的项目之后,不管是使用控制板或者 fuse 命令行工具你可以找到项目文件夹里有两个文件:

  • ProjectName.unoproj 这是项目文件,基本的跟踪组成项目的文件,项目依赖的包和其他容易获取的值比如 API Key。
  • MainView.ux 这是你应用的主要起点,因为它包含在 App 的标签里。通常情况下,你需要删除这个文件里的大多数内容,但是请随意检查默认的程序以及看看修改一下用来做一个骨架还需要什么。

移步Uno项目格式说明阅读unoproj的完整格式说明。

注意:Javascript 文件不需要在 unoproj 文件中引用直接在 UX 文件中引用。

Sublime Text Projects

当你把文件夹拖到 Sublime Text 3里,它会直接搜索查找所有子文件夹里的文件。编译 Fuse 项目的时候里面有些文件是你不想要的。

如果你创建一个 ProjectName.sublime-project 文件,你通过它来忽略 .unobuild 文件夹:

{
  "folders":
  [
    {
      "folder_exclude_patterns":
      [
        "build",
        ".uno",
      ],
      "path":"."
    }
  ]
}

这个文件可以从 Project -> Open Project... 对话框里打开。

Git

如果你用 Git 来做版本控制,你可以把下述内容加到你的 .gitignore 文件里去:

build
.uno

预览

实时预览是 Fuse 的主要特点。你可以同时在多个设备(以及桌面模拟器里)预览,所以你不需要在几次修改中间为了特定的设备编译应用;只需要保存一下就可以立刻在你的设备上显示了。

根据以下说明来启用在iOS 设备上预览Android 设备上的预览

在桌面上预览你的项目可以有好几种办法。如果你装着 Sublime Text3 和支持的插件,直接在 UX 文件上右击选择「开始Fuse预览」以及选择「本地」选项。在模拟器里会打开预览,可以同步地修改你对文件的修改。

同样的,你可以用命令行进入项目根目录,执行 fuse preview

更多的去阅读Fuse 桌面预览文档

导出

运行预览的时候,Fuse 会在你的设备上创建一个 shell 程序连接你设备上运行的 Fuse 守护程序来快速显示你项目的改变。不管如何,如果你想把你的设备带到会议上或者离开你的开发环境展示你的应用,你需要把你的项目导出到目标设备商。

导出到 iOS

对 iOS 来说,你需要一台装着 OS X 和 Xcode 的电脑,你还需要一个苹果开发者账号,在项目根目录下运行: fuse build --target=iOS --run 来编译运行这个应用。

如果你希望用 Xcode 来打开生成的项目,你只需要运行 fuse build --target=iOS -adebug

导出到 Android

你必须首先安装 Android SDK/NDK 包,然后去项目根目录下运行: fuse build --target=Android --run

这将在你连接着的安卓设备上发布应用。