Posts Tagged 'Programming'

SpriteKit Smorgasbord

So, you’ve probably heard about this new SpriteKit thing in iOS 7, right? If not, here’s the elevator pitch:

Sprite Kit is a powerful graphics framework for 2D games such as side-scrolling shooters, puzzle games, and platformers. A flexible API lets developers control sprite attributes such as position, size, rotation, gravity, and mass. Sprite Kit’s OpenGL-based renderer efficiently animates 2D scenes. Built-in support for physics makes animations look real, and particle systems create essential game effects such as fire, explosions, and smoke. To assist SpriteKit-based game development, Xcode supports texture atlas creation and includes a particle creator.

Pleasant change having all that in your OEM toolkit, isn’t it? Here’s what you have for documentation:

Sprite Kit Programming Guide

Sprite Kit Framework Reference

Texture Atlas Help

Particle Emitter Editor Guide

code:Explained Adventure

SpriteKit Physics Collisions

Sprite Tour

The next question is, why would we decide to use anything else? Well, let’s see what Ray Wenderlich thinks:

Sprite Kit Tutorial for Beginners

After this a lot of you may be thinking, “Well, which 2D framework should I choose?”

The answer that depends on what your goals are. Here’s my 2c:

  • If you are a complete beginner, or solely focused on iOS: Use Sprite Kit – it’s built in, easy to learn, and will get the job done.
  • If you need to write your own OpenGL code: Stick with Cocos2D or another option for now, as Sprite Kit does not currently support this.
  • If you want to be cross-platform: Choose Cocos2D-X or Unity. Cocos2D-X is nice because it’s “down to the wire”, built for 2D games, and you can do just about anything you want with it. Unity is nice because it gives you more flexibility (i.e. you can add some 3D aspects into your game if you want), however you have to go through a few more hoops to make 2D games.

The first two are gimmes, but the third takes a bit more thought. How’s your C++ or C# skills these days? You anywhere near as productive with either as in Objective-C? Make sure you factor that into your decision. How much of everything you want to do is actually cross-platform, and how much is going to require platform-specific work no matter what you do? How much extra time are you going to spend in the write once — debug everywhere loop? And what benefit are you actually going to get from jumping through all those hoops?

Around these parts, we’re solid advocates of doing whatever is fastest to get your MVP out, which means one platform, with all the latest labor-saving APIs. If it’s a hit, you’ll have plenty of money to hire people who know their stuff tp port it for you and/or write version 2 in a cross-platform manner while version 1 finances it. If it’s not … well, better you found that out before wasting more time and money on a cross-platform release, isn’t it? Make your own incremental revenue vs. extra resources invested vs. opportunity cost of delay model, and work it out for yourself. We’re pretty confident the ‘quick as you can with the least investment possible’ strategy comes out top under virtually all reasonable assumptions.

And just to put some sweet icing on that opinion cake, consider Apportable: cross-compile your iOS app for Android — surprisingly close to working last we tried it, and getting better all the time so we hear. And really, what other platform is worth any effort at all? Why, none worth even considering making part of your core competency, that’s our answer.

If that makes sense to you, and it should, consider doubling down on the iOS-first bet and going with Steffen Itterheim’s Kobold Kit:

Features and Requirements

Kobold Kit adds the following features above and beyond what Sprite Kit offers.

Add that up with their partnership with Apportable, and you’ve got a pretty interesting rapid development framework for the iOS-centric programmer.

Compelled yet? Here’s some more reading:

iOS Games by Tutorials is another Wenderlich team epic, and the best $54 you’ll spend getting up to speed. If you’re not that certain yet, of course there’s free tutorials in abundance:

Sprite Kit Tutorial for Beginners

Sprite Kit Tutorial: Animations and Texture Atlases

Sprite Kit Tutorial: How To Drag and Drop Sprites

How To Make a Game Like Space Invaders with Sprite Kit Tutorial: Part 1 and Part 2

Procedural Level Generation in Games Tutorial: Part 1 and Part 2

Sprite Kit Tutorial: Making a Universal App: Part 1 and Part 2

Here’s some other notes and samples worth flipping through:

SpriteKit Animations and TextureAtlasses describes how the always-awesome TexturePacker is a nice upgrade to the Xcode workflow

2D Game Development With SpriteKit — source at ChrisGrant / FirstSquadron

Spritekit Particle Fun — source at 7sharp9 / SpriteKit-Fsharp-Samples

iOS 7 Sprite Kit PhysicsDebugger

How I Went From 0 to Game with Sprite Kit in iOS 7

iOS 7 Sprite Kit: My Top 5 Pros and Cons

Sprite Kit vs. Cocos2D

Free Sprite Kit Video Tutorials

Use SpriteKit to Give Your iOS 7 Menu Some Animation! aims to be “a central hub of tutorials, books, open source projects and various assets for developers working with Sprite Kit”

and search Github for other tidbits too!


iOS 7 Tutorial Series: Introduction to Sprite Kit

Sprite Kit Tutorial: Space Shooter

Using Glyph Designer with Sprite Kit

SKPhysicsBody Path Generator

Open Source iOS Sprite Kit Helper Library That Makes Performing Common Behaviors Easier

iOS Library That Uses Swizzling To Draw Physics Bodies Makes Debugging Sprite Kit Physics Easier

Custom drawing in SpriteKit

Integrating Spine with SpriteKit Tutorial

SpriteKit Animations and TextureAtlasses

Airplay Tutorial: An Apple TV Multiplayer Quiz Game

Sprite Kit Tutorial: How to Make a Platform Game Like Super Mario Brothers – Part 1

Sprite Kit Helper Library Adding Support For Tileable Textures, Easier Animations And More

Continue Reading →

CoreData Sync: ZumeroIncrementalStore

So you may remember our post a little while ago on the not-so-simmering discontent with the then current state of CoreData sync, and a couple since on other cloud technologies to be aware of; but today we’d like to draw your attention to a new solution from Joel Grasmeyer who after surveying the landscape himself, decided to –what else? — write a new NSIncrementalStore to solve everybody’s problems!

Introducing ZumeroIncrementalStore

What Is It?

ZumeroIncrementalStore is an NSIncrementalStore subclass that lets you use Core Data with the Zumero SDK to sync data between iOS and Mac apps. Zumero is a “replicate and sync” technology based on SQLite that allows apps to be fully functional offline and sync in the background when they’re online.

What does that mean?

It means that you can add syncing to your Core Data app by swapping out Apple’s NSPersistentStore with ZumeroIncrementalStore, and as far as the app knows, it’s just using Core Data with a local data file. Then whenever you want your app to sync, you call a sync method in the Zumero SDK, and sync happens in the background…

If you’d managed like us to overlook the existence of Zumero so far, here’s the long form of “‘replicate and sync’ technology based on SQLite”:

Zumero asks (and answers): “What if that local database was all the mobile application had to worry about?” You update your database, and trust that it’s being updated as needed when the outside world changes. Zumero…

…makes sure the server has your latest changes.

…makes sure you have the latest changes from the server and from other mobile users.

…handles merges and conflicts in one place. By the time Zumero sends you new data, it’s already sorted out.

…worries about re-sending updates that didn’t go through earlier.

Did we mention speed?

In addition to reliability and simplicity, this approach can make your mobile apps significantly faster from the users’ point of view. No more waiting for a server call that never finishes (or at least feels that way). No stalls while data updates are processed, vetted, merged. Your database is small, fast and local, just like your app.

What do I need to learn?

Not much. We provide the tools to do this on your mobile platform of choice: native iOS and Android; Xamarin; PhoneGap; Windows 8.

Dealing with a Zumero database is just like dealing with any SQLite database, plus an extra line or two of initialization, and a “sync” call that probably happens in a background method that you write once and ignore thereafter…

Well, that certainly makes it sound like a pretty much optimal choice from the cross-platform architecture standpoint; and pricing appears reasonable too.

From the non-cross-platform architecture standpoint, flipping through the sample project that’s up at

grasmeyer / ZumeroIncrementalStore

does indeed look like it integrates into the accustomed Core Data workings just pretty much as smoothly as you could ask for. Not only that, it also addresses the memory issues with using Core Data for mass operations:

Bypass Core Data for Direct SQL Access

Brent Simmons wrote a blog post about using Core Data for the Vesper app where he mentioned that he likes many of the features of Core Data, but he is concerned about an edge case of updating 30,000 notes quickly without pulling them all into memory. I think ZumeroIncrementStore might be a solution to this issue. You can use Core Data for most of your in-memory object management, but if you ever need to “update a single value on 30,000 items”, you can always call reset the Core Data Managed Object Context, change the values directly in SQLite via the Zumero SDK, and then fault the objects again as needed for the UI…

So, looks like we’ve got a pretty good contender here to fix all the serious issues people have with the iCloud + Core Data stack, without giving up … well, anything, really. Next time you’re designing out a cloud data layer, give it a shot!


iRareMedia / iCloudDocumentSync is another option for iCloud document sync.

Continue Reading →

Xcode 5 Collection

So no doubt by now you’ve been working with Xcode 5 for a while and noticed that there’s a good number of new features in it — personally, we’re looking forward to Mavericks Server running bots for us the most, never having to deal with a signing problem with Jenkins again will be none too soon — but probably haven’t had time to read up on them as thoroughly as you’d like, right?

If you took our advice in the Programming for iOS 7 roundup to go pick up the iOS 7 by Tutorials book, you’re up and running with all the essentials soon as you work through Chapters 9 to 15. If you didn’t, hey there’s another good reason to! In the meantime, the How To Use Git Source Control with Xcode in iOS 7 is free to read.

One thing they do give undeservedly short shrift to is the new documentation support though, which rather excites us. We were converted to appledoc enthusiasts in short order after finding it, adding a daily documentation build task to Jenkins last time we were leading a sizeable team; but it’s always annoying to introduce third party dependencies into your workflow — having that functionality in Xcode and tied right into code completion popups is pretty awesome:

Documentation in Xcode 5

The real awesome sauce on the awesome is that the compiler will verify your documentation. No, seriously:

2013-10-09: Matt Stevens points out -Wdocumentation, which is new in clang 3.2. From the Clang release notes:

… Clang parses the comments and can detect syntactic and semantic errors in comments. These warnings are off by default. Pass -Wdocumentation flag to enable warnings about documentation comments.

This will warn when the documentation’s variable names or return types don’t match the method signature.

Now that’s something we have never heard of in a development environment before. Sufficient reason to adopt this practice, NOW!

Another particularly promising callout is the improvements in autolayout. As we’ve documented, up to now its usage has been commonly … problematic. “Loathe with passion” would be a better way to characterize our experiences to date, actually; it seems the algorithm Xcode 4 used was “figure out what the user actually wants, then make up and throw in there with no warning a risibly non-functional set of constraints gleefully chosen to frustrate them as much as possible.” As noted here:

iOS 7 Tutorial Series: Auto Layout in Xcode 5

… In Xcode 4, the creation of a slightly complicated view was close to impossible because Xcode did too much to ‘help’ the developer, but didn’t give the developer any way of correcting it’s ‘help’…

Yes, indeed. You feel the pain? We feel the pain. But things are better now, so we’re told, and if you’ve avoided the whole problem so far, time to get on board:

… In iOS 6, Auto Layout was available and recommended, but not required. In iOS 7, Auto Layout has become more important, to the point of practically being required, because it facilitates the ability, provided by Dynamic Type, for users to select the font size to use in standard button, label, and text field controls, and then have the rest of the screen respond correctly to the change in font size…

… Because of Xcode 4’s over-helping in IB, many developers frequently reverted two the two other ways to implement Auto Layout based views: Visual Format Language (VFL) and manually instantiating NSLayoutConstraint objects. Thankfully, because of the improvements in IB you’ll probably not be using these methods as much in the future. I’ve found that views that were impossible to build in Xcode 4 IB can now be created quickly and easily in Xcode 5.

So yeah, we’ll give it another shot in the project we’re starting now and see if storyboards + autolayout have reached the point of tolerability yet. After we take another read through this thought-inspiring article:

Using Storyboards

Storyboards seem to be a big point of contention in iOS development. Some see them as wonderful additions, some as a poorly designed and pointless hindrance that Apple seems intent on force feeding us. There is one thing that’s consistent though: almost nobody is using them right…

If like us you’ve been inclined towards the “pointless hindrance” view thus far, check it out. Not convinced otherwise yet, but we’ll give his ideas a shot.

Another particularly nice convenience you might have skipped over is

Xcode Asset Catalogs

Not only do they sort out asset naming clutter, they let you build slicing and resizing into your assets and out of your code. Sweetness.

A lot of the tips in last year’s Xcode Grab Bag post are still applicable to Xcode 5 too; in particular we note that the Alcatraz Package Manager would be your go to for plugin discovery, soon as it gets sorted:

We’re working on releasing Alcatraz 1.0 for Xcode 5. Please be patient and don’t create issues until 1.0 gets released. Thanks!

In the meantime, should you feel like writing your own, check out

kattrali / Xcode5-Plugin-Template: “Basic template for creating a plugin for Xcode 5.”

A particularly nifty Xcode 5-only plugin is

ryanolsonk / LLDB-QuickLook: “Debugger commands to open images, views, and more using Quick Look.”

Here’s a great tip for dealing with The Dreaded Project Merge Conflict:

Easier merging of Xcode project files

A while back, I discovered a script called sort-Xcode-project-file in the WebKit project, which sorts the Xcode project by running the following command:

perl sort-Xcode-project-file [Project].xcodeproj/project.pbxproj

I started using it to make files easier to find in my projects and just nicer to look at. After a while, I discovered that it helps a lot with merging the Xcode project file. If both sides of the merge are sorted, there are fewer differences when merging, and makes almost all merges either automatic or extremely easy to tackle…

and finally, here’s a nifty tip for having Instruments tell you where that mysterious stuttering is coming from:

(TL;DR – Select Record Waiting Threads in the Time Profiler track info-panel thing.)

h/t: Pretty much all the above links came from the last few issues of iOS Dev Weekly, which if you’re not subscribed to, you should be!


Xcode 5 Plugin Greatly Enhancing Built In Auto-Completion With Fuzzy Matching

Launch Arguments & Environment Variables

facebook / ios-snapshot-test-case is image matching for UIView/CALayers.

MoarFonts: “Use custom fonts for your iOS projects directly in Interface Builder, the WYSIWYG way”

OCLint: A static source code analysis tool for Objective-C and related languages issue #6 has various articles on Xcode internals, CocoaPods, and Travis CI

larsxschneider / ShowInGitHub – “to open the GitHub page of the commit of the currently selected line in the editor window.”

Xcode Plugin Allowing You To Markup Links And Images Within Code And Console Output

Xcode Plugin Enabling Neater Code Alignment With Customizable Alignment Patterns

Xcode Plugin For Listing And Going Through To-Do And Fix-Me Items In Your Code

An Xcode Plugin Enabling Easy Use Of The Clang Source Code Formatting Tool


Code Pilot Goes Open Source and Gets Xcode 5 support

Project Statistics for Xcode: Major Update to V2 with Great Enhancements

dblock / fui will find imports unreferenced by code (note that storyboards do not count as code!)

Useful Xcode Build Phases

jfahrenkrug / StoryboardLint “A lint tool for UIStoryboard to find wrong classes and wrong storyboard/segue/reuse identifiers”.

Code Generation Tools To Reduce Errors Caused Storyboards And The Asset Manager

Xcode Plugin That Allows You To Automatically Extend Xcode Code Snippets With A Git Repository

Alcatraz: The Package Manager for Xcode

A Tool Enabling Easy Objective-C Dynamic Code Injection In Xcode And Appcode

8 Tips for working effectively with Interface Builder

__attribute__ directives in Objective-C

Xcode Debugger Quick Look

Some New Xcode Plugins For Enhancing Code Display, Interface Builder, And Code Completion

Clean up your projects with Xcode 5

Improving Debugging Workflow – Introducing MCSLLDBToolkit

NSHipster on Xcode Plugins

Tool: Xcode Plugin Providing A Nice GUI For Working With Cocoapods

Tutorial: Using Compiler Directives To Create Useful Custom Warning And Error Messages

Continue Reading →

Programming for iOS 7

One thing about being off wandering while everybody else is getting up to speed on a new iOS, hey they’ve got all their writeups ready for you to read when you get back. And my my, there are quite a lot this time around!

TL;DR – Head over to chez Wenderlich and pick up iOS 7 by Tutorials. This series has been a great one-stop for not overlooking anything worth attention since iOS5, and this latest 823 page magnum opus keeps up that tradition. (Or, if you feel like freeloading, check out the free samples: UIKit Dynamics Tutorial, What’s New in Objective-C and Foundation, Text Kit Tutorial, How to Update Your App for iOS 7.)

Still here with lots of time to read? Well, good. You’ll need it!

First up, these guys are getting better every issue — most attempts along these lines peter out well before issue #5 — and October’s issue is an iOS 7 collection:

A very nice-looking series, on day 19 right now, is Introducing iOS7 Day-by-Day: all sorts of more obscure nifty tidbits from QR codes to SafariServices.

And if you’re looking for design tips, there’s plenty in that UI Design for iOS 7 collection we started back when that was new.

Other miscellaneous collections and tidbits worth checking out:

Your Essential iOS 7 Developer’s Guide

iOS 7 Source Code Examples Covering UI Kit Dynamics And More

UIMotionEffects for Dummies

Creating a Custom Flip View Controller Transition and An Interactive Tab Bar Controller Transition

Library Providing A UIColor Category For Easy Access To iOS 7 Colors

Lifting the lid on the iOS 7 UIPicker

A simple way to detect at runtime if we’re running in UIKit legacy mode or the new “flat” variant

And in case you missed it in our ARM64 collection, plan your device testing matrix with

Updated iOS Device Summary with iPhone 5S and iPhone 5C


Tutorial: Using iOS 7 UIKit Dynamics To Make A Pong Game (Animations, Collisions, Physics)

Tutorial: Getting Started With iOS 7′s Text Kit Framework

Handy Library Providing Easy Access To Colors And Gradients Used In iOS 7 Apps And Icons

Animated progress view with CAGradientLayer

Developing for the M7

What’s new with iOS 7 rounded rectangles

Easily Overlooked New Features in iOS 7

Synthesized Speech From Text

iOS 7 UIDynamic Source Code Examples Demonstrating Gravity, Collisions, Snapping And More

Easily Creating Dynamic Transitions On iOS With UIDynamics

Continue Reading →

Translation Tragedy

Oh noes! Remember that localization tool Linguan that we reviewed a while back with the delicately restrained conclusion of

buy it NOW. NOW! NOW! NOW!

Well, not enough of you listened to us, it seems:

It is with a heavy heart that today we’re announcing that we are looking for a buyer interested in acquiring our Mac localization tool Linguan … When sales didn’t make us rich as expected it turned out that there wasn’t enough income to allow for ongoing improvements…

As it stands right now Linguan produces annual sales of around 10000 Euros. This is also the minimum asking price we are hoping for. For anything less BytePoet’s CEO stated that he they wouldn’t agree to sell for but rather keep it as a reference project for their own use.

If we had a little more cash and time sitting around, we’d take them up on that. Seems there must be some translation company out there that’s foresighted enough to see the value in having a fully-toolchain-integrated submission service for Xcode developers, and would be willing to underwrite development or give you a referral percentage or something like that. But you’d also imagine Messr. Drobnik & co. wouldn’t have missed exploring that option, wouldn’t you. Well, if anyone out there is looking for a career in building development tools, we thoroughly recommend this as your first acquisition, it is unquestionably the best tool available to help you organize for an immensely valuable service!

Speaking of translation companies, once you have gotten your translation needed strings sorted out, what do you all use for a translation service? The project we’re working on now does 12 (yes, twelve) languages with Tethras who are a pretty common choice and we haven’t heard any complaints. But here’s some others who profess iOS-specific competence:


Babble-on, who have a great localization tutorial. And like the Glossary here too.

DYS Translations

ICanLocalize, also have a decent tutorial




Smooth Localize



Not overly iOS-focused options that we’ve noted positive feedback on somewhere or other:



Glyph Language Services

Other roundups:

The Developer Economics App Localization list

The Apptamin Localization list

Apple’s Third Party Localization Vendors list (also note the mothership resources list)

Or, if you want to crowdsource your translating, check out


Did we miss your favourite here? Or, more importantly, any listed here that you would warn against? Let us know!


iOS Localization Tutorial: Localize Your Apps to Support Multiple Languages

Localization of Xcode iOS Apps, Part 1 and Part 2 and Part 3 and Part 4

jeroentrappers / LocalizationPOC: “Localization proof of concept for iOS. Let’s you change the language on the fly.”

Lin: A Localization Manager for Xcode 5

TraductoPro Releases a New More Convenient Way to Submit to the App Store

Continue Reading →

ARM64: The Next Generation

So, the last few weeks we’ve been off wandering the wilds of ex-Soviet Eastern Europe and the North Atlantic up Greenland way; did we miss anything?


Well, let’s start catching up, shall we then? The new 64-bit chip is a good place, no doubt. First off, see what the mothership has to say

About 64-Bit Cocoa Touch Apps

ARM64 Function Calling Conventions

Note especially “You cannot build a 64-bit project if it targets an iOS version earlier than iOS 7″. So far. There are rumours a future Xcode will support iOS 6 with the 32-bit slice.

[UPDATE: Notes from the Xcode-user list on lipoing together slices yourself, if you were thinking that would be clever:

"As far as lipo is concerned, there is nothing wrong with such a binary, and in the case of a static library that will be later linked into an application, you’re fine as long as the app’s deployment target is properly restricted. That is, if you build such a library by lipo-ing the individual slices together, as long as the app itself has a deployment target of 7.0, you’ll be fine. There are components in iOS pre-version 7 that were not prepared to see binaries containing 64-bit code, particularly when such binaries are downloaded from the app store (which is why things may appear to work locally for you, but would not work if that code ended up on the app store). Until the changes that Chris mentioned have been made, you will not be able to have an app that both supports iOS 5 or 6 and contains 64-bit code..."

"...I can’t really go into specifics, but rest assured that there is a solution forthcoming."]

And if you hadn’t already been making a practice of using NSInteger and CGFloat religiously in any System-interfacing code … well, it’s time to start!

As always, Mike Ash has the definitive get up to speed guide on far more exhaustively lower level information than you’re ever likely to need:

Friday Q&A 2013-09-27: ARM64 and You

If you’re really into the bit banging enough to want to read the full ARMv8 architecture manual … here you go.

But if you just want to see some real world numbers, check out The Move to 64-bit in The iPhone 5s Review over at AnandTech, exhaustively excellent as always.

If you’re not clear yet on the difference between ARCHS and VALID_ARCHS in Xcode, read

iOS 7, XCode 5 Project Build Settings for Architectures and Arm64 support

For those who provide a static library and want to support iOS 5 through now with just one, read

Static Libs With Support to iOS 5 and Arm64

And finally, for a handy-dandy chart of iOS 5+ devices sorted by chip and OS version and screen size, check out

iOS Device Summary

Handy for planning your test device upgrade strategy!

Continue Reading →

App Website Theme: AppifyWP Pro

So you might recall us mentioning last year this WordPress theme AppifyWP that was a pretty sweet and simple site for your app, and a free landing page too; well, it bears mention again, as they have a new Pro version that lets you easily list out multiple apps. Like, really easily:

Multiple Apps

What makes AppifyWP Pro really glow is a custom post type for your Apps that makes adding your apps as easy as adding a blog post. Each app admin screen is chock full of special settings catered for app developers. A few of those settings include app icon, devices, app screenshots, orientation, App Store links, general appearance, and much much more.

Multiple Platforms

Each app can support up to 9 platforms, with the ability to add a slideshow or video for each platform. Currently AppifyWP Pro has special templates for iPhone, iPad, Android Phone, Android Tablet, Windows Phone, Windows Tablet, Blackberry Phone, PC Screen, and Macbook Air Screen…

Retina Ready

All images used in AppifyWP Pro are retina ready so that your site is crystal clear on high dpi screens. Even images you upload are processed for retina screens as well.

Device Detection

AppifyWP Pro detects what devices people use to browse your site, and if your apps support their device, AppifyWP Pro will display the proper platform to them by default.

Coming Soon Mode

Each platform of an app has a coming soon mode you can enable to hide your app store links and show a custom coming soon message…

There’s other nifty stuff too, but that’s enough to make the point that if you’ve got an ever expanding app stable you want to web support as low overhead as you can possibly manage and still look halfway professional — why this looks like obviously your best option out there by far, head on over and check it out!

(And if you know some alternative that makes this not obviously your best option out there by far? Hey, let us know too!)

Continue Reading →

Video Conferencing: ShowKit

This looks like something well worth looking into if you need some collaboration features in your app quickly: ShowKit!

Screen Shot 2013-08-04 at 8.05.49 AM.jpeg

ShowKit is a mobile SDK that enables iOS developers to add in-app Audio/Video Conferencing, Screen Sharing, and Remote Control between mobile devices to their native apps. We recently introduced our SDK to market and are looking for beta testers. If interested, you can access our beta by typing in promo code “SKIT87″ here.

As a reward for entering our beta you’ll get your first 50,000 Minutes of call time free (normal starting rate is 25,000 minutes of free calls once our beta is over).

Don’t have time to check it out ourselves right now, but that’s a pretty unique set of drop in features and it’s very nicely documented and the pricing seems reasonable, so if you’ve got a use for on device conferencing/VNC type stuff, we wholeheartedly encourage you to sign up with that “SKIT87″ code and let us know what you think!

Continue Reading →

Returning Bracketed Expressions

Now this is a GCC feature extension also present in Clang of which we had not previously been aware:

Ever since I found out that a GCC C extension causes a code block to return a value if you enclose it in round brackets, I’ve been using it in my code. What do you think?

self.bounds = ({
CGRect bounds = self.bounds;
bounds.size.height = self.currentYPosition + SHEETINSETY;

Cool beans. Improves succinctness and reduces declaration scopes, both of which are bug-avoiding Good Things™. Plus there’s the extra bonus of confusing your coworkers by checking in code using extensions they’re probably not aware of either, which is always good for a chuckle. Or “cackling with unholy glee”, as other people see it. Whichever.

h/t: @steipete!


Hey, you can use this to call blocks inline at their definition too!

Continue Reading →

UIKit cocos2d Style

Here’s a couple interesting libraries for the cocos2d programmer that the good folk over at found:

Cocos2D Inspired UIKit Library Allowing You To Easily Render Tilemaps And Movable Sprites

I’ve mentioned the Tiled tool for making game tilemaps with the TMX tile format, and the Texture Packer tool for creating spritesheets which are commonly used with the Cocos2D game engine.

Here’s a library from Moshe Berman providing a simple graphics engine for tile based games allowing you to render TMX maps, and sprites along with other handy features such as virtual controls and game state management…

Library Providing Cocos2D CCAction Style Animation Sequences With UIKit Elements

Here’s a library submitted by Nicholas Tau that provides Cocos2D style animations called UIKitAimationPro.

This means that you can easily create complex animation sequences with UIKit elements, also with nice blocks based callbacks.

As Nicholas states in the read me: “It helps you create a sequence of animations like the way in cocos2d. (also like Sprite Kit even without iOS7)”…

That’s certainly one approach to unifying your iOS 6/iOS 7 interface!

Continue Reading →
Page 4 of 87 «...23456...»