-
APH: Avoidable Person-Hours
A couple of years ago, I made up a new unit to measure the efficiency and necessity of meetings: APH (Avoided Person-Hours)
Meting -
make up your knapsack
What I know about myself is that my decision-making capacity at any given moment is limited. I’ve started seeing my capacity as a knapsack.
decision-making -
SwiftUI: Double-Edged Sword
One reason that I favor SwiftUI over UIKit is that SwiftUI is architecture-less.
swiftui uikit architecture -
salary: confidential
Recently, I disclosed my salary to someone and I couldn’t help myself asking if it was the right decision.
salary job -
awkward phase
- Are you switching from your old architecture to a new elegant sophisticated promising one?
- Are you moving from an inconsistent non-scalable UI to a design system based UI?
- Are you swapping an old deprecated module with a brand new fresh one?
- Are you migrating from an old fashion document-less backend to a new shining cutting-edge one?
So you’re in an awkward phase. Aren’t you?
software engineering architecture refactor design -
apple doesn't slow iPhone down, we do
There has always been a conspiracy that Apple deliberatly slows iPhone devies down to make people to buy new one. Is it true?
iOS Apple performance -
daily standup: where scrum flys or dies
It was roughly nine years ago when I attended my first official Scrum Daily Standup. I among my four teammates went to our manager office at 10 in the morning. After 10min, when we were done, I felt it was useless. Since then (almost) in every company I worked at, we had some kind of daily standup. Except for a few times, I never enjoyed being in a standup.
scrum agile team -
a dead simple solution to lift up errors in ios
In this post, I want to show you how you can utilize the responder chain to bubble up an error message through your app UI structure till it gets to the node which can handle it. It is especially useful if you are a fan of Container View Controller.
UIKit Swift iOS -
__NSSingleObjectArrayI: an existential crisis
When you create an new instance of NSArray, inside arrayWithObjects:count: (which can be called directly and is called indirectly by other constructors and also is that method is used internally to create an array from a literal array) depending on how many items it has, under the hood
Objective-C iOS FoundationNSArray
may create either an instance of__NSArrayI
(Runtime Header file) or an instance of__NSSingleObjectArrayI
(Runtime Header file). Actually, if the array contains one item,NSArray
create an instance of__NSSingleObjectArrayI
, otherwise__NSArrayI
gets used. -
bash: going down the rabbit hole
Question
Last week when I was looking at a bash script file, I saw this line:
[[ $FOLDER_NAME == "ios" ]] && lib="lib-osx-amd64" || lib="lib-linux32"
I’m not a bash expert, so this line caught my attention. At first, I thought what
bashA && B || C
does is similar to whatA ? B : C
in many programming languages does. It takes a few hours of debugging, reading and thinking to realize this hypothesis was wrong! -
one small change for xcode, one giant leap for productivity
Last week I learned something that in the future can potentially save hours of my life that otherwise, I would have to spend for preparing an app for testing or taking screenshots. It was really simple and it has been always there, but I hadn’t noticed till last week. XCode allows you to take a snapshot of the state of the app you are developing and restore it later when you run the app or run the tests. Pretty cool! Isn’t it?
Xcode iOS test -
solving the mystry case of `print(!)` using ast
It all started when I mistakenly removed
date
from this line of code just before pressing Run button of XCode:Swift iOS compilerprint(date!)
-
api design: in search of confidence
A given API to be well-designed has to fulfill many requirements and we can talk about these requirements for hours. But here I’m going to talk about one aspect of a well-thought and well-design API that I believe is really important: How confident users are in what they are doing?
API Objective-C -
the curious case of nil-coalescing operator
Using
Swift??
within a class initializer under some circumstances leads to an ambiguous compiler error message. -
a tale of two `self`
A while ago, I came across a problematic piece of code that turned out to be an interesting one:
extension UIViewController { static var screenName = String(describing: self) }
The value of screenName is always equal to
Swift Objective-C(Function)
. But what I needed was the type ofUIViewController
instance as a String. -
firebase sdk: one repository, multiple pods
Honestly, when I learned how Firebase SDK has been organized as a single repository that contains multiple pods, I found it really neat and efficient. Let’s check it out.
Cocoapod API Firebase