두번째 타이타늄 티타임 모임 후기

오늘도 어김없이 2주에 한번씩 열리는 티타임 모임에서 오갔던 이야기들을 정리해보려한다.
적어놓지를 않아서 기억나는대로 정리해본다.

1. Mylyn과 Bitbucket 이슈트랙커

연동이 계속 안되서 커넥터를 살펴봤는데, 종은님이 작성하신 포스트에 커넥터 링크가 잘못되어 있었다. 그래서 제대로된 커넥터를 설치하고 연동했더니 매우 잘 된다. Gooooo:D 종은님 땡큐~

2. Alloy 최신(unstable)버전 설치

타이타늄에 새롭게 추가된 ListView의 예제를 부일님이 돌리고 싶어하셔서, 확인해보니 Alloy 1.2.0+ 이상에서만 예제가 동작한다고 해서 Alloy 1.2.0 버전 설치에 대한 이야기를 했다. Alloy 설치 방법은 npm으로 설치하는 방법과 Git레파지토리에서 소스를 직접 받아서 설치하는 방법이 있다. npm 버전은 안정버전인 1.1.x 버전이므로 당연히 레파지토리에 있는 최신 소스를 다운로드 받아서 설치해야1.2.0 버전이 깔린다. 설치방법은 여기를 참고..

git clone https://github.com/appcelerator/alloy.git
cd alloy
[sudo] npm install -g .

3. 타이타늄 가이드 번역

부일님이 다시 타이타늄 가이드 번역을 시작하셨다. 번역하시는 페이지는 아마도 ListView 쪽인듯.. 맞나? 나도 틈틈히 다시 번역을 해야겠다. 번역하실 분들은 여기를 참고~!!

4. 이것은 백본 버그인가본가?

동구밭 앱에서 발생하는 문제였는데,.. 상황은 이렇다. 테이블 뷰에 Row컨트롤을 만들고 Row안에 그려지는 View에 Model이 변경되면 동작하도록 change 이벤트를 바인딩했다. 당연히 모델이 변경되면 View에 바인딩된 핸들러가 실행되어야하는데,.. 테이블이 reset되어 다시 뷰를 그리면 모델 change 이벤트를 받지 못한다. 여러가지 가정을 해보며 종은님과 내가 테스트를 해봤지만,.. 결론은 백본(현재 Alloy의 백본 버전은 0.9.2버전이다.)버그가 아닌가? 를 매우 강력하게 의심하고 있다. 나중에 Alloy 업그레이드 되면서 백본 버전도 바뀌면 해결이 되려나?
아무튼, 결론… 테이블의 Row들이 reset 되어 모델 이벤트를 받지 못하는 상황인 경우엔,.. Row에 모델 이벤트를 바인딩하지 않고, 테이블에 콜렉션 change 이벤트를 바인딩한다. 그리고 콜렉션의 모델 id를 찾아서 해당 Row 컨트롤러의 메소드를 실행하는 방법으로 해결~.. 이글 읽는 사람은 이게 뭔소린지 이해가 되려나? -_-;;

5. 모델.destroy()와 콜렉션.remove()

앞의 백본 문제와 더불어 나를 힘들게 했던 문제는 콜렉션에서 모델을 지울때, 가령 10개의 모델중에 5개의 모델을 한꺼번에 지워야하는 상황이 있다. 이때 모델이 삭제되면 destroy 이벤트를 받아서 테이블을 다시 그리려고 했는데.. 모델이 5개가 지워지면 destroy 이벤트도 5번 발생하게 되고, 고로 테이블도 5번 다시 그려야되는 비효율적인 문제가 발생. 그래서 한꺼번에 5번 발생하는 이벤트를 맨마지막에 한번만 발생하게 하고 싶었다. 그래서 silent:true 옵션을 destroy 할때 넣었는데,.. 도무지 싸일렌트가 먹질 않는다…
그런데!!!! 백본 도큐먼트를 유심히 살펴보니,.. 모델.destroy에는 silent 옵션이 없다는 사실!! 뚜둥~ 대신 이 옵션은 콜렉션 remove에 있었다. 그래서 나의 해결책은,.. destroy 이벤트를 받지 않고, 그냥 콜렉션에서 모델을 지운뒤에 새롭게 콜렉션을 fetch 해버렸다.

6. 이것이 열정이다.

티타임 모임에 새얼굴이 왔다. 현재 2명의 구성원으로 사이트를 구축하신 분인데, 한분은 디자이너이므로 혼자서 개발하셨단다. 전공도 경영학인데 프로그래밍이라니.. 덜덜덜~~ 아무튼 그동안 모바일웹으로 사이트를 구축했다가 성능 문제로 인해 네이티브로 갈아타기로 결정한 것!,.. 하지만 네이티브 경험이 전무한 관계로 타이타늄을 선택하고 모임에 나오셨다.
마치 영석님이 센차터치 성능에 실망하고 타이타늄을 갈아타셨다는 얘기와 오버랩이 되면서.. 앞으로도 모바일 웹으로 가닥을 잡았다가 성능에 데이신 분들이 타이타늄을 많이 찾지 않을까 생각해본다. 뒤늦게 오시는 그 분들을 위해서라도 우리 타이타늄 커뮤니티가 더 활성화 되어야한다.
이상 끝~ 또 뭐 있었떠라….??? 아무튼 열정적인 사람들을 보게 되면 나도 덩달아 동기부여가 되는 것 같다.

PS…
HTML5 웹앱으로 유명세를 탔던 Linkedin 앱도 결국 네이티브로 가기로 결정.. Fackbook이어 Linkedin도 결국 GG인가?
http://venturebeat.com/2013/04/17/linkedin-mobile-web-breakup/

요약,
왜 바꿨냐?
1. 성능이 결정적인 이유는 아니지만 여전히 큰 이슈다. 새버전에서는 더 많은 애니메이션을 넣었다.
2. HTML5 앱은 레퍼런스가 너무 적다. 네이티브는 강력한 도구와 레퍼런스가 널려있어서 우리 개발자들이 덜 고생한다.
3. 사용자들의 인입 경로를 보면 브라우저보다는 앱이 월등히 많다.(웹은 8~10% 나머지는 앱이다.) 우리도 이런 상황을 예상치 못했다. 그래서 둘다 지원하려고 모바일웹을 만들고 이것을 기반으로 웹앱을 만들었지만, 이제는 보다 앱에 집중하려고 한다. 주 사용자가 앱으로 접근하니 보다 네이티브에 집중하는 것은 당연한게 아닐까?

불꽃남자

UI 개발자

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.