Saying Goodbye to PhoneGap

If you have questions or if you want to share your opinion about Aware IM post your message on this forum
Post Reply
yahya
Posts: 77
Joined: Sat Jul 16, 2011 6:00 am
Location: South Africa
Contact:

Saying Goodbye to PhoneGap

Post by yahya »

Have included a copy of an email notifying of the closure of PhoneGap:

Last night Adobe announced the official shuttering of PhoneGap and PhoneGap Build.

As the pioneer of the entire hybrid app development space, we are sad to see PhoneGap go. We want to thank the entire PhoneGap team for the support and friendship throughout the years.

With this news, I was feeling nostalgic and also thinking about where web development on mobile goes from here. I put some of my thoughts into a post on dev.to Saying Goodbye to PhoneGap.

We also understand that many Ionic developers used PhoneGap Build to perform cloud builds. We have worked with Adobe to provide an official migration guide to Ionic's Appflow build service. Appflow builds iOS and Android binaries in the cloud, but also comes with some powerful additional features such as remote app updating and direct submission to the app store. For more details on this transition, see our blog.

Ionic today is stronger than ever and ready to carry the torch as the leading platform web developers pick to build mobile apps. We wouldn’t be where we are today without the PhoneGap team.

From all of us at Ionic, thank you PhoneGap, and it's time to get back to building!

Max Lynch
Ionic Co-founder and CEO
AwareIM Developer edition. Version 8.5 (Build 2827) running on Windows Server 2012 R2 Standard
aware_support
Posts: 7523
Joined: Sun Apr 24, 2005 12:36 am
Contact:

Re: Saying Goodbye to PhoneGap

Post by aware_support »

Version 8.5 to be released in September will support Ionic and Monaca
Aware IM Support Team
hpl123
Posts: 2579
Joined: Fri Feb 01, 2013 1:13 pm
Location: Scandinavia

Re: Saying Goodbye to PhoneGap

Post by hpl123 »

aware_support wrote:Version 8.5 to be released in September will support Ionic and Monaca
+ PWA I hope :D . Monarca and Ionic looks good but I still believe PWA is the future.
Henrik (V8 Developer Ed. - Windows)
aware_support
Posts: 7523
Joined: Sun Apr 24, 2005 12:36 am
Contact:

Re: Saying Goodbye to PhoneGap

Post by aware_support »

PWA technology is not ready for this yet. It relies on support for native features inside browsers. And this support is severely lacking now, especially in Apple phone browsers.
Aware IM Support Team
Jaymer
Posts: 2430
Joined: Tue Jan 13, 2015 10:58 am
Location: Tampa, FL
Contact:

Re: Saying Goodbye to PhoneGap

Post by Jaymer »

@yahya
I need to revise my native Android app in the next 24 hours - on the latest 8.4

Do you have any tips for Monaca - I'm going to watch the video now.

I need to enable barcodescanning via the camera.
This was pretty much the default file except for the barcode plugin.

Code: Select all

<?xml version="1.0" encoding="UTF-8"?> 
<widget xmlns = "http://www.w3.org/ns/widgets" xmlns:gap = "http://phonegap.com/ns/1.0" id = "com.oem.mobile" version= "1"> 
<name>wh</name> 
<author>jaymer</author> 
<gap:platform name="android" /> 
<preference name="phonegap-version"           value="cli-7.0.1" /> 
<preference name="orientation"                value="default" /> 
<preference name="target-device"              value="universal" /> 
<preference name="fullscreen"                 value="false" /> 
<preference name="prerendered-icon"           value="true" /> 
<preference name="ios-statusbarstyle"         value="black-opaque" /> 
<preference name="detect-data-types"          value="true" /> 
<preference name="exit-on-suspend"            value="false" /> 
<preference name="auto-hide-splash-screen"    value="true" /> 
<preference name="disable-cursor"             value="false" /> 
<preference name="android-installLocation"    value="auto" /> 
<plugin name="cordova-plugin-whitelist" spec="1" /> 
<plugin name="cordova-plugin-camera" spec="2.4.1"  /> 
<plugin name="cordova-plugin-file" spec="4.0.0"  /> 
<plugin name="cordova-plugin-geolocation" spec="2.0.0" />
<plugin name="https://github.com/wildabeast/BarcodeScanner.git" /> 
<access origin="*"/> 
<allow-intent href="http://*/*" /> 
<allow-intent href="https://*/*" /> 
<allow-intent href="tel:*" /> 
<allow-intent href="sms:*" /> 
<allow-intent href="mailto:*" /> 
<allow-intent href="geo:*" /> 
</widget> 
Thx, J
Click Here to see a collection of my tips & hacks on this forum. Or search for "JaymerTip" in the search bar at the top.

Jaymer
Aware Programming & Consulting - Tampa FL
hpl123
Posts: 2579
Joined: Fri Feb 01, 2013 1:13 pm
Location: Scandinavia

Re: Saying Goodbye to PhoneGap

Post by hpl123 »

aware_support wrote:PWA technology is not ready for this yet. It relies on support for native features inside browsers. And this support is severely lacking now, especially in Apple phone browsers.
Bummer
Henrik (V8 Developer Ed. - Windows)
yahya
Posts: 77
Joined: Sat Jul 16, 2011 6:00 am
Location: South Africa
Contact:

Re: Saying Goodbye to PhoneGap

Post by yahya »

You should try out ionic, and have a look at this link https://ionicframework.com/docs/native/barcode-scanner/
Jaymer wrote:@yahya
I need to revise my native Android app in the next 24 hours - on the latest 8.4

Do you have any tips for Monaca - I'm going to watch the video now.

I need to enable barcodescanning via the camera.
This was pretty much the default file except for the barcode plugin.

Code: Select all

<?xml version="1.0" encoding="UTF-8"?> 
<widget xmlns = "http://www.w3.org/ns/widgets" xmlns:gap = "http://phonegap.com/ns/1.0" id = "com.oem.mobile" version= "1"> 
<name>wh</name> 
<author>jaymer</author> 
<gap:platform name="android" /> 
<preference name="phonegap-version"           value="cli-7.0.1" /> 
<preference name="orientation"                value="default" /> 
<preference name="target-device"              value="universal" /> 
<preference name="fullscreen"                 value="false" /> 
<preference name="prerendered-icon"           value="true" /> 
<preference name="ios-statusbarstyle"         value="black-opaque" /> 
<preference name="detect-data-types"          value="true" /> 
<preference name="exit-on-suspend"            value="false" /> 
<preference name="auto-hide-splash-screen"    value="true" /> 
<preference name="disable-cursor"             value="false" /> 
<preference name="android-installLocation"    value="auto" /> 
<plugin name="cordova-plugin-whitelist" spec="1" /> 
<plugin name="cordova-plugin-camera" spec="2.4.1"  /> 
<plugin name="cordova-plugin-file" spec="4.0.0"  /> 
<plugin name="cordova-plugin-geolocation" spec="2.0.0" />
<plugin name="https://github.com/wildabeast/BarcodeScanner.git" /> 
<access origin="*"/> 
<allow-intent href="http://*/*" /> 
<allow-intent href="https://*/*" /> 
<allow-intent href="tel:*" /> 
<allow-intent href="sms:*" /> 
<allow-intent href="mailto:*" /> 
<allow-intent href="geo:*" /> 
</widget> 
Thx, J
AwareIM Developer edition. Version 8.5 (Build 2827) running on Windows Server 2012 R2 Standard
Jaymer
Posts: 2430
Joined: Tue Jan 13, 2015 10:58 am
Location: Tampa, FL
Contact:

Re: Saying Goodbye to PhoneGap

Post by Jaymer »

I followed the video for Monaca - and using the default file from OEM, I get an error:
The project contains unlicensed plugins.

Which means I need to switch to a paid plan to compile.
OK, I will do that, but I decided to look at Ionic first and I can't even figure that out.
I don't want their entire dev environment. Don't understand what the phonegap/monaca-equivalent is at Ionic.
Click Here to see a collection of my tips & hacks on this forum. Or search for "JaymerTip" in the search bar at the top.

Jaymer
Aware Programming & Consulting - Tampa FL
Jaymer
Posts: 2430
Joined: Tue Jan 13, 2015 10:58 am
Location: Tampa, FL
Contact:

Re: Saying Goodbye to PhoneGap

Post by Jaymer »

Signing up for Pro plan lets you get past the error on Monaca. $22/month to build apps.
But it did build my app and installed on Android just fine.
(had some issues I wrote Support about - this is using the 8.5 beta)

Would like some guidance on how to do similar with Ionic .
Click Here to see a collection of my tips & hacks on this forum. Or search for "JaymerTip" in the search bar at the top.

Jaymer
Aware Programming & Consulting - Tampa FL
chris29
Posts: 173
Joined: Sat Feb 06, 2010 1:45 am
Location: Australia

Re: Saying Goodbye to PhoneGap

Post by chris29 »

What is the comparison between Monaca ($22/m) and Iconic ($42/m) other than price.

We have successfully built Android and IOS Apps on Monaca in 8.4 and deployed to PlayStore/App Store. There is one annoying issue in IOS when taking a photo for upload which moves the screen up to hide the menu but the end product is the same as the PhoneGap apps we deployed.
Version 8.5 - Windows using MySql 8 and SQL Server - 64bit
Jaymer
Posts: 2430
Joined: Tue Jan 13, 2015 10:58 am
Location: Tampa, FL
Contact:

Re: Saying Goodbye to PhoneGap

Post by Jaymer »

Chris, could you explain to me what’s needed to build a android app with Monica, using 8.4

I built it with 8.5, and the main menu did not display correctly. And none of my grids would work.
It was contacting tomcat and requesting the grid, but no data ever displayed on mobile.
It might be because I have a 8.5 APK to an 8.4 server.
But I can’t make the server 8.5 yet because it’s not supported.
So my only choice is to use the 8.4 phone gap zip file and submit that to Monica.
Do you recall what I would have to change to get that to work? Thanks
Click Here to see a collection of my tips & hacks on this forum. Or search for "JaymerTip" in the search bar at the top.

Jaymer
Aware Programming & Consulting - Tampa FL
chris29
Posts: 173
Joined: Sat Feb 06, 2010 1:45 am
Location: Australia

Re: Saying Goodbye to PhoneGap

Post by chris29 »

Android is the easiest to get going, IOS has some issues now there is a Notch and Bar at the bottom on the display to cater for.

We happened to be working on Mocona at the same time as Support so assisted each other. The new video is a result of this with the exception white space that will display on an iPhone X and above.

The config file we ended up with after moving to Mocona is now like this:

Code: Select all

<?xml version='1.0' encoding='utf-8'?>
<widget id="com.mydomain.mobile" version="4.0.8" xmlns="http://www.w3.org/ns/widgets" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:gap="http://phonegap.com/ns/1.0">
    <feature name="LocalStorage">
        <param name="ios-package" value="CDVLocalStorage" />
    </feature>
    <feature name="Console">
        <param name="ios-package" value="CDVLogger" />
        <param name="onload" value="true" />
    </feature>
    <feature name="HandleOpenUrl">
        <param name="ios-package" value="CDVHandleOpenURL" />
        <param name="onload" value="true" />
    </feature>
    <feature name="IntentAndNavigationFilter">
        <param name="ios-package" value="CDVIntentAndNavigationFilter" />
        <param name="onload" value="true" />
    </feature>
    <feature name="GestureHandler">
        <param name="ios-package" value="CDVGestureHandler" />
        <param name="onload" value="true" />
    </feature>
    <feature name="SplashScreen">
        <param name="ios-package" value="CDVSplashScreen" />
        <param name="onload" value="true" />
    </feature>
    <feature name="Monaca">
        <param name="ios-package" value="Monaca" />
        <param name="onload" value="true" />
    </feature>
    <feature name="CDVWKWebViewEngine">
        <param name="ios-package" value="CDVWKWebViewEngine" />
    </feature>
    <feature name="File">
        <param name="ios-package" value="CDVFile" />
        <param name="onload" value="true" />
    </feature>
    <feature name="FileOpener2">
        <param name="ios-package" value="FileOpener2" />
    </feature>
    <feature name="Battery">
        <param name="ios-package" value="CDVBattery" />
    </feature>
    <feature name="CookieMaster">
        <param name="ios-package" value="CDVCookieMaster" />
    </feature>
    <feature name="Contacts">
        <param name="ios-package" value="CDVContacts" />
    </feature>
    <feature name="Device">
        <param name="ios-package" value="CDVDevice" />
    </feature>
    <feature name="Notification">
        <param name="ios-package" value="CDVNotification" />
    </feature>
    <feature name="Geolocation">
        <param name="ios-package" value="CDVLocation" />
    </feature>
    <feature name="InAppBrowser">
        <param name="ios-package" value="CDVWKInAppBrowser" />
        <param name="onload" value="true" />
    </feature>
    <feature name="Media">
        <param name="ios-package" value="CDVSound" />
    </feature>
    <feature name="Capture">
        <param name="ios-package" value="CDVCapture" />
    </feature>
    <feature name="NetworkStatus">
        <param name="ios-package" value="CDVConnection" />
    </feature>
    <feature name="SecureKeyStore">
        <param name="ios-package" value="SecureKeyStore" />
    </feature>
    <feature name="Vibration">
        <param name="ios-package" value="CDVVibration" />
    </feature>
    <feature name="StatusBar">
        <param name="ios-package" value="CDVStatusBar" />
        <param name="onload" value="true" />
    </feature>
    <feature name="TouchID">
        <param name="ios-package" value="TouchID" />
    </feature>
    <feature name="CDVWKWebViewFileXhr">
        <param name="ios-package" value="CDVWKWebViewFileXhr" />
        <param name="onload" value="true" />
    </feature>
    <name>MyApp</name>
    <author email="[email protected]" href="http://www.Monaca.com.au">
	</author>
    <content src="index.html" />
    <allow-intent href="http://*/*" target="_blank" />
    <allow-intent href="https://*/*" target="_blank" />
    <allow-intent href="http://*/*" />
    <allow-intent href="https://*/*" />
    <allow-intent href="tel:*" />
    <allow-intent href="sms:*" />
    <allow-intent href="mailto:*" />
    <allow-intent href="geo:*" />
    <description>Made with Monaca (http://monaca.mobi)</description>
    <edit-config file="*-Info.plist" mode="merge" target="NSCameraUsageDescription">
        <string>need camera access to take pictures</string>
    </edit-config>
    <edit-config file="*-Info.plist" mode="merge" target="NSPhotoLibraryUsageDescription">
        <string>need to photo library access to get pictures from there</string>
    </edit-config>
    <edit-config file="*-Info.plist" mode="merge" target="NSLocationWhenInUseUsageDescription">
        <string>need location access to find things nearby</string>
    </edit-config>
    <edit-config file="*-Info.plist" mode="merge" target="NSPhotoLibraryAddUsageDescription">
        <string>need to photo library access to save pictures there</string>
    </edit-config>
    <access origin="*" subdomains="true" />
    <allow-navigation href="*" />
    <allow-intent href="itms:*" />
    <allow-intent href="itms-apps:*" />
    <splash src="resources/EmptySplash.png" />
    <config-file parent="NSCameraUsageDescription" platform="ios" target="*-Info.plist">
        <string>To take pictures/scan barcodes.</string>
    </config-file>
    <config-file parent="NSPhotoLibraryUsageDescription" platform="ios" target="*-Info.plist">
        <string>To upload user images.</string>
    </config-file>
    <config-file parent="NSLocationAlwaysUsageDescription" platform="ios" target="*-Info.plist">
        <string>To supply directions to a location.</string>
    </config-file>
    <config-file parent="NSLocationWhenInUseUsageDescription" platform="ios" target="*-Info.plist">
        <string>To supply directions to a location.</string>
    </config-file>
    <icon height="60" platform="ios" src="resources/[email protected]" width="60" />
    <icon height="29" platform="ios" src="resources/[email protected]" width="29" />
    <icon height="58" platform="ios" src="resources/Icon-60@2x copy-3.png" width="58" />
    <icon height="87" platform="ios" src="resources/[email protected]" width="87" />
    <icon height="40" platform="ios" src="resources/[email protected]" width="40" />
    <icon height="80" platform="ios" src="resources/[email protected]" width="80" />
    <icon height="120" platform="ios" src="resources/Icon-60@2x copy-1.png" width="120" />
    <icon height="120" platform="ios" src="resources/[email protected]" width="120" />
    <icon height="180" platform="ios" src="resources/[email protected]" width="180" />
    <icon height="76" platform="ios" src="resources/[email protected]" width="76" />
    <icon height="152" platform="ios" src="resources/[email protected]" width="152" />
    <icon height="1024" platform="ios" src="resources/Icon 1024x1024.png" width="1024" />
    <splash src="/res/ios/screen/Default@2x~universal~anyany.png" />
    <config-file parent="CFBundleLocalizations" platform="ios" target="*-Info.plist">
        <array>
            <string>en</string>
        </array>
    </config-file>
    <preference name="AllowInlineMediaPlayback" value="true" />
    <preference name="BackupWebStorage" value="local" />
    <preference name="EnableViewportScale" value="true" />
    <preference name="KeyboardDisplayRequiresUserAction" value="true" />
    <preference name="MediaPlaybackRequiresUserAction" value="true" />
    <preference name="SuppressesIncrementalRendering" value="true" />
    <preference name="SuppressesLongPressGesture" value="true" />
    <preference name="Suppresses3DTouchGesture" value="true" />
    <preference name="KeepAVAudioSessionAlwaysActive" value="NO" />
    <preference name="StatusBarStyle" value="lightcontent" />
    <preference name="phonegap-version" value="cli-9.0.0" />
    <preference name="StatusBarOverlaysWebView" value="false" />
    <preference name="orientation" value="default" />
    <preference name="fullscreen" value="true" />
    <preference name="webviewbounce" value="true" />
    <preference name="stay-in-webview" value="true" />
    <preference name="ios-statusbarstyle" value="black-opaque" />
    <preference name="StatusBarBackgroundColor" value="#000000" />
    <preference name="Fullscreen" value="false" />
    <preference name="LoadUrlTimeoutValue" value="70000" />
    <preference name="SplashShowOnlyFirstTime" value="false" />
    <preference name="SplashMaintainAspectRatio" value="true" />
    <preference name="permissions" value="none" />
    <preference name="prerendered-icon" value="true" />
    <preference name="detect-data-types" value="true" />
    <preference name="exit-on-suspend" value="false" />
    <preference name="disable-cursor" value="false" />
    <preference name="BackgroundColor" value="0x000000" />
    <preference name="HideKeyboardFormAccessoryBar" value="true" />
    <preference name="OverrideUserAgent" value="Mozilla/5.0 My Browser" />
    <preference name="AppendUserAgent" value="My Browser" />
    <preference name="AllowBackForwardNavigationGestures" value="true" />
    <preference name="WindowsStorePublisherName" value="My Name" />
    <preference name="WindowsStoreIdentityName" value="9ec89d3c-faf7-691f-66a1-bb4c16cb0a3b" />
    <preference name="ios-XCBuildConfiguration-TARGETED_DEVICE_FAMILY" value="1,2" />
    <preference name="AutoHideSplashScreen" value="true" />
    <preference name="FadeSplashScreen" value="true" />
    <preference name="ShowSplashScreenSpinner" value="false" />
    <preference name="DisallowOverscroll" value="false" />
    <preference name="monaca:PushProjectId" value="Rfg4ic1E34yKapsc" />
    <preference name="monaca:ProjectId" value="5ecca481e78885295b3114f1" />
    <preference name="InterceptRemoteRequests" value="all" />
    <preference name="MediaPlaybackAllowsAirPlay" value="false" />
    <preference name="TopActivityIndicator" value="white" />
    <preference name="GapBetweenPages" value="0" />
    <preference name="PageLength" value="0" />
    <preference name="PaginationBreakingMode" value="page" />
    <preference name="PaginationMode" value="unpaginated" />
    <preference name="ErrorUrl" value="myErrorPage.html" />
    <preference name="target-device" value="universal" />
    <preference name="hideurlbar" value="no" />
    <preference name="hidenavigationbuttons" value="no" />
    <preference name="location" value="true" />
    <preference name="toolbarposition" value="top" />
    <preference name="WKWebViewOnly" value="true" />
    <preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />
</widget>
in the startupMobileNative.html make sure you have the following in the head

Code: Select all

  <meta name="apple-mobile-web-app-capable" content="yes">
  <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
  <meta name="viewport" content="viewport-fit=cover, width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no">
All of the list we use are Custom, we are using some grids and they do work but the preference would be to use custom.

Chris
Version 8.5 - Windows using MySql 8 and SQL Server - 64bit
Jaymer
Posts: 2430
Joined: Tue Jan 13, 2015 10:58 am
Location: Tampa, FL
Contact:

Re: Saying Goodbye to PhoneGap

Post by Jaymer »

Thanks very much Chris
I’ll try this over the weekend.

So I’ll use the generated 8.4 phone gap zip, replacing the config file and adding the startup mobile changes, And import that into Monaca and see what happens.
Click Here to see a collection of my tips & hacks on this forum. Or search for "JaymerTip" in the search bar at the top.

Jaymer
Aware Programming & Consulting - Tampa FL
Jaymer
Posts: 2430
Joined: Tue Jan 13, 2015 10:58 am
Location: Tampa, FL
Contact:

Re: Saying Goodbye to PhoneGap

Post by Jaymer »

Thanks very much Chris
I’ll try this over the weekend.

So I’ll use the generated 8.4 phone gap zip, replacing the config file and adding the startup mobile changes, And import that into Monaca and see what happens.
Click Here to see a collection of my tips & hacks on this forum. Or search for "JaymerTip" in the search bar at the top.

Jaymer
Aware Programming & Consulting - Tampa FL
Post Reply