Cross Platform Thoughts

Cross Platform development for most mobile apps is just simply not worth it. Sure, there are great open source options like React Native and just plain C++ but you end up spending the same time trying to be clever and “share code” when you could have just built your product with all the platform has to offer. There seems to be a lot of realizations this year with Dropbox dropping their C++ components and last year Airbnb sunsetting React Native components. I’ve played this game before and while it was a great challenge, I would advise anyone not to do it for most cases.

Back in 2017 I joined the Highrise team as the Lead Mobile Engineer and one of the first decisions we needed to make was: what is the future of our game and how could we create it so that it could live on Android?

Continue Reading »

Debugging with Sound

Debugging is hard. You have to remember what you or someone else was trying to do while understanding what’s actually going on. I don’t remember where I heard it, but there is a saying that goes something like “Don’t write code at the peak of your understanding because debugging it requires 2 times the understanding…”. Sometimes it’s not that it’s hard it’s that there is just too much going on. For these cases, I’ve been using sound.

Continue Reading »

Calling Kotlin from C++

At Highrise we’ve been building the future of our platform in a way that supports Android. We’ve put together a stack that is pretty challenging but really fun to build. It’s based on a C++ core and platform specific projects in Swift (for iOS) and Kotlin (for Android) that uses that core. On Swift you need to have an Objective-C++ wrapper for Swift to call functionality in the C++ core, but it’s pretty straightforward and things like wrapping a block in an std::function works pretty well. Android however runs on the JVM and requires using JNI to communicate with C++. This took away the niceness of Kotlin lambdas for asynchronous completion away from us. Or did it?

Continue Reading »

→ Number Rush

Apparently I’m not the only one named “Josh Johnson” that has a problem with German numbers. Here is a web-based game by another Josh Johnson to help with your German number learning. It also uses React.js which is something I’ve been wanting to play with. You can see the code on Github.

→ Guide to Functional Reactive Programming

Realm, which posts amazing videos regularly, has just posted a Guide to Functional Reactive Programming. They discuss the why, the what, the how, and the who all while linking to some great videos. Definitely a nice resource if you haven’t looked into this. I’ve read a lot about it but I don’t think I’ve fully internalized this yet. This will definitely help.

Coding Weekend

This weekend I spent some time at the Ticketmaster DevJam in Durham. They are working on a public API with events, venues, and more that they’d like to get developers using. For me, it was a day long event with food and building a weird app with some friends.

Continue Reading »

→ Microsoft Acquires Xamarin

Interesting, and unsurprising, news today that Xamarin has been acquired by Microsoft. I’ve never used it directly to build apps but I did to some research into using their test cloud system (which is actually calabash-based, something I’ve worked a lot with and have written about before). I hear of a lot of people loving to be able to build iOS apps without learning Objective-C or Swift.

This gives Microsoft an interesting position as a vendor of an iOS SDK. It will be interesting to see what comes of this.

Learning German with AVSpeechUtterance

For the last couple of months I’ve been studying German with my wife. We both have always wanted to become polyglots so we decided to stop waiting around an just start learning. We both have some ancestors from Germany and would love to visit, so that was a great place to start. One thing I’ve been struggling with is numbers in German. I can count well, but hearing a number in conversation requires a lot of thought. The problem is it is backwards from English, Twenty-One in German would be One-and-Twenty (einundzwanzig). So what’s an iOS Developer to do? I made an app for me to practice.

Continue Reading »

My Developer Tools and Utilities List (2014 Edition)

I’ve often wanted to do a yearly roundup of the tools and utilities I use; if only as a log of things I use over time. I did this two years ago in 2012 and when I was thinking about getting back to blogging I wanted to update the list. The funny thing is not much has changed. I’m actually surprised that I don’t use that many tools. Hardware Retina MacBook Pro - Still working with my 2012 Retina MacBook Pro with 2.

Continue Reading »

→ Implementing a language with LLVM

Writing a programming language is not something I’d ever attempt to accomplish. However, the idea of getting a better understanding of LLVM is very interesting. This tutorial isn’t a complete lesson in the compiler, but I think it will at least help you learn a little more about it..

“This tutorial runs through the implementation of a simple language, showing how fun and easy it can be.”

Sounds fun. I’m in.