Interacting with the iOS Simulator from the Command Line using simctl

Wasn’t aware of this, but turns out one can control (and interact with) the iOS Simulator straight from the command line. There’s no need to install anything new though. The tool we’re going to be using is already on our Mac, hiding inside the xcrun command, which gets installed with Xcode. It’s called simctl. Here’s […]

PanelKit, a UI framework enabling floating and pinned panels on iOS

Great stuff by Louis D’hauwe, a former student of mine: PanelKit is a UI framework that enables panels on iOS. A panel can be presented in the following ways: Modally As a popover Floating (drag the panel around) Pinned (either left or right) This framework does all the heavy lifting for dragging panels, pinning them […]

Jasonette – Build cross-platform mobile apps using JSON

Just like how web browsers turn HTML into a web page, Jasonette turns JSON into iOS native components. This lets you build native apps by writing a simple JSON. Here’s a small snippet/example: { “$jason”: { “head”: { “title”: “{ ΛƒΜ΅Μ‘α΄₯Λ‚Μ΅Μ‘}”, “offline”: “true”, “actions”: { “$foreground”: { “type”: “$reload” }, “$pull”: { “type”: “$reload” } […]

Making viewport units work properly in Mobile Safari

A typical issue with the well supported Viewport Relative Units (you know: vh, vw, vmin, and vmax) that bothers me a lot is that MobileSafari (Safari on iOS) takes the height of the address bar into account for 100vh. Take a look at the footer of that first block in the screenshot below: since its […]

Mission Control – Remote Config Utility for iOS, OSX, …

Have you ever wished you could change some config parameter for your app without deploying a new version? Of course you have! Wouldn’t it be great if you had whole config for your app in the cloud and change it as you see fit? Of course it would! Well, go ahead, just put some config […]


Like JockeyJS, written in Swift, and with support for WKWebView: A bridge for WebView(UIWebView, WKWebView), using JavaScriptCore, handles communications between native(Swift) and js. Example usage (call native function from JS): // XCode override func viewDidLoad() { // … let webView = WKWebView() let bridge = ZHWebViewBridge.bridge(webview) bridge.registerHandler(“Video.Play”) { (args:[AnyObject]) -> (Bool, [AnyObject]?) in return […]

EarlGrey – iOS UI Automation Test Framework

New native iOS UI automation test framework from Google: With the EarlGrey framework, you have access to enhanced synchronization features […] which help ensure that the UI is in a steady state before actions are performed. This greatly increases test stability and makes tests highly repeatable. EarlGrey works in conjunction with the XCTest framework and […]