Local unit tests with Xcode
Sep 28, 2020, 5:41 PM
Put unit tests next to tested Swift code, and run tests from the same Xcode target.
CoreText Swift Academy - part 3
Jul 13, 2020, 11:23 AM
In Part 2, I discussed selected font metrics. Now let's see how to layout text line or lines.
Text layout is non-trivial task. CoreText provides handful of useful functions to layout text in a rectangle frame, or along a custom...
CoreText Swift Academy - part 2
Jul 10, 2020, 11:23 AM
In Part 1, I created a label view, where I draw a text in it. Now let's see what happened there:
Font & Attibuted String
How about font? Font is important part of drawing text. CoreText relies on Attributed String. Simple...
CoreText Swift Academy - part 1
Jul 9, 2020, 11:23 AM
Ever wanted to layout letters? implement label view? create text edit component from the ground? bear with me.
CoreText is low-level framework for laying out text and handling fonts. Low level like "C language level low", but...
Use consumer rights to refund for faulty MacBook - diary
Apr 27, 2020, 12:00 PM
In February 2020, a keyboard in my MacBook Pro 15.4-inch (model 2018) has broken down. I noticed typical repeating keys. Nothing new for the MacBook with the butterfly keyboard. I also noticed I have screen scratch (that I connect with...
JSON Coding is what we need 90% of the time
Jan 8, 2020, 2:35 PM
Let's face the truth. If happen you work with any other data format than JSON, you're in a 10% niche (estimates may vary).
Even though the default JSONEncoder for Swift Codable is not the fastest - it's soooo convenient to use. Just make a...
URL Bookmarks: yes and no
Dec 5, 2019, 3:14 AM
The way URL Bookmarking is designed and implemented, makes it untrusty source of truth. It can be esily misused, that makes bookmark useless.
The lost art of legendary Apple UX
Jan 12, 2019, 11:45 AM
Apple changes Terms of Service and me, as a paid Developer Program Membership have to accept new agreement. So I open App Store Connect app - introduced in Jan 4, 2018 - so pretty new product. Not new enough to display...
Dec 5, 2018, 1:32 PM
In short: dynamic linking happened. Dynamic linking - what it is? It's an operation that happens when part of the code spreads across different files (called libraries), and the binary content of the library is loaded in runtime.
Dealing with Swift toolchain
Oct 11, 2018, 11:17 AM
Design a project that uses different versions of swift for different parts of the project. Combine multiple toolchains together and use it.
May 29, 2018, 5:04 PM
You use Swift AnyObject wrong.
Don't use AnyObject as a generics constraint. Don't do "is AnyObject", "as? AnyObject" to check if a variable is a class type. Don't use "AnyObject". Use "class" for a class-only protocol. Use "Any".
Swift Runtime Performance - talk
Nov 28, 2017, 4:25 AM
Last week I had my last appearance with talk about Swift runtime performance. I enjoy the topic, and I had a ton of fun with preparing the speech, with the on-stage experience and afterward discussions.
Since I'm done with this talk, I'd...
Funding (my) OpenSource work
Nov 2, 2017, 4:08 PM
Yes, ObjectivePGP is backed by the organization of a Fortune 500 company founder. We signed a 1-year long grant agreement, two months ago, and I'm delighted with it.
What does that mean?
That happened. My three years old project got...
Selling t-shirt > selling mobile apps. Dinosaurs.
May 10, 2017, 1:59 PM
Stop doing the apps. Start selling t-shirts.
I spent an enormous amount of time doing apps, or even programs (before we begun to call it apps). I spent days on doing more or less challenging stuff like PGP implementation or Cryptography....
Framed faces. The real world status board.
Feb 21, 2017, 10:46 AM
The idea is to build the framed version of the Slack channel activity. Present all the people and light a lamp to indicate who is online, and who's offline. In other words: Internet Of Things.
Peculiar inheritance of enum
Dec 26, 2016, 2:04 PM
It turns out that Swift 3 nested enums combine options, but it's not inheritance. It's a little know "feature" you should be aware of when designing API with Swift 3.
I didn't know that, and my (I have to admit reasonable...