How to debug deep linking in iOS

What is deep linking?

Deep linking basically enables you to open an app from another app or a website while passing on parameters. This mechanism works with custom URL schemes which you can define in the .plist of your app.

Why deep linking?

If you have an app with lookup functionality (e.g. an app for finding song lyrics) you might want to perform a lookup without having to navigate to the designated screen and typing in the query. This can be achieved by opening the following example URL MyAppScheme://myAction=lookup&myQuery=What%20is%20the%20meaning%20of%20life in another app of the browser. In this case the app is programmed to read the ‘myAction’-parameter on startup to determine the action and the ‘myQuery’-parameter for the search query. Often, deep linking doesn’t go as planned and you might need to debug your app.

Why is debugging this difficult?

Deep linking might occur in three kinds of scenarios:

  1. The app hasn’t been installed yet
  2. The app is running in the background (or foreground for that matters)
  3. The app is installed but not running at all

Scenario 1 is irrelevant in this case, so we’ll skip this one. Scenario 2 should be no problem since the app is running on the device (or simulator) while in a debug session. Scenario 3 requires you not to have the app running, but you need the debug session to be able to debug. This is a problem because Xcode starts the app automatically when starting a debug session. Instead of letting Xcode start the app, you want to do it yourself using the deep link URL.

So… tell me how to do this

There is a convenient option which enables you to start a debug session by manually starting the app. To achieve this, go to the ‘Edit scheme’ screen and tick the ‘Wait for MyApp.app to be launched manually’ option on in the ‘Run’ configuration.

Image

Whenever you run the target in Xcode, the app doesn’t automatically starts and the debug session will only start when you manually start the app.

So start kicking some bugs ass!

Advertisements

iPhone 5: Impact on developers part 1

As you might know, Apple has recently presented its fifth generation iPhone. A lot of new features were announced compared to its predecessors. Will the iPhone 5 be a programmers heaven, or hell?

The four inch display
One of the big changes to the iPhone 5 is the increased display with a 1136-by-640 resolution. Up until now, iPhone developers didn’t have to worry about screen fragmentation like Android developers. This however isn’t the first time we had to adapt to display changes made by Apple. Remember the introduction of the Retina display? A bigger display means more space for content on screen. This could be used to just make an XL version of your app or to totally revamp it. During the iPhone 5 presentation Apple showed some examples of these apps that complement the larger display.

Don’t despair if you don’t have time to prepare your app for the iPhone 5. Apps currently in the App store don’t require any changes and will run fine on the iPhone 5. The iPhone 5 will place bars on the top and bottom of the app to fill the display.

Will this be the only time Apple increases it’s display or will the next iPhone have an even bigger screen.

To be continued….

No strings attached

In today’s world, who needs wires. Checking your email, playing a song thru your HiFi set or transferring data to your computer can all be accomplished wirelessly. Ever tried to charge your phone without an power adapter?

A couple of years ago Duracell showed us the Powermat (picture left), which enables you to charge your mobile phone wirelessly. This requires the use of an external peripheral, usually in the form of a protector case or a battery pack. The disadvantage of this is that the device will become more chunkier and will leave quite a bump in your pants.

During the MobileWorld Congress 2012 Duracell unveiled it’s Wireless Charging Card (WiCC). This piece of hardware can be installed in your smartphone and will, in combination with the Powermat, let you charge your battery without the use of external peripherals. As of writing of this article the WiCC is only compatible with a few devices, but  soon more will follow.

The WiCC is a small card which you place between the battery and the connector. Upon asking if the WiCC has any downside when it comes to the charge time, the guy from Duracell assured us that this won’t be any different than using a wired adapter. Off course this is something I have to see for myself…

In the mean time Qualigon is also displaying a solution for wireless charging. This will be something I will look at later this week.