Skip to main content

42 posts tagged with "Release"

Blog posts about new Electron releases

View All Tags

Electron 1.0에서 예정된 API 변경 사항

· 6 min read

Electron의 시작은 Atom-Shell이라는 이름으로 거슬러 올라간다. 그때부터 우리는 Chromium의 컨텐츠 모듈과 네이티브 GUI 컴포넌트를 위한 크로스 플랫폼 JavaScript API를 제공하기 위해 다양한 실험을 해왔다. 초기 API는 매우 자연스럽게 발전했으며, 시간이 지나면서 초기 설계를 개선하기 위해 여러 변경을 가했다.


이제 Electron이 1.0 릴리즈를 준비하면서, 마지막으로 남은 API 세부 사항을 정리할 기회를 잡고자 한다. 아래 설명된 변경 사항은 0.35.x 버전에 포함되며, 기존 API는 폐기 예정 경고를 표시한다. 이를 통해 다가오는 1.0 릴리즈를 대비할 수 있다. Electron 1.0은 몇 달 후에 출시될 예정이므로, 이 변경 사항이 주요 변경으로 적용되기 전까지 여유 시간이 있다.

사용 중단 경고

기본적으로, 사용 중단된 API를 사용할 경우 경고 메시지가 표시된다. 이 경고를 끄려면 process.noDeprecationtrue로 설정하면 된다. 사용 중단된 API 사용의 출처를 추적하려면, process.throwDeprecationtrue로 설정해 경고 대신 예외를 발생시킬 수 있다. 또는 process.traceDeprecationtrue로 설정해 사용 중단된 API의 호출 스택을 출력할 수도 있다.

내장 모듈 사용의 새로운 방식

이제 내장 모듈은 독립적인 모듈로 분리되지 않고 하나의 모듈로 그룹화되어 있어 다른 모듈과의 충돌 없이 사용할 수 있다:

var app = require('electron').app;
var BrowserWindow = require('electron').BrowserWindow;

이전 방식인 require('app')은 하위 호환성을 위해 여전히 지원되지만, 이를 끌 수도 있다:

require('electron').hideInternalModules();
require('app'); // 에러 발생.

remote 모듈을 더 쉽게 사용하는 방법

내장 모듈 사용 방식이 변경되면서, 렌더러 프로세스에서 메인 프로세스 측 모듈을 더 쉽게 사용할 수 있게 되었다. 이제 remote의 속성에 직접 접근하여 사용할 수 있다:

// 새로운 방식
var app = require('electron').remote.app;
var BrowserWindow = require('electron').remote.BrowserWindow;

기존의 긴 require 체인을 사용하는 대신:

// 기존 방식
var app = require('electron').remote.require('app');
var BrowserWindow = require('electron').remote.require('BrowserWindow');

ipc 모듈 분리

ipc 모듈은 메인 프로세스와 렌더러 프로세스 양쪽에 존재했지만, 각각의 API가 달라서 초보 사용자에게 혼란을 주었다. 혼동을 피하기 위해 메인 프로세스의 모듈은 ipcMain으로, 렌더러 프로세스의 모듈은 ipcRenderer로 이름을 바꿨다:

// 메인 프로세스에서
var ipcMain = require('electron').ipcMain;
// 렌더러 프로세스에서
var ipcRenderer = require('electron').ipcRenderer;

또한 ipcRenderer 모듈에서는 메시지를 받을 때 ipcMain 모듈과 동일한 방식으로 처리할 수 있도록 event 객체를 추가했다:

ipcRenderer.on('message', function (event) {
console.log(event);
});

BrowserWindow 옵션 표준화

기존 BrowserWindow 옵션은 다른 API의 옵션과 스타일이 달랐으며, 이름에 -가 포함되어 있어 JavaScript에서 사용하기 다소 불편했다. 이제는 전통적인 JavaScript 네이밍 컨벤션에 맞춰 표준화되었다:

new BrowserWindow({ minWidth: 800, minHeight: 600 });

DOM 규칙에 맞춘 API 이름 변경

Electron의 API 이름은 원래 모든 API에 카멜 케이스(camelCase)를 사용했다. 예를 들어 UrlURL로 표기하는 방식이다. 하지만 DOM은 자체적인 규칙을 가지고 있으며, URLUrl보다 선호하고 ID 대신 Id를 사용한다. 이러한 DOM 스타일에 맞추기 위해 다음과 같은 API 이름 변경 작업을 진행했다:

  • UrlURL로 변경
  • CspCSP로 변경

Electron v0.35.0을 사용할 때 이러한 변경 사항으로 인해 많은 부분에서 더 이상 사용되지 않는(deprecated) API를 발견할 수 있다. 이를 해결하는 간단한 방법은 모든 Url 인스턴스를 URL로 바꾸는 것이다.

Tray 이벤트 이름 변경

Tray의 이벤트 이름 스타일이 다른 모듈과 조금 달랐기 때문에, 일관성을 유지하기 위해 이름을 변경했다.

  • clickedclick으로 변경
  • double-clickeddouble-click으로 변경
  • right-clickedright-click으로 변경

Electron의 새로운 기능

· 4 min read

최근 Electron에 관한 흥미로운 업데이트와 발표가 있었습니다. 여기 그 내용을 정리했습니다.

소스

Electron은 v0.32.0 버전부터 Chrome 45와 동기화되었다. 다른 업데이트 사항은 다음과 같다...

더 나은 문서화

새 문서

문서를 더 보기 좋고 읽기 쉽게 재구성하고 표준화했다. 또한 일본어와 한국어와 같은 커뮤니티 기여 번역도 포함되어 있다.

관련 풀 리퀘스트: electron/electron#2028, electron/electron#2533, electron/electron#2557, electron/electron#2709, electron/electron#2725, electron/electron#2698, electron/electron#2649.

Node.js 4.1.0

v0.33.0 버전부터 Electron은 Node.js 4.1.0을 포함하고 있다.

관련된 풀 리퀘스트:
electron/electron#2817.

node-pre-gyp

소스 코드로부터 빌드할 때 node-pre-gyp에 의존하는 모듈을 이제 Electron에 맞게 컴파일할 수 있다.

관련 풀 리퀘스트:
mapbox/node-pre-gyp#175.

ARM 지원

이제 Electron은 Linux에서 ARMv7 빌드를 제공한다. 이는 Chromebook과 Raspberry Pi 2와 같은 인기 있는 플랫폼에서 실행된다.

관련 이슈: atom/libchromiumcontent#138, electron/electron#2094, electron/electron#366.

Yosemite 스타일의 프레임리스 윈도우

frameless window

@jaanus가 제출한 패치가 병합되었다. 이 패치는 OS X Yosemite 이상 버전에서 시스템 트래픽 라이트가 통합된 프레임리스 윈도우를 생성할 수 있도록 해준다. 이 기능은 다른 기본 OS X 앱들과 유사한 방식으로 작동한다.

관련 풀 리퀘스트: electron/electron#2776.

Google Summer of Code 이후의 인쇄 기능 개선

Google Summer of Code 이후, @hokein이 제공한 패치를 병합하여 인쇄 기능을 개선하고, 페이지를 PDF 파일로 저장할 수 있는 기능을 추가했다.

관련 이슈: electron/electron#2677, electron/electron#1935, electron/electron#1532, electron/electron#805, electron/electron#1669, electron/electron#1835.

Atom

Atom은 이제 Chrome 44 기반의 Electron v0.30.6로 업그레이드되었다. 현재 atom/atom#8779에서 v0.33.0으로의 업그레이드 작업이 진행 중이다.

발표 자료

GitHubber Amy PalamountainNordic.js에서 열린 발표에서 Electron에 대한 훌륭한 소개를 했다. 그녀는 또한 electron-accelerator 라이브러리를 만들었다.

Amy Palomountain의 Electron을 활용한 네이티브 애플리케이션 개발

Atom 팀의 Ben OgleYAPC Asia에서 Electron에 대한 발표를 진행했다:

웹 기술로 데스크톱 앱 만들기 - Ben Ogle

Atom 팀 멤버인 Kevin Sawicki와 다른 개발자들이 최근 Bay Area Electron User Group 미트업에서 Electron에 대해 발표했다. 이 발표의 영상이 공개되었으며, 그중 몇 가지를 소개한다:

Kevin Sawicki가 말하는 Electron의 역사

Ben Gotow의 웹 앱을 네이티브처럼 느껴지게 만드는 방법