Titanium

  • Published on
    푸시 알람 적용할때, 인증서 문제 인증서 파기하고 다시 생성하면 잘된다. 시뮬레이터 로그파일 열어보기 보통은 스튜디오의 콘솔을 이용해 로그를 확인해보지만, 어떤 이유에서인지 어느날부터 콘솔창에 로그가 찍히지 않아서 불편함을 겪고 있었다. 이럴때는 그냥 시뮬레이터에서 찍는 로그파일을 직접 열어서 확인해보는 방법을 이용하자. 시뮬레이터의 아래 위치로 가서 로그 파일을 열어보자! /User/[사용자]/Library/Application Support/iPhone Simulator/[버전]/Applications/[앱해시폴더]/Documents/xxxxx.log 리스트뷰 아이템 삭제 공식 문서상에는 delete 이벤트가 없어서 삭제가 안되는 줄 알았는데 삭제 이벤트가 있더라. iOS 시뮬레이터에서는 스윕 삭제 제스처가 안되지만, 실제 디바이스에서는 잘 동작하더라. 그리고, LIST_ACCESSORY_TYPE_DETAL도 디바이스와 시뮬레이터의 모양이 달랐다! 데이터 베이스(SQLite)가
  • Published on
    오랜만에 티타임을 가졌다. 하루 밖에 안지났는데,.. 벌서 기억나지 않는 것들이 너무 많다.. -_-;;.. 일단 생각나는 대로 정리! Alloy 이슈들 Alloy 1.2 버전부터 ListView를 XML로도 정의할수 있게됐다. 물론 ListView는 아직 한창 개발중이기 때문에 drag 이벤트라든가 headerView나 Pulldown Refresh 기능들은 좀더 기다려야한다. 자세한 내용은 Alloy Jira 페이지를 확인해보자. ListView에 데이터 바인딩시 삽질하기 쉬운 착각들 1. 먼저 dataCollection은 ListView가 아닌 ListSection에 정의해야한다. 이 문제 때문에 삽질한 시간은 정말 눈물 겹다. TableView의 경우 dataCollection을 TableView에 정의 하지만 ListView 조금 다르다. 다음 예제를 보자. 아래와 같이 ListView에 dataCollection을 정의하면 Alloy 컴파일 오류를 발생시킨다. <ListV
  • Published on
    오늘 타이타늄 티타임 모임에서 나온 이야기들을 정리해본다. 1. 말풍선 같은 가변 이미지 최적화 하기 기본 UI가 아닌 디자인된 UI를 앱에 적용하려면 많은 이미지를 사용하게 된다. 따라서 앱사이즈에도 영향을 받게 되는데, 20MB를 넘게 되면 3G 환경에서 앱을 다운로드 할수 없기 때문에 이미지 최적화 문제는 매우 크리티컬한 문제가 될수있다. 이런 이미지 문제를 해결하기 위한 첫번째 방법중 하나가 바로 이미지를 재활용해서 가변 디자인에 활용하는 것이다. iOS의 경우, background*Cap을 활용하고, Android의 경우, 9 patch tool을 활용한다. 2. Alloy 모델에서 생성한 DB 파일의 위치 예전에 "동구밭에서 삽질한 이야기"라는 발표 슬라이드에도 공유를 했었는데, 타이타늄에 인스톨한 DB는 특정한 위치에 저장이 되고, 강제로 설치된 DB파일을 지우지 않는한 두번 인스톨되지 않는다. 따라서 DB 스키마가 변경이 되면 이전 DB를 날리던지, 아니면 DB를 마이
  • Published on
    아직 완성된 글이 아닙니다. ---- Alloy의 모델은 Backbone의 모델을 사용하므로, Backbone의 API와 Event를 그대로 사용할수있다. 일단 스튜디오에서 Alloy모델을 생성하게 되면 /model 폴더에 해당 파일이 생성되고 기본 구조는 다음과 같다. 1. 모델의 기본 구조 exports.definition = { config : { // table schema and adapter information }, extendModel: function(Model) { _.extend(Model.prototype, { // Extend, override or implement Backbone.Model }); return Model; }, extendCollection: function(Collection) { _.extend(Collection.prototype, { // Extend, override or implement Backbone.Collection });
  • Published on
    타이타늄 3.0이 정식 릴리즈를 했고, 그동안 베타버전을 쓰면서 나타났던 문제들을 정리해본다. 1. 이유없이 에뮬레이터가 죽는 경우 Alloy를 사용하다보면 빌드하자마자 "Application has exited from Simulator" 라는 메시지를 던지면서 죽는 경우를 꼭 한번씩은 겪게 된다. 대표적인 경우가 console.log를 이용해 Alloy 모델이나 콜랙션을 그대로 출력할때 발생한다. 또 다른 예로 Fugitives 소스코드에서 29번째 라인 부근을 보면 다음과 같은 코드가 있다. var model = atLargeCollection[i]; var row = Alloy.createController(&#039;FugitiveRow&#039;, model.toJSON()).getView(); row.model = model; rows.push(row); 위 코드에서 문제가 되는 코드는 바로 3번 라인에 있는 row.model = model 코드다. 즉, Alloy 모델