6 Replies Latest reply on Oct 19, 2017 2:16 AM by martinb77004568

    Alternatives to Crosswalk

    martinb77004568 Level 2

      As stated in The Crosswalk Project  and the PhoneGap blog, Crosswalk won't be updated anymore. I have been using Crosswalk for a long time now and don't like the idea of using the built-in WebView. Starting with Android 5, it is possible to update it. But I don't think all users do this so I cannot be sure my app works properly on all Android devices. This is a huge problem if you want to build hybrid apps and don't know which browser features are supported and which aren't. Furthermore, this could introduce security problems (imagine an Android user who doesn't update the WebView for a year of two...). Also, Android 4 cannot be supported anymore.

       

      My questions:

      1. Are there any alternative projects? Or maybe a Crosswalk fork that's still being maintained? (Probably by Cordova or PhoneGap or... ? I think I am not the only one wanting to create a consistent user experience.)

      2. Is it possible to somehow force users to update the WebView app when it is "too old" (let's say the user hasn't updated it for a year)?

      3. What do other hybrid app developers do to fix this problem? I think I can keep using Crosswalk for some time. But sooner or later you should definitly stop using old rendering engines.

        • 1. Re: Alternatives to Crosswalk
          timkimtimkim Adobe Employee

          Hi Martin,

           

          These are all excellent questions so I hate to bring you down:

           

          1) There are no alternative projects right now.

           

          2) There is no way to force users to update their web view.

           

          3) There isn't a way for hybrid developers to fix the crosswalk problem.

          • 2. Re: Alternatives to Crosswalk
            martinb77004568 Level 2

            Hi,

             

            thanks for your reply.

            I assume you can understand why I'm so worried about the latest changes. My goal was to create a consitent user experience accross all platforms and now it might be the getting harder and harder to achieve this (on Android 4, this is simply impossible... Think about the many bugs...).

             

            So the only way is to set the minimum SDK version to 21 (Android 5) and lose about 25% of all Android users.

             

            What I didn't find any information about:

            1. Does Google force users to update the WebView app from time to time?

             

            2. Or are there any statistics on how many users update the app regularly and how many don't?

             

            3. The WebView should report a certain UserAgent string. My idea was to retrieve this and determine the Chromium version. If it is way too old, I can simply show a message saying the user should update their WebView. Maybe, I won't force the user to do this but show a message that, "for a better experience", he should perform the update.

            3.1. Is there any way to test my app in older versions of the WebView app? On PlayStore, I cannot simply downgrade to an older version.

            3.2. I didn't find any information about which Chromium version is used in which WebView. My idea was to stop users to use a WebView that is older than 6 (or 12) Months. Is there a way to find out when Google updated the WebView to a certain Chromium version? On Latest Uploads - APKMirror  I found a list with WebView versions. Is the version number always equal to the Chromium version?

             

            Sorry for the many questions. It would be really nice if we could find a solution for this problem.

            • 3. Re: Alternatives to Crosswalk
              kerrishotts Adobe Community Professional

              1. Does Google force users to update the WebView app from time to time?

              Not that I'm aware.

               

              Side note, though: Android 7 ties the webview to the installed version of Chrome. Users might be more apt to update that, since it is easily recognized as a browser, but that's just a guess on my part. See: Google explains how Chrome will become WebView in Android 7.0

               

              2. Or are there any statistics on how many users update the app regularly and how many don't?

              Not as far as I know. There might be some app analytics out there, but they would be skewed towards the app's demographic.

               

              3. The WebView should report a certain UserAgent string. My idea was to retrieve this and determine the Chromium version. If it is way too old, I can simply show a message saying the user should update their WebView. Maybe, I won't force the user to do this but show a message that, "for a better experience", he should perform the update.

              The User Agent does report the version, so you can check version #s. I probably wouldn't use "better experience" -- but you could throw up a notice if you know a particular version (or range of versions) has an issue that you can't work around.

               

              3.1. Is there any way to test my app in older versions of the WebView app? On PlayStore, I cannot simply downgrade to an older version

              Hm. Not that I'm aware of. You might be able to sideload an older version, but I've never tried. Other options might be to use a testing lab like testobjects.com where you can test on a variety of devices. (No affiliation.)

               

              3.2. I didn't find any information about which Chromium version is used in which WebView. My idea was to stop users to use a WebView that is older than 6 (or 12) Months. Is there a way to find out when Google updated the WebView to a certain Chromium version? On Latest Uploads - APKMirror  I found a list with WebView versions. Is the version number always equal to the Chromium version?

              The version reported by the user agent seems to correspond with a Chrome/Chromium build, based on a fairly quick glance.

               

              You do need to consider your UX here; does it make sense to prevent the app from working solely because the webview is old? I'd rather only prevent the app from running if it simply will not work. The latter is justifiable in my view, but the former is essentially busywork for the user, and any additional steps your users have to perform in order to use your app only increases their frustration and the likelihood that your app ends up in the trash.

              • 4. Re: Alternatives to Crosswalk
                martinb77004568 Level 2

                Thanks for your reply.

                 

                I will probably show a message that the WebView is "too old" in the app's settings. Only if I see that many users are having problems and/or complain about the new version, I will show the message when the app starts.

                 

                But at the moment, I can keep using Crosswalk (maybe for a year or so) and then switch to the built-in WebView. Still hope someone will fork Crosswalk and update it from time to time.

                • 5. Re: Alternatives to Crosswalk
                  maximp61010792

                  Hello! What about Cocoon ?

                  • 6. Re: Alternatives to Crosswalk
                    martinb77004568 Level 2

                    I haven't heard about Cocoon before. Doesn't look like a popular framework/plugin ecosystem to me (at least when looking at the GitHub page).

                    I think I will simply start using the built-in Android WebView sooner or later - in this way, I can build my app without being dependent on some 3rd party developer. If there was an actively maintained Crosswalk fork, I would probably think about using this one but since there isn't one, the Android WebView seems to be my best choice.