PhoneGap in regards to App Store approval - ios

I read that PhoneGap is approved by Apple as a framework for building native apps, but I'm not clear on how this does not constitute a "website wrapped as an app," something that Apple specifically doesn't like, as per their App Store guidelines. I'm assuming it is because the JS is contained in the application, rather than running on a remote server?
Any clarification on this issue would be most appreciated.

but I'm not clear on how this does not constitute a "website wrapped
as an app," something that Apple specifically doesn't like, as per
their App Store guidelines.
By this Apple means Apps that simply show a UIWebView that loads a remote website, so it basically just behaves like Mobile Safari, just without the controls. Also they wan't Apps to show at least a UI when the device is not connected to the internet, like in the Facebook App where you can still read already downloaded status updates, view photos etc. That's what a "I just wrap a remote website inside a UIWebView"-App can't do.
PhoneGap Apps have all the resources they need (HTML, CSS, JavaScript) on the device residing in the App's bundle, so using such an App would not depend on network availability and could at least show a UI that tells you to connect to the Internet in order to use the App, or they could display already loaded content (like Facebook, Twitter and so on).

I think that the signature of the binary tells Apple what framework built the application, and since all the supporting files (js included) are included in the project and therefore in the binary, it is a standalone application. That being said, I still think that doing things Natively is the best way to go. I am extremely comfortable with javascript and started out thinking Phonegap was the way to go for me. I did a couple of projects with it and then decided to take the plunge and learn Objective-C. That worked out so much better for me. No dependency on a third party framework and I wish that I had started that way.
Sometimes the easy way out just hurts ya in the end IMO.

Related

Can you set up iOS Universal Links without a separate website?

Is it possible to set up iOS universal links without having a separate website?
For example, if you want a universal link that 1) opens your iOS app if the user has it installed on their device and 2) opens up the App store listing on any device without the app installed.
It seems that having a separate domain you control is the standard way to do it. The Apple documentation (here), and other guides like here and here, seem to make it pretty clear that you need to add the JSON code in the Apple App Site Association file to a separate website that you control.
But is it possible to set up universal links without that website?
Detail:
For an iOS mobile app developer, setting up a separate website, dealing with website hosting, etc. is distinct from building an iOS app, and an involved additional task to go through just for universal links. Many developers might have a site already or have experience building websites in addition to mobile apps, but it's still a different thing than building mobile apps.
So I'm surprised if Apple assumes app developers have a website ready to go for the purpose. I note there are non-Apple alternatives that do similar things that clearly don't require a website.
Edit: I am familiar with alternative linking systems, such as Firebase and Branch. I want to see how you can do it with Apple Universal Links.
So let's say you want to stick with Apple universal links. Is there a way to do it without setting up a website, dealing with hosts (and potential costs for that), etc?
If it is necessary, what would be the cheapest and easiest way to set up the bare minimum site for a mobile developer that would work for universal links?

Are Google Play and Apple Store allows InAppBrowser of ionic to view a website only?

Before create a new account for iOS, android to upload web app to Google play and apple store, I want to ask:
Are they allows developer to upload an application that use InAppBrowser of Ionic to view website through that uploaded app ?
We need this to keep our work up to the latest date of updates for all users without need so many versions for both iOS and android.
So, are there any positive, negative or past experiences related to this topic ?
If you take a look at the review guidelines from Apple, https://developer.apple.com/app-store/review/guidelines/ it states that
4.2 Minimum Functionality
Your app should include features, content, and UI that elevate it beyond a repackaged website. If your app is not particularly useful, unique, or “app-like,” it doesn’t belong on the App Store.
I would make the case to package your app as an Ionic app, and use either Ionic Deploy, or Code Push to update the content of your app on the fly. Note: This type of deployment cannot update Cordova dependencies, but it does let you keep your html, css and js files up to date.
In general yes, they allow this, but they might get confused (specially Apple) and ask you to be careful about the links that you open inside your app.
For example, Apple has certain guidelines about apps that buy/sell cryptocurrency. If you put a link to a buy/sell cryptocurrency website and open it inside the inAppBrowser, the app reviewer might "think" your app is for buying/selling cryptocurrencty and you might get rejected as a result.
However, if you put links to normal website, for example CNN, they should be ok with it, as there are many apps that already do this.

Don't need the App Store to make apps anymore?

I recently found a site that allowed me to bookmark the site and then use it just like an app. There was no url bar, it was indistinguishable from an app you would download on App Store. Is this a new upgrade or technology ?
This is not new technology, I don't remember how long it's been out, but I'm pretty sure at least since iOS 3. It's called a webclip. You can do quite a bit with a webclip but are still limited to functionality provided by JavaScript, so no accessing the flashlight and certain hardware features (although many are being included in the device JS object). Though it is certainly much easier to implement basic app functionality!
+1 to SnoApps and here's a bit more detail about this older detail.
You can specify a webpage to appear like a regular app icon on the iPhone "home" screen (where all the apps appear).
There's more information here under the "Configuring Web Application" section of this Apple Safari Web Content Guide.

Making an App with PhoneGap that operates without internet

I want to create a small App that just shows WebPage with link, video Playing and PDF Documents. The problem is that I expect the app to open Video, PDFs etc without accessing internet.
So, when I click on video, it should play even without internet.
Is it possible to do this in PhoneGap?
As long as they are in a format that the device can handle in the browser directly, you should be fine. A good way to think of PhoneGap is like an enhanced web browser.
You should be able to put the files into the resources, and PhoneGap should be able to access them completely fine. It essentially works by using the file:/// scheme, so you can probably try making something like you'd want to put on the iPad, and try it on your computer. If it doesn't work on there, it likely won't work on the iPad either.
In terms of video files, you'd probably want to use an .mp4, as these should be natively supported by the iOS WebView.
Now that being said, if you're trying to get your app in to the AppStore, you may want to look into the Apple User Interface guidelines. For example section 12.3 of the App Store Review Guidelines states that apps that are ... a collection of links, may be rejected.
You may also find the iOS Human Interface Guidelines helpful.

Sharing Data Between Apps on an iDevice

Is it possible to share on-disk data between iOS applications, or are they truly sandboxed? In other words if I wanted to make a shared repository of data to be accessed (and/or modified) by one or more of my apps, could it be done?
One of the listings on the iOS features page is "Share Data Among Apps", but is this what I'm looking for, and what are the related APIs?
Googling hasn't turned up much else in this area and I know I can construct a path to just about anywhere in the iDevice directory structure. Would it be against Apple's TOA, leading my apps directly to rejection, or is there hope for such an architecture?
Nothing too easy unless your app is iPad only. Otherwise this thing speaks about URL Prefixing. See "Implementing Custom URL Schemes" http://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/StandardBehaviors/StandardBehaviors.html%23//apple_ref/doc/uid/TP40007072-CH4-SW7.
Here is some info on the iPad only Doc support: http://developer.apple.com/library/ios/#documentation/General/Conceptual/iPadProgrammingGuide/CoreApplication/CoreApplication.html%23//apple_ref/doc/uid/TP40009370-CH6-SW2 see "Document Support on iPad Devices". This DOES NOT work on iPhone/iPod
That looks like marketing speak. The only way to share data locally is to pass it in the URL when launching another app. Otherwise, you need an internet server based solution.
Another thought: can you use TCP locally between apps with the new multitasking support? Apps like Air Sharing are allowed to create listening sockets.
using ios keyChain you can share data between apps.

Resources