Archives
All the articles I've archived.
-
The Age of the Micro-Entrepreneur
What happens when a single person can build what used to require a team? The answer is reshaping everything we know about software development.
-
Stop Getting Average Code from Your LLM
Most developers use LLMs straight out of the box and wonder why the code looks nothing like production. Here's how to teach them your style...
-
Introducing Swifty Stack
What if I told you that you could save hours of development time every week? Swifty Stack course will help you master the most efficient frameworks, tools, and techniques to accelerate your app creations like never before.
-
Creating Developer Tool - Part 2
Continuing series on crafting your very own developer tool, we're delving into the heart of the process! Explore the intricacies of modeling log entries and building a dynamic filtering system that tailors to your needs.
-
Creating a developer tool - part 1
Crafting a dev tool? Here's how I'm implementing an easy-to-use toggle to unveil a more complex UI for my latest project.
-
The Journey to Financial Independence as a Programmer
Achieving Financial Independence and leveraging this to improve your lifestyle offering you more control and choice
-
Work-Life Balance for Sustainable Success
Caught in the relentless grind of the tech industry? Discover a better way. Dive into the crucial shift from overwork to balance and how it can transform your life and productivity. It's time we redefined success and debunked the myths of the 'Hustle Culture'.
-
Optimizing Swift: Tracking property changes and building a Memoization system
Tracking property changes and intelligently avoids redundant computations by leveraging custom memoization system, leading to more efficient and performant apps.
-
How to avoid burnout as a software engineer?
As a software engineer, burnout can be common due to the demanding nature of the job. Prioritizing self-care, setting realistic goals, managing workload, taking breaks, practicing self-care, and setting boundaries can help prevent burnout and maintain a healthy work-life balance.
-
The Composable Architecture - Best Practices
Set of best practices for The Composable Architecture projects based on experiences of the team at The Browser Company.
-
Widget Architecture - Part 3
Let's use Sourcery to automate and customize our Widget architecture.
-
Widget Architecture - Part 2
Converting prototype component system to data-driven w/ live reloading & automation using Sourcery for easier maintenance & reliability
-
Widget architecture - part 1
Let's start exploring a component-based architecture slightly different from the usual patterns we use.
-
Debugging Tips
What are your favorite Swift debugging tips?
-
TCA Performance and Multi-Store
Let's talk about using multi-store pattern in TCA as a way to improve the performance and maintainability.
-
Composable Architecture @ Scale
Last week I spoke at NSSpainX to talk about how to use Composable Architecture in larger projects, the kind of issues you might run into and how you can...
-
Improving Developer Experience through tools and techniques
How to evaluate problem areas you see in day-to-day development to assess whether they could be solved at a scale of your team/company or the whole community?
-
TCA Action Boundries - Convenience
Now that we added some structure to our TCA actions, let's add automation and convenience API's.
-
TCA Action Boundaries
To maintain our codebases for years, we must create boundaries across modules. Here's my approach to doing that with The Composable Architecture.
-
Practical Sourcery examples
Let's explore couple of atypical Sourcery use-cases.
-
Building captivating content reveal animation.
How can you leverage masking to build a captivating content reveal effect?
-
Supporting updatable assets
How often have you wanted to change some small setting in your application? Let's build a generic solution.
-
Hot Reloading in Swift
The year is 2040, and our newest MacBook M30X processors can compile large Swift projects perceivably instantaneously, sounds pretty amazing, right?
-
Exhaustive testing in TCA
As you probably know I’m also a big proponent of TDD/BDD, so let’s start by talking about what I don’t like about the way TCA does testing.
-
Code-Review best practices
No matter how experienced we are, we are bound to make mistakes in our work. This simple fact is one of the reasons why Code Reviews have become the...
-
Leave your ego at the door
We define ego as a person’s sense of self-importance. It’s an attribute that contributes to building up your identity and figuring out what you want in life.
-
Improving Composable Architecture Debugging
I've been a fan of Point FreeComposable architecture for a while now.
-
Apple Treats interview
Yesterday I was interviewed by Apple Treats You can watch the recording here:
-
Dear Xcode....
Two weeks ago I've released Sourcery Pro, the most powerful Xcode extension that exists.
-
Introducing Sourcery Pro
Today I'm happy to announce a new mac app that extends Xcode features. This is an effort of over 1000 hours, so if there was ever time to show your support...
-
The Decade in Review
Lately, I've spent a significant amount of time thinking about my career: what I've done so far and what might lie ahead for me.
-
Improve build times by extracting 3rd party tooling to processing script.
A lot has been written about improving Swift compile times, but the compiler and linker are just part of the equation that slows down our development cycle.
-
Adding support for versioning and migration to your Codable models.
`Codable` is a great protocol for automating simple model persistence, but it lacks support for any kind of versioning or migrating the data from older...
-
Straighforward Data Snapshots
If your app has a lot of content, chances are that by the time you get a chance to work on a bug report, the data that the bug appeared on will be long gone.
-
Finding exact difference between 2 instances
Have you ever written tests? Usually, they use equality asserts, e.g. XCTAssertEqual, what happens if the object isn't equal? Xcode throws a wall of text at...
-
How to find retain cycles and memory leaks sooner
LifetimeTracker can surface retain cycle / memory issues right as you develop your application, and it will surface them to you immediately, so you can find...
-
Metaprogramming in Swift talk
I've recently spoke at CraftConf about metaprogramming in Swift using my Sourcery
-
Using protocol compositon for dependency injection
I like using composition and dependency injection, but when you need to inject each entity with multiple dependencies, it can get cumbersome fast.
-
Stop weak-strong dance
Closures in Swift are extremely useful, they are interchangeable with functions and that creates a lot of opportunities for useful use-cases. One thing we...
-
Swift Coders interview
I've been interviewed at Swift Coders podcast: I'm definitely investing into a better Microphone next time I'm doing any audio recording.
-
Seniority
People use different words to classify Engineer skill, some companies give you more senior role just based on a number of years you have been working there,...
-
Testing iOS Apps
Writing tests in iOS apps is a touchy subject. Not everyone is so privileged to be able to write tests full-time, for different reasons.
-
How hard would it be to adjust your iOS app in real-time?
Iterating over design that needs to be reflected in code can be tedious and time-consuming. Typically the designer works in graphics editing software and...
-
Meta-programming in Swift
Swift has very limited runtime support and no meta-programming features. I created a new tool that changes that, it's called Sourcery
-
Better MVVM setup with POP and Runtime
Even if we are writing pure Swift code in our app, we still deal with Objective-C Frameworks like UIKit.
-
Investing time into developer tools
As I open source another framework this week, I wanted to share few thoughts about building developer tools.
-
Setting up pre-commit hook for iOS
Many of us already write unit tests and run continuous integration servers, we can also leverage great tools like Danger to easily add some checks to the...
-
Logging in Swift
Logging is one of the rare cases when you could probably justify having a singleton, but with Swift Protocol Extension you don't need to.
-
iOS Architecture
I recently did a talk in Prague about iOS Application Architecture, you can watch it here.
-
8 Books that everyone should read
A list of 8 books that Krzysztof Zabłocki believes everyone should read to improve their life.
-
Programming
What is programming? For me it has always been about solving problems, and analytical thinking. Does it matter what language or platform you solve problems...
-
Improve your iOS Architecture with FlowControllers
When working on iOS app, now more than ever one should avoid having view controllers pushing other view controllers around.
-
Little things that can make your life easier in 2016
As we are closing this year, let's take a look at few simple things you can add to your iOS developer toolbox to make your life easier and be more...
-
Details matter - harnessing the power of Core Animation
A friend showed me animations from Stripe Checkout and asked: "how could we implement that on iOS?" Learn how to harness Core Animation for folding, shaking, and button animations.
-
Writing Xcode plugin in Swift
I've found myself using Xcode a lot more than I did in Objective-C. One of things I’ve missed a lot from my AppCode setup, is the ability to jump to...
-
The beauty of imperfection
Perfection is not something one can truly achieve, so it's very smart that one of the best meditation services called Headspace is using an imperfect dot as their brand logo. Learn how to recreate their captivating animated dot effect.
-
Swift init()
With Swift strong typing and immutability, there are rules that prevent you from accesing variables until an object is fully initialized.
-
Tips for Interface Builder
Young developers are happy when they write a lot of code, they like to brag about that project that has tens of thousands lines of code they wrote.
-
Prototyping floating burger menu with CAShapeLayer
Reproducing a floating burger menu animation is simple with CAShapeLayer and CoreAnimation. Learn how to use strokeStart and strokeEnd to create elegant menu transitions.
-
Simple way to scrape web with Ruby
MyFitnessPal didn't give me API access, so I wrote some Ruby to get it anyway. Logging in into MyFitnessPal, go to Reports Tab.
-
Playgrounds for Objective C
Playgrounds are one of the niftiest features of Swift. They allow you to quickly test out bits of code and see results in real time without going through...
-
iOS Project Bootstrap
If you are looking for some good quality project settings and scripts, I've open-sources my bootstrap for upcoming 2015.
-
How do I work?
I’ve been programming for 20 years now, doing commercial work for the last 8. Over the years I’ve been exposed to different ideas and experiences that have...
-
A Swift introduction into fitness
Many people think getting fit is hard, the fitness industry is full of myths and unnecessary complications.
-
Writing less code
What are some of my favorite techniques for cleaner and more readable code? Over the years I’ve become very pedantic when it comes to code quality.
-
Improving development speed
I wrote a blogpost about improving iteration speed and why code injection is awesome when you work on small changes.
-
Implementing observable in Swift
KVO has been integral part of Cocoa programming, yet it's not available for pure Swift classes. Is there a way to implement your own implementation of...
-
Behaviours and Xcode 6
Last time I've written about Behaviours in objc.io Architecture Series.
-
Implementing image comparison view in 20 minutes
Did you ever see image split available in Kaleidoscope? It's really easy to implement similar one in iOS with some CoreAnimation code.
-
iOS App Architecture, Part 2: Data parsing
Last time we set our project, this time we look at how we could create a simple yet flexible architecture for our model layer.
-
Refactoring tricks
I believe in boy scout rule: *'Always leave the campground cleaner than you found it.'*, that's why I constantly refactor my code so it's clean and tidy.
-
7 most common code issues
What are top 7 most common issues I find doing Code Reviews? It makes me think that you didn't learn how to use version control and tagging, why the hell do...
-
iOS App Architecture, Part 1: Setting up
This will be subjective look at creating iOS app, first part will focus on basics like project setup, folder structure, version control and some quality...
-
iOS tips
Easy to apply tips that can improve your development workflow. I believe you should use best tool for the job, and there are lots of tools that are perfect...
-
Fit geek
If you ever meet me you probably already know my second biggest passion after programming is Bodybuilding.
-
iOS Developer Tools
I probably spend too much money on apps, but I like to support other Developer's good ideas. I recently gave talk about tools I use and why.
-
Stop writing data parsing code in your apps
Data parsing is one of most common tasks we need to do in our apps, yet still majority of people do this parsing by hand, always repeating the same code for...
-
Expanded use of asserts
Do you use assertions in your code? What for? How do you handle release builds ? There is a better way than NSAssert...
-
Crafter - setup your cocoa projects with ease
How do you setup your Cocoa projects? Do you always set same warnings, clone configurations and do bunch of other stuff?
-
iOS Game with Interface Builder
Create a simple clone of game called teeter. - *UIKit* for rendering - this game doesn't require any fancy effects.
-
Statusboard and Jenkins
You probably saw StatusBoard by Panic. I've immediately thought it needs simple Jenkins widget.
-
Overlaying application version on top of your icon
I've just returned from NSConference #5, there were many good talks there, but my favourite one was the one about Flipboard development tools/setup by Evan...
-
Quick tip for Interface Builder
Do you use Interface Builder ? Even if you don’t like IB, read this short tip and referenced articles.
-
Pinch to reveal animation, like in Boeing Milestones
Boeing made a nice app for iPad I was shown this app and asked if it’s hard to do this pinch to reveal animation.
-
Programmers bad habits
We evolve and change our habits, probably many times every few years. Your code style changes, your approach to writing code in general.
-
Drawing smooth lines with cocos2d ios inspired by Paper
You’ve probably seen Paper, the app is pretty cool and the drawings look really nice and smooth.
-
Automatic removal of NSNotificationCenter or KVO observers
Observer pattern is common on iOS platform, you use observers in NSNotificationCenter and in Key Value Observing.
-
How to check if user touched anything in your ios app
So you want to know when user is interacting with your app and you don’t really care which screen is he using or what is he doing.
-
Using UIGestureRecognizers in cocos2d
cocos2d is one of the best gaming framework I’ve seen, but it doesn’t use UIKit.
-
iOS Developer Tips
LLDB provides several commands to inspect variables during a debug session. Two most common of these commands are `frame variable` and `po`
-
From Good to Great: Enhancing Developer Experience for Maximum Team Performance
As software engineers, we're always looking for ways to optimize our processes and improve the quality of our work. But have you ever stopped to consider...