We have all been there, getting a crash report and the stack trace makes no sense because its not been symbolicated properly. I found this really handy tutorial that goes through every step to symbolicate manually instead of relying on the “magic” to happen. The blog post goes into a good level of depth on how it works and how to do it yourself.
I discovered a nice plugin manager for Xcode, its called Alcatraz, you can get it from here http://alcatraz.io/
You can download a range of items to enhance your experience with Xcode, from Themes to plugins. I found that although Xcode is an excellent IDE, after using Android Studio(essentially Inteli-J), there is some items lacking. Alcatraz has a range of plugins which address some of these issues.
I have currently installed:
AdjustFontSize – Simple plugin to zoom in and out with the CMD +/- keys
CocoaPodsUI – A CocoaPods UI, to save me having to navigate to the project directory and perform an update.
DBSmartPanels – Automatically hides the panel when not in use, I find that you lose alot of screen real estate when you have all the panels open, this plugin will auto hide it when you switch views from an interface file to a code file.
FuzzyAutocomplete – Why have Apple not done this already!? Simple plugin which applies fuzzy matching when showing autocomplete.
RTImageAssets – Since the release of the iphone 6+, most apps should have @3x images, this means additional time in photoshop having to produce the images in an additional resolution, this plugin makes life alot easier, I only have to make the image in the @3x resolution, then get the RTImageAssets to generate the other resolutions.
Wow and another great release from the Facebook engineering team, this little tool is an excellent addition to the lldb tool.
If you are like me, when you debug you usually put a breakpoint in and then print out objects in the lldb console, well now facebook engineering have released chisel, this tool adds extra commands to the lldb. Here a few to name:
||Print the recursive view description for the key window.
||Print the recursive view controller description for the key window.
||Open a UIImage, CGImageRef, UIView, or CALayer in Preview.app on your Mac.
||Find a view in the hierarchy whose class name matches the provided regex.
||Find a view controller in the hierarchy whose class name matches the provided regex.
||Show or hide the given view or layer. You don’t even have to continue the process to see the changes!
||Overlay a view or layer with a transparent rectangle to visualize where it is.
||Add a border to a view or layer to visualize where it is.
||Flush the render server (equivalent to a “repaint” if no animations are in-flight).)
||Set a symbolic breakpoint on the method of a class or the method of an instance without worrying which class in the hierarchy actually implements the method.
||Set a watchpoint on an instance variable of an object.
||Print the responder chain starting from the given object.
These tools are really handy, especially if you are battling with Autolayout problems, clearly somebody at Facebook was having problems and decided to make a tool to make life easier, well thanks, its a really good idea!
A pretty simple install, make sure you have homebrew installed, then its just a matter of:
brew install chisel
Then you just need to add a .lldbinit file to your home directory, essentially this is like you .bash_profile, but for xcode/lldb. So this is how i did it.
Then once your in vi, just paste in:
command script import /usr/local/opt/chisel/libexec/fblldb.py
Then restart xcode and it should work straight out the box.
As a senior developer at Immediate Media, I managed a team of 3 developers and 2 QA’s whilst also mentoring a junior developer.
I was fully involved from start to finish with the RadioTimes DiscoverTV for iPad, successfully achieving a top 100 ranking in the Apple app store and winning several design awards.
DiscoverTV is an TV listings grid with media recommendations, essentially the application has two functions, one to allow the user to find out whats on tv now, and the other to give suggestions on what to watch.
You can download the app from the Apple app store here:
Have a look at this excellent presentation, it shows the approaches and difficulties facebook have had while structuring the facebook app.
What is interesting is how facebook made all of their major screens as separate libraries, these libraries invoke custom schema calls which then opens those screens. Quite an interesting view and approach to a large scale development application. By separating each major functionality into a library, you can then focus on the core functionality and not have any form of conflict.
I have been working with many mobile services, from push notifications to in app purchases.What Helios provides is one single location for all of these services.
I thoroughly recommend trying it, I found the instructions are fairly simple and easy to deploy, In addition, there is further support for Cargo Bay, which provides one step receipt verification(a must have for any in app purchases). There is tonnes of features, from push notifications to core data synchronization, you can even produce web services from the core data models.
If you are getting the clang error that Xcode 5.1 produces
linking shared-object nokogiri/nokogiri.bundle
clang: error: unknown argument: ‘-multiply_definedsuppress’ [-Wunused-command-line-argument-hard-error-in-future]
clang: note: this will be a hard error (cannot be downgraded to a warning) in the future
make: *** [nokogiri.bundle] Error 1
then use this command
sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future gem install helios
This should get passed warnings treated as errors.
Once installed, when you try
And you get An error occurred while installing pg (0.17.1), and Bundler cannot continue. Install the postgresql app, you can get it from here.
Understanding the iOS view controller life cycle is important, I found this diagram which clearly describes what methods are invoked at what state.
I am pleased to announce that one of the projects I have been working on, RadioTimes iPad app has now been successfully launched and is now in the App Store. Please download and try it now.
Here is a small presentation describing the calabash structure.
October 18, 2013
Android, Automation, Calabash, Cucumber, Gherkin, iOS, iPhone, Mobile, Ruby, UI, Xamarin
I have recently been looking at UI Automation tools for some of the projects I have been working on, so i created a list plausible tools.
At first I decided to use Appium but I found that the support for ios 7 wasnt very good and also there is alot of bugs on the github repo. I even found a few bugs that were closed even when they were not fixed. So in the end I decided to try Calabash, recently they have been taken over by Xamarin and so I know that the support will be far better. After using the tool and really putting some hard test cases in, i can say that Calabash is the best tool for my projects.
Here is a power point presentation that I created that explains in detail the analysis.QA UI Automation Tools