63 lines
2.5 KiB
Markdown
63 lines
2.5 KiB
Markdown
|
---
|
||
|
title: iOS and Android Apps
|
||
|
pagination_prev: demos/salesforce
|
||
|
pagination_next: demos/desktop/index
|
||
|
---
|
||
|
|
||
|
import DocCardList from '@theme/DocCardList';
|
||
|
import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
|
||
|
|
||
|
Many mobile app frameworks mix JavaScript / CSS / HTML5 concepts with native
|
||
|
extensions and libraries to create a hybrid development experience. Developers
|
||
|
well-versed in web technologies can now build actual mobile applications that
|
||
|
run on iOS and Android!
|
||
|
|
||
|
:::warning
|
||
|
|
||
|
**The ecosystem has broken backwards-compatibility many times!**
|
||
|
|
||
|
iOS and Android, as well as the underlying JavaScript frameworks, make breaking
|
||
|
changes regularly. The demos were tested against emulators / real devices at
|
||
|
some point in time. A framework or OS change can render the demos inoperable.
|
||
|
|
||
|
MacOS is required for the iOS demos. The Android demos were tested on MacOS.
|
||
|
|
||
|
:::
|
||
|
|
||
|
The ["JavaScript Engines"](/docs/demos/engines) section includes samples for JS
|
||
|
engines used in the mobile app frameworks. SheetJS libraries have been tested
|
||
|
in the relevant engines and should "just work" with some caveats.
|
||
|
|
||
|
Demos for common tools are included in separate pages. Each demo section will
|
||
|
mention test dates and platform versions.
|
||
|
|
||
|
<ul>{useCurrentSidebarCategory().items.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 Recommendation
|
||
|
|
||
|
React Native is extremely popular and is the recommended choice for greenfield
|
||
|
projects that can use community modules. However, its "lean core" approach
|
||
|
forces developers to learn iOS/Android programming or use community modules to
|
||
|
provide basic app features.
|
||
|
|
||
|
The original Web View framework was PhoneGap/Cordova. The modern frameworks
|
||
|
are built atop Cordova. Cordova is waning in popularity but it has a deep
|
||
|
library of community modules to solve many problems.
|
||
|
|
||
|
Before creating a new app, it is important to identify what features the app
|
||
|
should support and investigate community modules. If there are popular modules
|
||
|
for features that must be included, or for teams that are comfortable with
|
||
|
native app development, React Native is the obvious choice.
|
||
|
|
||
|
NativeScript is not recommended at this time. There are known bugs related to
|
||
|
binary data processing. The demo only supports plaintext file formats like CSV.
|
||
|
|
||
|
:::
|