Finding the right work
Updated with thoughts from March 2024 Joseph
When I started Radical Application Development in 2015 one of my core goals for the business was to get into app development. At that time, I had built several business systems and databases and I was eager to make a consumer product. I didn’t have time to pursue this goal full time but throughout 2016 I learned a lot about Swift and iOS development.
Repeatedly I ran into issues with the apps I wanted to make. Most of my ideas seemed like they would be achievable but ended up being far beyond my skills. I vastly underestimated how complex iOS development was. Each time I ran up against what I could do I gave up instead of pressing on. For example, I built an awesome time tracking app using Core Data but when I tried to synchronize the data between devices, I had nothing but issues. I lacked the skills and confidence to write my own syncing engine, so I put the project on hold and never picked it back up.
Toward the end of 2016 my friend (and later podcast co-host) suggested that I check out SpriteKit. I had never even considered making a game, but I worked through some tutorials and decided to give it a shot. I spent most of November that year building a small game called Random Arrow. I released the app into the iOS app store in December 2016.
While Random Arrow never took off, I gained something valuable from it. Working in SpriteKit and Swift on a simple game gave me the confidence I needed. Despite having no idea how game engines worked, and little “real” programming experience I was able to produce and ship something. Looking back at Random Arrow now I think it’s sort of a silly idea, but I’m still glad I made it. The confidence I gained from that project lead me to expand my consulting services beyond FileMaker. I started making web applications in PHP–which has paid the bills ever sense–and I started learning Unity and Unreal Engine.
In early 2017 Dave and I decided to attend a local game development meetup. I wanted to share Random Arrow and was eager to meet some “real” game developers. While we were at the meetup Dave tried the Oculus Rift. He was pretty impressed by it and so was I. I didn’t actually try it at the meeting as I kind of nervous that I would look silly. I purchased a VR headset and a PC to use it with and turned my focus to VR development. I’m not going to go into details here, but I spent the next two years with my attention focused on VR. You can get most of the story from VR Hermits.
As with the early iOS projects I got in way over my head with VR development. While I learned a ton about Unity, C#, 3D modeling, animation, and AI, I never shipped a consumer product. I kept my business running during this time with consulting work, mostly FileMaker or PHP projects, but I spent almost all of my time and energy on VR. At one point I was working so much that I actually did a lot of damage to my hands and wrists–damage which I’m still dealing with.
In spring of 2019 I finally decided to step away from VR development, at least where games are concerned. I know enough about game development now to know that I’ll never make a great game. I’m more than capable of using the tools and doing the development, but I lack the type of vision and creativity needed to make a great game. If I really wanted to, I could make some bad games, but I’m not interested in doing that.
I’ve spent my time since then working on FileMaker, WordPress, and PHP consulting projects. I also started working on a new iOS app–something that will be the focus of this blog over the next few months. After nearly two years of trying to get good at something I’ll never be good at, I rediscovered that I am good at some things. I have a lot of skill when it comes to problem solving, user interface design, data modeling, and I’m going to spend my time and attention on those skills from now on.
I may revisit VR development someday, but not as a game developer. I’d love to create some productive applications in VR and AR, possibly even expanding on the projects I’m building now. Now that this little side quest into VR is over, I’m making real progress on iOS development. Some of the concepts that baffled me in 2016 are easy to grasp now. There are also a lot of new APIs and advancements in iOS and Swift. I could even pick up my time tracking app again, as Apple had made new APIs for working with Core Data and CloudKit. For the first time in years, I feel like I’m on the right track.
Update from Future Joe – November 2021
2019 Joe was stupid and wrong. While he did take some time away from VR development, and he did give up game development completely, turning his attention to iOS development was the worst thing he’s done in his career. He wasted 8 months of our life building skills in an environment that 2020 Joe grew to despise. We can say with some certainty now that iOS development–or any native development for that matter–is something that we’ll never really enjoy. Instead, 2020 Joe focused on getting better at Web Development. FileMaker, WordPress, and PHP still generate most of our revenue, but we’ve also learned a ton about frontend development.
2021 Joe is focused on working in Vue JS for several frontend projects. He recently tried to gain some skills in React but gave it up when it became clear that he doesn’t think in the way that React solves problems.
As far as VR development is concerned, 2021 Joe is combining his skills as a web developer and a UI designer to build UI interfaces in 3D using WebXR. VR development was never the distraction, trying to make games was. The only smart think that 2019 Joe said in this article was:
I have a lot of skill when it comes to problem solving, user interface design, data modeling, and I’m going to spend my time and attention on those skills from now on.
2019 Joe, saying one smart thing.
2022 Joe better step up and start making real progress on VR UI/UX. In the meantime, 2021 Joe is busy writing a screenplay…
Update from Future Joe – March 2022
Wow! 2021 Joe sounded a little upset! He was on the right track though. We’ve spent the past few months learning a ton about WebXR, A-Frame, and Babylon JS. We started (and completed) a series called A Vue into 3D where we explored a few 3D libraries in the context of Vue. The idea was to look at A-Frame, Babylon JS, Three JS, and how they could each interface with reactive data in Vue JS. While A-Frame was the most natural fit, we settled on Babylon JS because of its advanced GUI features and rock-solid community.
We also started a new long-term side project called Canvatorium. It’s an experimental design lab for spatial computing. The project uses Babylon JS 5.0 and Vue 3 to explore spatial UI/UX concepts, reactive data, GUI, etc.
Canvatorium, being structured and thought of as a long-term side project, is one of the more enjoyable things we’ve done. It has no deadlines or pressure, no real requirements, no stress. It’s a place where we can try out concepts, document things we’re learning, and build bits of pieces of other projects and ideas. With two months of Canvatorium behind us, we wonder what Far Future Joe will think about it. Did he stick with it? Did it help him or anyone else?
We’re also still paying the bills. Lots of Vue/Frontend work, tons of WordPress work, and a smattering of FileMaker development. We need to add Babylon JS to the list of consulting services…
P.S. – 2021 Joe did finish that screenplay but has not had the time to make it into the VR production that it deserves to be.
Update from Future Joseph* – March 2024
2022 Joe was on the right track. Canvatorium has been one of our best projects to work on. It has given us the opportunity build and learn in public, even when the product of the work wasn’t something we could share. Canvatorium has also been important in getting new clients and projects. In late 2023 we started expanding Canvatorium beyond the scope of Vue and Babylon. The 5000 series includes labs built for Apple Vision Pro using SwiftUI and RealityKit. We’re planning other series as well, such as Three JS.
The biggest change over the last two years is that we stopped tying to change directions. Past Joe was always trying to find a single vector on which we could travel. That obsession is why we changed course so many times. “I’m going all in on game dev”, “No, I’m a UI/UX dev”, “No, I’m a web dev” and so on over the years. In 2023 we realized what we are: A Generalist Developer. Since embracing that path, everything has become easier. Picking projects and clients no longer involves trying to fit them within out plan. Instead we consider if the project is something we can do, if we can make decent money at it, and–most importantly–if we want to do it. We have never had so many options.
Another huge change was the release of Apple Vision Pro. Every version of Past Joe has been waiting for this since Jan 2017 when we had out first taste of the immersive future. By the time it was announced at WWDC 2023, we were already working in Xcode and Swift again for retainer client. It was easy to predict that we would end building apps for Apple Vision Pro. This time the focus is a bit different. Instead of trying build products to sell, the focus has been on building in public and documenting everything. Canvatorium has been a huge part of that. So has a silly personal project called Project Graveyard. The BabylonJS labs in Canvatorium brought us some great opportunities and visionOS labs are starting to do the same thing.
Looking back at everything we’ve done, we used to feel bad about wasting so much time. That has all changed. It’s clear now that the skills we have gained–the databases, the 2D UI/I\UX work, years of experience with native and web development, a deep understanding of 3D and VR, and a constant desire to build and explore–are all coming together to help us build for Spatial Computing. The next few years are going to be wild.
It didn’t feel like it at the time, but everything Past Joe has done has set us up to win in the age of Spatial Computing.
* Joseph? Yes. We really starting using that name for the first time.
2019 Joe said “I also started working on a new iOS app–something that will be the focus of this blog over the next few months.”
Just in case you were wondering where those posts went? I deleted them. Way too many people asking for SwiftUI help… I don’t even had Xcode installed anymore.