라이브 커널
Lively KernelCromium 5에서 동작하는 Lively Kernel 0.9의 예 | |
개발자 | Sun Microsystems 연구소, Hasso Plattner 연구소 |
---|---|
안정된 릴리스 | 2.1.3 / 2012년 4월 7일, 전( |
기입처 | JavaScript, Qt 베리에이션에 C++ 추가 |
운영 체제 | 크로스 플랫폼 |
플랫폼 | Apple Safari, Mozilla Firefox, Google Chrome, Opera, iPhone/iPad, Microsoft Internet Explorer 사전 버전 9(확장 기능만 포함)를 사용할 수 있지만 추가 웹 브라우저 플러그인이 필요한 시험 포트를 사용할 수 있습니다. |
이용가능기간: | 영어 |
유형 | 웹 개발 |
면허증. | MIT |
웹 사이트 | lively-kernel |
Lively Kernel은 오픈 소스 웹 프로그래밍 환경입니다.풍부한 그래픽스 기능과 직접 조작 기능을 갖춘 데스크톱 스타일의 애플리케이션을 지원하지만 기존 데스크톱 애플리케이션의 [1][2]설치나 업그레이드에 문제가 없습니다.개발은 캘리포니아 멘로 파크의 Sun Microsystems Laboratory에서 시작되었고, 이후 베를린 근처의 Potsdam-Babelsberg에 있는 Hasso Plattner Institute로 옮겨졌다.
개요
Lively Kernel은 표준 브라우저 그래픽(W3C Canvas 또는 SVG)을 사용하여 프로그래밍 언어 JavaScript로 작성된 그래픽 구성 및 통합 프로그래밍 환경입니다.따라서 웹 페이지로서 모든 브라우저에 액세스할 수 있으며 웹 페이지가 로드되는 즉시 동작을 시작합니다.자체 코드와 그래픽을 편집할 수 있으며 내장된 WebDAV 지원을 통해 결과를 저장하거나 새 웹 페이지에 복제할 수도 있습니다.애플리케이션 개발 능력과 더불어 자체 통합 개발 환경(IDE)의 기능도 갖추고 있어 브라우저 이외의 툴이 없어도 시스템 전체가 자급자족할 수 있습니다.
웹 페이지의 모양, 위젯, 창, IDE 모두
Lively Kernel은 Morphic 그래픽 모델을 사용하여 브라우저 그래픽으로 작성된 장면 그래프에 동작을 추가합니다.따라서 슬라이더, 스크롤바, 텍스트 뷰, 리스트, 클리핑 프레임 등의 표준 위젯에 심플한 그래픽을 조합할 수 있습니다.이러한 위젯으로 구축된 간단한 창 시스템은 객체 검사기, 파일 브라우저 및 코드 브라우저를 제공합니다.따라서 기본적인 데모 페이지도 시스템 실행 중에 간단한 코드브라우저로 새로운 코드를 편집하고 테스트할 수 있습니다.
Lively는 자체 튜토리얼을 포함한 간단한 웹 사이트 구축과 버전화된 저장소에 페이지를 저장하는 클라이언트 측 Wiki 시스템 구축에 사용되어 왔습니다.내용은 비교적 정적인 텍스트 페이지부터 Adobe Flash 시뮬레이션과 같은 모양과 동작을 하는 완전히 동적인 모델까지 다양합니다.Lively Kernel은 특정 애니메이션 지원 없이 복잡한 동적 동작을 실현합니다(SVG의 애니메이션 기능을 사용하지 않음).단, JavaScript에서 여러 그린 스레드 프로세스를 단순 스케줄링합니다.
텍스트 및 변환
Lively Kernel에는 JavaScript로 작성된 자체 멀티폰트 텍스트 편집기가 포함되어 있습니다.센터링, 맞춤 및 이와 유사한 기본적인 텍스트 구성 능력을 지원합니다.따라서 Lively에서 작업하는 것은 웹 페이지 디자인 프로그램에서 작업하는 것과 거의 같은 느낌이지만, 온 더 플라이 텍스트 레이아웃은 오프라인 구성 프로그램에서 수행되지 않지만 Lively 커널에 내장된 텍스트의 동적 동작입니다.
개체 및 텍스트의 축척 및 회전 핸들을 조작하면 생생한 그래픽이 더욱 선명해집니다.코드 브라우저 전체를 옆으로 20도 기울이면 사용할 수 있습니다.텍스트 편집기는 완전히 생생한 그래픽으로 구성되어 있기 때문에 스크롤바, 클리핑 프레임 및 기타 전체 사용자 인터페이스와 마찬가지로 회전 또는 축척 시 완벽하게 작동합니다.
크로스 브라우저 호환성
Lively Kernel은 브라우저의 JavaScript 및 SVG 또는 Canvas 그래픽 지원에 의존하며, 이는 모두 W3C 표준의 일부입니다.이는 2009년 현재 Safari, Firefox, Chrome 및 Opera 브라우저에서 실행된다는 것을 의미합니다.
이 요건은 HTML보다 호환성이 떨어지는 것 같지만 Lively는 실제로 HTML보다 동작하는 브라우저 간에 호환성이 더 높습니다.이것은 자바스크립트, SVG 및 캔버스 구현 간의 호환성이 HTML 구현 간의 호환성보다 더 높기 때문입니다.Lively Kernel 코드 베이스는 1개의 작은 초기 파일을 제외하고 어떤 클라이언트브라우저가 사용되는지 테스트 할 필요가 없습니다.
2011년 현재 Lively Kernel은 Macintosh용 Safari 또는 Windows용 Chrome 또는 Google Chrome과 같은 WebKit 기반 브라우저에서 가장 잘 작동합니다.Internet Explorer(Windows)에서 실행하려면 Google Chrome 프레임이 필요합니다.모든 인기 브라우저에서의 테스트는 다음 릴리스로 예정되어 있습니다.
통합 개발 환경
Lively에는 WebDAV를 통해 버전화된 저장소와 동기화할 수 있는 12개 정도의 소스 JavaScript 파일 세트를 사용하여 작동하도록 설계된 강력한 통합 개발 환경이 포함되어 있습니다.사용자가 SystemBrowser를 열면 모든 JavaScript 소스 파일이 브라우저의 파일 창에 나열됩니다.사용자가 이러한 파일 중 하나를 클릭하면 (OMeta JavaScript 파서에 의해) 읽혀지고 해석되며 함수 또는 클래스 정의가 나열된 Smalltalk 브라우저와 유사하게 표시되며 각 클래스에 대해 모든 메서드 이름이 표시됩니다.사용자는 메서드 이름을 누르고 아래쪽 창에서 해당 코드를 편집한 다음 새 정의를 저장할 수 있습니다.새 정의에 구문이 체크되고 올바른 경우 다시 저장됩니다.JS 파일게다가 「평가 모드」(통상의 경우)의 경우는, 실행중의 시스템에서 메서드가 재정의됩니다.이를 통해 Lively 또는 개발 중인 애플리케이션을 재시작할 필요 없이 중요하지 않은 변경을 수행할 수 있습니다.모든 소스 파일이 로드되면 빠른 스캔이 선택한 텍스트에 대한 모든 참조를 찾아 별도의 하위 브라우저에 일치하는 모든 코드 본문을 표시합니다.
Lively IDE에는 채우기, 테두리 및 텍스트 스타일을 제어하는 객체 검사기와 모프 스타일 패널이 포함되어 있습니다.에러 포인트에서의 디버깅이나 퍼포먼스 튜닝을 위한 프로파일링도 있습니다만, 이러한 기능은 모든 주요 브라우저에서 이러한 런타임 지원의 품질이 향상되었기 때문에 푸시되지 않았습니다.
생생한 Wiki
IDE는 Lively 코드 베이스의 진화를 관리하기 위해 버전화된 저장소에 있는 소스 코드 파일에 대해 작동합니다.클라이언트측 Wiki의 형태로 액티브한 Web 컨텐츠를 제어할 수 있도록 하기 위해서도, 같은 어프로치가 사용되고 있습니다.Lively에는 컨텐츠(씬 그래프 및 기타 컨텐츠)를 편집하고 해당 컨텐츠를 웹 페이지로 저장하는 기능이 포함되어 있기 때문에, Lively는 WebDAV 연결을 통해 페이지 컨텐츠의 새로운 버전을 증분 개발 중에 저장할 수 있습니다.각 새로운 버전이 저장되면 나머지 인터넷에서 볼 수 있으며 오류나 변심 시 이전 버전을 검색할 수 있습니다.이러한 Wiki 스타일의 진화된 웹 콘텐츠는 Lively의 모든 텍스트, 그래픽 및 스크립팅 콘텐츠뿐만 아니라 정의될 수 있는 모든 새로운 형식으로 확장되지만 [3]Wiki 서버는 필요 없습니다.HTTP WebDAV 인터페이스를 제공하는 서버만 있으면 됩니다.Lively Project 콘텐츠의 양이 점점 더 많아지고 있습니다.
QT를 위한 생생함
Lively for Qt는 Lively Kernel의 새로운 구현으로 "커널" 부분이 Qt [4]프레임워크에서 제공하는 기능으로 대체됩니다.Lively for Qt는 Qt의 기본 기능(위젯 구현, 레이아웃 관리, 핵심 이벤트 처리 및 핵심 JavaScript 지원 등) 대부분을 상속합니다.Lively for Qt는 Lively 커널의 탁월한 인터랙티브성(생동감)을 유지합니다.예를 들어 사용자 인터페이스와 애플리케이션 소스 코드를 즉시 편집할 수 있습니다.단, Lively for Qt에서는 Qt 플랫폼의 익숙한 문서화된 API를 사용하여 개발 작업을 수행합니다.
코드 예시
// Clock Morph : 심플한 아날로그 클럭 모프.서브클래스(“클럭모프”, { default Border Width(기본 경계 폭): 2, 유형: '클럭모프", // 컨스트럭터 초기화하다: 기능.($super, 위치, 반지름) { $super(위치.직각().전개 기준(반지름), "타원"); 이것..open For Drag And Drop = 거짓의; // 드래그 앤 드롭 요청 처리 안 함 이것..새로운 얼굴 만들기(); // 클럭 페이스 구성 돌아가다 이것.; }, // 새 시계면 구성 새로운 얼굴 만들기: 기능.() { 변화하다 하지 않다 = 이것..모양..한계(); 변화하다 반지름 = 하지 않다.폭/3; 변화하다 라벨 = []; 변화하다 폰트 사이즈 = 수학.맥스.(수학.바닥.(0.04 * (하지 않다.폭 + 하지 않다.높이)),4); 변화하다 라벨 사이즈 = 폰트 사이즈; // 디폴트 삽입으로 룸 투 센터 // 시계에 로마 숫자 추가 위해서 (변화하다 i = 0; i < > 12; i++) { 변화하다 라벨 위치 = 하지 않다.중심().addPt(포인트.북극의(반지름*0.85, ((i-3)/12)*수학.PI*2)).애드XY(라벨 사이즈, 0); 변화하다 라벨. = 신규 텍스트 형태(pt(0,0).정도(pt(라벨 사이즈*3,라벨 사이즈)), ['XII','나','II','III','IV','V','VI','VII','VII','IX','X','XI'][i]); 라벨..setWrapStyle(랩 스타일.축소.); 라벨..set Font Size(세트 폰트 사이즈)(폰트 사이즈); 라벨..setInset(pt(0,0)); 라벨..set Border Width(보더 폭)(0); 라벨..세트필(무효); 라벨..정렬하다(라벨..한계().중심(),라벨 위치.애드XY(-2,1)); 이것..addMorp(라벨.); } // 시계 바늘 추가 이것..addMorp(이것..시침 = 모프.제조 라인([pt(0,0),pt(0,-반지름*0.5)],4,색..파랑색)); 이것..addMorp(이것..분손 = 모프.제조 라인([pt(0,0),pt(0,-반지름*0.7)],3,색..파랑색)); 이것..addMorp(이것..중고의 = 모프.제조 라인([pt(0,0),pt(0,-반지름*0.75)],2,색..빨간.)); 이것..세트핸즈(); 이것..변경되었다.(); }, // 현재 시간을 기준으로 시계 바늘 각도 설정 세트핸즈: 기능.() { 변화하다 지금이다 = 신규 날짜.(); 변화하다 둘째 = 지금이다.get Seconds(); 변화하다 극히 작은 = 지금이다.분수를 취득하다() + 둘째/60; 변화하다 한 시간 = 지금이다.취득 시간() + 극히 작은/60; 이것..시침.세트 회전(한 시간/12*2*수학.PI); 이것..분손.세트 회전(극히 작은/60*2*수학.PI); 이것..중고의.세트 회전(둘째/60*2*수학.PI); }, // ClockMorph가 월드에 배치되면 호출됩니다. startStepingScripts: 기능.() { 이것..시작 스텝(1000, "손잡이"); // 초당 1회 } });
레퍼런스
- ^ 웹 페이지의 생생한 커널 A 셀프 지원 시스템
- ^ 생생한 커널 애플리케이션 프레임워크
- ^ 활발한 Wiki 액티브 웹 콘텐츠 작성 및 공유를 위한 개발 환경, Krahn Ingalls Hirschfeld Linkke Palacz, WikiSym '09, 2009년 10월 25일~27일
- ^ Lively for Qt: 모바일 웹 애플리케이션 플랫폼, Mikkonen Taivesaari Terho, 2009년 9월 2-4일