“Revel”ing iOS development

So my career took a huge detour from Microsoft Student Partner to iOS developer, at first i was very excited about using the Mac and iPhone, later found that the development on this platforms is not easier as compared to windows, atleast initially!

Development on windows phone was very easy, one can create a simple hello world app in less than 2 minutes ( infact quicker than making maggi 😛 ), even for people with very basic programming knowledge. This sheer simplicity has driven juniors in my college to create and publish apps for the Windows phone market, but when it comes to iOS, its pure coding, everything is an object and everything has to be manipulated through code, and interface builder is not going to help when you are going to create apps with beautiful UI/UX. I directly took the hard route and went for the iOS development using nothing but code, yes, code for everything, right from creating a new screen, label, button and pretty much everything is written in Objective-C. Even though coding everything from scratch using objC has its own advantages, one big issue i (and most of developers) face is that, sometimes you have no idea where the UI components gets placed in the screen, and debugging can be tedious, especially for something that you cannot see on the emulator.

This Mac app called “Reveal” which i came across a few weeks back is helps a lot when it comes to UI level debugging especially with its Run time inspection, 3D navigation and many other features. It ‘s a great inspection tool for people who are starting to learn iOS development and for those who are already struggling with UI level issues with their apps. Anyway, i’m not gonna give a big walkthrough on the app features. But here’s how you integrate it with your app :

1. Download the Reveal app here and install it.
2.Open the your Xcode Project and add the reveal framework to your project folder.Here’s how you do it:

2.1 Open Reveal, Go to help-> “Show reveal library in finder”.

reveal help

2.2 Drag and drop the “reveal.framework” into your project (duh!)

3. Add Quartzcore.framework and CFNetworking.framework to build phases in the project

Frameworks

4. Add “-ObjC” Flags to Other Linker flags under build settings. (Search for other linker flags)

adding flags

5. Run your app

6. Open reveal app and change the connection from “No connection” to “your app name”, you should see this if you’ve done everything correctly

reveal

The reveal app also responds to interactions and the change of screens that you do on the iPhone simulator, so you can debug any page in the UI level.

Oh, and it also works for iOS7

reveal ios7

Reveal is currently in beta , an other alternative to Reveal is Spark Inspector , but it is paid with loads of other functionalities. Give it a try and let me know if this post was helpful 🙂