퓨즈를 개발하면서 궁금한 것들

지극히 개인적이고 소소한 내용입니다만, 퓨즈[Fusetools]를 처음 접하면서 궁금했던 것들을 하나씩 정리해 볼까 합니다.

어썸 퓨즈 :: https://github.com/vinkla/awesome-fuse/blob/master/README.md

0. 궁금한건 어디다 물어보나?
http://fusecommunity.slack.com 한국어 채널(#koreanfusersroom)도 있음
https://www.facebook.com/groups/fusetools

1. StatusBar를 보이게 또는 안보이게 하려면 어떻게 하지?

1
2
<iOS.StatusBarConfig Style="Light" Animation="Slide" IsVisible="True" />
<Android.StatusBarConfig Color="#0003" IsVisible="True" />

2. ERROR: make.exe was not found in “”\prebuilt\windows**” 이건 어떻게 해결해야 해?
– Android로 빌드시에 일어나는 대부분의 오류는 Android SDK, ANT, NDK 등이 없어서 그렇습니다. 아래 명령을 터미널에서 실행하면 자동으로 다운로드 받습니다.

1
fuse install android

3. 네이티브 언어와 연동하려면 어떻게 하지?
간단한 예제(https://blog.wonhada.com/?p=2141)를 따라해 보세요.

4. Observable 객체 안에 있는 요소들을 접근하려면 어떻게 하지?

1
2
3
4
5
6
7
8
9
var Observable = require("FuseJS/Observable");
var arr = Observable();
arr.add({Name:Math.random()});
arr.add({Name:Math.random()});
arr.forEach(function (x, i) {
    x.idx = i;// 새로운 멤버 추가
    return x;
});
debug_log(arr.getAt(1).Name + ":" + arr.getAt(1).idx);

5. 어떤 자료구조가 있을까?
https://blog.wonhada.com/?p=2192

6. 버튼을 누르거나 했을 때 웹사이트로 이동시키려면 어떻게 하지?
– .unoproj의 Packages에 “Fuse.Launcher” 추가
– 로컬 프리뷰에서는 동작 안함

1
2
3
4
5
var InterApp = require("FuseJS/InterApp");
InterApp.onReceivedUri = function(uri) {
    console.log("Launched with URI", uri);
}
InterApp.launchUri("https://blog.wonhada.com/");

7. 스토어에 런칭된 퓨즈 쇼케이스[Fusetools Showcase] 리스트가 있을까?
https://github.com/vinkla/awesome-fuse#applications
http://www.conradwise.com
디스패치 뉴스 앱

8. .UNOPROJ에 ‘*:BUNDLE’을 추가하는 이유
https://blog.wonhada.com/?p=2231

9. 웹에 있는 text, json 같은 파일을 가져오려면?
https://blog.wonhada.com/?p=2264

10. AndroidNDK 설치 시 “Access to the path ‘libpython2.7.dll’ is denied.”
– C:\ProgramData\Uno\SDKs\AndroidNDK 삭제
– C:\Users\Administrator\AppData\Local\Fusetools\Fuse\Android\android-ndk-r10d 삭제 (마지막 폴더명의 버전이 다를 수 있음)
– 터미널에서 fuse install android 재실행
– 계속 설치가 안되면 아래 11번을 참고.

11. Android SDK, NDK, ANT 등 경로 지정
– Windows: %appdata%/../Local/FuseTools/Fuse/sdkConfig.json (%appdata%: C:\Users\Administrator\AppData\)
– Windows: {“AndroidSDK”:{“Path”:”D:\\__ANDROID__\\Android\\sdk”},”AndroidNDK”:{“Path”:”D:\\__ANDROID__\\Android\\AndroidNDK”},”JDK”:{“Path”:”D:\\Program Files\\Java\\jdk1.8.0_111″,”PathPattern”:”*.jdk”},”Ant”:{“Path”:”D:\\__ANDROID__\\Android\\Ant”},”BuildToolsVersion”:”23.0.2″}
– OSX: ~/.fuse/sdkConfig.json
– OSX: {“AndroidSDK”:{“Path”:”/Users/englekk/Library/Android/sdk”},”AndroidNDK”:{“Path”:”/Users/englekk/Library/Application Support/Fusetools/Fuse/Android/AndroidNDK”},”JDK”:{“Path”:”/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk”,”PathPattern”:”*.jdk”},”Ant”:{“Path”:”/Users/englekk/Library/Application Support/Fusetools/Fuse/Android/Ant”},”BuildToolsVersion”:”23.0.2″}

12. iOS로 프리뷰나 빌드를 하면 UnoPlayground.uno는 어떤 파일로 변할까?
– Source/_root.UnoPlayground.mm 으로 바뀝니다. Xcode에서 확인해 보면 uno가 어떤 구조로 변하는지 확인할 수 있습니다.

13. Router로 넘긴 파라미터를 받는 방법
– router.goto(‘page2’, { title: “WonHada.com” } ) 이렇게 넘겼을 때

1
2
3
4
5
6
7
8
9
<JavaScript>
    this.Parameter.onValueChanged( module, function(args) {
        console.log( "Changed: " + args.title )
    })

    exports.title = this.Parameter.map( function(x) {
        return x.title
    })
</JavaScript>

[[ 동영상 강좌(재생 목록 버튼을 누르세요) ]]

Was this article helpful?

Related Articles