当前位置: 首页 > 软件库 > 程序开发 > GUI开发框架 >

Atom Shell

开发桌面应用框架
授权协议 MIT
开发语言 C/C++
所属分类 程序开发、 GUI开发框架
软件类型 开源软件
地区 不详
投 递 者 郝冥夜
操作系统 跨平台
开源组织 GitHub
适用人群 未知
 软件概览

Atom Shell 现已改名为 Electron

atom-shell 是 GitHub 随 Atom 一起开源的跨操作系统(Windows,Linux,MacOS X)的利用 Web 技术(Node.js、JavaScript、HTML 5)开发桌面应用的框架。Atom即构建在 atom-shell 之上。

与 Node-Webkit 的区别

atom-shell 和Node-Webkit很像,那么两者有什么区别呢?

1. 程序入口

Node-Webkit 的程序入口是一个网页,你在package.json中指定主页,然后这个主页会在浏览器中打开,作为应用程序的主窗口。

atom-shell 的程序入口则是一个 JavaScript 脚本,而不是直接指定一个 URL。你需要手动创建浏览器窗口,并通过相应的 API 加载 html 文件。你同时需要监听窗口事件以便决定何时退出应用。

因此,atom-shell 更接近 Node.js 运行时,API 也更加底层,你可以利用 atom-shell 进行 web 测试,类似phantomjs

2. 编译系统

atom-shell 使用libchromiumcontent访问 Chromium 的 Content API,这样编译 atom-shell 的时候就不用编译整个 Chromium (编译 Chromium 非常费时)。

顺便提一下,GitHub 开发者还创建了brightray库,让 libchromiumcontent 的使用更方便。

3. Node 集成

Node-Webkit 的 Node 集成需要给 Chromium 打补丁才能工作。atom-shell 通过集成 libuv loop 和 平台的 message loop 避免给 Chromium 打补丁。

4. Multi-context

Node-Webkit 创造了 Node context 和 web context 的概念,而 atom-shell 没有引入新的 context,而是直接使用 Node 的 Multi-context 特性(这一特性是 Atom 开发者赞助 Node 添加的)。

作者

GitHub 最初考察了 Node-Webkit,但是最终还是决定雇佣@zcbenz来开发想要的框架。于是 atom-shell 诞生了。

一个最简单的 hello atom 示例项目请看 hello-atom

主程序示例:

var app = require('app');  // Module to control application life.
var BrowserWindow = require('browser-window');  // Module to create native browser window.

// Report crashes to our server.
require('crash-reporter').start();

// Keep a global reference of the window object, if you don't, the window will
// be closed automatically when the javascript object is GCed.
var mainWindow = null;

// Quit when all windows are closed.
app.on('window-all-closed', function() {
  if (process.platform != 'darwin')
    app.quit();
});

// This method will be called when atom-shell has done everything
// initialization and ready for creating browser windows.
app.on('ready', function() {
  // Create the browser window.
  mainWindow = new BrowserWindow({width: 800, height: 600});

  // and load the index.html of the app.
  mainWindow.loadUrl('file://' + __dirname + '/index.html');

  // Emitted when the window is closed.
  mainWindow.on('closed', function() {
    // Dereference the window object, usually you would store windows
    // in an array if your app supports multi windows, this is the time
    // when you should delete the corresponding element.
    mainWindow = null;
  });
});

支持很多桌面应用特性,例如 Dock 菜单等:

使用 Dock 菜单的方法:

var app = require('app');
var Menu = require('menu');
var dockMenu = Menu.buildFromTemplate([
  { label: 'New Window', click: function() { console.log('New Window'); } },
  { label: 'New Window with Settings', submenu: [
    { label: 'Basic' },
    { label: 'Pro'},
  ]},
  { label: 'New Command...'},
]);
app.dock.setMenu(dockMenu);

PS:网易也有开放了Hex,同样是不满意node-webkit,就自己做了套.

  • 上一篇:http://www.cnblogs.com/luobenCode/p/4504910.html 打包之前要准备一下 请看这篇http://www.cnblogs.com/seanlv/archive/2011/11/22/2258716.html 按照那位博主的办法安装好npm   第一步:安装asar npm install -g asar 第二步:打包 asar pack your-

  • atom-shell编译 环境准备 1、win7以上系统(32、64); 2、安装 Python 2.7 node.js git 注:以上安装版本均使用32位版本即可,python需要手动添加环境变量; 3、安装vs2010旗舰版,并打上2010sp1补丁; 环境和源码我都放在网盘(不知道怎么回事不能外链地址大家把地址中的空格去掉就可以访问): htt p://pan.baidu.com/s/1i

  • 转载自: https://github.com/atom/electron/blob/master/docs/development/atom-shell-vs-node-webkit.md Technical Differences Between Electron and NW.js (formerly node-webkit) Note: Electron was previously na

  • 前几天突然想起来弄 node-webkit 做点本地软件. 然后在微博上看见 八哥(@TooBug) 说Atom-shell 也不错,就打算研究一下. 结果第一天就笨死在了上面. 首先要解释一下 Atom-shell,并不是Atom编辑器, 他是一个单独的框架,Atom编辑器是基于Atom-shell 开发的,而我之前下载过Atom编辑器,所以就按照官方的例子上不停的使用: $ ./Atom.ap

 相关资料
  • 问题内容: 我的公司正在改造IT基础架构和系统,因此我们正在最终确定用于开发新系统的技术。 我们有两名候选人;Java和Python。 选择的主要标准是语言必须完整。从某种意义上说,它必须能够用于Web和桌面应用程序开发。Java被证明是这一领域,具有许多优秀的Web框架(JSF,Hibernate等)和相对优秀的GUI库(SWT,Swing)。 但是,从我个人的经验来看,Python看起来更美味

  • 本文向大家介绍node.js 和HTML5开发本地桌面应用程序,包括了node.js 和HTML5开发本地桌面应用程序的使用技巧和注意事项,需要的朋友参考一下 HTML5让Web开发人员用纯HTML技术开发富客户端互联网应用或者甚至本地桌面应用成为了可能。HTML5可以将任何普通网站转变成Web应用。HTML5 web 应用不仅具有在桌面浏览器应用中的优势,同时在智能手机和平板中也是开发利器。 在

  • 问题内容: 首先,我对专业从事这项工作不感兴趣。我是一名Web开发人员,我的一个同事最近离开了Spotify,他说他将主要在JavaScript中使用SpotifyDesktop应用程序。他说,它使用“ Chrome框架”,并且内部的所有内容都像网络应用程序(HTML / JS / CSS)一样完成。 作为一个从未为Desktop构建任何东西的Web开发人员,这是个好消息。如果我可以使用我已经知道

  • GUI 应用的字母列表。 Camelot Camelot 受 Django 管理界面的启发,在 Python 、 SQLAlchemy 和 Qt 的基础上提供了各种组件来构建应用。 可用的参考资源主要是其网站 : http://www.python-camelot.com 和邮件列表 https://groups.google.com/forum/ Cocoa NoteCocoa 框架仅用于 OS

  • CloudwareHub 云件平台,运行在云端,使用浏览器作为输入输出终端,所有软件无需在本地安装,只需几秒钟,即可开启Cloudware之旅。CloudwareHub 的后台由 DaoCloud 驱动。

  • 桌面应用 Clojure 可以创建基于Swing的GUI程序。下面是一个简单的例子, 用户可以输入他们的名字,然后点击“Greet:按钮,然后它会弹出一个对话框显示一个欢迎信息。可以关注一下这里我们使用了 proxy 宏来创建一个集成某个指定类 ( JFrame )并且实现了一些java接口 (这里只有 ActionListener 一个接口)的对象。. (ns com.ociweb.swing

  • 我必须找到新的Java桌面应用程序的技术。我不想使用swing,但我找不到好的和透视图的替代方案。我了解JavaFX,但我有很强的要求:它必须看起来很好,而不是在linux、windows和Macox上。JavaFX在每个平台上都能正常工作吗?我在使用JavaFX时会发现哪些大麻烦?

  • 问题内容: 除了Shoes之外,还有什么其他方法可以开发和分发用Ruby编写的跨平台GUI桌面应用程序? 我开始相信_why应用程序的一般错误在使用“鞋”的情况下会严重恶化,并且比两键形式复杂的任何事情都很难维护。 RubyGTK,wxRuby等似乎很有前途,但是它们并不能解决不需要以预先在用户计算机上预装Ruby的方式分发应用程序的问题- 像ruby2exe这样的库似乎非常荒谬。日期和不完整。