Flaky iOS System Location - There and Back again

A very strange thing started happening in our office over the last few weeks. Several iPhones during the day randomly traveled to London and back to Prague. At least, that’s what the system location info was saying.

London or Prague? London or Prague?

Continue reading ....

Protocol based Swift app analytics - Trackable

I don’t know a single programmer who likes implementing an analytics tracking service into a project. It’s a boring manual job you usually do as the last thing before the app store release. Why is it such a pain?

Can't someone else do it?

Continue reading ....

SwiftSummit SF 2015

I’m sitting on a plane on my way back to Prague from San Francisco, where I spent the last three weeks. It was my third visit to the Bay Area in the past 12 months, and I have to say this was the best trip! Though it wasn’t the main purpose of my trip, I managed to attend SwiftSummit 2015 (thank you @strvcom).

Here are a few notes about the talks, and things that left a deep impression on me. They are still resonating inside me very strongly, even though the conference was two weeks ago. I will be adding links to slides and videos of the talks as they are published.

Continue reading ....

Customizing UIKit appearance using protocols

Prologue

I remeber exactly the very moment when I started hating storyboards. It was back in 2013, and I had to solve my first storyboard merge conflict. I didn’t succeed. I convinced myself that storyboards are tools for beginners because “real programmers write code.” We even had it written in our iOS coding guidelines at STRV: “unless the app is super simple, try to avoid using storyboards.”

Continue reading ....

MinionGenerator #Banana

Since the day I read this article and saw Natasha was using Minions for placeholder data, I started to do it, too. It’s hilarious to see these funny creatures on the places where users, clients or even bank officers are supposed to be.

Kevin Loan Officer

But how you get a Minion when you need him? Oh yeah, you need a Minion generator!

Continue reading ....

Swipe to choose (aka Tinder)

I joined the WatchKit hackaton we organized in our office last weekend, and it was awesome! The project I worked on was a WatchKit app called “FaceMatch”. Our company is growing really fast and sometimes it’s difficult to remember all the new faces and names. The FaceMatch app shows you a random photo and name, and you have to decide whether the name matches the photo. This is a cool and fun way to learn new colleagues’ names!

I wanted to use the well-known Tinder-like “swipe to choose” UI. At the beginning, it seemed impossible to implement it because of the very limited WatchKit UI. We don’t even have gestures! However, after several iterations, this is what I came up with:

Swipe to choose (aka Tinder)

Continue reading ....

How to open the parent app in the foreground from the WatchKit app

This post could be very short. You simply cannot open the parent app from the WatchKit app in the foreground. That’s all. Thank you for reading my blog.

… But wait. Seriously. What if we really need to open the parent app in the foreground? For example, when we need a user to login using their Facebook account to be able to finish an order. Facebook SDK cannot run in the watch extension, so there’s really no way how to login a user directly from the watch app.

Well, what we can do is to help users with opening our app. What we are looking for is a technology called Handoff.

Continue reading ....

Making life easier - Swift "Tweaks"

What I really like about programing is the idea of reusability. The fact that you can use a chunk of code today for one project and then again the following year for a different project is remarkably satisfying. Learning Swift these days gives us, iOS programers, a great opportunity to re-think our old manners, code snippets and techniques. We can create new ones from scratch and use all we’ve learned over the years to make them even more clever.

Let me show you a bunch of Swift functions and extensions I’m using. Don’t expect any new, rule-breaking ideas, though. These are common and well-known things. Or at least (I think) they should be.

Continue reading ....

Real-time text formatting in UITextField

Real-time text formatting within UITextField has became a common feature in iOS apps. Even though there are lots of ready-to-use solutions available over the Internet, sometimes you don’t need a complex and super powerful library. Imagine this situation: We’re using a SSN to sign into the app. It should work like this:
Example video

Let’s build it from scratch. It won’t take more than 10 minutes!

Continue reading ....

4 reasons why we’re using Swift

(Plus 1 reason why you may not want to)

I’m an iOS developer at STRV. Since the day Apple revealed Swift at the 2014 WWDC event, we immediately started playing around with this brand new language for iOS app development. We were more than excited about it! Though the language, and especially its development environment (Xcode), wasn’t ready for production use, we started using it last summer on few of our new projects.

Continue reading ....