January 22, 2023
Using UUIDv6 or v7 as primary key in Ecto
UUIDs are a great choice for primary keys in PostgreSQL.
However, not all UUIDs were created equal.
This post discusses the pros and cons of different UUID formats and explains
how to use newer formats in Ecto for Elixir.
Read the article
September 2, 2022
Absinthe Tips and Tricks: Generic Types
Over the years, I have developed a big collection of modules and
macros that I copy and paste in all Elixir projects using Absinthe.
It is high time I started sharing my experience with the community.
Today I present a simple way to build “generic” types.
Read the article
August 2, 2022
PostgreSQL without Homebrew on macOS
In this post I describe why I decided not to use PostgreSQL
from Homebrew and how you can use a Dockerized image instead.
Read the article
June 15, 2022
Learning iOS and Swift. Day 28: Signing in over API
Today I removed the mock from the login view and made the form actually call a login mutation upon submission.
Read the article
June 14, 2022
Learning iOS and Swift. Day 27: Login view
Today I implemented a login view with a mocked authentication step.
Read the article
June 13, 2022
Learning iOS and Swift. Day 26: Keychain storage, MVVM architecture
Exploring integration with Apollo Client for iOS. Discovering MVVM architecture and singleton classes.
Storing authentication data inside the Keychain using the Security module, which is part of Foundation.
Read the article
June 12, 2022
Learning iOS and Swift. Day 25: Adding dots to a page view, watchOS 101
I made my first steps building a watchOS application according to Apple's SwiftUI tutorial.
Read the article
June 11, 2022
Learning iOS and Swift. Day 24: Building a carousel using UIKit interop
Following Apple's SwiftUI tutorial, I explore the interoperability techniques used to embed SwiftUI components inside UIKit Controllers, and vice versa.
The tutorial teaches how to build a carousel view, which I find pretty cool.
I also learned how to overlay text and a gradient over an image.
Read the article
June 10, 2022
Learning iOS and Swift. Day 23: Project update: saving data in settings view
I implemented saving data in the practice edit view.
I found out how to programmatically return from a NavigationLink
.
Read the article
June 9, 2022
Learning iOS and Swift. Day 22: Generic input field, toolbar
I spent the whole evening going through tutorials and working on my side project, Ngöndro Tracker, leaving little time to post updates to the blog.
Among others, I implemented a text field component with label, a helper to initialize colors from CSS hex strings, and began work on the view to edit practice settings.
Read the article
June 8, 2022
Learning iOS and Swift. Day 21: Project update, Decodable protocol
Today I implemented persisting practice history each time the user adds some repetitions of a practice.
I also implemented a simple view for presenting those records.
I found out how to implement custom keys for Decodable
data structures.
Read the article
June 7, 2022
Learning iOS and Swift. Day 20: Apple's tutorial on Defense Against the Dark Arts
Following Apple's tutorial on graphics leaves me completely dumbfounded.
Does it mean I will learn how to make stuff as pretty as Apple's native apps?
Read the article
June 6, 2022
Learning iOS and Swift. Day 19: Adding custom amounts in Ngöndro Tracker
I implemented adding custom amounts of mantras or repetitions of practices to the Ngöndro Tracker using a wrapper for UIAlertController
.
Read the article
June 5, 2022
Learning iOS and Swift. Day 18: Project update, more on tutorial
After following two parts of Apple's SwiftUI tutorial, I made some improvements to the first iteration of my side project, Ngöndro Tracker.
Read the article
June 4, 2022
Learning iOS and Swift. Day 17: Apple's tutorial
I found out some amazing SwiftUI tutorials from Apple, and they are free.
I followed one along on the way to Cracow today.
Read the article
June 3, 2022
Learning iOS and Swift. Day 16: Side project update
Today I spent the whole evening working on my pet project, Ngöndro Counter.
Therefore, the blog post will consist solely of the project update.
Read the article
June 2, 2022
Learning iOS and Swift. Day 15: Optionals are syntax sugar for Rust-like enums; presenting case study
Brief progress update on issues from the book.
I present the mobile app I want to work on henceforth.
Read the article
June 1, 2022
Learning iOS and Swift. Day 14: More SQLite3 C APIs, dark mode detection
I spent another evening treading through SQLite's low-level C APIs.
I integrated a very naïvely written data store built with these APIs into a simple iOS GUI app.
Finally, I found out how to detect dark mode on macOS using Swift APIs.
Read the article
May 31, 2022
Learning iOS and Swift. Day 13: Persistent storage APIs, SQLite3
I intended to write about @AppStorage
and @SceneStorage
, but I ended up playing around with SQLite3 in C and Swift.
Read the article
May 30, 2022
Learning iOS and Swift. Day 12: Observable objects, environment objects
Describing observable objects, which act like event-driven data sources, and @EnvironmentObject
s,
which expose a given object to the entire view tree.
Read the article