Which update mechanism should I apply to an around 30m app? - macos

Now I have an around 30M app, when I need to make an update for the app ,I want to update only a little part of the app,what shall I do with the app? Should I make a updating app for the app or should I make it like downloading the whole new app every time?
I forgot to say that it is an app running on the Mac OS, not iOS.

Without more context, the best answer is "It depends". Off the top of my head, I can think of these factors which would affect your decision:
How many users use this app? What is
the bandwidth availability of these
users?
Do you expect the users to download and install the app? Or do they need
an automatic update? Has anybody
asked for an automatic update?
Is it a desktop app or is it a client server kind of situation?
Have you already split up the app into components so that you can ship
just a small component, replace it in
the deployed app and expect the whole
thing to work?
Edit: Based on context in the comments: Since the app is a playing music from some online source, I'm assuming it'll need to connect to some central server to play the music. You could make a small wrapper application around the music app. You'll need to change the installer such that the wrapper app's icon appears on the desktop and any launchers you have. So the user will launch the wrapper app first instead of your music player app. The wrapper app can then contact the central server and ask for the latest version of the music app. If the installed version of the music app is older, then the wrapper app can either automatically download the latest version of the music app or prompt the user to download it or .... Once the download and install finishes the wrapper should launch the music app as well. Depending on your situation, you can get fancy and make the wrapper app download only the changed portion of the music app, etc.

Related

How can I test an older version of my app in Google Play Store?

I'm using Google Play Store to distribute an app.
For a certain issue, I would like to install an OLDER version of my app to one of the client's device.
I'm struggling to do so, is there any way to do that?
No matter how and which "testing" method I apply, Google Play automatically shows the HIGHEST version of the app which is the "release" version ignoring the old test versions.
Creating an APK would be NO way because I need Google Play's own signature in the apk to make things work (to test the things we would like to)
Is there any way at all to distribute my OLDER app version from Google Play store?
(By the way Google's testing methods are inexpressibly unusable even apart from this problem. You never see what really happens, you cannot really manage the testing channels the GUI is miserable the notification email is late the testing is slow and painful you don't see the version number in the Google Play Store, there are like 3 methods to do so and the difference between them is not self explaining, I give 1 start to the developers who made these parts of Google Play I hope they read this.)
Thanks in advance.
From Google Play Console go to App bundle explorer
Then choose the version you want to install
Go to Downloads tab
click on Copy sharable link
install it from you device using this link
Note: the device's Google Play account should be an internal tester and enable internal testing from Google Play on this device.

Struggling to find good Examples of iOS app clip & Android instant Apps

I've searched for examples of iOS app clip & Android instant Apps but could not find more than few examples.
I am looking for released apps in App Store/Google Play or open source examples.
good examples could make developing these new features easier and gives developers new creative ideas to use these wonderful tools.
Do you have an app that utilizes App clip or instant app?
How did this affect your app?
What is the challenges you have faced?
Note: I know this is not a typical question but it need to be asked in a community full of great developers who love to share knowledge with others, and I don't think there is a better place than here.
Intro
I know it's been 10 months since you posted the question but I just stumbled upon it now... I've developed an app called ARShades for both iOS and Android that allows the user to try glasses on via Augmented Reality and I'm still in charge of development. The app supports both Instant App and App Clip, although I'm facing troubles making the the app banner show for the App Clip.
Firebase issues
As far as I can tell developing App Clips is a tad harder than develeloping Instant Apps, I'll tell you why. The main apps for both systems make extensive use of Firebase Firestore and many other features. This isn't a problem on Android where sockets are supported across the board, while on iOS they are only supported in the main app, so I had to use REST API to read and write data on Firebase when developing the App Clip, it's been a nightmare since it was the first time for me dealing with REST APIs (I just finished yesterday and published the update).
App Size
Another issue I faced is related to reducing the app size. On Android I had to remove all the unused images and compress the remamining ones. On iOS I had to separate the asset catalogues between: used only by the main app, shared, and used only by app clip. And of course I went through some compression works there too. I forgot to mention that I developed a new app as Instant App on Android, while you cannot do the same on iOS since it must be in the same project.
App to site linking
Another insidious part was the linking of the site to the apps. I managed to do it on Android by making changes to the manifest and specifying the host, while I can't seem to find a way to link the App Clip to the site in ay way. I've done everything the documentation says. I've put the apple app site association file in the .well-known folder but nothing, no banner shows up. I'll keep working on that.
Edit: Everything is now solved.
Conclusions
So, to sum up, I've found Instant Apps better on the developing and hassle side of things, the support sockets, hence the full suite of frameworks the full apps have. I hope I kind of answered your question, although I think you have documented yorself elsewhere in these past 10 months XD
Links to Android: https://play.google.com/store/apps/details?id=it.spaarkly.arshades&hl=en_US&gl=US
Link to iOS: https://apps.apple.com/us/app/arshades-demo/id1586661818
Link for trying Instant App / App Clip

Is it ok to hide a "Developer mode" in my app?

I have an mobile app. While in debug, I need to test several different stuff, so I created a button that shows a list of these tests.
Even in Release, some things are different (Apple Push Notification). So I need to test in release too.
Is it ok to leave these shortcuts hidden when releasing the app?
Doing so would leave a massive security hole in your application, which should be avoided at all costs. In fact, if you're creating an iOS app, I doubt such a hole would get by Apple's independent release testing.
Ideally, you should be using separate coding environments for development, testing and production. When you're developing, you should be using one of the various simulators to test as you work. There's an in-built one in XCode that can simulate a variety of Apple devices, and if you're using something like Ionic, you can hook it to a live preview in a web browser.
Once you're happy that things are working on your computer, you then should be deploying a development .ipa / .apk file. This file should only be released 'in-house', manually. If that's all good, you move on to testing. For testing, create a secondary file, and this can be distributed for external testing through something like Apple TestFlight.
For production, you'd remove any 'backdoors', as in theory, your app would be ready for the public. At this stage it's a simple matter of releasing it through either the Google Play Store or Apple Store.

Is it possible to publish game update to AppStore and Google Play simulanously exactly at the same time?

When developing online game I would really like to avoid supporting different protocol versions. The server can check the version of a client and deny login until the client gets updated. But the problem here is that I need the app update to become available simultanously at the same time on AppStore and Google Play.
Is it possible to do? How do you solve such versioning problems?
Well, I am not sure how it works for the GooglePlayStore but if you choose Developer Release instead of automatic then you could just release it in the moment it approves on the GooglePlayStore and about 30mins. later your iOS app will be online and available as well. That's what I'd do.

Does Spotify and cocoalibspotify apps share a common offline file repository?

Can an app using cocoalibspotify access offline files that were made available offline through the iOS Spotify app or a separate app with libspotify, or does libspotify use a separate offline file repository for every app which incorporates it?
I.e. If I make a song available offline in Spotify's iOS app, will it be accessed locally when played through a third party cocoalibspotify app or will it be streamed?
CocoaLibSpotify/libspotify uses a completely separate offline store. This is partly due to a limitation of iOS — applications cannot share files. Whether a track is offlined or not in the Spotify client has no effect on third party applications.

Resources