Download additioanal functionality into an app - is it possible? - iphone

I'm currently developing an iPhone version of existing Android application.
Customer wants to provide his web services via mobile apps. On Android this is made in a modular way: user installs main app, and then he can download additional modules to it if needed. That way he can install only modules that he needs.
Is there a way to achieve same functionality on iPhone? I read about In-App Purchasing, but I don't know if it will work because additional functionality will not be built-in and unlocked - it needs to be downloaded and added to my app as a new module - so user's space would not be wasted with unneeded modules.
Thank you!

2.7 Apps that download code in any way or form will be rejected
From App Store Review Guidelines

Judging by the question, this is not a world-facing app - it has a specific customer. With Terente's answer in mind, do consider side-loading, AKA in-house distribution. That is - bypass the app store. The prohibition on the downloadable code is an App Store policy, not a limitation of the platform.
The enterprise contract with Apple is $300/year instead of regular $100/year. But you get to install your app on as many devices as you wish, completely bypassing the App Store. Either over the air (by browsing from the phone) or via iTunes.
Under this model, your app can download, store and run custom code all you want. The specifics of the plug-in model are up for you and your customer.
EDIT: so app store is a must. How about this: have a WebView in the project, have it download HTML pages with JavaScript in them, have code hooks for JavaScript to call. To the best of my knowledge, AppStore does not reject apps that display Web pages from the Net, and if the Web page happens to have a script, there's no prohibition on executing that script.
This violates the spirit of the rule while relying on letter and precedent. Technically speaking, JavaScript IS code. And again, technically speaking, WebView is capable of downloading and running it. And App Store is choke full of apps with WebView in them.
How will this fly with your customers, who knows.

Related

Is it possible to see if PWA was installed from the APP Store vs. Mobile Browsing?

At the moment my Mobile experience is m-web and my app is PWA (app stores) ... but I want to join the two and just have PWA.
But I need to differentiate between the App Store download and the Mobile download - at least for the first few usages. (i.e. if someone downloads from the app store, I want to "hide" certain content until they have purchased, however if they access direct from mobile, they can have the content directly.)
Is this possible with PWA - to see if the version they have was downloaded from the APP store vs downloaded through mobile browsing?
You do not need to submit your PWA to the app store. Users can just access it directly.
You can wrap your PWA in a hybrid shell, something like the soon to be deprecated Cordova for example. If you do this, I believe there would be some sort of flag to check if the shell is present.
Apple is known for rejecting and removing hybrid apps, just FYI. This one reason why so many brands are abandoning native apps.
It feels like you are doing something of #3.
I get why you want users to pay through your web interface, the 30% tax is repressive. But doing this will most likely get you tossed from the app store. This is the foundation of BaseCamp's complaints.
https://love2dev.com/apple-appstore-pwa/
if (window.matchMedia('(display-mode: standalone)').matches) {
console.log("This is running as standalone.");
}
Sure you need to edit standalone if you use some other display property

PhoneGap Cordova Browser based and app

Let say were starting a website from the ground up and want to also create apps.
Could you just create the website with a REST API's and have it work on browser and PhoneGap? Would there be a conflict with Cordova plugins you may use?
So the design is responsive and its all HTML, CSS and Javascript and connects to a REST API (log in, reg, messages, db calls, etc) for the browser website and apps.
This way you can use the same code for everything and can still use some of the great Cordova plugins for the app to make it more flexible.
Would this work?
I posted this answer else where but I think it is relevant here.
Unfortunately for your app to pass Apple App store approval it will have to provide some basic functions and display correctly without an internet connection. This means at a minimum, if you plan to generate content on a server you will probably need the Cordova plugin for network information:
https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-network-information/
I would make sure you are familiar with the Apple Human Interface Guidelines:
https://developer.apple.com/ios/human-interface-guidelines/overview/design-principles/
You will probably also need to bundle any JavaScript. Apple is very picky about apps that download code (this can include JavaScript).
This is a section from the iOS developer Agreement.
3.3.2 Except as set forth in the next paragraph, an Application may not download or install executable code. Interpreted code may only be used in an Application if all scripts, code and interpreters are packaged in the Application and not downloaded. The only exceptions to the foregoing are scripts and code downloaded and run by Apple's built-in WebKit framework or JavascriptCore, provided that such scripts and code do not change the primary purpose of the Application by providing features or functionality that are inconsistent with the intended and advertised purpose of the Application as submitted to the App Store.
Another big concern is performance. How will your app handle a poor 3G or even 2G connection? Do you need to cache the responses from the API and only download them if they have changed on the server?
If a user is browsing your website on a browser they know they need an internet connection, if they are using your app they want it to work when online and offline.
Edit
Apple commonly uses this reason for rejection for website only apps.
We found that the experience your app provides is not sufficiently different from a web browsing experience, as it would be by incorporating native iOS functionality.
While your app content may differ from your web site or other existing sites, the experience it provides does not differ significantly from the general experience of using Safari, as required by the App Store Review Guidelines.

Phonegap for iphone development on Windows questino re native api

I've spent the day googling all the leads on developing iphone apps on Windows and apart from buying a mac the most suitable route seems to be Phonegap. I cannot find out whether Phonegap gives access to all the native functionality. For example I want to access and manipulate the address book contents. I also want to be able to send text messages programatically and intercept and examine incoming text messages. It would be helpful if someone could confirm whether this can be done with Phonegap.
My understanding is that Phonegap is based on webapps but I am assuming that an app developed with it can run offline for operations that dont require internet access.
Even using Phonegap you will still need access to a mac to actually build your iOS application. This is a restriction that Apple has in place, and to my knowledge there is no way around it.
Phonegap uses a UIWebView to display your application built using HTML, CSS, Javascript etc, but this does not mean that an Internet connection is required for the app to run (so offline apps are definitely possible).
With regards to Phonegap's functionality, details of the Phonegap API can be found on their website. Specific to your needs, I believe phonegap provides access to the device's address book through the contacts API:
http://docs.phonegap.com/en/2.3.0/cordova_contacts_contacts.md.html#Contacts
I don't think Phonegap provides the ability to send SMS messages itself, but many people have developed extensions to add extra functionality to their applications through plugins. The majority of Phonegap iOS plugins can found at the following GitHub repo. The plugin I think you require is the SMSComposer:
https://github.com/phonegap/phonegap-plugins/tree/master/iOS/SMSComposer

Possible to load an iOS app inside another iOS app (via in app purchasing / subscription)?

Long story short, we're building interactive content in Flash that we'd like to package and make available through an iOS app (either via in-app purchasing or subscription, or both).
Flash obviously can output standalone iOS apps, and in our tests for our purposes this packaged output works well. So rather than completely re-writing our content in HTML5 (so it could be loaded via WebkitView) we're curious if there's a way to serve a fully packaged app as in-app content?
If not, any other ideas how we could do this without completely rebuilding our interactive content? And if we do have to do that, is HTML5 the only option? Anything else that will make the port from Flash to ready-for-iOS less painful? (The Flash -> HTML5 porting tools are dreadful).
Thanks!
No there is not. This goes against the security policy iOS enforces of apps.
In terms of what you can do otherwise, it's really difficult to make any suggestions when you're not providing any details. The best I can suggest is include this functionality in your app, but disabled. In-app purchase will just download some sort of unlock code which can be used to make it available in your app.
Afaik something like this can not be accomplished by creating several apps. You would have to pack everything in just one app, and then make some parts of that app available as in-app purchases. As this is realized through specific SDK functionality, if your tool for compiling the flash to iOS-ready code doesn't support it, you are pretty much stuck there.
In case the tool produces human-readable code from your flash, you can add the in-app purchase manually.

Will a Safari-based app for iPhone be accepted to the iTunes store?

I'm about to begin development of an iPhone app. The app itself is fairly basic, and I want a speedy turnaround time.
I'm a web developer myself, specialising in traditional web technologies such as PHP/MySQL; I have no experience in Objective-C.
My plan was to create a very basic iPhone app that is just a Safari service that passes some basic variables to a URL. That URL is the app built in PHP and housed on my servers, this way I can create the app very quickly without needing to outsource anything.
My question is whether apps of this nature would be accepted into the iTunes store, or would they be out-right rejected? Anyone's experiences or comments are very welcome.
Thanks
It could go either way, but mind bullet 12.3 from the App Store Review Guidelines:
12.3 Apps that are simply web clippings, content aggregators, or a collection of links, may be rejected
In my opinion, a simple UIWebView wrapper around your web site comes close to the definition of a simple web clipping. Your approval may very well hinge on your luck in drawing a sympathetic reviewer.
It really depends upon your application...These kinds of application have been approved in the past but again I am saying that it depends on many factors.
Try to test your app in every possible manner and also keep in mind the memory issues.
Best of luck!!!
Should be fine - its called a web app and there is software out there that will do just this for you.
All you need to do is to make a UIWebView and put your web app into it.
Also look at http://jqtouch.com. That gives you some idea of what you can do web-side. :)
http://www.netbiscuits.com/559
Native Hybrid Apps
Native apps can interface more deeply
with the mobile handset modules and
sensors to create an even richer
mobile user experience. Netbiscuits
provides pre-build native apps
frameworks for all major mobile
operating systems to be easily
customized for the needs of
enterprises.
Get "2in1" by combining the power of
mobile websites and native apps by
wrapping mobile websites into hybrid
apps and list them easily in all major
app stores of providers like Apple,
Nokia, Google or Samsung to open a new
mobile distribution channel. The
benefits of this approach are fast
time to market, minimized development
and maintenance efforts and maximum
mobile cross-platform technology
coverage.
Yes, it will be accepted as long as you stick with HTML, CSS, JS and Obj-C on the client side. You still need to wrap it in an iPhone app. In my experience, the best way to this is to use http://www.phonegap.com/ or a similar framework.
You'll have the option of deploying you app through iTunes or as a regular web app (you users will be able to create a link to your web app right on their springboards)
It SHOULD be accepted, granted you test test test and make it look just like a native application. Also you'll have to make sure that your server is never down, or if the application can't reach it just display an error message. You also have to keep in mind that there are a lot of iPod Touch users, and they don't have access to the internet all the time. Which means that chances are you'll get a BUNCH of 1 star reviews