2 post(s) tagged with "electron"

View All Tags

Electron 8.0 릴리즈

Jimmy Moon

Jimmy Moon

Chief Editor

Electron 8.0 이 릴리즈 되었다. 주요 엔진들의 업데이트와 함께 많은 개발자들이 지속적으로 요청 했고 기존에 프레임웍 레벨에서 개별적으로 구현해야 했던 크롬의 스펠체크 기능이 추가 되었다. 자세한 업데이트는 원문 블로그를 참고하자.

Upgrades

  • Chromium 이 80.0.3987.86 로 업그레이드, Optional chaining 을 포함한 최신 자바스크립트 사용 가능 하고 웹워커를 모듈로 로딩 할 수 있다
  • V8 이 7.8 로 업그레이드 되어서 스크립트 preloading, Faster object destructuring 등 퍼포먼스 향상을 기대 할 수 있다
  • Node.js 가 12.13.0 로 업그레이드

Changes

  • IPC 매커니즘이 Structured Clone Algorithm 을 사용.
  • 스펠체크 기능이 내장 되었다
function createWindow () {
const mainWindow = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
// 스펠체크 활성화
spellcheck: true,
preload: path.join(__dirname, 'preload.js')
}
})
// webContents.session 에 검사하고 싶은 언어 목록 셋팅
const ses = mainWindow.webContents.session;
ses.setSpellCheckerLanguages(['en-US']);
mainWindow.loadFile('index.html')
}

Electron 7.0 릴리즈

Jimmy Moon

Jimmy Moon

Chief Editor

Electron 7.0 이 릴리즈 되었다. 엔진들의 업데이트와 함께 빠른 IPC 를 위한 새로운 API 를 추가 하였고 OS 의 시스템 컬러 테마를 사용하여 타크, 라이트 모드 테마를 이용할 수 있게 되었다. 자세한 업데이트는 원문 블로그를 참고하자.

Upgrades

  • Chromium 이 78.0.2905.1 로 업그레이드 CSS Properties and Values API 와 서비스 워커 자동 업데이트를 사용할 수 있다
  • V8 이 7.8 로 업그레이드 되어 Script streaming 이나 WebAssembly 의 성능향상을 기대
  • Node.js 가 12.8.1 로 업그레이드 변경 사항은 Node.js 한국 커뮤니티 문서를 참고

Changes

  • Windows on Arm(64bit) 릴리즈가 추가
  • 새로운 비동기적으로 형태의 IPC API ipcRenderer.invoke 와 ipcMain.handle 추가, Renderer 의 영향이 없이 데이터를 비동기로 주고 받을 수 있다.
ipcRenderer.invoke('some-name', someArgument).then(result => {
// 비동기로 리턴 된 결과 값 받음
})
// Main process
ipcMain.handle('some-name', async (event, someArgument) => {
// 비동기로 작업 완료 후 리턴
const result = await doSomeWork(someArgument)
return result
})
  • nativeTheme 가 추가되어 OS 의 다크모드등을 셋팅하거나 현재 시스템의 테마 상태를 알 수 있다.
const { app, BrowserWindow, nativeTheme } = require('electron')
const path = require('path')
function createWindow() {
nativeTheme.themeSource = 'dark'
mainWindow = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
preload: path.join(__dirname, 'preload.js')
},
backgroundColor: nativeTheme.shouldUseDarkColors ? '#efefef' : '#000000'
})
mainWindow.loadFile('index.html')
mainWindow.on('closed', function() {
mainWindow = null
})
}
app.on('ready', createWindow)