
SwiftRocks - Bruno Rocha
465 FOLLOWERS
Follow Bruno Rocha's SwiftRocks blog for iOS Articles and Tutorials.
SwiftRocks - Bruno Rocha
3w ago
Back in 2022 I launched Burnout Buddy, and today the app has succeeded far beyond my expectations. Netting between $600 and $1000 each month as of writing, BB has been growing 100% organically with little to no effort on my part.
In this post, I'd like to lay out exactly what I've done that I believe contributed (and didn't contribute) to this growth, serving as documentation and inspiration for the indie dev community out there.
Things that helped Understanding ASO
I cannot understate the value of having a good grasp of App Store Optimization (ASO). The case is simple: It doesn't matter how g ..read more
SwiftRocks - Bruno Rocha
1M ago
I recently upgraded my smart home hardware, and I felt like writing a post describing my current setup to serve as inspiration for those wanting to get started or just interested in home automation in general.
The Software
I use Home Assistant OS like many others. The way I like to describe HA is that it's an Alexa on steroids. With an Alexa, you buy smart devices, link them with the Alexa, and then setup automations to control those devices based on conditions like time, weather, and so on. But the problem with Alexas is that 1) the devices must support Alexas specifically, and 2) the automat ..read more
SwiftRocks - Bruno Rocha
2M ago
Recently at work we were considering renaming a folder that contains an enormous amount of files, and we wondered whether or not that would have notable negative consequences for our git repository. Would the repo become considerably larger? Would accessing git history become slower? Or would this be completely fine?
After investigated this, I thought the answer was interesting enough that I felt like writing an article about it.
To answer this question, we need to briefly explain how git works under the hood. There's also a TL;DR at the bottom if you'd like to skip the entire explanation.
How ..read more
SwiftRocks - Bruno Rocha
3M ago
Consider the following situation: A team is asked by their Product Manager to implement features X, Y, and Z into an existing system.
The team then organizes itself and executes the project. After a certain amount of time, they delivered exactly what was asked of them. But then, one of these things happens (choose at least one):
The features work only for the happy path, failing miserably at any sort of edge-case
The features work as expected, but were designed so badly they are immediately considered tech debt
The features work as expected, but are considered useless by the users of the syst ..read more
SwiftRocks - Bruno Rocha
4M ago
Working at a large company like Apple or Google is such a common goal in the tech industry that there's even a market for selling courses and books designed to help people achieve this goal.
But one thing that I've learned in my career is that working at such companies is not for everyone. The experience of working at a large company is extremely different from that of a startup, so if you're not aware of those differences, you can end up having a big (negative) surprise down the road that can make you regret your choices.
In this article, I'd like to show you the difference between companies ..read more
SwiftRocks - Bruno Rocha
6M ago
Throughout my life, I have met several people who struggle to learn a new language, with some of them being unable to communicate at a basic level despite having studied for several years.
I believe that learning a language is not a matter of talent, but that of dedication and following a good process. In this article, I would like to share the process I used more than once (and am still using) to tackle the challenge of learning a new language with great success. I currently speak three languages (native Portuguese, English, Swedish), and am in the process of learning a fourth (Japanese).
My ..read more
SwiftRocks - Bruno Rocha
8M ago
The early (and also not-so-early) days of building a tech startup means hiring and working with people who are capable of wearing a lot of hats. There are a ton of things to do and nowhere near an equal amount of resources to do them. Even if you join as a specialist, chances are you'll find yourself getting deep into other areas.
This is true across the organization, including in mobile engineering. Early engineers don’t just write the code that builds the foundation for the app’s future success (while building up the tech debt that future engineers will pull their hair out over) but also the ..read more
SwiftRocks - Bruno Rocha
8M ago
Every year I watch WWDC and write down some notes. But I've just realized that I've never shared those notes and it felt like something I should do, so I've decided to do just that!
My approach is to pick a handful of sessions that are immediately useful / interesting to me and ignore the rest. I find this to be a good strategy because in my experience trying to keep up with things that you don't care about / don't have an immediate need for is a very easy way to burn yourself out, especially because Apple has this awful habit of announcing things and then proceeding to make them completely ob ..read more
SwiftRocks - Bruno Rocha
1y ago
Disclaimer: The trick I'm going to show here is quite powerful, but like every other underscored attribute in Swift, this is something you should avoid messing with unless you know exactly what you're doing. There are lots of pitfalls attached to these attributes, and the behavior of underscored attributes can change at any time and even stop existing entirely without warning. Don't go around sprinkling this in your projects if you don't fully understand the consequences of doing so!
Swift is regarded for its type safety, meaning the compiler (usually) doesn't allow you to reference or do thin ..read more
SwiftRocks - Bruno Rocha
1y ago
The following is a list of software engineering books I've read that I felt had a strong and lasting positive impact on my career. It's not a list of everything I enjoyed (that would be impossible to list down), but rather a special list of resources that taught/helped me so much that I still find myself thinking about them years later. They are my top recommendations for other software engineers.
Some are about iOS development specifically, but most relate to general software engineering. If you strive to be a world-class developer, these books and resources will help you get there.
(I'm cons ..read more