forked from sheetjs/docs.sheetjs.com
		
	
		
			
	
	
		
			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. | ||
|  | 
 | ||
|  | ::: |