I’ve been working on a Buffer iOS SDK for the past few months and along the way we’ve hit a few issues with certain features we wanted to include in it. Our aim for the SDK has been to create it in such a way that it can be dragged into a 3rd parties Xcode project and hooked up to display a Buffer composer with a small number of steps.
We also wanted to make authorising the composer with Buffer a breeze, with auth options for Buffer, Facebook and Twitter. Using native authorisation available within iOS available where possible. Providing this in a 3rd party app is rather tricky but we fortunately figured it out. The main problem we had was in fact with our own Buffer authorisation, our plan was to allow it to open the Buffer iPhone app if the user had it to authorise the 3rd party app access to their Buffer account.
Normally when you hit issues like the ones we were faced with you will sit and think until you have a solution. We did sit and think about the problem for sometime before deciding to move on and revisit it later. So we left those issues to one side and continued with the development of the SDK which in itself without the functionality we were having issues with would be a huge step up from the offering we had.
After about a month I had a brainwave while sat drinking coffee working on the Buffer iPhone app, I grabbed my Moleskine out of my bag and started drawing out a flow of the solution that I had in my head and started to pick it apart to find a fault. A fault that I was sure i’d find as it was a simple solution that none of us had come up with, yet here it was a month later out of nowhere while working on the Buffer iPhone app rather than the SDK.
Once I was somewhat confident that the solution was water tight I got another developer to check it over, he paused and once again checked for any faults. Both of us were surprised the solution was so easy & glad that we had finally figured it out. Despite not actively working on solving the problem.
We managed to solve the issue not through sitting and pondering over the issue but by stepping back and continuing development of other areas until a solution came up. Obviously a solution won’t just appear for all issues and you will need to sit and figure it out but stepping away for a bit in some cases can provide great solutions if timescales permit it.