I would like to create a modular app in Android. A user would download the core app with some basic functionality, then later on download more more modules and install them into the app. He will also be able to uninstall them, but still have the core app. Is this possible in Android? How should I approach it?
Related
I am building an app that can host multiple games. The games will be made in Unity3D. For the app, I was torn between Unity3D and Android Studio. I am thinking of using Android Studio.
Can the desired task be done in Android Studio? Later on I also want to be able to load new games into the app from a Web Server, that's why I'm going with Android Studio
Although it is possible to export from Unity into an Android library, you can only have one instance of the UnityPlayer at a time. And it is not possible to restart that instance once you quit it. But I never tried to have multiple Unity projects in one Android Project, so it might still be kind of possible
Unity introduced native library support in 2019.3 (still in beta). Perhaps this will develop in your favour, but your requirements are a bit exotic.
Another approach could be to develop all games in one Unity-Project and then export scenes of a single game as AssetBundles. That would eliminate the need to handle multiple Unity-Projects but has downsides on his own.
Lets say I have a RESTful web api as a backend, and a seperate client side react app. Ideally I'd like that react app to run on android/ios mobile devices. What are my options?
The ones I am already aware of:
Create a "shell" app that is basically a WebView/UIWebView that loads the web app. You could go further and add some other functionality like navigation to make the app feel more native. This would be quick to implement but the downside is the app wouldn't feel as nice as a proper native app.
Use Apache Cordova or similar tool (hybrid app). The advantage over WebView is that it has a standard api/set of plugins to access that allow use of device features like camera or geolocation that work across different platforms.
Just create a completely native app. One option would be to use react-native as this would be a similar developer experience to react, but AFAIK this would still involve the creation of a separate app - existing react code could not be re-used (is this correct?). A great user experience could be provided here but the downside would mean slower development time because another app would need to be created.
Does anyone know if there are any options I've not considered here? Also, any comments on getting some kind of code re-use between react and react-native apps would be great.
in my company we plan to develop an app with different modules. We develop Apps for Apple, Android and Windows. We have some default modules like inventory and relocation, but for some customers, we need to develop custom modules. The question is, what is the best way to provide this app to our customers and how we can use update functions?
If we build one app with every module, and just unlock the modules based on the customers licence, it will be massive inflated, at the time. We have up to 20 customers and each of it needs 2 or 3 custom modules.
To build 20+ apps and distribute it over the store, it will be really difficult to manage each app. And if we update some core functions, every single app must be updated. Not a good way.
So what is the best way to develop custom apps for our customers and ditribute and update it?
sorry for my english, it's not the best..
So you don't want to include all modules in every app installation, and you don't want to distribute many different versions of the app, each one with a different combination of modules.
It seems to me that the only solution you have is to download your modules after the user has installed the app and chosen their license.
The easiest way to implement this is with a web app as opposed to a native app. However if you want to write a native app you are able to download and execute binaries at runtime.
This thread contains a few different approaches to achieve that:
Is it possible to dynamically load a library at runtime from an Android application?
Good luck!
I have moved from an iOS background to Android recently. My usecase is following.
I want to build a suite of apps. Each app needs to make server calls or do database operations. I do not want to write the code in each app of mine to do these operations.
So, I want to build a framework of my own which has API's exposed to do server and DB operations. Now, I can just import this framework in my applications and do server/DB operations.
In iOS this could be achieved by building a static library. How can similar thing be achieved in Android?
Initially I was thinking about services but If I am not wrong they are specific to only an application and can not be shared among different applications.
How can similar thing be achieved in Android?
Create and use a library module.
Initially I was thinking about services but If I am not wrong they are specific to only an application and can not be shared among different applications.
Services can be exported from one app and used by other apps.
A library is a compile-time construct. You are saying that you want one copy of the code on your development machine, but each app incorporates that code and uses it independently of other apps.
A service is a run-time construct. Here you are saying that you want one copy of the code running on a given device, and that other apps should talk to that one running copy of the code to perform various operations. This greatly increases the complexity of your apps and the coupling between them, and so using a service is not a simple substitute for using a library.
You're wrong about Services, I have a scenario where I communicate to same web server in each application.
So instead of writing same service in each application, I wrote one standalone service application which will expect my all application to Broadcast a message (depends on scenario). I exposed my database to service through ContentProvider. So my service know my application data. I achieved this successfully. Also you can use library module. You can know more from this link
Hope it give some idea.
If I build an app for iOS and Android and I distribute it. Let's call this the basic version of my app. A year later, if I decide on a change to my app (a new view or feature) but I only want to distribute this to some users, can I list it as a separate app on the app stores as a "extension"? Then when downloaded (by someone who already has the basic app) it simply extends the functionality. If it's downloaded by someone who doesn't have the basic app, it prompts them to download the basic app along with it?
Yes, you certainly can do this. Android platform offers IPC (Interprocess Communication) mechanism via AIDL (in Android every app is run in its own process by default) and it will be probably used to communicate between your apps. To get information about other apps you can use PackageManager.