Some Huawei mobile devices don't have the Google Play Store and have the Huawei AppGallery instead. Since Flutter is for cross-platform development (iOS and Android), it may be desirable to propose Flutter developed apps through the Huawei AppGallery.
The Huawei devices without the Google Play Store are still using Android and the applications to upload to the Huawei AppGallery must have the apk extension (just like in the Google Play Store). These are hunches that at least some Google Play Store applications can be proposed on the Huawei AppGallery. However, I did not find any proof or confirmation of this. Nor any clear perimeter for this compatibility. For example, some services may not work or may not be accepted on the Huawei AppGallery for technical or legal reasons. One part of this perimeter is the use of Flutter to develop the application.
So, my question is, can a Flutter developed application be compatible with the Huawei AppGallery and if so, under which conditions?
Edit after first app publication 2020 04 13
My first Flutter app has just been published on the Huawei AppGallery. This answers the first part of the question.
Still, as this app is quite minimalist, this doesn't answer the most important part which is: under which conditions can a Flutter app be published on the Huawei AppGallery?
As long as your application complies with the regulations of AppGallery, there should not be any problem it.
https://developer.huawei.com/consumer/en/doc/30202
AppGallery does not have any restriction on the language application developed with, no need to worry about it; flutter, cordova, react.native, xamarin they are fine.
Just a point to take care. If you are using SDKs or services those depend on Google Play services, when you have published your application on AppGallery, it will be visible only for Huawei devices supports Google Play Services.
There are no restrictions on the Flutter apps. They can be released on HUAWEI AppGallery.
How to release an app:
Register and sign in to your HUAWEI Developer account, go to AppGallery Connect, create a new app, and upload the APK.
Set languages and basic app information, such as app name, introduction, screenshots, and app category.
Select your business model (free or premium), release countries and regions, and a link to the privacy statement.
Confirm that all of the information provided is correct, and submit your app for review.
As #captaink said, please also refer to AppGallery Review Guidelines.
If your app has integrated GMS Kit, these capabilities provided via GMS are not available on Huawei phones with HMS. If you want your app to run on these phones, integrate Huawei Mobile Services (HMS).
Huawei has provided some HMS Core kit plugins for Flutter. They have been published to public open source communities. You can also find them on GitHub.
Account Kit plugins for Flutter
Ads Kit plugins for Flutter
Analytics Kit plugins for Flutter
AR Kit plugin for Flutter
In-App Purchases Kit plugin for Flutter
Location Kit plugins for Flutter
Map Kit plugins for Flutter
Push Kit plugins for Flutter
Scan Kit plugin for Flutter
Site Kit plugins for Flutter
In theory, yes it could. Huawei uses an OS called Harmony OS.
The Arc compiler in Harmony OS supports all the major programming languages including C/, C++, Java, JavaScript and Kotlin.
Flutter compiles Dart code to native device code (Java, and Kotlin for Android and Swift for iOS). Huawei is making an Arc compiler that supposedly makes it easy to turn Android apps to Harmony OS apps. What does this mean for Flutter and the AppGallery? I'm not sure.
So to your question, in theory, yes it could but I would just recommend coding your own app in one of the languages mentioned above and using the Arc compiler to put it on Huawei's AppGallery.
UPDATE:
So apparently you can just put an APK on the Huawei App Gallery: https://developer.huawei.com/consumer/en/doc/distribution/app/30204. Since you can obviously make APKs in Flutter, I don't see why not.
Update on this subject:
we received the communication from Huawei technical staff to delete all Google Play Services in the app and substitute them with theirs Huawei Mobile Services, before the end of November 2020.
It seems that after this date they don't accept Google Play Services inside the apps. Don't know if app published before will still be there after.
Related
I have an application that depends on google services, i did too much migration in order to let the new Huawei phones run my application.
Unfortunately i couldn't test my application on emulator due to HMS core is missing, i have created a new Stock android image and i tried to install HMS core APK but the app could not be installed as the image ,
Unfortunately cloud debugging not serving me due to the huge services. and i need to see everything step by step. any solution expect that i buy a new phone without google services?
You can try HMS plugin
Go to File-> Setting-> Plugins and search for HMS Toolkit and install it.
Visit the article HMS Toolkit - Automatic HMS SDK Integration To know detail about HMS installation and usage.
Once you select debugging and choose devices you can select EMUI version from there.
If you are using kits that do not depend on Huawei phones, such as Push Kit, ML Kit, Scan Kit, and In-App Purchases, you can download HUAWEI AppGallery on a non-Huawei phone and then run your app. In this case, you will be automatically guided to download and install HMS Core (APK) on AppGallery. You can also use the adb command to manually install HMS Core (APK) and then run your app for testing. For details, please refer to EMUI Version-Dependent Features.
If you are using kits that depend on Huawei phones, such as FIDO, Map Kit, and Health Kit, you can use Cloud Debugging to debug apps. (Cloud Debugging cannot debug code step by step.)
Work with Cloud Debugging at https://stackoverflow.com/a/63877454/14006527.
we can use android emulator before that you need to download latest HMS Core APK install into your emulator, all HMS kits doesn't supports. better you can go with cloud debugging or Install Hms plugin in your android studio use cloud debugging.
What steps do I need to take when I have troubles trying to use an app I created and try to run it on the latest Samsung Tab A 10.1? I tried to start the app, the message displayed is :
This application requires the latest version of ARCore
So I tapped the continue button. I was taken to Google Play. The title says "Google Play Services for AR". Then below that it says:
Your device isn't compatible with this version
Does anyone have a solution, please?
Firstly check whether the device you are using has the ARCore support:
It was indeed an easy experience in terms of building and running the app on the IOS device, iPhone 10. There were no complications in activating the ARkit in the devices since they were built in like the documentation mentioned. It was particularly gruesome in building the AR app on an Android device. As per the documentation the Android devices such as Samsung Galaxy A70S is compatible with ARCore.
Firstly the app simply crashed on installing into the device
As a part of the workaround, I looked for installing, "Google Play Services for AR" on my play store which simply didn't show up
I directly tried to install the app "Google Play Services for AR" through google but it failed with the message, the app is not compatible with my device.
I did a trial and error with installing the "Google Play Services for AR" apk directly from https://www.apkmirror.com/apk/google-inc/arcore/, specifically https://www.apkmirror.com/apk/google-inc/arcore/arcore-1-13-19100710-release/google-play-services-for-ar-1-13-191007106-android-apk-download/ to my Android device to enable ARCore which supported 64-bit processor
The app was however still crashing due to the 403 forbidden IP error on persisting the data
The issue got resolved on adding my public IP to azure rules
I missed the memo on the Oculus Go not supporting Firebase (because it doesn't come with Google Play Services installed) and got the Firebase Auth system working for my VR game with the SDK version 5.3.0. When I upgraded to SDK version 5.3.1 I got a system dialog "{my app} won't run without play services which weren't supported by your device". I found out Firebase updated the required Google Play Services version when they updated the SDK to 5.3.1, so my question is: where did the outdated GPS come from and can it can relied on (hah!) to stay there?
Based from Eveything you need to know to develop for Oculus Go documentation:
Gear VR compatability
Google Play Services: Unlike the Samsung Galaxy devices that run Gear
VR, Oculus Go does not ship with Google Play Services installed. You
cannot rely on Google Play Services (e.g. Google Firebase, Google
Cloud Messaging, etc.), or third-party libraries that depend on Google
Play Services (e.g. OneSignal) when running on Oculus Go.
Therefore some applications have automatically opted-out of distribution in Oculus Go because they contain compatability problems. You can opt an application back into Oculus Go distribution by fixing the compatibility errors (e.g. dependency on GPS) and uploading a new build.
I am still a beginner and I really don't know much and am working on my first app on android studio.
So is it possible to publish android studio project on iPhone App Store? If not is there any other way to do that?
You cannot publish a packaged compiled .apk Android Package file to an IOS app store. But an IPA file to IOS store
Google Play: - For Google play store you need to register for a Google play dev console account, plus a stock & rooted version of Android latest OS build phone
See this
Apple Store: - You need to have a Mac, plus an Apple developer license. A code editor like XCode, a know-how of programming language like Swift 3, an SDK toolkit & an iPhone
See Link1 and Link2.
android application is mainly build based on java program. ios application is build based on objective C.Its not because of programming language but rather due to final package its get compressed.
You can try learning xamarin cross platform native app development.
or
use ionic 2 framework. App Development based on HTML5,jss,css. Which use simple webview to display the content. That can be converted to any platform.
There is no way to do it as both have platform specific. So use their respective platform so audience can reach easily.
Mixing up of different platform caused confusion so follow each website rules.
I have an andengine game project where I am using Google leaderboard. Previously I was using Eclipse and older version Google-play-services. Now I have migrated to Android studio and using the latest version of play-services. But whenever i run the app on different different devices these are the results I get...
Case 1) If the device doesn't have the game-play-services app
App won't run unless you have play-services installed (get
play-services option)
Case 2) If the device have older version of play-services
App won't run unless you update the play-services (update
play-services option)
So my app totally become dependent on play-sevices app which I definitely don't like and many of my users hate it. Is there a way to basically integrate Google leaderboard without having these strings attached?
Thanks.
No. Google Play Services allows your app to connect to given Google APIs (incl. leaderboard). Officially, there's no other access on Android than thru Google Play Services.