Mateusz Stawecki

Thoughts on Mobile, Reactive & Serverless

While I’m really enjoying OS X El Capitan (everything runs smoother and my MacBook is much colder) it has put a large nail into the coffin of my two favourite OS X apps: TotalTerminal and TotalFinder. In my opinion, both apps were essential for developers working on their MacBooks in the field, but could also prove useful for any OS X users.

How it works?

The idea is to simplify access to Finder’s folder view and any active Terminal session, by using a global hot key (like ctrl+` for Terminal and alt+` for Finder). Finder would appear at the bottom of the screen, Terminal at the top. This way, you can easily drag and drop files from Finder to other apps like Xcode or even your active Terminal session without switching desktops. It’s particularly useful when using a single display.

Why it’s broken on El Capitan?

In OS X El Capitan, Apple has introduced SIP – “System Integrity Protection”, which protects your system from being tampered by malicious software like malware. One big step for security, but an unfortunate breaking change for plug-ins and apps that rely on these kind of hacks for non-malicious things.

If you’re willing to live with the risk, you can disable System Integrity Protection as the author of TotalFinder explains here, however he does not recommend it.

Proposed replacement!

Ok, so Apptivate isn’t exactly a replacement for TotalFinder, but I’ve originally started using TotalFinder to gain access to features like tabs and the visor. Since then Finder gained pretty good tab support. The visor was extremely useful, but was always a little laggy. Apptivate allows me to create a show/hide hotkey for Finder. Simply add a hotkey for the Finder application and in the Apptivate’s prefereces tick the “Hide application if it is active” setting. Open Finder and move it to the bottom of the screen. In the dock, ctrl-click Finder, select Options > Assign to: All Desktops.
I’ll miss TotalFinder’s split folder view, but Finder’s performance on El Capitan is fantastic, which makes this solution very responsive.

While TotalTerminal was a way of adding custom behaviour to the original Terminal, iTerm2 is a complete replacement with many additional features. Here’s a post on how to configure the visor feature.


After constant postponing and many many discussions, we’ve finally changed our name to Tapjet. I’ve secretly hoped that it would happen before our Kickstarter, but we didn’t want to confuse the people who followed our journey since The Loop Magazine or Wonders. However, it’s finally happened. Both our creation tool and our company name (now Tapjet Limited) are fully re-branded. Hours spent on whois’ing domains and browsing synonyms has paid off. The final list had 65 potential names, but to me Tapjet finally brings a meaningful description of what our product is about: “tap” – because we’re focused on touch and simple immersive experiences, “jet” – because we strive for speed, strength, reliability.


Our new logo by @forgottentowel

Checkout our website at

There is much more to come this year, so make sure you follow our new Twitter account: @tapjet

Leave a comment

When watching the WWDC2015 Keynote, I’ve noticed that the Newsstand icon wasn’t on any of the screenshots. Hmm… interesting. Shortly after that Apple announced “News”, it was pretty clear Newsstand was getting a “replacement”. iOS9 is still in beta, so I guess anything can happen, but I think it’s time to declare the new world order…

#1 Newsstand is still a Category on the AppStore

Not much changed here, even the covers are still around.

Newsstand - AppStore

#2 Newsstand “shelves UI” and the icon are gone – replaced with a generic app group

Just like any other group, it contains apps and icons. Covers are gone. I guess magazine covers still make sense on the AppStore, if the app uses them internally.

Newsstand - app group

#3 Newsstand apps are finally free to leave the group and exist anywhere on your home screen

Newsstand - freedom

What’s up with News?

News is interesting, because it promotes a completely new format for displaying news content. Interestingly, by taking away the focus from apps, which is a quite unusual move. I’ve got used to Apple being all about Apps. The introduction of “seamless linking” might help our case – following article links inside news would allow you to navigate straight to your app.

So far, it seams that News is much closer to what Flipboard is rather than what Newsstand used to be. I don’t see how News would be a better choice for “magazines” (just to clarify – I mean the “magazine” format – regular bundle of content behind a cover), but maybe the “magazine” format is not right for mobile? Do we all have ADHD and can only handle flicking through streams nowadays?

Personally, I still believe in “magazines”, I still think people should try to run magazines on the AppStore. News might turn out to be a great solution for news portals, but I find it very hard to call “News” a replacement for “Newsstand”, because it’s such a huge shift – maybe an “alternate approach”? Apple hasn’t killed magazines just yet.

I’m eager to see how this plays out.

Leave a comment
During the 2013 WWDC alongside iOS7 Apple announced an exciting addition to its CoreLocation framework – a technology that could finally solve the problem of indoor location detection – iBeacons, by leveraging the under-utilised (at the time) Bluetooth Low Energy. The framework was hard to test at first due to lack of hardware providers for the actual beacons, but several startups and companies soon jumped at the opportunity and we could finally give it a proper shot. However, particularly in early releases of iOS7 the iBeacon tech seemed to disappoint with its poor accuracy and reliability. While the concept got a lot of developers excited, the amazement quickly turned into frustration. So, how well do iBeacons actually work nowadays?

Previous Experiments

Less than a year after release, I took part in making some experimental apps.
One which was a guided tour of an office building – related information was displayed when a new room was entered. The beacon accuracy wasn’t particularly important since the space was large. The demo worked fine, especially when the application was running in foreground.
The other one was done at Úll Conf 2014 and relied on the conference app waking up in background. For the first time we could test the setup across >100 devices. We’ve announced a scavenger hunt: once a device came in range with a beacon installed at one of our secret locations, an achievement badge was unlocked in the app. The experiment results were mixed, some things worked, some didn’t (I’ve summarised them last year). iBeacons seemed a little too young to be more than a curiosity. When iOS7 was updated with further fixes and later iOS8, we finally saw improvement. Apple was clearly updating iBeacons and other features which suffered from similar issues (e.g. multi-peer connectivity which was practically a dummy API in the initial release of iOS7). It’s understandable that these things take time to perfect and need to be tested in live conditions, which for a secretive company like Apple was impossible to do before the announcement. So, how far have we come?

“Well, this is going to be a problem.”

Fast forward to April 2015, I’ve attended Úll Conf again and this time we decided to try out a more ambitious setup. We’ve had a perfect opportunity to put together an audio tour to the Museum feature, which was a small exhibition of Apple devices and memorabilias. We had 12 beacons which we installed on some exhibition items.
In the end it worked out quite well:
However, things didn’t start off very well at all. After we’ve setup the beacons, I’ve quickly realised that the app, which was tested against a much simpler setup didn’t behave the way we wanted. This was due to a several problems I’ve observed:

Ranging is far from perfect

On iOS8 I’ve noticed a lot of improvement in the ranging results, but occasional issues still arise:
  • beacons may randomly drop off: don’t be surprised when a ranged beacon disappears only to re-appear on next range
  • When looking at RSSI, be aware that it is equal to 0 when the beacon is in unknown proximity:
    CLBeacon (uuid:…, major:0, minor:1, proximity:0 +/- -1.00m, rssi:0)
  • approximate distances are inaccurate and signal strength reading may fluctuate
When using multiple beacons in a dense setup these inaccuracies will prove particularly difficult.
  • make sure your ranging code compensates for some of these issues: if you’re displaying content for the nearest beacons, don’t trust the result immediately, put a threshold on when a beacon is considered as “the nearest beacon”.

Screenshot 2015-06-11 01.52.13

  • compensate with the user flow. We’ve been very ambitious: the app would display content as soon as a new beacon was considered the closest. On top of that we’ve set the audio to play automatically. This meant that when things went wrong, the current audio track for the item was interrupted with the false-positive result. Why not advertise that a location is available, but allow the user to confirm interaction in a non-intrusive way.
  • compensate with how you structure your information. E.g. you could cluster several  items around a single beacon, instead of having a really dense setup.
The way you compensate will have its trade offs, so you want to pick the right trade off for your use case.

Different devices will give different results

Besides issues with ranging itself, remember that different iPhone/iPad models will have different chipsets and construction. That will lead to inconsistent results.
Here’s a sample i recorded at the Museum, when standing ~50cm from beacon no 1. (iBeacon was behind glass). Each device was in exactly the same spot.

Spot the iBeacons! 😉

iBeacon Ranging Comparison
As you can see, even the loose definition of the three proximity states …Isn’t loose enough!
  • Immediate: Within a few centimeters
  • Near: Within a couple of meters
  • Far: Greater than 10 meters away

Yeah, right!

To avoid fluctuations between beacons, one of the things I’ve tried was to accept only beacons ranged as “immediate” but it was surprisingly rare to observe that state on the old iPad Retina.

Background location monitoring doesn’t work immediately after boot

This is a really important thing to remember when testing background ranging capabilities. Give it at least 10mins for iOS to start looking for your location in background. If you expect for your app to wake up soon after a restart, it won’t work. iOS is taking its time to wake up all of its background services. This is a rare case when the common “have you tried turning it on and off?” approach, actually makes things worse.
Testing iBeacons will require a bit of patience and may require some ingenuity, just ask Ben Dodson and his — clever way to “simulate” entering and leaving regions:


iBeacons aren’t perfect, but they’ve certainly improved. Simple use cases will work pretty well. More complex use cases just require a bit of extra care. The technology enables a lot of new possibilities, from simple ideas like reminding your conference attendees what the WiFi password is when they arrive at your venue, to an immersive shopping or museum experience.
What worries me a little is that we haven’t seen a lot of real case studies in the wild. Imagination’s the limit, but clearly iBeacons haven’t been fully embraced yet. It certainly may be due to their rough start, but as with any technology, if it’s used for its own sake and doesn’t provide actual value to end users, it’s usage is doomed to fail. Can iBeacons actually add real value to the mobile experience? Are they reliable enough to do so? I think so, but during development, make sure you understand their quirks and limitations.

If you want to play with iBeacons, you can do it easily by building something with Glide – our app creation platform. Check it out here.

I’ve recently wrote a piece for The Loop Magazine about a subject close to my heart that is kind of a taboo at conferences – anxiety, clash of egos, impostor syndrome. The piece is in form of a collective interview with some interesting individuals: Amy Worrall, Barry (Baz) Scott, Carola Nitz, Casey Liss, Stuff MC and Mark Reynolds.

Check it out here: Behind the Mask – The Loop Magazine

Ull Conf 2015

Leave a comment
Úll Conf iOS app

Úll Conf iOS app

This year at Úll Conf I had the pleasure of working with the organisers on creating the Úll iOS app. In order to build and publish the application we used Glide – an app creation platform, which I’m working on with Chris Harris. While the key feature of Glide is easy content collation via Dropbox – which allowed us to easily publish the schedule, photographs and speaker information – we’ve been recently experimenting with Apple’s iBeacons.

The conference took place at the Lyrath hotel, in charming Kilkenny, Ireland. The venue was quite large and had several interesting facilities, that we wanted to expose to the participants of the conference.

On Tuesday morning we’ve sent out a notification and published several clues linked to each place. In each room we’ve setup a beacon. We configured our content to post a notification when the beacon was ranged and unlock content related to the room, which included beautiful illustrations done by Carolina Buzio.

2014-05-04 21.45.36

Overall, everything went well. A few takeaways from the experiment:

  • detecting another beacon in the same region doesn’t usually wake up the app again. One of the workarounds I’m using is continuing to range beacons in background, by requesting a background task. That obviously only works for a finite amount of time.
    Another solution is to use multiple beacons regions, but rememeber that you can track up to 20. You’ll also need re-programmable beacons! As Apple points out, you could reconfigure which regions you’re tracking based on where you are.
  • make sure people have Bluetooth turned on. Biggest “oops!” of the experiment. The app didn’t inform the users to switch on bluetooth.
  • Beacons.

    We used beacons supplied by @dermdaly

    dissapearing beacon bug: one of the bugs that I noticed was that often ranged beacons dissapeared several scans after they were initially ranged. In our case this wasn’t a huge problem, we just needed to range it once, but if you’re depending on the beacon to stick around on that list (while you’re actually in range), it’s a problem.

  • beacons not working until device reboot: it’s 2014 and some people still had to restart their phones in order for beacons to work. No comments here.


All iBeacons aside, I highly recommend both Úll Conf and Lyrath 🙂



Leave a comment

Especially with the recent budget cuts, welfare has been a hot topic in the media. However, it’s pretty clear that there is a bit of confusion around what “welfare” really is.

If you’ve studied in the UK as a UK or EU resident just like me, you’ve received between £10,500 – £30,000 of government welfare in form of subsidised tuition. This is something many students don’t even realise and certainly don’t question their entitlement to.

When thinking about welfare and poverty, let’s be clear – we’re all on the same boat. Some of us are just less lucky and more stigmatised for receiving very basic help. Moreover, the money distribution points at a serious inequality issue.

The following video was created by The #GlobalPOV Project in the context of US welfare, but the concepts apply globally. If you feel like you’re the sort of a person who cares about inequality at least a little, I highly recommend you watch it. With economic inequality getting worse every year, this is not an issue which will just go away on its own.

Spread the word:

Leave a comment