由于本身不大喜欢喜欢用手机,因此当在手机上看到有些应用只能在手机上使用时以为好别扭,但我自己也不是写移动App的,只是会写点 js,都说js啥都能干,那我就用它干!javascript
"Keep 是一个热爱运动的年轻团队,同时也是一群追求极致体验的 Geek。咱们专一移动体育领域的应用开发,倡导开放共享的精神,不模仿,不跟风,只作酷的产品。
在咱们生活的这个年代里,健身运动文化正在觉醒,应该有更专业的工具,更纯粹的社区,让好身材来得更容易些。这就是 Keep 正在作的事情,咱们但愿经过科技驱动,让更多的人热爱健身,喜欢运动。"
以上内容节选自keep官网css
然而我只是一个喜欢运动的程序员,可是我比较懒~
因此身材嘛~就不告诉大家! 哈哈~~~html
悄悄的留下Github地址
// https://github.com/wodewone/keepForMac
喜欢的朋友请点个start~ 谢谢!java
技术栈 electron + webpack + babel + react + es6 + sass + cssModulesreact
The Electron framework lets you write cross-platform desktop applications using JavaScript, HTML and CSS. It is based on Node.js and Chromium and is used by the Atom editor and many other apps.
节选自electron 官网webpack使用 electron 建立的最典型的应用 Atomgit
更多应用请点击查看程序员
最新测试版本泄露因为目前功能尚未达到我理想中的可用版本,因此暂时为测试版,如发现有严重问题欢迎来 push issueses6
关于项目进度以及在开发中遇到的问题我会在个人博客内持续更新,也欢迎你们留言!~github
结构图
. ├── ./Doc-api-keep.md # 已知api接口 ├── ./app # webapck 编译打包压缩生成的文件 ├── ./build # electron-builder生成安装包配置目录 │ ├── ./build/background.png # (macOS DMG background) │ ├── ./build/icon.icns # (macOS app icon) │ └── ./build/icon.ico # (Windows app icon) ├── ./dev-server.js ├── ./json # 部分Api接口数据 ├── ./main.js # electron 初始化文件 ├── ./package.json ├── ./preview # 项目运行预览图 ├── ./src │ ├── ./src/assets # 静态资源文件 │ ├── ./src/components # 项目组件文件 │ ├── ./src/js # 主模块文件 │ ├── ./src/main.js # render 进程入口文件 │ └── ./src/sass # 样式文件 └── ./webpack.config.js # webpack 配置文件
提供两个在线将
png
转icns
的工具地址
easyicon
iconverticons
electron
分为两个进程去管理一个是主进程由Node
提供服务,负责和系统进行操做与GUI亲密接触,一个是渲染进程也就是咱们日常写的web页面。可是electron
提供了一系列接口可让你在两个进程间随时通讯(详细内容请渲染进程可用模块)
这里我只简单的介绍下,有兴趣的同窗能够参考下这两片文章,入门很不错!
[[译文] 经过 Electron 开发一个简单地桌面应用](https://gold.xitu.io/entry/56...
另外官网还有不少 优秀的App
这个是个人主进程代码
./main.js
const {app, BrowserWindow} = require('electron') const path = require('path') let keep const createWindow = () =>{ keep = new BrowserWindow({ 'width': 999, 'minWidth': 999, 'height': 666, 'minHeight': 666, //'resizable': false, 'title': 'Keep', 'center': true, 'titleBarStyle': 'hidden', 'zoomToPageWidth': true, 'frame': false, 'show': false }) keep.loadURL(`file://${__dirname}/app/index.html`) //keep.webContents.openDevTools() keep.webContents.on( 'did-finish-load', function () { keep.show(); }) keep.on('close', (e) => { keep = null }) }; app.on('ready', createWindow) app.on('window-all-closed', () => { if (process.platform !== 'darwin') { app.quit() } }) app.on('activate',() => { if (app == null) createWindow() app.show() })
渲染进程
./src/main.js 部分代码
ReactDOM.render( <Router history={hashHistory}> <Route path='/' onEnter={RequireAuth} component={App}> <IndexRoute component={AppTraining}></IndexRoute> <Route path='training' component={AppTraining}></Route> <Route path='plan/:plan_id' component={AppWorkout}> <Route path=':desc_id' component={WorkoutDescription}></Route> </Route> <Route path='explore' component={AppExplore}></Route> <Route path='record' component={AppRecord}></Route> <Route path='user-center' component={AppUserCenter}></Route> </Route> <Route path='/login' component={AppLogin}></Route> </Router>, document.getElementById('app') )
欢迎你们评鉴
由于当前版本尚未彻底的能够使用,只是完成了部分功能(虽然完成了核心的功能可是尚有不足,有兴趣的能够关注个人博客,Github将持续为您导航~)