faster-titanium의 사용법과 그 뒷면

4134 단어 Titanium
Titanium의 어드벤트 캘린더 2016의 둘째 날.
오늘은 내가 1년 정도 전에 만들어, 계속 사용하고 있는 Titanium 개발을 폭속으로 하는 툴을
소개하겠습니다.

요약



faster-titanium 은 Titanium 앱을 다시 빌드하지 않고 즉시 JavaScript를 교체할 수 있는 도구로, 설치도 명령 일발. 이것으로 자신과 그 주위의 개발 생산성은 상당히 올랐다.
내부 기술은 여러가지 어렵지만, 모두 사용해, 에러를 내고, 좋은 것으로 해 가자.
지금은 iOS이지만 기술적으로 안드로이드는 가능하고, 실제로 수중에서는 안드로이드로 잘 할 수 있는 느낌이다. 누군가 거기까지 할 수 있도록 도와주세요 ...

배경



Titanium은 원리적으로 JavaScript 부분만 바꾸면 긴 빌드는 필요하지 않을 것이다.
예를 들어 유사한 기술의 React Native에서는 Cmd + R만으로 JavaScript가 다시로드됩니다! !
이것으로는, 실적이 있는 Titanium도, 눌려 무제한인 것이다.

그래서 faster-titanium 이다.
비슷한 기술로 LiveView와 TiShadow가 있지만,
안정된 연결과 native module 대응 등이 팔린다.

특징


  • 안정적인 연결
  • native module 대응
  • 실제 기계 대응
  • 현재 iOS 제한

  • 사용법



    Requirements



    먼저 다음이 설치되어 있어야합니다.
  • titanium
  • alloy

  • 그리고는 ↑의 커멘드에 패스가 통과하고 있을 필요가 있다.

    설치


    npm install -g faster-titanium
    

    끝.

    사용법


    ti build -p ios --faster
    
    --faster 를 붙이는 것만.

    이렇게하면 명령 줄에
    
                  ______                      __
                 /_____/          _____   ___/ /_
      ______    /_____  _____    / ___ \ /__  __/ ___     /\___    _____\
     ______    /_____/  \__  \   \ \_ \/   / /   / __ \  / ___/   ______ \
    ______    / /        / __ \   _\  \   / /   | _ _/  / /      _________\
             /_/        (______/ /____/   \_\    \___\ /_/
    
    
    

    라고 표시되어 유효하다는 것을 알려준다.

    그리고,
    따라서 파일을 수정할 때마다 변경 사항이 즉시 반영됩니다. 웹 인터페이스 내부적으로 서버를 세우고 있지만, http://localhost:4157 에 액세스하면 여러 가지 설정을 할 수 있다. 로딩 스타일 특히 중요한 설정 항목은 loading style 이다. 여기는 auto-reload auto-reflect manual 의 3 종류가 있다. auto-reload는, 파일 보존을 감시해 reload 하기 때문에, 지칠 수도 있다고 생각한다. 그럴 때는 manual로 하면 된다. 그 경우, 이 웹 인터페이스의 「Reload App」버튼을 누르면 리로드 되게 된다. 문제해결 점차 무거워진다 simulator의 디버거에서 확인한 결과, 리로드 할 때마다 점차 메모리 쓰레기가 쌓이는 것 같습니다. 소위 메모리 누수. 개발용이므로, 너무 신경쓰지 않고 사용해도 좋습니다만, 30회도 reload하면 과연 무거워져 버리므로, 적당히, 앱을 떨어뜨려, 재기동이다. 그냥 제대로 서버에 다시 연결하여 평소대로 사용할 수있게된다. 기타 솔직히 Titanium의 에러는 여러가지 강한 경험이 무엇을 말하는 곳이 있다. 그래서 일본인이라면 트위터라든지 @ 시노우 t 에 연락하는 것이 가장.
    물론 야기씨 등의 츠와모노는 스스로 소스 읽어 해결하는 편이 빠른 일도. .
    English speakers are also welcome라든지 써 보지만
    애초에 그들은 여기를 읽지 않았고, 그들은 이미 github issues쪽으로,
    「빨리 안드로이드 대응해줘~」라고 말하고 있다. 자주 기다리겠다고 말했겠지만.

    내부 구현



    지금부터는 매우 매니악한 내용. 그러므로
    기술적인 Q and A라고 하는 형태로 해 보았다.

    어떻게 ti 명령에 자체 명령 옵션을 넣었습니까?



    A: hook.
    실은, titanium에는 hook라고 하는 구조가 있는 것이다.~/.titanium/config.json라는 파일이 있고 여기에 후크를 등록하면,
    ti 명령을 실행할 때 훅 스크립트도 실행됩니다!

    어떻게 앱 측에 변경 후 JavaScript를 전달합니까?



    A: HTTP.
  • 미리 HTTP 서버를 세운다
  • require를 덮어 쓰고 (후술 함) require ( '파일 이름')가 오면 파일 이름에 해당하는 HTTP 서버의 URL에 액세스하여 새로운 JS를 얻습니다.
  • 그 JS를 실행

  • 어떻게 서버에서 앱을 다시 시작합니까?



    A: TCP Socket 통신.

    HTTP 서버와는 별도로, TCP 서버를 세워, 앱과 상시 접속해 둔다.
    그리고 재부팅은 사실Ti.App._restart() 되는 메소드가 있으므로, 그것을 사용한다.

    결론



    faster-titanium으로 폭속 개발 미끄럼!

    내일은 ㅎㅎㅎ 씨, 부탁드립니다!

    좋은 웹페이지 즐겨찾기