Deploying: Difference between revisions
Jump to navigation
Jump to search
(20 intermediate revisions by 2 users not shown) | |||
Line 4: | Line 4: | ||
* In the classroom, the students will be using AppStudioEDU. | * In the classroom, the students will be using AppStudioEDU. | ||
* AppStudioEDU has the following restrictions: | * AppStudioEDU has the following restrictions: | ||
# Cannot deploy to other than the | # Cannot deploy to other than the school's servers. | ||
# Cannot compile apps with | # Cannot compile apps with VoltBuilder | ||
# Cannot create Chrome Desktop Apps. | # Cannot create Chrome Desktop Apps. | ||
# Commercial apps cannot be produced. | # Commercial apps cannot be produced. | ||
Line 14: | Line 14: | ||
* In these sessions, we have been using the nsbasic.com server. | * In these sessions, we have been using the nsbasic.com server. | ||
* The students will be using the | * The students will be using the school's servers. | ||
* These servers need to be able to process http requests to run apps. | * These servers need to be able to process http requests to run apps. | ||
* They also need to support ftp so apps can be uploaded to them. | * They also need to support ftp so apps can be uploaded to them. | ||
Line 20: | Line 20: | ||
* To test this, use http://web-sniffer.net/. | * To test this, use http://web-sniffer.net/. | ||
* Servers can be Apache or Microsoft IIS. | * Servers can be Apache or Microsoft IIS. | ||
<div class="page-break"></div> | |||
= PHP = | = PHP = | ||
* PHP is a server side programming language | * [http://en.wikipedia.org/wiki/Php PHP] is a server side programming language | ||
* When a web app talks to a server, the program on the server is most often PHP. | * When a web app talks to a server, the program on the server is most often PHP. | ||
* There is increasing interest in JavaScript as a replacement. | * There is increasing interest in [http://en.wikipedia.org/wiki/Node.js JavaScript] as a replacement. | ||
* Not all servers have PHP installed or enabled. | * Not all servers have PHP installed or enabled. | ||
Line 38: | Line 40: | ||
* It's a combination of native code + HTML = Hybrid App. | * It's a combination of native code + HTML = Hybrid App. | ||
<div class="page-break"></div> | |||
{| class="wikitable" | {| class="wikitable" | ||
! width=20% | | ! width=20% | | ||
! width=40% | Web App | ! width=40% | Web App | ||
! width=40% | | ! width=40% | VoltBuilder App | ||
|- | |- | ||
| Size of created apps (minimum) | | Size of created apps (minimum) | ||
Line 49: | Line 52: | ||
| Maximum size of app + data | | Maximum size of app + data | ||
| 25 megs (iOS) | | 25 megs (iOS) | ||
| Limited by device itself | | Limited by device itself | ||
|- | |- | ||
| Can apps run offline? | | Can apps run offline? | ||
Line 84: | Line 87: | ||
| Additional Plugins | | Additional Plugins | ||
| | | | ||
| Many - see the complete list [https://build | | Many - see the complete list [https://volt.build/docs/approved_plugins/ of approved plugins]. | ||
|- | |- | ||
| How to deploy | | How to deploy | ||
Line 90: | Line 93: | ||
To your own server: Set up username and password, then hit F6. | To your own server: Set up username and password, then hit F6. | ||
Then, on the device, enter the app's URL into the browser, then save to Home screen. | Then, on the device, enter the app's URL into the browser, then save to Home screen. | ||
| [[Submitting to the iOS App Store|iOS]]: join Apple's developer program, get certificates (Mac required), enter certificates into | | [[Submitting to the iOS App Store|iOS]]: join Apple's developer program, get certificates (Mac required), enter certificates into AppStudio, use VoltBuilder to submit to App Store, wait for approval or rejection. Customer can then get app through App Store. | ||
[[Submitting to the Google Play and Amazon Stores|Android]]: Download result file from | [[Submitting to the Google Play and Amazon Stores|Android]]: Download result file from VoltBuilder and distribute | ||
directly or through Google marketplace. | directly or through Google marketplace. | ||
|- | |- | ||
Line 117: | Line 120: | ||
|- | |- | ||
| Development OS | | Development OS | ||
| Windows | | Windows 10 or 11 | ||
| iOS: OS X<br> | | iOS: OS X<br> | ||
Android: Windows, OS X or Linux | Android: Windows, OS X or Linux | ||
|} | |} | ||
= | <div class="page-break"></div> | ||
= VoltBuilder = | |||
* | * [https://volt.build/] is a webservice. | ||
* It takes a web app and turns it into a hybrid app. | * It takes a web app and turns it into a hybrid app. | ||
* | * VoltBuilder can make native apps for iOS and Android. | ||
* It's free for a single project. | * It's free for a single project. | ||
Line 133: | Line 138: | ||
{| class = "wikitable" | {| class = "wikitable" | ||
|- | |- | ||
| | | configxml || Configuration information for VoltBuilder. Includes things like icons, splash screens, autorotation (orientation) and more. | ||
|} | |} | ||
== Quick Demo == | == Quick Demo == | ||
# Check | # Check configxml. Everything OK? | ||
# Build Native App with | # Build Native App with VoltBuilder | ||
# Check | # Check VoltBuilder status | ||
# When complete, download the Android version (apk). | # When complete, download the Android version (apk). | ||
# Put it on a server | # Put it on a server | ||
Line 154: | Line 155: | ||
# For full details, see the the TechNotes for [[Submitting to the Google Play and Amazon Stores|Android]] and [[Submitting to the iOS App Store|iOS]]. | # For full details, see the the TechNotes for [[Submitting to the Google Play and Amazon Stores|Android]] and [[Submitting to the iOS App Store|iOS]]. | ||
== | == Cordova PlugIns == | ||
* Plugins are native code modules which can be included in | * [https://volt.build/docs/approved_plugins/ Plugins] are native code modules which can be included in VoltBuilder projects. | ||
* They can be called from AppStudio programs. | * They can be called from AppStudio programs. | ||
* Most popular are BarcodeScanner, File, PushPlugin and Facebook Connect. | * Most popular are BarcodeScanner, File, PushPlugin and Facebook Connect. | ||
* These provide functionality that could not be done in AppStudio alone. | * These provide functionality that could not be done in AppStudio alone. | ||
<div class="page-break"></div> | |||
= Chrome Packaged Apps = | = Chrome Packaged Apps = | ||
* AppStudio can make distributable Windows desktop apps, by making them into Chrome Packaged Apps. | == Features == | ||
* AppStudio can make distributable Windows desktop apps, by making them into [[Making Desktop Apps with App Studio|Chrome Packaged Apps]]. | |||
* Users need need to have Chrome installed on their systems. | * Users need need to have Chrome installed on their systems. | ||
* The apps can be sold or given away for free in the Chrome Web Store. | * The apps can be sold or given away for free in the Chrome Web Store. | ||
Line 173: | Line 176: | ||
* There are additional API functions available. | * There are additional API functions available. | ||
== Restrictions == | |||
# Do not use alert, confirm or prompt (JavaScript) or [[MsgBox]] (BASIC). Use NSB.MsgBox instead. | # Do not use alert, confirm or prompt (JavaScript) or [[MsgBox]] (BASIC). Use NSB.MsgBox instead. | ||
# Do not use [[eval]](). | # Do not use [[eval]](). | ||
Line 180: | Line 182: | ||
# Follow the rules in [http://developer.chrome.com/apps/contentSecurityPolicy.html Chrome's Content Security Policy]. | # Follow the rules in [http://developer.chrome.com/apps/contentSecurityPolicy.html Chrome's Content Security Policy]. | ||
# Check to see that you are not using any other [https://developer.chrome.com/apps/app_deprecated.html disabled web features]. | # Check to see that you are not using any other [https://developer.chrome.com/apps/app_deprecated.html disabled web features]. | ||
== Quick Demo == | |||
# Get your app ready | |||
# Check ChromeAppLaunch in Project Properties | |||
# Check ChromeManifest in Project Properties | |||
# Click on "Build Desktop App" in the Run menu | |||
# Sign on to your Google Developer Account | |||
# Upload your zip file | |||
# Publish Changes | |||
# Let it bake. | |||
# Download the App | |||
# Start App using Chrome App Launcher | |||
# Start App using a shortcut | |||
# Run the App |
Latest revision as of 11:12, 30 December 2021
Differences between AppStudio and AppStudioEDU
- In these sessions, we have been using the full version of AppStudio.
- In the classroom, the students will be using AppStudioEDU.
- AppStudioEDU has the following restrictions:
- Cannot deploy to other than the school's servers.
- Cannot compile apps with VoltBuilder
- Cannot create Chrome Desktop Apps.
- Commercial apps cannot be produced.
- As part of this training, everyone here gets the full version.
- Students and and teachers will be able to buy the full version for half price.
Servers
- In these sessions, we have been using the nsbasic.com server.
- The students will be using the school's servers.
- These servers need to be able to process http requests to run apps.
- They also need to support ftp so apps can be uploaded to them.
- Files that end in .appcache need to be served with mime type text/manifest.
- To test this, use http://web-sniffer.net/.
- Servers can be Apache or Microsoft IIS.
PHP
- PHP is a server side programming language
- When a web app talks to a server, the program on the server is most often PHP.
- There is increasing interest in JavaScript as a replacement.
- Not all servers have PHP installed or enabled.
Web Apps vs Hybrid Apps
http://www.youtube.com/watch?v=fchbLzwtexk
- So far, we have been running as our apps as Web Apps.
- But it is also possible to turn them into native apps.
- Native apps have a built in web browser control.
- If create a native app with one of those browsers, it can run an AppStudio in that browser.
- It's a combination of native code + HTML = Hybrid App.
Web App | VoltBuilder App | |
---|---|---|
Size of created apps (minimum) | About 100K | About 250K |
Maximum size of app + data | 25 megs (iOS) | Limited by device itself |
Can apps run offline? | yes | yes |
Where are apps stored on device? | In browser's sandbox. | In regular file store. |
Performance | Excellent | Slower for CPU bound operations. |
Eligible for Store? | No. | iOS: Yes. Can go into App Store. Android. Yes. Can go into Marketplace. |
Distribute without going through store? | Yes. | iOS: No. Android. Yes. |
Percent you have to give up | 0% | iOS: 30% Android. 30% (MarketPlace) |
Security of code | OK: obfuscated | OK: obfuscated |
Additional Plugins | Many - see the complete list of approved plugins. | |
How to deploy | To the test server: hit F6.
To your own server: Set up username and password, then hit F6. Then, on the device, enter the app's URL into the browser, then save to Home screen. |
iOS: join Apple's developer program, get certificates (Mac required), enter certificates into AppStudio, use VoltBuilder to submit to App Store, wait for approval or rejection. Customer can then get app through App Store.
Android: Download result file from VoltBuilder and distribute directly or through Google marketplace. |
How to update a deployed app | Deploy the app to the server. Next time the user starts the app, it will be automatically updated. | iOS: Go through the whole submission process again. Once complete, app will show up as an update in the App Store.
Android: distribute directly or through Google marketplace. |
How to delete a deployed app | User can delete manually. If app is deleted from server, it will be automatically deleted from user's device. | User can delete manually. |
How to delete app's data | User can delete manually in Settings. If app is deleted from server, it will be automatically deleted from user's device. | Will be deleted with app. |
Sharing data between apps | Apps from the same server can share SQLite databases (subject to browser space limit) | Apps are sandboxed and cannot interfere with each other's data. |
Other software needed | Nothing. | iOS: iOS Application Installer Android: Nothing |
Development OS | Windows 10 or 11 | iOS: OS X Android: Windows, OS X or Linux |
VoltBuilder
- [1] is a webservice.
- It takes a web app and turns it into a hybrid app.
- VoltBuilder can make native apps for iOS and Android.
- It's free for a single project.
Additional Project Properties
configxml | Configuration information for VoltBuilder. Includes things like icons, splash screens, autorotation (orientation) and more. |
Quick Demo
- Check configxml. Everything OK?
- Build Native App with VoltBuilder
- Check VoltBuilder status
- When complete, download the Android version (apk).
- Put it on a server
- Navigate to the URL using the device browser.
- Download the apk file.
- Look for it in the Downloads folder.
- Tap on it to install.
- Installing to iOS is much more complex!
- For full details, see the the TechNotes for Android and iOS.
Cordova PlugIns
- Plugins are native code modules which can be included in VoltBuilder projects.
- They can be called from AppStudio programs.
- Most popular are BarcodeScanner, File, PushPlugin and Facebook Connect.
- These provide functionality that could not be done in AppStudio alone.
Chrome Packaged Apps
Features
- AppStudio can make distributable Windows desktop apps, by making them into Chrome Packaged Apps.
- Users need need to have Chrome installed on their systems.
- The apps can be sold or given away for free in the Chrome Web Store.
- Mac support just added.
- Packaged apps deliver an experience as capable as a native app, but as safe as a web page.
- Packaged apps look and behave like native apps.
- They have native-like capabilities that are much more powerful than those available to web apps.
- There are additional API functions available.
Restrictions
- Do not use alert, confirm or prompt (JavaScript) or MsgBox (BASIC). Use NSB.MsgBox instead.
- Do not use eval().
- Do not use localStorage or SQLite. Use the FileSystem API or IndexedDB.
- Follow the rules in Chrome's Content Security Policy.
- Check to see that you are not using any other disabled web features.
Quick Demo
- Get your app ready
- Check ChromeAppLaunch in Project Properties
- Check ChromeManifest in Project Properties
- Click on "Build Desktop App" in the Run menu
- Sign on to your Google Developer Account
- Upload your zip file
- Publish Changes
- Let it bake.
- Download the App
- Start App using Chrome App Launcher
- Start App using a shortcut
- Run the App