I recently found myself tearing my hair out over some very odd behaviours in XCode. Giving focus to a text view wasn’t bringing up the keyboard, but I could still type where the keyboard should have appeared. I spent days trying various tweaks and changes to get it working, blaming this library and that library, but as it turned out, the solution was very simple.
Found myself with something of a head-scratcher today. After pulling some changes from an iOS project, I fired it up in XCode only to get an error:
Property <property name> not found on object of type __strong <object type>
I carefully scanned the offending line for typos and couldn’t see anything amiss. I tried a Clean of the build, seeing the same error on rebuilding. Since the class in question was in a file imported through CocoaPods, I tried rebuilding the Pod project, but still got the same error.
I wondered if there might be a duplicated name somewhere, so I tried Option+clicking on the protocol name where I found the error. This took me to the header where I expected the property would be missing, but, surprisingly it was right there.
Apparently, running Clean on the build didn’t actually clean everything up.
After searching around a bit, I came across a StackOverflow post from a few years relating to clearing caches for xibs, so I tried deleting everything under:
I hit build again, and bingo! No more annoying error. Thanks to matt for getting me out of an annoying tight spot!
A couple of weeks ago, I put together a CocoaPod to make creating paged views in iOS easier. I knew there was a bit of some for improvement, so I did some research and today I pushed version 2.0.0 of TEQuickPageViewController, which makes storyboarding your pages even quicker!
Having discovered the wonder that is the custom segue, I realised I could use custom segues that didn’t actually perform a segue to construct a sequence of view controllers that could be reported back to the Page View Controller.
This means that you can now see your sequence of pages at a glance in your Storyboard. Zero code, zero confusion.
Yesterday, I started wrestling with the concept of Page View Controllers in iOS. These are the swipeable sets of screens you’ve probably seen holding tutorials and “what the heck is this?” explanations for all those weird and trendy apps floating around. Frankly, I found it to be a massive pain in the butt, so I knocked together a little project to make things simpler.
I rarely get excited about code libraries, but IQKeyboardManager is probably the most useful and useable library I’ve ever had the pleasure of downloading. Useable in that it requires zero effort to use, no code, no configuration, no API keys. And useful because it solves a problem that has been bugging me since I first got my grubby mitts on the iOS SDK back in 2008.
It’s Thursday night, and you’re looking to start using Redis in your Laravel application. You fire up your Homestead box (more on this in another post), open your favourite IDE and put in a new route to start playing around. Just something simple to start, write then read a value, just like the example.
You save, and load up the route in your browser, only to see:
Call to undefined method Redis::connection()
That can’t be right, can it? The Redis class is built-in to Laravel, and connection() was in the example. How can it be missing? Readmore »
Following on the heels of Asteroids with Sprite Kit, the introduction of the Swift language made me feel like another crack at the whip. So here’s my take on Space Invaders. This time, I went for OS X as a platform, again using SpriteKit, but this time using Swift as the primary language.
Time for another quick project! This time, I’ve put together a vocabulary tester for Twitter. Just put in your twitter handle, and get an outline of your most used and longest words.
The app is implemented under Laravel, using the Twitter APIs to pull tweets for processing. To get around potential memory and time contraints on PHP scripts (and to provide feedback on progress), I used AngularJS for aggregation and rendering of results. Bootstrap and Font Awesome provided quick styling. Readmore »
After an extremely long hiatus from my Shoot ‘Em Up project, I was itching to see what was new in the world of iOS game development. Discovering the new SpriteKit API, I just had to give it a try. So I put together a quick version of Asteroids over a few weekends.
It’s missing a couple of features (no hyperspace or flying saucers), but was a great way to get to grips with the new API. Not only that but I also got an excuse to play with Git’s submodules feature, which I’m sure I’ll be using a lot more in future.
You can see the full source on GitHub, feel free to download and build a copy!