【譯】使用Fuse創(chuàng)建App的入門教程

官網(wǎng)原文:https://www.fusetools.com/learn/guides/tutorial

安裝設(shè)置

請(qǐng)參見(jiàn)安裝指南頁(yè)面。

創(chuàng)建一個(gè)新項(xiàng)目

使用命令行工具輸入如下命令新建一個(gè)項(xiàng)目

fuse create app <projectname> [optional path]

如忽略路徑倒谷,缺省在當(dāng)前目錄新建項(xiàng)目治泥。

你也可以在Fuse控制臺(tái)上點(diǎn)擊“New Project”來(lái)新建一個(gè)項(xiàng)目先煎。

pic
pic

使用UX文件

一個(gè)剛剛新建的Fuse項(xiàng)目應(yīng)該包含了唯一的一個(gè).ux文件裸燎,缺省名叫MainView.ux男公。

在命令行的項(xiàng)目目錄中鍵入fuse preview可以預(yù)覽該文件存淫,或者在控制臺(tái)上點(diǎn)選Preview也行耘斩。

MainView.ux的預(yù)覽圖應(yīng)該看起來(lái)是這樣(老版本):

打開(kāi)文件預(yù)覽后,F(xiàn)use會(huì)監(jiān)聽(tīng)任何UX和JavaScript的改動(dòng)并即刻更新預(yù)覽桅咆,更酷的是你可以在你的手機(jī)上獲得同樣的實(shí)時(shí)預(yù)覽效果括授。

首個(gè)App

是時(shí)候打開(kāi).ux文件看看里面的標(biāo)記了,代碼編輯器推薦使用Sublime Text 3并安裝上Fuse插件岩饼。

MainView.ux文件的基本內(nèi)容如下所示:

<App Theme="Basic">
</App>

試著加點(diǎn)UI元素:

<App Theme="Basic" Background="#eeeeeeff">
    <DockPanel>
        <StatusBarBackground Dock="Top" />
        <ScrollView ClipToBounds="true">
            <StackPanel>
                <Slider />
                <Button Text="Button" />
                <Switch Alignment="Left" />
            </StackPanel>
        </ScrollView>
    </DockPanel>
</App>

理解標(biāo)記

UX文件中的每一個(gè)XML元素都表示了一個(gè)Uno對(duì)象荚虚。元素的名字就是類名。

MainView.ux現(xiàn)有的標(biāo)記包括:

  • App - App類是你的應(yīng)用的入口點(diǎn)籍茧, 而且只能有一個(gè)App版述。Theme 主題詳細(xì)列舉了App用到的缺省字體、顏色寞冯、控制外表等渴析。ClearColor 指定背景色晚伙。

  • DockPanel - 用來(lái)布局(layout),它可以在上下左右定位各類子元素俭茧,隨后一個(gè)子元素缺省會(huì)填充最后的空間咆疗。

  • StatusBarBackground - 給狀態(tài)欄的保留空間,以防狀態(tài)欄為透明母债。它可以在iOS和Android里控制狀態(tài)欄的背景午磁。Fuse中還沒(méi)有狀態(tài)欄,但你可以在手機(jī)上查看效果毡们。

  • ScrollView - 用于操控滾動(dòng)視圖迅皇,缺省方向是垂直滾動(dòng)。

  • StackPanel - 用來(lái)布局(layout)衙熔,它可以將若干子元素按水平或垂直方向排列登颓,缺省是按垂直方向,如上面的例子青责。

  • Slider - 讓用戶在給定范圍中選一個(gè)值的滑動(dòng)控制器

  • Button - 鼠標(biāo)單擊或觸摸點(diǎn)擊的控制器

  • Switch - 可以切換開(kāi)與關(guān)的控制器

所有可用的標(biāo)簽都是類挺据,你可以在Fuse API文檔里找到一個(gè)完整的可用標(biāo)記清單。

關(guān)于視覺(jué)感受

示例中的Slider脖隶、ButtonSwitch都是通過(guò)Theme主題來(lái)設(shè)置視覺(jué)效果的扁耐,該例中應(yīng)用了Basic主題,Fuse.BasicTheme是基于谷歌的Material Design設(shè)計(jì)并使用UX標(biāo)記來(lái)定義的产阱。Basic主題在所有平臺(tái)都能保持同樣的視覺(jué)效果婉称,實(shí)為開(kāi)發(fā)跨平臺(tái)應(yīng)用開(kāi)始時(shí)的方便之選。

使用樣式(Styling)可以輕松修改外表构蹬。如果要全部自定義App中所有字體王暗、顏色、動(dòng)畫和控制這些設(shè)置庄敛,推薦創(chuàng)建自己的主題俗壹。

邏輯與腳本

Fuse使用JavaScript來(lái)給App添加邏輯。UX標(biāo)記與腳本的組合藻烤,給你實(shí)施App時(shí)所有需要的功能绷雏,從視覺(jué)設(shè)計(jì)到數(shù)據(jù)模型、邏輯和后臺(tái)集成怖亭。

在首個(gè)示例中涎显,我們來(lái)簡(jiǎn)單創(chuàng)建一個(gè)計(jì)數(shù)器,數(shù)字隨按鈕被點(diǎn)擊的次數(shù)而增長(zhǎng)兴猩。

首先在DockPanel標(biāo)記中添加如下JavaScript字段:

<JavaScript>
    var Observable = require('FuseJS/Observable');
    var buttontext = Observable('Button');
    var clickcount = 0;

    function click() {
        buttontext.value = 'Clicks: ' + ++clickcount;
    }

   module.exports = {
            buttontext : buttontext,
            click : click
        }
</JavaScript>

然后將點(diǎn)擊處理器和buttontext變量綁定到已有的Button標(biāo)記中期吓,如下所示:

<Button Text="{buttontext}" Clicked="{click}"/>

保存已修改的MainView.ux文件的同時(shí),預(yù)覽窗會(huì)自動(dòng)刷新倾芝,so讨勤,開(kāi)始愉快的點(diǎn)擊按鈕吧箭跳!

上述腳本和標(biāo)記的作用是,給按鈕上的文字顯示創(chuàng)建了一個(gè)數(shù)據(jù)綁定悬襟,當(dāng)click()函數(shù)被調(diào)用時(shí)衅码,buttontext就會(huì)被改變,按鈕上的文字段就會(huì)隨之更新脊岳。

更多關(guān)于腳本編寫的信息,請(qǐng)參見(jiàn)FuseJS文檔范例頁(yè)垛玻。

Uno

當(dāng)更多底層任務(wù)需要完全訪問(wèn)原生安卓或iOS編程接口時(shí)割捅,或者當(dāng)需要?jiǎng)?chuàng)建全新的UI組件時(shí),你可以使用Uno. Uno是一個(gè)輕量的C#方言帚桩,它可以編譯成原生的安卓和iOS代碼亿驾,這使之成為Fuse的基石。

輸出App

現(xiàn)在你的App至少已有了一個(gè)功能账嚎,是時(shí)候輸出到安卓或iOS上了莫瞬。

使用命令行工具,你可以這樣:

fuse build --target=<ios or Android> --run

更多信息參見(jiàn)“預(yù)覽與輸出”頁(yè)面郭蕉。

很簡(jiǎn)單疼邀,是不是,下一步做什么召锈?

熟悉上述基礎(chǔ)內(nèi)容后旁振,你可以試著到這里消化那些范例了。

如果你覺(jué)得JavaScript不夠用涨岁,可以試試Uno拐袜。

有任何問(wèn)題可以到官網(wǎng)論壇發(fā)帖。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末梢薪,一起剝皮案震驚了整個(gè)濱河市蹬铺,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌秉撇,老刑警劉巖甜攀,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異畜疾,居然都是意外死亡赴邻,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門啡捶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)姥敛,“玉大人,你說(shuō)我怎么就攤上這事瞎暑⊥玻” “怎么了与帆?”我有些...
    開(kāi)封第一講書人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)墨榄。 經(jīng)常有香客問(wèn)我玄糟,道長(zhǎng),這世上最難降的妖魔是什么袄秩? 我笑而不...
    開(kāi)封第一講書人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任阵翎,我火速辦了婚禮,結(jié)果婚禮上之剧,老公的妹妹穿的比我還像新娘郭卫。我一直安慰自己,他們只是感情好背稼,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布贰军。 她就那樣靜靜地躺著,像睡著了一般蟹肘。 火紅的嫁衣襯著肌膚如雪词疼。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 51,688評(píng)論 1 305
  • 那天帘腹,我揣著相機(jī)與錄音贰盗,去河邊找鬼。 笑死竹椒,一個(gè)胖子當(dāng)著我的面吹牛童太,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播胸完,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼书释,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了赊窥?” 一聲冷哼從身側(cè)響起爆惧,我...
    開(kāi)封第一講書人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎锨能,沒(méi)想到半個(gè)月后扯再,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡址遇,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年熄阻,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片倔约。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡秃殉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情钾军,我是刑警寧澤鳄袍,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站吏恭,受9級(jí)特大地震影響拗小,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜樱哼,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一哀九、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧搅幅,春花似錦勾栗、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)砸讳。三九已至琢融,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間簿寂,已是汗流浹背漾抬。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留常遂,地道東北人纳令。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像克胳,于是被迫代替她去往敵國(guó)和親平绩。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 官網(wǎng)原文:Fuse 開(kāi)始起步 開(kāi)始運(yùn)行和使用Fuse超級(jí)簡(jiǎn)單漠另,首先捏雌,下載最新版本的[Fuse](https://w...
    趙趙811閱讀 2,549評(píng)論 1 1
  • 官網(wǎng)原文:Fuse 輸出 預(yù)覽時(shí),F(xiàn)use會(huì)在手持設(shè)備上創(chuàng)建一個(gè)殼(shell)程序笆搓,與在運(yùn)行在桌面系統(tǒng)的Fuse...
    趙趙811閱讀 912評(píng)論 0 2
  • 開(kāi)始起步 開(kāi)始運(yùn)行和使用Fuse超級(jí)簡(jiǎn)單性湿,首先,下載最新版本的Fuse! Fuse是什么满败? Fuse 是一個(gè)給開(kāi)發(fā)...
    衣咸閱讀 494評(píng)論 0 0
  • UX標(biāo)記 Fuse主要被用來(lái)做這么兩類事兒: 一類是用來(lái)創(chuàng)建App或者原型底桂,主要是編寫跨平臺(tái)的JavaScript...
    衣咸閱讀 326評(píng)論 0 0
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)昭卓、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,105評(píng)論 4 62