Beer Style Guidelines v2024.3 (macOS / iOS / iPadOS)

I just released a major update to Beer Style Guidelines for macOS. This is the largest macOS update since the initial Catalyst version in 2022.

What’s New?

Just like the iOS and iPadOS version that I released in March, the user interface has been completely rewritten. Previously, I used Mac Catalyst to generate the macOS version of the app. The new version shares most of the SwiftUI codebase from the iOS and iPadOS versions.

I tried to stick with as much SwiftUI as I could for the macOS version. I was pretty successful in this effort. It helps that I don’t know much AppKit. This meant that the macOS version may be missing some features.

App Review

This was my first non-Catalyst app to go through Apple’s App Review. I had written a macOS app before, but I distributed it myself.

App Review was much tougher on me for this release. They caught several issues I hadn’t thought of. I’m happy they checked the app for some basic things. We had several back and forth before they approved the app.

What’s Next?

I’m not sure yet. I’ll keep an eye out for any crash or bug reports.

The 2024 version of the Brewers Association Style Guide hasn’t been released yet.

While I wait, I’m debating between several projects.

One possible project is something completely new. I have a feeling it will take me a long time to implement. I’m not sure if I’m ready for that kind of commitment yet. But this may be an app that can make some extra income for me.

I have two other ideas for Beer Style Guidelines. I’m not going to give away the ideas yet. But these could be fun to work on.

Beer Style Guidelines v2024.1 (iOS / iPadOS)

I know I said that I wasn’t planning on any major updates to Beer Style Guidelines. But here I am, releasing a major update to the app.

This is the first release since last August.

But this release is only for iOS and iPadOS. The current macOS version is still v2023.4. I am planning to make updates to the macOS version soon™.

What’s New?

The entire user interface has been rewritten. Previously, I was using UIKit for most of the UI. I had a smattering of SwiftUI. Now, it’s basically reversed. It’s mostly SwiftUI with a smattering of UIKit.

I started with a SwiftUI-only implementation. UIKit made a reappearance in a few places when I struggled for too long getting things working correctly.

One example is the pageable detail view. I fought with SwiftUI’s TabView (doc) with the .tabViewStyle(.page(...)) modifier for too long. I just couldn’t get it to behave like I was expecting. I finally gave up and went with a UIPageViewController (doc) and never looked back.

I also struggled getting my keyboard shortcuts working with SwiftUI’s ScrollView (doc). I have keyboard shortcuts to scroll to the top/bottom, up/down a few lines, up/down a page. With a ScrollView, you can scroll to items (with an id), but what I have is one large scrollable View without an id. I couldn’t figure out how to scroll to a specific location without an id. I know how to do this with a UIScrollView (doc). I wrapped the nested SwiftUI content in the UIScrollView and used the keyboard shortcuts the way I knew how.

I’m not saying these two issues are impossible to solve in SwiftUI. I was just getting frustrated with them and it was easier for me to drop back into UIKit to solve the issue. I hope to find a SwiftUI solution to these soon.

New Text Rendering Engine

Internally, the style guidelines use Markdown for the storing the guide contents. When a guide section is selected, the markdown is loaded and rendered for the user.

Previously, I was using Down as the markdown engine. It was working well enough, but I wanted something that processed tables more naturally. With Down, I could use HTML, but I wanted to use the GitHub table syntax.

I found MarkdownUI. That library allows for both markdown tables and parses directly to SwiftUI. So far it’s been really nice to work with.

Bug Fixes

I believe I’ve fixed a few bugs that existed in the old app. I probably introduced a number of new bugs with this update. I’ve made a lot of changes within the app and I’m sure there are bugs somewhere.

What’s Next?

I’ll probably take a short break from the app. I’ve been pretty focused on this for the last few months. I need a little break.

I am going to start working on an updated macOS version in the next week or two. A lot of it already works on macOS. Everything compiles and runs, but not all of the features are available on macOS. But I need to deal with some of the iOS-specific code I put in place.

The yearly version of the Brewers Association Style Guide usually come out around now. When it does come out, I’ll be busy getting that into the app.

Sites Relaunched - 2024 Edition

It’s been a while since I’ve posted anything here. I’m sorry. I’ve neglected the site and blog.

Recently, I decided that I should rework the site and blog. I totally called this in my Moved From Jekyll to Ghost post in 2022. I seem to get the urge to change everything with the site every few years. This is one of those times.

My last big blog move was from Jekyll to Ghost. This time, I’m going the other way. I’m moving back to Jekyll from Ghost.

Why?

I like the Ghost platform. I was paying for hosting from DigitalPress. They are a great hosting company. The thing is, I just wasn’t using the service enough to justify the monthly cost. It wasn’t expensive, but it does cost something.

I can host the blog and site for free from Netlify. The sites are deployed from GitHub, where I host the code for both sites.

I keep saying sites. Technically, there are two sites. There’s the blog and the rest of it. When I started this latest rework, I wasn’t going to include the blog at all. So I made the rest of the site without the blog. Then I thought I should include the blog again, just in case I wanted to start writing blogging more.

The site (www.ryangrier.com) is a static html site. I used HTML and Bootstrap to create the site. The code is available on GitHub. The site is hosted on Netlify. I created this first. I had it launched for a week or two before deciding to re-add the blog.

The blog (blog.ryangrier.com) uses Jekyll to generate the site. I created my own “theme” here that roughly matches the rest of the site. This code for the blog is also available on GitHub.

I have my old RSS URLs redirect to the new RSS URL. I did not however redirect all of the old posts. That was going to be a lot of work that I’m not really interested in doing. The blog is mostly for me anyway. I don’t think anyone is reading it.

Where’d the older posts go?

I originally imported all of the posts from Ghost. As I was cleaning up some of the old posts, I realized they were outdated. A lot of the non-technical ones didn’t need to be here anymore. So as this post was published, I removed those older posts.

I’ll likely hold onto a lot of the personal posts for about a year and then remove them. I plan on keeping the technical posts around for longer (or forever), I haven’t really decided yet.

If you really want to get to those older posts, you can find them (with some work) in the GitHub repository.

So, what’s next?

What’s next? I dunno. This may be it. Or I may decide to start writing blogging again.

Revisiting The Legend of Zelda- Breath of the Wild

Almost three years ago, I had written a post about The Legend of Zelda: Breath of the Wild. At the time, I had written that I didn’t like Breath of the Wild despite attempting the game on three different occasions. I couldn’t get into it.

Earlier this year, The Legend of Zelda: Tears of the Kingdom came out. Just before Tears of the Kingdom came out, I decided to give The Legend of Zelda: Breath of the Wild another chance.

This time it finally grabbed hold of me. The fourth time was the charm.

I started the game over from the beginning, again. This past Friday, I finished the main storyline of Breath of the Wild. I did it! Go me.

My BOTW Stats according to the loading screen

This (above) was all that I’ve done in the game.

I freed all four of the Divine Beasts. I got the Master Sword. I did not acquire the best armor or fully upgrade my armor. I was a bit nervous about the final boss fight before heading into it. I texted my friend, and local Breath of the Wild expert, Andy, beforehand and he said it would be a cakewalk. It was. I beat the boss on my first attempt.

I think I got the True Ending to the game. I freed all of the Divine Beasts and recovered all of Link’s memories.

As a caveat, I did cheat things a bit. I used a lot of Amiibo cards to get free gear and resources each day I played. It made things easier for me.

My playing time for Breath of the Wild: 75 hours

My total playing time for Breath of the Wild is 75 hours. That may seem like a lot for a video game, but this was over four separate attempts.

I’ve previously said that I didn’t like Breath of the Wild. But I’ve changed my thinking a bit there. I ended up enjoying the game.

I still find the durability of weapons tedious. But I’ve grown to appreciate the cooking. I still really enjoy the huge open world and finding (and solving) the shrines.

So what changed this time? I’m not sure.

The Legend of Zelda is one of my favorite video game franchises. I may have thought that this style of game was a one-off. The popularity of Breath of the Wild should have proven to me otherwise. The added popularity of Tears of the Kingdom is further proof.

I’m not sure what to play next. I’ve only played (and finished) two video games this year. Both games were very long (70+ hr games).

I have many games to play (including Tears of the Kingdom). I also have the Breath of the Wild DLC. But I may just need a shorter game as a palette cleanser.

MyCntdwn Is Still Being Used

In late 2019, I removed my first app, MyCntdwn, from the App Store. It was a sad day for me, but it was also time. I had been hemming and hawing on whether I wanted to continue to support MyCntdwn (and Showers: White Noise Generator). I finally decided to stop developing it and haven’t looked back.

Every week, I get an email from Apple with app usage statistics. This email also includes usage statistics for apps that are no longer listed. I find these emails interesting.

MyCntdwn Usage in April 2023

The image above is part of this week’s email. It shows that MyCntdwn had 375 sessions from opted in users in the past week. Isn’t that crazy? MyCtndwn is still being used by some people. Not many, but by some. The app hasn’t been updated since 2017 and was removed from sale in 2019.

Part of me would love to post one more update to the app. That update would just tell people to download Daniel Gauthier’s excellent Up Ahead app.

These emails from Apple telling me poeple are using the app haven’t perked my interested in reviving MyCntdwn at all. But I’m glad that some folks are still getting use out of a very old app.

OlderNewer