Titanium

  • Published on
    타이타늄 1.8 에서 종종 코드는 이상이 없는데, 빌드하고 나면 화면에 반영이 되지 않고 캐시되는 오류가 종종 있었다. 이런경우엔 보통 build 폴더를 날리고 재빌드하면 정상적으로 동작하는 경우가 있었는데, 2.0 이후 부터는 정상적으로 잘 동작하던 프로젝트를 clean만 해도 아래와 같은 빌드 오류를 내뱉는다. [INFO] Performing clean build [ERROR] [ERROR] Error: Traceback (most recent call last): File "/Library/Application Support/Titanium/mobilesdk/osx/2.0.2.GA/iphone/builder.py", line 1318, in main execute_xcode("iphonesimulator%s" % link_version,["GCC_PREPROCESSOR_DEFINITIONS=__LOG__ID__=%s DEPLOYTYPE=development TI_DEVELOPM
  • Published on
    타이타늄 모바일 앱의 기본 언어셋은 영어다. 이 말은 즉 특별한 한글 이름을 지정하지 않으면 영문으로 앱이름을 써야한다는 얘기도 되겠다. 그렇다면, 앱 이름은 어디서 설정하는 걸까? 먼저 tiapp.xml 파일을 뒤져보자. <?xml version="1.0" encoding="UTF-8"?> <ti:app xmlns:ti="http://ti.appcelerator.org"> <sdk-version>2.0.1.GA2</sdk-version> <id>com.miconblog.sampleapp</id> <name>SampleApp</name> <version>1.0</version> .... 이하 생략 대충 살펴보니 <name> 태그가 보인다 . 그리고 이 태그에 값을 설정하면 실제 빌드되어 만들어지는 앱의 이름으로 쓰인다는 사실도 쉽게 알수있다. 그럼 이 태그에 한글을 넣으면 될까? 아마 빌드해보면 아래와 같이 에러가 날것이다. UnicodeDecodeError: 'utf8' codec
  • Published on
    Blob 객체란? 타이타늄 모바일에서 Blob 객체는 내부 데이터를 바이너리로 가지고 있는 객체를 의미한다. The blob is an abstract data type that represents binary information, often obtained through HTTPClient or via files. It often is used to store text or the actual data of an image. 그리고 종종 이 객체를 그대로 데이터베이스에 저장하고 싶을때가 있다. 예를 들면 카메라로 찍은 이미지를 서버에 저장하지 않고, 그냥 앱안에 저장하고 싶은 경우가 있을수 있다. 이런경우엔, 보통 2가지를 생각해볼 수있다. SQLite 를 이용해 이미지를 앱 안에 저장한다. 찍은 이미지를 로컬 파일 시스템에 저장하고, Native Path를 DB에 저장한다. 여기서 다룰 내용은 바로 1번에 해당하는 내용이다. 그럼, 본론으로 들어가자! Blob 이미지와 SQLi
  • Published on
    웹브라우저에서 동작하는 자바스크립트는 싱글 스레드로 동작한다. 즉, 어떤 코드를 실행하던간에 순차적으로 실행되고, 이 순서에 따라 의존성도 생긴다. 하지만 타이타늄 모바일의 경우 두가지 방법으로 윈도우를 열수있다. 1. 싱글 스레드로 윈도우 열기 [app.js] var parentWin = Ti.UI.createWindow(); var button = Ti.UI.createButton(); button.addEventListener("click", function(e){ var childWin = Ti.UI.createWindow(); childWin.open(); }); parentWin.add(button); parentWin.open(); 위와 같이 같은 파일 안에서 윈도우를 정의할 경우 같은 스레드에서 윈도우가 열린다. 2. 멀티 스레드로 윈도우 열기 멀티 스레드로 윈도우를 열려면, 다음과 같이 윈도우 생성시 URL 속성을 지정한다. [app.js] var parentWin