State-property can have didSet, and if mutated directly — will trigger it. But if State is passed as a Binding to another View, then…

Binding-property can have didSet, and if mutated directly — will trigger it. But at the same time — the original State’s didSet won’t be called. Even thou it has been also mutated!

Well, how to trigger an action in the original View with the original State-property when it’s been mutated?

I was impressed when I’ve found the solution, but it’s not that complicated. …


In one photo.

Dear Tim Cook, please remove this feature. I only need a Pro laptop for professional software development purposes. One can’t see TouchBar on MacBook Pro while the sun is shining.

You can’t see TouchBar on MacBook Pro while the sun is shining.
Impossible to use TouchBar.

Last 4 years I am using MacBook Pro 15" 2016, and I still need F-keys for debuging. And also I need a powerful CPU for Swift compilation, and a huge display for the Xcode Interface Builder. Unfortunately, MacBook Air is not suitable here.

I also need F-keys to manage brightness, volume and music. Keys are better than any possible touch screen.

Sigh.


Apple’s last squalor macOS Catalina doesn’t show up Smart Card pairing dialog when YubiKey is inserted, as Yubico Support page suggests.

To force macOS to display pairing dialog:

sc_auth pairing_ui -f

Done.


TL;DR: Restart your Mac.

Software develoment, year 2020:

YubiKey Manager open_device_failed

I inserted YubiKey into USB-C on my MacBook Pro 15" 2016, then downloaded YubiKey Manager, opened Application → OTP, and got open_device_failed error. Googled, only found its source code.

Then I decided to restart my Mac, and that was the solution.


Most of emails that I’m receiving now are some sort of service notifications:

Dear @Gmail can I have an unsubscribe/spam button right there, please?


If you have both Mac and iPhone, you may notice they are supplement each other so good nowadays. A Mac even can call using your iPhone. The call would happen on a Mac — via FaceTime app — thru the Mac’s mic and speakers, or headphones, Bluetooth headset, AirPods, or whatever.

But the problem was that FaceTime app has no dialer. And we made it. Let me introduce Numpad — a Dialer for FaceTime.

Numpad • Dialer for FaceTime — available on the Mac App Store

The app is pretty straightforward: type or paste a number → click Call button. …


My friend and I finally rolled out a new version of Chars. A simple app to take notes quickly. It also has a Unicode characters keyboard inside.

☞ Available for free on the App Store

Even this beautiful icon you’ll like to have on your iPhone Home Screen (springboard.) We’re very proud on how well the app is designed and programmed. App handles gesture navigation as you expect it to be. App made with battery efficiency and accessibility in mind. (I’m not very good in accessibility though, but we’ll continue to improve that.)


I am very disappointed by how a 4th-gen Apple TV can’t even connect to external audio system (via optical cable) separately from a TV (which is connected via HDMI.) It means you can’t listen to music until you turn on a TV. A 3rd gen. does it perfectly ’cause it had an S/PDIF out.

I decided to use a $9 CHIP to stream music directly to kitchen’s speakers.

Ok, let’s get a C.H.I.P. I didn’t want to connect CHIP to a display and I have no Bluetooth nor wired keyboards or mices at home, so I have to connect to…


Recently I’ve read a post “It certainly looks bad for Uber” on Brad Ideas blog. And there are some points that I can’t agree with.

Brad made very good analytics, but there are some simplifications that may mislead less educated audience. I’m not an expert btw, but I’ll try to explain.

A LIDAR vision. (Source)

Brad points that the LIDAR system that was switched off while car was training a camera+radar systems. Brad said, “the LIDAR should remain on as a backup, triggering braking in exactly this sort of situation.” Unfortunately, everything is not that simple.

No doubts, it would be the best outcome…


Is `try! Realm()` safe?

Realm Database Swift examples uses let realm = try! Realm() to get the default Realm object, and then calls their methods or whatever.

Tom Swift & The Exceptions (performance)

There is a forced-try expression used instead of handling the exception that a normal try may throw. This, as like as forced unwrap of any Optional, would lead app to crash if there is an error produced. The Swift Programming Language book says:

“[In case of forced-try] If the expression throws an error, a runtime error is produced.”

Docs also uses that expession every time you want to use Realm. …

Marat Saytakov

iOS developer && traveler, saytakov.com

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store