iOS - app containing another app - iphone

I would like to hand my application to another developer to assymilate in his iOS app.
The goal is to have, in his app, a shortcut that opens my app directly - not just a link to the appstore.
The problem is my app has to remain compiled, since I don't want to hand over my source-code.
Is this situation, of one compiled iOS app, encapsulated insind another iOS app, even possible?
Thanks in advance.

Your application can register a custom URL handler that will launch it whenever any application will follow that URL. It can be triggered from Safari but it can also be triggered from any other application.
Here's how you enable that feature in your app and handle incomming passed parameters etc.

All code in an app bundle has to be staticly linked, so you would have to rewrite and compile your app as a linkable shared library.

What you're looking to do really isn't possible. Each app has it's own code structure and can't be embedded into another app (MainWindow.xib for example). Each app is also signed by the developers private key, so that's an obstacle there. You can't just hand him a binary of your app.
What you could do is potentially take your .XIBs and view controllers and give them to him to implement. This is easiest if there's no model that also has to be migrated over. Then he can present your views to take advantage of the logic built into your view controllers.
It's not a trivial amount of work and of questionable value. If you're not willing to share source code then none of the above is really going to work for you.
My advice would be as people above have mentioned and use a URL scheme in his app that refers to yours. Yes, your app would need to be installed, but then there's a clear and unambiguous separation between his work and yours...

Related

Can an iPhone app hide/launch other apps?

I am asking this question mainly to know if what I want to do is possible. I don't think there is an app that does it and I've been meaning to learn objective C, but it may not be possible.
I want an app that serves as the ONLY way (at least, the only easy way) to launch another app. So in an ideal world, you have MyApp, which lists app A, B, and C. A B and C are not visible on the normal browser, but can be launched from within my app.
Possible? Not?
Not possible. And its most likely that such a functionality will never make it into the official SDK.
What you're trying to do isn't really possible. It isn't possible (with the official development kit) to create iOS applications that don't appear on the home screen.
It is possible to launch other applications, though -- one common approach is to set them as URL handlers for private URL schemes. This can be used to pass information between applications. (However, trying to use this as access control won't work, because Apple will likely reject an application which can only be opened "correctly" by another app.)
Depends on your definition of App.
You can just have a master app which creates the illusion of being an app launcher by "opening" subroutines. Imagine like the old facebook iphone app for example
NO
Well... This has been done for years on the Cydia store with some custom menus but we wont get into that here...
Using the official SDK I think there are protocols to allow you to open an another application but pressing the home button for example will always go back to the default screen. I think ever if you were able to get it working, there is no chance it would be accepted into the App Store on grounds of it not doing anything the phone already does.
By all means look up jailbreaking and using the custom tool chain but you won't be able to sell this through Apple unfortunatley.

What is a container app in iPhone?

Our client wants us to make a container app, but I am not exactly sure what he means by this. I have to extend the functionality of his existing app but he does not wish to share his code with me.. so he says I should make a container app... I know it something similar to making in app purchases but can any one elaborate ?
Note: you should definitely clarify this with your client instead of this community.
I guess your client wants to have an App-in-App structure that you find in various iOS applications in the AppStore. E.g. the three20 framework offers a launcher that is similar to the Springboard of the iPhone/iPad/iPod where you can put multiple apps (which aren't necessarily independent apps).

Is it possible to embed one iPhone app into another?

Is it possible to incorporate one iPhone app into another in order to redistribute it?
We're going to publish few apps owned by other developers and need to create some pre-rolls with our branding and some other similar features. The original developer could build the app for us, but won't provide us with a source code.
Sorry if the question sounds stupid, we haven't very big experience in the field, just need to clarify some things
Thank you!
No you can't. You are only allowed to execute your own app, you can't embed an other app in your bundle.
It is not possible to embed an app into another app, or better, you could do that, but Apple would reject it and anyway you would not be able to launch it on a non jailbroken device.
More to the point of your specific case, if you have only the binaries you could try and modify the resource files (i.e., .nib and .strings files) to modify the UI to some extent. Of course, you would then need to regenerate the signature for the app (and hope that everything works ok).
It's just a thought, but maybe you could include the other developers apps as static libraries. The advantages would be that the other devs wouldn't have to surrender their sources, you wouldn't face any code signing and bundle id related issues and including static libraries is perfectly safe.
The only disadvantage would be that the devs would still need to deliver the content seperately and they need to learn how to build a static library. An entry point for each app / each library to call it would also be needed, maybe even a small interface to allow the container app to learn about the individual apps status, to cancel them etc.
As I said, this is just an idea, there may be issues with that approach that I do fail to see right now. But maybe others can comment on this...
You might want to check out this link to learn a bit about building static objective c libraries.
Check apples Custom URL scheme, it might find useful for you. Just help=> http://iosdevelopertips.com/cocoa/launching-your-own-application-via-a-custom-url-scheme.html

Automatic Update of IPhone App

I am new to iPhone automatic updatability feature where user can change their contents whenever they want and iPhone app should pick them so that one need not to resubmit the application into Apple store. I know that I will need to deal with the database here a lot but if someone could through their idea on the solution design, implementation, and things to be taken care then that would be really helpful to me.
Thanks.
"content" here really means data. Apps can load data over the net to their hearts' content, but they can't load new code. Now, certain data might cause the existing code in the app to do one thing or another, so the app's behavior can be influenced by the data it uses. Don't play too close to the line, though -- if your data is really some form of scripting language that directly drives the behavior of the app, that will likely be deemed unacceptable.
As far as loading the content goes, there are a number of options available. The most common is probably using NSURLConnection asynchronously to load data from a web server. What the app does with the data after that is up to the app designer, and I don't think there's one objectively correct answer to that sort of question.
Apple not only allows this, but presented a session on this data driven app design technique at WWDC 2010, which is available as a video from iTunes to enrolled iOS developers.
Of course, the downloaded "content" can't include executable code, but it can include JavaScript and HTML5 to be run inside UIWebViews, as well as images, sounds, text, databases, etc., which can all be stored for offline use.
This violates apples SDK Agreement and will likely get your app removed from the app store if caught.
It should be mentioned that web apps offer the ultimate in automatic content updates. You can change the content, structure, and features of a web app without ever having to submit your app to Apple or anyone else. Deploying the app is as simple as copying a set of files to your server, and users get the updated version immediately, even if they're currently using the app. Web apps aren't a perfect solution in every case, but their capabilites are compelling if your app is dynamic.

What are the wise and allowed ways to add advertisement to iPhone App?

I will be publishing an App in a few days. Initially I don't want to add advertisements, but can change my mind anytime, so I've thought this. Add a WebView to application and set its image to a dynamic web content. If no ads; I will display a simple logo, but when ads are available, replace the content with them. So there will be no modification to iPhone compiled binary.
Do you think it is allowed by Apple, and a good approach?
If you follow that approach, you will need to at least explain to Apple when you submit the app for review that ads may be enabled via a webservice.
Apple won't like it if you don't tell them that you might modify the apps feature set or behaviour after its approval.
You should be OK as long as you tell them about it.