56 lines
2.0 KiB
Markdown
56 lines
2.0 KiB
Markdown
|
---
|
||
|
title: Desktop and CLI Tools
|
||
|
pagination_prev: demos/mobile/index
|
||
|
pagination_next: demos/data/index
|
||
|
---
|
||
|
|
||
|
import DocCardList from '@theme/DocCardList';
|
||
|
import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
|
||
|
|
||
|
Web technologies including JavaScript and HTML can power traditional software.
|
||
|
|
||
|
## Desktop Apps
|
||
|
|
||
|
Desktop app frameworks bundle a JavaScript engine and a windowing framework to
|
||
|
enable graphical apps. SheetJS is compatible with many app frameworks.
|
||
|
|
||
|
Demos for common desktop tools are included in separate pages:
|
||
|
|
||
|
<ul>{useCurrentSidebarCategory().items.filter(item => !item.customProps?.cli).map((item, index) => {
|
||
|
const listyle = (item.customProps?.icon) ? {
|
||
|
listStyleImage: `url("${item.customProps.icon}")`
|
||
|
} : {};
|
||
|
return (<li style={listyle} {...(item.customProps?.class ? {className: item.customProps.class}: {})}>
|
||
|
<a href={item.href}>{item.label}</a>{item.customProps?.summary && (" - " + item.customProps.summary)}
|
||
|
</li>);
|
||
|
})}</ul>
|
||
|
|
||
|
:::note Desktop Recommendation
|
||
|
|
||
|
Electron is the most established and widely-used framework. With deep support
|
||
|
for NodeJS modules and consistent user interfaces, it is the recommended choice
|
||
|
for new projects and for web developers.
|
||
|
|
||
|
Frameworks like Wails are compelling alternatives for teams with experience in
|
||
|
other programming languages.
|
||
|
|
||
|
Frameworks like React Native generate applications that use native UI elements.
|
||
|
|
||
|
:::
|
||
|
|
||
|
## Command-Line Tools
|
||
|
|
||
|
Command-line tools bundle a JavaScript engine and a system runtime. The runtime
|
||
|
provides low-level access to computer resources.
|
||
|
|
||
|
Demos for common command-line tools are included in separate pages:
|
||
|
|
||
|
<ul>{useCurrentSidebarCategory().items.filter(item => item.customProps?.cli).map((item, index) => {
|
||
|
const listyle = (item.customProps?.icon) ? {
|
||
|
listStyleImage: `url("${item.customProps.icon}")`
|
||
|
} : {};
|
||
|
return (<li style={listyle} {...(item.customProps?.class ? {className: item.customProps.class}: {})}>
|
||
|
<a href={item.href}>{item.label}</a>{item.customProps?.summary && (" - " + item.customProps.summary)}
|
||
|
</li>);
|
||
|
})}</ul>
|