Innovaptor Logo

2023

Creating hidden things

It’s always mildly interesting when you stumble across some odd behavior in a program and recognize it as something you’ve had to deal with as well in your projects.

This happened to me today in Autodesk Fusion 360.

One of the basic building blocks...

By Markus Chmelar, , development ux izurvive

2018

Reactive Cocoa - How to wait for multiple signals to complete

Recently, the Functional Reactive Programming (FPR) paradigm has been gaining momentum, but getting started can be hard as its necessary to change the way you’re thinking about the datafow in your program.

For some time now I’ve been answering questions...

By Markus Chmelar, , ios development rac fpr

2017

Get started with Bluetooth Printing on iOS with the Bixolon iOS SDK

We recently had to implement bluetooth printing to a mobile label printer to one of our applications. The specific printer was a Bixolon SPP-R200IIIik. Bixolon provides documentation and and SDK on their homepage.

Unfortunately, the documentation...

By Markus Chmelar, , ios development bluetooth printing

2016

Update to our iOS Localization Workflow

More than three years ago, I wrote about a localization workflow that works well in practice. It was based on the genstrings tool to scan the source code for usages of NSLocalizedString and update the .strings files accordingly. A custom script as...

By Markus Chmelar, , ios development

2015

About Unicode NSStrings

Last week, this post titled Why is Swift’s String API So Hard? by Mike Ash made the rounds. It explains in depth the kinds of problems that arise when working with strings in different encodings, especially in unicode, and how the Swift’s String API...

By Markus Chmelar, , development objective-c objc swift unicode nsstring

A nice perk of the new swift `defer` statement

The defer statement comes as part of the new error handling model in Swift 2.0. Its primary purpose is to help with cleanup of resources in the face of possible early exits due to errors being thrown.

But the use of defer is not limited to error...

By Markus Chmelar, , development xcode swift defer

2014

A Quest for better Testing of iOS Applications

When we started to work on our first big project together - Comicol - we were all about testing. We wrote a lot of unit test cases for every single method of every single class. About 30%-40% of the project’s overall code was code for unit tests.

By Markus Chmelar, , development xcode testing

2013

Xcode Conditional Compilation for Unit-Test Targets

When writing unit test cases, you need to distinguish between real use and test runs in your code from time to time. For example, you might want to send all requests to a test server, instead of the production server.

One possibility to do this is...

By Markus Chmelar, , development xcode testing

Building an Automated Testing & Error Reporting System for Android Apps

We recently had to finish a project under a lot of pressure, and decided that it would be nice if we could empower the ui/application exerciser monkey to automatically send us crash reports.

There are a few setbacks to using the adb monkey as is,...

By Lukas Nagl, , android development testing

Create a Sencha Touch WebApp and deploy within a native iOS App

In this post, I want to give a quick walk-through for building a small HTML5/CSS3/JavaScript application and then bundling it into a native iOS App.

If you don’t need to use native iOS features, you better have a look at how to generate a native package...

By Markus Chmelar, , html5 development xcode

A Localization Workflow that works well in Practice

Update

This blog post is outdated for swift. See this update for a worklow with swift. If you’re still using ObjC, the following workflow is still fine to use.

Original Article

For a long time, it wasn’t clear to me how to deal with the localization...

By Markus Chmelar, , ios development

2012

iZurvive released

Last week, we finally finished the development of our first App, iZurvive, and submitted it to the AppStore for review.

On last wednesday, it passed the review process and is now live on the AppStore! We can’t tell you how excited we currently are...

By Markus Chmelar, , release izurvive

Fast Enumeration Part 2 - Partial Iteration of an Array

It’s been a while since I wrote the first part about Enumeration-Benchmarks. In this second part, I investigate the performance of various methods for achieving a task that seems to be quite common to me: enumerating ‘all but the last’ elements.

By Markus Chmelar, , ios development

Performance Benchmark of Methods for Enumerating a NSArray Pt.1

A few days ago, a colleague of ours had to compare the objects in an NSArray with each other in order to find two specific matching elements. When he asked us how to achieve this in a more efficient manner I started thinking.

The first thing that...

By Markus Chmelar, , ios development

Splitting PDF into Pages on iOS

For a recent project, we had to split a PDF document with any number of pages into single PDF files that contained exactly one page of the source file each. The splitting had to be done by the app itself, and the text in the resulting documents had...

By Markus Chmelar, , ios development

Successful Crunching

The crunch-phase of a project, in which a team works frantically in order to finish a product until a deadline, can be an excruciating time for all the people involved. During my time as software developer, I had my fair share of crunshing, but nevertheless...

By Lukas Nagl, , meta business