Automate screenshots for Play Store - android

I have an app to publish on Google Play Store. The app comes with a lot of different languages and I need to provide screenshots for every single one of them.
It's time consuming so I'm looking for a solution to automate the process.
I found this one (Screengrab). The problem is, you need to install a separated component and it's only available for Lunix platform when I'm currently running Windows.
Do you know any other way to do that?

There are several tools at the market that can help you with the creation of all required localized screenshots in different resolutions.
TOOLS
Here is a tool where you can export different resolutions and localizations with very less effort.
Launchmatic
Furthermore you can find an overview of different tools that can help you with an easy screenshot creation.
Screenshot Tools Overview
Uploading process
As an addition, however you create your screenshots, uploading more than 1000 screenshots for the playstore/appstore is still very time consuming.
Fastlane
You can setup your own pipeline with fastlane to automate the process of uploading screenshots. Disadvantage: You need to setup the environment for fastlane and learn how to use it.
FASTLANE
AppStoreManager
Service that provides an "ready-to-use" solution for uploading your screenshots automatically. Just provide a ZIP file with the screenshots in the right format and let the upload handled via the service.
App Store Manager

Related

How to test and deploy a Flutter app with more than 150 MB of assets?

The assets in my Flutter app are about 300 MB in total (lots of media files, which are the essence of the app and can't sensibly be trimmed down).
As I understand it, there are two ways to upload apps to the Play Store:
An APK file (legacy) containing binaries for all platforms. It looks like APKs are limited to 100 MB.
An App Bundle (new) which lets the Play Store figure out what bits to deploy where. App Bundles have a limit of 150 MB on what the user actually downloads.
For APKs, the way to work around this limit is APK Expansion Files (often "obb" files), which can be up to 2 GB. I could try to get this to work with Flutter, but the APK delivery method is somewhat deprecated, and has other drawbacks like bloating the install size with unused binaries. So I'd rather not use this approach.
For App Bundles, a similar mechanism exists in the form of Dynamic Asset Delivery. There are three options, depending on when the user will download the asset pack: during installation, right after installation, or on demand. The install-time option sounds most transparent and simple and is limited to 1 GB, so it would be great for my use case.
Sadly, Flutter does not yet support Dynamic Asset Delivery. Fortunately, when using install-time delivery, it looks like these assets become available through the regular AssetManager class provided by the system. At first I thought Flutter might pick them up without having to write any Java/Kotlin code, but no, it uses its own assets mechanism, and there is nothing but a proposal for getting access to the AssetManager. So I'd have to do some legwork myself to interact with the Java world, but it sounds doable.
To create the bundle in the first place, I followed these steps. Now how do I run the app?
flutter run produces no errors, but doesn't seem to install the asset bundle, so all my assets are missing during testing. I suspect it builds an APK directly, rather than building an app bundle and then creating an APK from that. And because IntelliJ IDEA also seems to invoke flutter run or something similar, my debugger and other IDE integration are useless now.
flutter build appbundle seems to work and spits out an .aab file. For testing, presumably I could use bundletool to create an APK out of this and install it, but that would be a terrible development experience compared to Flutter's usual sub-second hot reload.
Is this a dead end? Is there another way to deliver an app with large assets through the Play Store? Please note, I'm not interested in external hosting unless it offers free and (near) unlimited traffic, because this is a noncommercial project.
(On the App Store for iOS, the limit seems to be 4 GB, no questions asked. Whot?)
For deploying, this is now supported by using Deferred Components (which is introduced in around Mar 2021).
Technical details in Flutter wiki
With Deferred Components you can distribute large assets through Play Feature Delivery (no Play Assets Delivery yet).
In my opinion the documentation is a bit lacking (especially for using feature to deliver assets only), but after digging into source code + trial and error, I can distribute an app with 150MB+ assets as dynamic feature through Play Store (to testers).
For testing, I can't find another way other than bundletool as you mentioned. What make it worse for me is some Deferred Components APIs seem to work differently on the apks built by bundletool and the apk built by Play Store, so testing can be even more time consuming and painful than it looks.

Criteria in favor of AppBundle

Google Play is not the first time insistently offers to use the App Bundle application.
I started to understand, but did not see many criteria and reasons to use it in my project, so please tell me who has already encountered or managed to notice more than me.
One of the main criteria that I managed to identify for myself is the ability to load functions On Demand. By the way which are very well described here.
But based on this, the only criterion that comes to my mind is that you can load those or modules as needed.
It is also not clear how the choice of screen extensions/specific platform when downloading the application from the Google Play Store.
App Bundle allows your app to be split up along different lines.
https://developer.android.com/platform/technology/app-bundle
It's easy to switch. You don't need to refactor your code to start benefiting from a smaller app. And once you've switched, you'll benefit from modular app development and customizable feature delivery.
Therefore like you mention
One of the main criteria that I managed to identify for myself is the ability to load functions On Demand. By the way which are very well described here.
So Google can be clever and send a subset of your app to the device. (The benefit being faster download times for your app. More acquisition, less user drop off on install).
If your app targets tablets and phones, google can be clever and only send the tablet resources to the tablet. Same example can be said for languages and other resource types.
Documentation benefits:
They give 6
TLDR: 1 file to upload when making an app
Build one artifact that includes all of your app's compiled code, resources, and native libraries for your app. You no longer need to build, sign, upload, and manage version codes for multiple APKs.
TLDR: smaller downloads for users
Google Play's Dynamic Delivery uses your Android App Bundle to build and serve APKs that are optimized for each device configuration. This means your users enjoy a smaller app download without the unused code and resources needed for other devices. Track the size of your app in the new app size report in the Google Play Console.
TLDR: smaller downloads for users
Customize and control your user experience by delivering features to the devices and users you choose, as and when they're needed, instead of at install time. This means that adding features no longer has to result in adding to your app's size at install time. Use conditional delivery to deliver features to countries, device types, or devices running a minimum SDK version. Use on-demand delivery to deliver features on demand, which can be installed and uninstalled as needed.
TLDR: More maintainable code
The Android App Bundle enables modular app development so you can design, build, debug and test your app's features as independent modules that can be added to your main app when ready. You'll see fewer merge conflicts and disruptions because you no longer have to have an entire engineering team working on the same monolithic app with complex and bloated code.
TLDR: Faster build speeds
Build systems, such as the Android Studio build system using Gradle, are optimized for modular apps so they are significantly faster to build than large, monolithic apps. You'll spend less time sitting around waiting and more time designing, coding, and testing your app.
TLDR: Better user acquisition
Instant-enable your Android App Bundle or instant-enable specific dynamic feature modules to give users a frictionless way to experience your app. Users can launch your experience from the Try Now button on Google Play and web links without installation.

How far can I automate Android Studio project cloning and building?

I've read that you could automate builds quite a lot, but what about creating an equal project and changing a few things like the app name and colors.xml values for uploading to the Play Store? I am developing many similar apps that are a copy of each other with different names, pictures, icons and colors for quantity distribution at a low price. This would be easy for a website as you could store all changing variables in a single file and then upload that through an FTP Client, but when it comes to Android software, it's obviously different.
I am looking to learn a way to make something like a .bat file or cmdline Command that would let me do this quick, and output a Signed APK ready for upload. Thanks in advance
This is probably against Google Play terms of service. See the Policy site, especially the "Spam and minimum functionality" section.

Does Flutter is Instant App available?

I'm very new to Flutter and I have to know before learning if Flutter works with Instant App.
Thanks.
Instant apps is currently unavailable on Flutter. There is not really a way to split the functionality, but Flutter also makes your app bigger as you can see in this discussion: https://groups.google.com/d/msg/flutter-dev/JpoMCJsPF-4/lzbUdLigAQAJ
"A trivial Java app does not ship with any graphical engine or widget, everything is provided by the Android Runtime, even most of the standard Java libraries.
A Flutter app has to ship with pretty much everything: engine, widgets, standard libraries, etc ..."
I am not completely sure about how much bigger (this example states about 7MB install size), but as Instant Apps have to be below 4MB I don't think Instant Apps will come to Flutter any time soon if ever.
This year google released Google Play Instant, which basically is a program to test games and application without need to install them on actual device (like Android instant apps). Right now it looks like you have to apply in order get access to the program, but soon should be available for more applications. You can apply here if you want.
This program does not have 4MB limitation any more, but 10MB for the build file size. I guess this is something which could help Flutter applications, because usually they have bigger file size.
In conclusion I would say:
As long as you have android build file (.apk or .aab) and it's under the upload limitations for Google play store, you can ship it in Google play store as Instant version of your application.

Installing Multiple App APK in Android

My application suite is composed of multiple APKs corresponding to different applications. Installation of the different APKs should done in parallel so that to avoid user having older version for some app and newer version for other apps.
In the current approach, the user has to install each of the APK explicitly. If one of the APP is not updated with newer version, then it becomes an issue.
Is there a way to install multiple APKs corresponding to different App in one go ?
I guess the answer depends on what you want to achieve here.
If you want a single app to be able to install other apps without asking the user for his opinion, the answer clearly is no, and for good reasons:
The apps automatically installed would not be able to display their required permissions, which is a rule from Google Play in principle.
This behavior could be dangerous as it would then be easy for someone to produce for instance a game app and add a malware to it that would automatically install as well and sneak into the devices of whoever would use the app.
But there is an alternative to it, requiring the intermediate of a computer.
The project Mass APK Installer Tool was designed for exactly this purpose.
Check this article about Mass APK Installer Tool. The link to the code is broken as it has moved to its new location, here.

Categories

Resources