We have 13 apps that are exactly the same in source code, one difference is app name.
Currently, whenever we have an update to deploy we have to manually do it to every developer account. Is there a way to combine all apps into one source code and deploy it to each account?
If the deploying to multiple accounts is a must, then you can also considering automating this by using the API which both the platforms, Android and IOS have and there are options like fastlane available which make the process fairly easy
If you can switch to a single developer account, then flavours could be an easy way out
Flutter Flavours is exactly for this purpose. A flavour is analogous to say ice cream, well the base content is same but you would like to have a different flavour always right? The best part is you can do something for both Android as well as IOS
You can read about Flutter Flavours here
Related
We have a single codebase for Android & iOS in Flutter.
We tried to use the same codebase for Web in Flutter too, but it hadn't gone well.
As of some libraries/plugins, currently unsupported by Flutter SDK.
To mitigate these issues, we are maintaining two separate repositories, one for Android-iOS and other for Web.
Also, to add up here, for separate repositories because each Flutter product has a unique pubspec.yaml file. Now there are a few plugins that are currently supported in App but Not yet on Flutter Web, namely Awesome Notifications, Clevertap plugin, etc.
Integrating those plugins on the web, stops the web to run. So keeping the same codebase for both is getting technically complicated as the app has many many functions.
It takes so much time in simultaneously testing, debugging and resolving issues in Web.
So, how we can maintain same code for all platforms i.e., Android, iOS & Web, without doing it in other repository for Web and gaining advantage in streamlining our codebase into one for all platforms?
For Ex. If I commented the package awesome_notifications for Web in pubspec file, the issue arises (as shown in the screenshot) in code wherever we used its functionalities.
For successfully working on both Mobile & Web, are there any methods available we can use packages for both (Mobile & Web)?
Ideally you’d want to use a single codebase to host both the web and mobile versions, to minimise code maintenance and improve efficiency. To do this, you’ll need to be able to find the platform the code is running on, so that code can be called programmatically.
You can use the constant kIsWeb to check if the application is compiled for the web, and you can then use that condition to only run platform-specific code (such as the awesome_notifications package) if you’re on a platform that supports it. That way you’ll still be able to import the required packages, but only call them when the app is running on the mobile version of your app.
That should allow you to condense your codebase into one repository without sacrificing any functionality that may not work across all platforms.
Hi stack overflow community,
I'm a novice programmer in high school and have never written an app for mobile devices before so please bear with me. If I was to write an app using Flutter, will I only be required to write the code once and then be able to distribute different versions of it (iOS, macOS, Windows, Linux, Android, etc)? Or will I need to make small changes for each version such as using XCode to create the iOS version and Android Studio for the Android version? I know this is such a basic question but I've spent a couple of hours looking this stuff up and I'm still confused. Any help would be nice.
Thanks,
Daniel
In a product development environment, after writing the cross-platform code with Flutter, there are some need-to-do tasks related to Native environment.
In the case of Android, there are several cases when you'll need to touch the Native level such as config Firestore settings, Social authentication (Login with Facebook for example), changing the launch icons/ splash screen of the app or publishing to app store, etc
For iOS, the same case apply as well. So I suggest you start with small steps to develop the app first, then when running into something that seems impossible with just Flutter code, there are tutorials and SO to guide you through. It might seem overwhelmed at first, but we are all on a journey, so no need to rush it ;)
You should make small changes too. For eg when adding launcher icons and splash screen you have to edit the respective native folders. When distributing for ios you need to manually customize its Runner from xcode. There are many library that support either android only or ios only. In that case if you need that feature you have to make changes in native code like java ans swift.
if you're creating your own native plugins, you will have unique code to write. But if you're just using things out of pub, almost nothing will require change (unless you are publishing to the store).
I have two similar iPhone and Android Apps (2 each) in the near future we will be combining/merging the best of these two Apps into one App. The App does have a user login that would need to be combined, but a common data file, so authentication should not be an issue. How do I deploy the combined App via the App Store and Google Market for users of the existing Apps? How can I phase the old out and let users know about the new merged App? I thought we could build the MOTHER App and deploy it as a version release in the App Store and Market, but can I deploy the same App version for two separate Apps? For the sake of an example, think of it as Bank of America merging their Apps with CitiBank under a single brand (CitiMobile is now BofA Mobile)
Thanks in advance your your valuable insight.
Merging two apps into one is actually quite simple in android do to the loosely coupled nature of the system. However, you may also consider remaining two apps that can talk to one another with a central content provider and broadcast intents, effectively using your own API.
If one app is the way to go, I would recommend making the super app and deploying it on the market, and deploy a "version" of the two original apps that informs the user what is going on and then points them to the Android Market for the super app.
The other way to do it is to deploy two copies of the super app one replacing each sub app, but that is way more hassle in the long run.
As far as iPhone goes, I can not speak to that.
Can anyone recommend any libraries/utilities they use to assist in distributing iOS adhoc/enterprise applications over the air, so users can install without needing a PC/iTunes?
There's a few hosted services around (eg. https://testflightapp.com/ - though that is not free for enterprise apps), but I'm sure in the past I saw a non-hosted service (ie. something I could install on my own server) and came with a client side library that was easy to hook into the app to notify the user when updates were available and allow them to easily install them. Unfortunately it seems I didn't bookmark it and a bunch of googling and searching on stack overflow hasn't found it.
You need to create your own manifest and bundle it with the app package (the IPA from Build and Archive). There are a lot of guides on the web. e.g. this to automate OTA distribution using Heroku from Héctor Ramos or Mike Nachbaur's write up.
That said, I suspect using TestFlight.app is a lot easier than rolling your own - have you looked at the cost benefit of paying TestFlight vs developing and maintaining your own system. Much better to write production code rather than save the cost of the TestFlight subscription surely...
I finally found the one I believe I was thinking of when I wrote the question, it's called "Hockey":
http://hockeykit.net/
https://github.com/TheRealKerni/HockeyKit
If there are other similar solutions out there, please do add your own answer!
I would like to package multiple app in a single app. So donwloading one app and install that in an iPhone will install 3/4 apps. Something like java midlet suits having multiple Midlets in a single jar file.
Is it possible by using multiple target or bundle, aggregate target etc.?
No. Don't do this for a few reasons:
I think it's a bad idea. [More on this below.]
It cannot be done. Multiple apps cannot be installed as a result of one application being downloaded.
Some apps act like bundles of apps, but what they really are is a bunch of mini-apps built into a larger one. I highly discourage this sort of bundling. There are a lot of apps out there that say, “51 Tools All-In-One, Only $1.99!”, but these are incredibly trashy and are bought by unsuspecting noobs with no taste. Don't contribute to that.
If you want multiple apps that can share data, keychain info etc there are ways to do that but leave them as separate app. It makes for a much cleaner user experience.
That doesn't make any sense on the iPhone.
You should look at In App Purchases instead.