Tables on Tablets and Mobile Devices
SheetJS is a JavaScript library for reading and writing data from spreadsheets.
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!
The demos in this section showcase a number of mobile frameworks. In each case, we will build a sample app that loads SheetJS library scripts and processes on-device and remote spreadsheet files.
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.
Demos for common tools are included in separate pages. Each demo section will mention test dates and platform versions.
- React Native - React + Native Rendering
- NativeScript - JS + Native Elements
- Quasar - VueJS + Web View
- Ionic - Native Components + Web View
- CapacitorJS - JS + Web View
- Dart + Flutter - Dart + JS Interop
The "JavaScript Engines" section includes samples for JS engines used in the mobile app frameworks. SheetJS libraries have been tested in the relevant engines.
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.
Platforms
The following frameworks have been tested:
When this table was last updated, it was not possible to build an iOS app from Linux or Windows. Android tooling runs on MacOS, Linux and Windows.