Open other applications with their Deeplinks in Swift - ios

I am learning to have deep links in my application.
I would like to have my users link their social media, blog, or other site in my application.
But, it should attempt to open a link by detecting the site and attempt to open that site's application (at least for mainstream social media etc).
I was attempting to use https://github.com/BranchMetrics/Roots-iOS but their own demo does not even work it seems and I could not get my application to work(I am also using swift so I am not used to reading Obj-C too much).
Does anyone know how to do this?

Although it is not quite what i needed, the library https://github.com/SwiftKitz/Appz is pretty close.
It launches to an external application, with a web fall back. It is also pretty easy to add code to pass a url and detect the base application and parse it out into that applications deeplinking scheme (which was info I didn't have before.)
Sorry for the trouble on this.

Related

Can a Meteor web app serve data to an iOS app?

Pretty straight forward question i think. I have created a web app in meteor and its using mongoDB storage. I have UI to update the data in the backend through the web app.
The question then becomes, I have designed an iOS app that i would really love for it to read the data being served to the web app from the mongoDB. As it stands, the app takes a url to a JSON file that i update regularly and serializes it accordingly. I want to pass on the tasks of updating the backend but exposing company employees to the potential mess of JSON backend, where missing/deleting a bracket / brace causes the app to break is out of the question.
My question is, since the meteor web app stores data as JSON documents, is there a way i can access the same JSON from the iOS app? It would really help because then, the person updating the backend only deals with UI, not code. I know this is a pretty broad question, but any pointers would be fantastic. Links, tutorials, frameworks to learn... anything. I've been googling around but can't seem to find anything solid.
Thanks!
You'll want to look into using one of the many iOS based DDP clients, like this one. With these libraries you can connect native iOS apps to the backend of any deployed Meteor app.
As far as I understand, you are looking for a way to get/update the data of your meteor server from the IOS app.
To do that, you can expose an API, like a REST one. Basically, your IOS app will call your Meteor server via HTTP and send/receive JSON data. Like that, you can get your collections, update, add, delete their items as well. There is a lot of literature around REST.
I used a very old one that I do not recommend because it is not maintained anymore, I will put the link anyway Old Rest API.
I invite you to have a look at atmosphere, the meteor package library: Atmosphere. I did a quick search on it and I found this package that looks promising: Simple Rest.
Have a look at the packages on Atmosphere, you can use 'rest' as keyword and pick the one that fits your needs. I am especially thinking of security ;).

How would I create an app for a website that does not have an API and uses ASP.NET?

Basically what I'm looking to do is to create an native interface for a website that does not have any sort of API. This would be a 3rd party app that would provide all the same functionality of the website, just optimized for iOS. The real problem I run into is in sending and getting user-entered data to the website as it is using ASP.NET which I am not at all familiar with and the user would need to log-in to the website.
This is kind of a convoluted question, but I am sitting at square one and not even really sure where to go from here.
It sounds like you are asking if you can create an iOS app that can interact with another website that doesn't have an API? If my understanding is correct, then there's really only one option I can think of.
You would have to make your iOS app make HTTP(S) calls to the ASP.NET based website and simulate GET/POST requests as if it were a "real" user. You would do this by using one of the native iOS HTTP clients (NSURLSession, for example) and would have to strip and parse the HTML you received back from the website in order to get the raw "data" required for your iOS app.
The situation you are describing is pretty complex and very brittle (you have to make a change to your iOS app every time any change is made to the ASP.NET website) and I would avoid this method of integration at all cost.

UIImagePickerController modular replacement

I am looking for a replace to UIImagePickerController that allows custom extensibility for local pictures, public API's like Facebook/Flickr/Tumblr/Picasa/SmugMug, and custom proprietary picture collections (local or abroad).
Solutions I have found so far, and problems with them:
http://picture.io/photopickerplus
This is almost perfect, except I am forced to use the 3rd party service from getchute.com - what happens if this site goes dark, permanently? And all permissions dialogs list "Chute" as the application name. My app uses the Facebook SDK elsewhere, so I would like to use my existing APP id/key. When I add it via the chute app control panel, I get the Facebook API error "Invalid redirect_uri:Given URL is not allowed by the Application configuration". Which I can fix with the Facebook API, however if A. I knew what the URL was (I don't), and B. I really was OK with having a middle man with the API requests (I'm not).
It is also very ARC hostile which is a PITA to get running.
https://github.com/arturgrigor/AGImagePickerController
Very nice replacement for UIImagePickerController, that includes multi select. No built modularity to support Facebook or other API's.
https://github.com/jeena/JPImagePickerController
Simple replacement for just UIImagePickerController - doesn't seem to have navigable views. No apparent modularity.
https://github.com/facebook/three20/
Looks complicated. For obvious reasons won't play well with non-Facebook services.
https://github.com/mrdavenz/CaptureSessionManager has example code of to create your own photo picker with AVCamera. You could use this as a starting point. See the blog at http://www.musicalgeometry.com/?p=1297

Which one is better for social networking integration in iOS development?

I have searched on net for social networking integration in iOS projects (For example: Facebook, Twitter, etc)
I found there are also SDKs available for particulars and some OpenSource projects/frameworks are also available for the same which combines all into one like (ShareKit).
What is the difference in those two? Which one is better to use? Is there any problem to upload an app on AppStore which is using ShareKit framework/code?
Thanks in advance.
Mrunal
If you are using ARC in your project ShareKit is a big waste of time.
Twitter can be added very easily using the Twitter framework and TWTweetComposeViewController. Not sure about any others.
#mrunal check Socialize out: http://www.GetSocialize.com and see what you think. Full feautre list at http://go.GetSocialize.com/features
DROdio
If you are only looking to use Twitter and Facebook, then it is simple enough to just use their API and implement it in your code.
If you are new to development or want to use more (Delicious, Tumblr, Read It Later, Bit.ly, Mail), then I would highly recommend using ShareKit. It allows for sharing of text, URLs and even images. It takes less than an hour to setup even when using ARC and comes with a sample app to play around with. It is also easy to update when more features are added or the API of one the sites changes.

Does Apple accept apps with an embedded browser using UIWebView?

Can you tell me if Apple accepts an application that opens an embedded browser with most of the functionality living on a web application on the internet?
I have read contradicting opinions on this, and I have even seen several apps that seem to use an embedded browser for the main functionality of the app. Still I couldn't confirm this.
This way we could correct problems on the application functionality on the server with no need to submit another version of the app, while keeping the ease of release through the app store and the home screen shortcut.
Thanks!
I can't get the exact quote from the guidelines, but I know that Cordova apps are allowed, and updating the web files dynamically without going through a new native app version is also allowed, as long as:
* The updated code runs with the Safari Webkit engine (true for Cordova)
* The main functionality of the app is not changed
You say this is a bad idea because the user can save a bookmark on their home screen. This doesn't seem to me like a reason for something being a bad idea to me. If this is the only drawback then I would say go ahead and do it. Why should I care if someone wants to bookmark to my site? The app will not work very well outside the app anyway. If you have an actual logical reason why this is a bad idea instead of some emotional response then please bring it up.
I am doing this too in my application. I am under the impression that as long as you are pointing to a secure site then it should be okay. Please enlighten me: is there some good reason why Apple forces people to develop applications the hard way? A web application is hard enough without having to deal with some monolithic organisation imposing ridiculous rules on you.

Resources