본문 바로가기

전체 글236

커스텀 그래픽스테마 만들기 Creating your own GraphicsTheme GraphicsTheme 를 상속한다. 버튼과 슬라이더 등을 재정의 한다. 아래와 같이 사용한다. 글로벌 영역으로 타입 얼리어스도 가능하다. 그런 경우 App에서 지정 가능하다. 아래와 같다. ... 2016. 1. 6.
Hello, World! 기본 프로젝트를 생성하면 MainView.ux 파일에 아래와 같은 코드가 보인다.12cs 이제 Hello, World!를 띄워보기 전에, xml의 작성규칙에 따라 대소문자가 구분되어야 함을 상기하자.Text를 넣기 위한 방법을 통해 보자면, 123 Hello, World!cs123 Hello, World!cs fuse의 markup은 모두 첫글자가 대문자로 이루어져 있다. 실수하지 말자. MainView에 텍스트를 작성하고 프리뷰를 띄워보면, 헬로월드를 띄웠다. 2016. 1. 5.
Export 프리뷰가 동작중일 때, 퓨즈는 디바이스에 시스템과 실시간으로 통신하기 위한 쉘 애플리케이션을 만든다. 하지만 개발환경으로부터 미팅이나 다른 사람들에게 디바이스를 주기 위해서는 프로젝트를 디바이스에 export할 필요가 있다. 방법은 아래와 같다. Exporting to iOSiOS는 기본적으로 맥 환경과 Xcode가 설치되어 있어야하며, 애플 개발 계정이 필요하다. 이 조건을 만족한 후, 프로젝트의 root directory에서 아래의 커맨드를 입력한다.fuse build --target=iOS --run입력하면 Xcode가 실행되며 프로젝트가 빌드된다. 그리고 원하는 디바이스를 선택한 후 run한다.Exporting to Android먼저 the Android SDK/NDK packages 설치가 필요.. 2016. 1. 5.
fuse란? Fuse란, 디자이너와 개발자를 위한 네이티브 앱을 만드는 툴이다. iOS와 안드로이드 크로스 플랫폼이 가능하다는 특징이 있다. 퓨즈는 xml을 이용한 markup 유저인터페이스를 가지고 있기 때문에, 직관적이고 만들기가 쉽다는 특징을 가지고 있다. 또한 모든 렌더링이 네이티브 코드로 컴파일 되기때문에 퍼포먼스가 네이티브급으로 동작한다는 점이 강점이다. 그리고 퓨즈는 black box가 아닌 유연한 툴킷으로 Uno(C#에서 dialect 기능이 제외된 언어)를 이용해 사용자가 얼마든지 기능을 확장할 수 있다. 마지막으로 퓨즈는 웹앱이나 하이브리드 앱은 지원하지 않는다. 이러한 것들을 만드는 툴킷은 이미 얼마든지 존재하기 때문이다. 이후 다른 포스트를 통해 작성하겠지만 realtime preview또한 퓨.. 2016. 1. 5.
shell script 출처 : http://www.dreamy.pe.kr/zbxe/CodeClip/3765734 1. 쉘(Shell)스크립트란 ?쉘을 통하여 프로그램을 만든 것DOS의 Batch 파일 작성과 비슷하지만 더 막강한 기능들을 가지고 있음기존의 명령어들을 이용하여 만들어지는 스크립트 파일의 문법은 다른 프로그래밍 언어보다 매우 간단하며 쉽게 응용이 가능 2. 쉘 스크립트의 시작쉘 프로그램을 만들기 위해서 vi에디터나 gedit 등을 이용스크립트 파일의 가장 위의 첫 라인은 "#! /bin/bash" 로 시작bash로 작성되었다는 것을 의미하며, bash을 기준으로 실행된다는 것을 의미Bourne Shell인 경우 "#! /bin/sh" 3. 쉘 스크립트의 실행아래와 같이 echo 를 이용하여 화면에 "bash sc.. 2016. 1. 4.
image upload 중간과정을 좀 건너 뛰었지만... 기본에 해당하는 부분에서 마지막 파트. 파일 업로드! 기존 코드를 재사용 합니다. 그리고 업로드는 npm에 있는 모듈 중 하나인 formidable을 사용합니다. formidable의 설치는 터미널에서 npm install formidable index.js123456789101112var server = require("./server");var router = require("./route");var requestHandlers = require("./requestHandlers"); var handle = {}handle["/"] = requestHandlers.start;handle["/start"] = requestHandlers.start;handle["/up.. 2015. 12. 11.
exec event loop 싱글스레드 기반으로 구동하는 node.js는 blocking문제가 있다. 즉, 하나의 작업이 오래 걸릴 경우 다른 작업이 수행되지 못하는 것이다. 이것을 해결하기 위해 node.js는 이벤트 루프 기반으로 구동된다. callback이다. 이전에 보았던 예제의 구조를 보면, index에서 requestHandlers의 메소드를 세팅하고, server에서 router를 call한 뒤 결과값을 server에서 뿌린다. 문제가 없어보이지만, 이렇게 직관적으로 접근을 할 경우 blocking이 발생한다. 이를 해결하기 위해 코드를 수정한다. server.js123456789101112131415161718192021var http = require("http");var url = require("url");// .. 2015. 12. 7.
라우팅(routing) http 요청이 다른 코드를 가리키는 것을 라우팅이라 한다. 그것을 위해서는 먼저 http요청의 url과 get/post 부분을 뽑아내야 한다. 이것을 위해 node에서는 url 모듈을 지원한다. 또한 querystring은 query string을 request 파라미터로 파싱하는데 사용한다. 이런 요청이 있다고 하자. http://localhost:8888/start?foo=bar&hello=world그리고 요청이 들어왔을 때 콘솔에 출력할 코드를 작성한다.server.js123456789101112131415161718192021222324252627282930313233343536var http = require("http");var url = require("url");var querystrin.. 2015. 12. 4.
모듈화 exports 명령어를 이용해서 모듈화 할 수 있다. server.js123456789101112131415 var http = require("http"); function start(){ http.createServer(function(request, response){ console.log("Request received."); response.writeHead(200, {"Content-Type": "text/plain"}); response.write("Hello World"); response.end(); }).listen(8888); console.log("Server has started"); } exports.start = start;Colored by Color Scriptercs se.. 2015. 12. 3.