Questions for myself about SwiftUI

This weekend I’m going to spend some time with SwiftUI. I tried to think of the most important questions that I want to answer. I have no idea how much progress I will make but if I come up with answers to these I’ll write about them.

  1. Can I connect a SwiftUI List to a Core Data FetchedResultsController?
    1. How do I set this up?
    2. Load data
    3. Edit data
    4. Delete data
  2. Does SwiftUI support advanced table features?
    1. Readable Size for cells
    2. Reorder controls
    3. Context actions
  3. How can I pass an object from a list view to a form view?
    1. Dependency injection?
  4. Can I make form views that do not save data until the done button is tapped? Pass back to the List view to save the changes. 
  5. Can I easily segue to UIKIT View Controllers? I need access to CollectionViews and Large TextViews, neither of which exist in SwiftUI.

Symbols and icons

I’m working on an icon picker for my app. The idea is to allow users to select a color and icon as a secondary way of identifying their lists. I have 10 colors picked out and the color picker is up and running, and I just wrapped up the first pass at the icon picker. For the time being I’m using SF Symbols. I went through the list of available symbols and found 101 that I think may be useful for my app. I may switch to a third-party icon pack before launch, but once I ship version 1.0 I need to make sure that I’m providing access to a consistent set of icons.

Light Mode version

Dark Mode version

Finding the right work

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 a number of 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.

Time and again 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 a really awesome time tracking app using Core Data but when I tried to sync 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 starting 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 while 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.

New Podcast: Project Update

In spring of 2018 Dave and I put VR Hermits on hiatus. Dave had some interesting work he wanted to focus on and I needed to spend some time on a few consulting projects. We had planned to resume in the fall but I think somewhere along the line Dave realized that Virtual Reality development was not what he wanted to do. It took me a lot longer to come to the same conclusion. Despite this, I kept pestering Dave to start recording again. I really missed the weekly calls where I could bounce my ideas off of him and hear about what he was working on.

A couple of months ago we finally decided to get pack to podcasting. We initially had no idea what the show would be about and even considered a return to Massively Unqualified Development. Regardless, we started recording some beta episodes in May of 2019 and we eventually settled on a new format. Those beta episodes may never be published, but the result is out new podcast called Project Update.

Joe and Dave discuss the progress of their respective projects, delving into the challenges, successes, and failures of being commercial software developers, periodic game developers, and general technology enthusiasts. Project Update is about our projects and lives, but we’ll also be bringing in other creators to talk about their projects and lives. In some ways we’re all dealing with the same issues, and in others we’re dealing with a problem space uniquely our own.

About the show, Project Update

In this new podcast we talk each week about our software development projects–among other things. Dave is building developer tools for the FileMaker community and I’m creating an iOS app in addition to my FileMaker and Web consulting work. As of the time of this post we have recorded four episodes, including an episode with our first guest.

Updating my website

Sometime last year allowed myself to get away from working on this site. I was never “complete” to begin with, but it got to the point where the content on this site was no longer relevant to the work I do. Today I decided to spend some time trying to clean things up.

I started with some new branding colors, the most important of which is HEX #5D28A7. I’m using that color heavily in an iOS app I’m working on and I plan to incorporate it into some additional products down the line. My site is powered by WordPress so the next step was to select a theme. I recently worked with Ascend on a consulting project and was impressed how customizable it was without having to dive into to the code. I installed the premium version and got to work. After selecting a layout, changing some colors, making a menu, and adjusting some settings I managed to make something that I like. I have a lot of work to do on it but I’m happy with the progress so far.

Something I had a lot of trouble with was writing a short blurb or description about myself or my business… I think for now I’ll let the site speak for itself. Perhaps I’ll add something later. I used to stress out about this sort of thing but I’ve been in business for four years now and I have never had a customer mention my website to me. It seems like all of my consulting business has been based on referrals from other customers.

Someday I’d like to get a logo made for the business and the website. I have no idea what that would look like or what I would want it to say about me.

1 2 3