Best practice for country-specific app submission - ios

After referring already discussed references -
https://developer.apple.com/internationalization/
https://www.raywenderlich.com/64401/internationalization-tutorial-for-ios-2014
https://developer.apple.com/library/content/documentation/LanguagesUtilities/Conceptual/iTunesConnect_Guide/Chapters/AppStoreTerritories.html#//apple_ref/doc/uid/TP40011225-CH18-SW1
https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPInternational/Introduction/Introduction.html
https://forums.developer.apple.com/community/app-frameworks/localization
Multilingual app in App Store; use two versions - or use apple localisation? (special case)
I understand below possibilities, but no solution! -
Have one universal/generic app, and add internationalization and localization as per user language and manage features accordingly.
(This is based on language of user, not country or store so would not serve my purpose)
Have different apps with almost same features but having country specific changes (due to some country protocols/requirements), and release each for specific countries/store only.
(Possible solution, but will it carry a risk of app store spamming
with similar apps even if those are in different store? and certain
risk is to maintain separate code base)
What could be the best way to serve different countries with their slightly different requirement in the main app?

I would recommend to have one application and in which based first you fetch the location of user and based on that location you can load the assets or code based upon the country.

Related

Uploading different versions of the same app to the App Store

I have an iOS app in the App Store and I want to use my app in different countries. So I wonder if it's possible to upload a different version for each country.
For example, I want to update Turkey's app but I want to hold the old version of an app on the UK market.
There are essentially two options to consider:
Using localized models/controllers in order to display a different content to users with different locales. Here's the Apple Developer guide about localizing your app.
Creating different configurations with different Bundle ID suffixes and treating the them as separate apps. You can read more about configuration handling here.
I'd recommend the first one for most projects, since it's easier to handle one app than several ones. However, it's up to you and the project which one you'll choose.
You cannot hold a version in different countries say for example If your app is published in 2 countries then next version will be automatically available in that 2 the countries because does not allow it.
If you want can add or remove the countries but if we talk about version holding on some countries that is not possible

How to split functionality into separate apps iOS?

I am working on an app that serves two different types of user. Both users have some common functionalities.
One group is the general public, who uses the app to navigate basic events or request for new events.
The second group is who can provide services to the general public (can be paid or unpaid). They primarily access the profiles created by general users. They can add details, e.g. notes about conversations with them.
Now we want to divide both the users because the app is getting quite large and at any time user can be part of one group only.
How can I create separate apps?
Using different targets for each group is it a better solution? I tried this but it is not helping us to reduce app size.
Creating separate project will make maintaining challenge because both uses have some common functionalities.

White labelling Enterprise iOS application

I had developed 3 applications for my client. Now he wants to distribute it to other organizations (doing same business). Other firms will have minor data and image set changes, other functionalities are same. What is the best approach for distributing this 3 application with the other firms?
1) One solution I think is to upload this 3 application to each firms apple enterprise account.
Prons:
UI and functionality can be changed for each apps depends on business
changes.
Will have different server and APIs. So data security can be increased.
Cons:
Need to maintain different source codes.
As firms number increases applications also increases, which can be a form of spamming appStore
with similar applications.
2) Another solution is to upload this 3 application to one account and is distributed among other firms. Need to check any legal issue in doing this. By this server will maintain different database for different Companies and user registered with this company will link to the corresponding database. All other calculation and logic will be handled by the server. iOS application switches image set w.r.t company.
Can I do this by any other approach or which one is the best one. The main idea is to give a contract to another firm by creating a set of users having an extendable validity date and this is maintained by my client.
Thanks in advance and any thought on this is appreciable.
The best solution to this is Volume Purchase Program for Business
provided by Apple. It provides you with a functionality called Custom B2B apps for iOS. You can read the details in this document.

Expanding a website - providing different contents across different places

I am working on a website. Currently the website was targeted to serve users from a specific Geographic region. Now I would like to expand its userbase to another region. The need is to serve different contents to different regions with the same base functionality.
My initial thought (I might sound a noob here) is to host the content specific to different regions on different databases -> Redirect users to specific domains and thus map the users geographically. Do suggest if its the right way to proceed.
Also, I would like to know whether there is a need to localize my website for these regions (Current language used is English)
Please post your experiences in such scenarios and also your ideas to bring about the transition.
Thanks in advance.
How do you see users being matched to their specific regional content?
Will they be presented with an option to choose?
Will you use geo functions to determine location?
Will you use server based reverse DNS lookup to determine location?
Will each region get its own "entry" URL (aka different domains)?
The first three are fraught with their own specific problems...
Presenting a choice/menu is considered bad form because it adds to the number of "clicks" necessary for a user to get to the content they actually came for.
While geo functions are very widely supported in all modern browsers, it is still seen as an issue of privacy in that a large number of users will not "allow" the functionality, meaning you'll have to fallback to a choice/menu approach anyway.
Server based reverse DNS, while a common practice, is very unreliable because many users are using VPN, proxies, TOR, etc. to specifically mask their actual location via this method of lookup.
Personally, my experience is to use completely separate entry URLs that are all hosted as virtual domains on a single Web Server. This gives you a large array of methods of determining which entry URL was used to access your code, and then format/customize the content appropriately.
There is really no need to setup separate servers and/or databases to handle these different domains/regions.
With that said, even if the language is common across regions, it is a very good habit to configure your servers and databases to support UTF-8 end-to-end, such that if any language specific options need to be supported in the future, then you won't need to change your code to do so. This is especially true if your site will capture any user generated input.

same iOS app with different personalization?

I'd like to program an app which essentially has the same functionality, but with different personalization at the icon level. For instance, the app essentially would have information and communication functionality for a particular business, but I'd like to have the icon/name in front reflect the specific business name. So in other words, the app would let you do things like browse merchandise and place orders, but for two different clients one would say "Home Depot" and the other would be "Loews" in the icon/name.
In the end, I'm customizing the "storefront" to the client, but the backend is pretty much the same in terms of functionality.
Is there any way to do this programatically? I suppose I could submit different apps to Apple, but given that the code would be essentially the same, wouldn't it get rejected for similar functionality?

Resources