Hung Truong: The Blog!

  • April 07, 2019

    Making an iOS Zwift Clone to Save $15 a Month! Part 2: Reverse Engineering a Workout

    A very colorful Zwift Workout

    Last time, on “Making an iOS Zwift Clone to Save $15 a Month” I wrote about learning Core Bluetooth to connect to my exercise bike and get data streaming directly to my app.

    Since writing that article, I cleaned up the implementation of the Core Bluetooth service a bit and started supporting some additional data like distance, calories burned and cycling cadence.

    While cycling on my exercise bike and staring at these numbers is fun, the built-in screen on my bike already shows these numbers, so I essentially recreated a subset of the official ergData app so far.

    The ergData app is functional but ugly af

    I realized the next challenge would be to start a guided workout in my app and show the target wattage alongside my actual wattage on the bike.

    More …

  • March 17, 2019

    Making an iOS Zwift Clone to Save $15 a Month! Part 1: Core Bluetooth

    It’s been a while since I’ve worked on a personal project, but I’ve been having an itch to make some new iOS apps and yesterday morning I decided to go ahead and hack something together.

    I recently purchased an exercise bike called the BikeErg (I think the name has something to do with the rowing machines that the manufacturer also makes). The bike has a built-in computer that keeps track of things like watts (apparently cycling is a sport that has really good analytics since it’s easy to track raw power), calories burned, cadence and other stuff. You can view the data on the monitor or use an app like Zwift to do workouts.

    The BikeErg comes with the PM5: the most advanced PM thing ever.
    More …

  • May 20, 2018

    Five Simple Steps to Becoming an International™ Conference Speaker!

    Me speaking at iOSCon London 2018. Image copyright Ed Telling

    A few years ago, I made a goal for myself that I would start speaking at conferences. In the past I had gone to quite a few awesome conferences and I really admired the folks who could get on a stage, share a bunch of knowledge and inspire an audience to do cool stuff. While I had a bit of experience with public speaking (I spoke at some local iOS/Android meetups and moderated two panels at SXSW back in ’11 and ’13), I wanted to try for a “real” conference spot.

    I think the conference that convinced me to start applying was Swift Summit, which I attended in 2015. There were a number of really inspiring talks, and the community felt really fresh and welcoming. One interesting aside: I learned after joining Lyft that no fewer than three of my current coworkers on iOS spoke at that conference (Keith, Sam and JP, though only Keith was working at Lyft at the time) and a few others attended that year. I’m not sure if that’s correlation or causation at work.

    More …

  • April 07, 2018

    Updating My Blog and Killing Wordpress!

    R.I.P. old blog!

    A week or two ago I got an email from Google telling me that my blog had once again been hacked. I’ve written before about getting hacked and I basically knew how to unhack myself, but I put it off for a bit until I checked my website again and noticed that Chrome was warning me to avoid it! This was pretty much the last straw. I decided to move off of self-hosted Wordpress and switch to something a bit more secure.

    More …

  • December 03, 2017

    Introducing DeadRinger: An iPhone X Lockscreen Replica

    Deadringer Demo

    I got an idea the other day when I was looking at my co-worker’s iPhone X sitting on a desk. I thought that I could have mistaken it for my own phone, since iPhone X comes in two colors and you have a 50% chance of having the same phone color as any other person. I was thinking that if I did mistake it as my phone and entered my passcode, I’d basically be transmitting the key to all of my personal data.

    More …