I used to work at Mobiquity, Inc. as their head of mobile security, and a lot of what I did was make sure their iOS apps were as secure as possible. The thing is, a determined attacker will always succeed – our job as a developers is to make their life hard, so that less-than-determined attackers… Continue reading iOS Security 101
Category: Uncategorized
Air travel tips
One hundred and forty one. Close as I can guess, that's how many planes I've been on. Between travel for work, vacations, digital nomading, school, and my family living far from where I do, I travel a lot. So, with all that experience, there are some things I've picked up over the years that I'd… Continue reading Air travel tips
The Future of Tech II
I've written before about the tech that I think has a future and the tech that doesn't. This is an update to that post, with recent developments and some new technologies added to the list. The Next Big Things Mixed Reality (aka MR) Here's a quick review, stolen from my previous post, about some of the… Continue reading The Future of Tech II
Roost Remote: Controlling Arbitrary Smart Devices
I've spent the last few years tinkering and slowly building out an app I call Roost Remote to control all the smart devices in my apartment. I used to have to use different apps to control my lights, my sound system, my AC, my tea kettle... and anything else I decided to add to my… Continue reading Roost Remote: Controlling Arbitrary Smart Devices
7 ways to pack lighter
When I travel to see friends or colleagues, I often receive gasps of surprise at how lightly I've packed. Here are some of the ways I pull it off. 1. Interchangeable wardrobe components When packing clothes, I try not to think in terms of 'outfits' and instead in terms of groups of things that… Continue reading 7 ways to pack lighter
The Dream: Reusing UX Flows
In the course of building apps for clients, I often work with some fantastic UX/UI designers. At least one of them, I've noticed, does something that seems both familiar and unfamiliar to software developers: she has a series of common screens that many apps use and customizes those to the needs of the client. Now,… Continue reading The Dream: Reusing UX Flows
AskNot: an App for Amplifying Liberal Messages
Want to skip to the part where you can help? Sign up here! Like many, I was distraught after the 2016 election. I felt lost, and I didn't know where to begin to try to stop the massive trainwreck our country was heading towards. How could I use my particular skills to make a change?… Continue reading AskNot: an App for Amplifying Liberal Messages
Nagging Users to Take Action
Mobile app developers know that users have to be prompted to take actions like rating your app, upgrading, and other such activities. However, it's really important not to be annoying about it, or your users will just uninstall (plus everyone hates being nagged incessantly!). With this in mind, I built a simple Swift cocoapod to… Continue reading Nagging Users to Take Action
Convenient iOS JSON Parsing with Eson
As a mobile developer, I routinely work with JSON from APIs. Going from a JSON dictionary to a model object is something I do for just about every screen I build. On Android, I use a wonderful library called Gson which (more or less) automatically take JSON and populates a model object with the data.… Continue reading Convenient iOS JSON Parsing with Eson
Applying SOLID Principles and Functional Patterns to iOS Networking
At Habitica, Phillip Thelen, Keith Holliday, and I have been talking about removing RestKit and replacing it with several other smaller libraries instead (like Realm, Alamofire, and SwiftyJSON, to name a few). That, in combination with some conversations I've had with Brandon Williams about functional programming, have lead me to create a simple scaffolding for… Continue reading Applying SOLID Principles and Functional Patterns to iOS Networking