The greatest task of a man in his life is to expand his conscious mind. Unfortunately, only through pain, suffering and chaos he can expand his conscious mind; thereby pain, suffering and chaos became an acute and innate part of the structure of his existence itself. He cannot escape from it, cannot postponed for a later time, cannot cheat it, cannot delegate it; what is decisive will always happens to him. The only thing he can do is, accept it.

Say yes to the pain and suffering that which is a potential mnemonic.

Say yes to the chaos that which pushes you into the abyss of unknown.

Then comes the chance and transformation he truly seeks. The change and transformation that synchronize with the expansion of conscious mind.

Chaos and Order

A modern individual has an incalculable proclivity, and profound intimidation, to follow the postmodern era’s socio-culture, like a cult, to feel a part of belonging in today’s society. In an effort to belong, everyone wears a persona to act themselves out so that the person feels socially acceptable. So then the persona becomes his real identity to his Ego-Conscious mind. He who erroneously identify oneself with his persona, become of it; a lie. What left of him is irrational views of himself and society.

Note: Before preceding, please forgive me for my poor English, as it is not my first…

In this article, Im gonna share the approach that I took to solve a complex problem by composing individually working classes.

Warning: This is a lengthy article to read.

I been working in an iOS project for almost an year. It is almost production ready. The architecture of the project was finalized way back. We built each layers, from Network Layer to Presentation Layer, and the communication between each layers well defined. Below is the high level architecture of the project,

Base Architecture

Please refer iOS App Architecture for the detailed explanation of the above architecture.

New Requirement

Right when we thought every class…

I been working in iOS project for a while, in which I had to built couple of screens those are completely driven by JSON returned from API. Every view and the nested hierarchy of views are driven by JSON. That seems interesting and this is what I got from the API.

Heres the sample JSON,

Heres the simple explanation,

viewType : Enum represents a different UI elements, like UIView , UIButton .. so on.

viewID : This is straight forward an unique identifier for each element

children : The child element that goes inside the view

This JSON will…

As an app developer in iOS platform, I often ran into constraint warnings like below,

Unable to simultaneously satisfy constraints.Probably at least one of the constraints in the following list is one you don't want.Try this:(1) look at each constraint and try to figure out which you don't expect;(2) find the code that added the unwanted constraint or constraints and fix it.("<NSLayoutConstraint:0x600000292660 UIView:0x7f94ff5b3890.leading == UILayoutGuide:0x6000001bf720'UIViewSafeAreaLayoutGuide'.leading   (active)>","<NSLayoutConstraint:0x600000292750 UILayoutGuide:0x6000001bf720'UIViewSafeAreaLayoutGuide'.trailing == UIView:0x7f94ff5b3a80.trailing   (active)>","<NSLayoutConstraint:0x600000292930 H:[UIView:0x7f94ff5b3890]-(0)-[UIView:0x7f94ff5b3a80]   (active)>","<NSLayoutConstraint:0x600000292980 UIView:0x7f94ff5b3890.width == 375   (active)>","<NSLayoutConstraint:0x604000095400 'UIView-Encapsulated-Layout-Width' UIView:0x7f94ff5b3c70.width == 320   (active)>","<NSLayoutConstraint:0x6000002924d0 'UIViewSafeAreaLayoutGuide-left' H:|-(0)-[UILayoutGuide:0x6000001bf720'UIViewSafeAreaLayoutGuide'](LTR)   (active, names: '|':UIView:0x7f94ff5b3c70 )>"…

For a long time, in fact very long time, in my life I asked this question to myself, I bet at some stage in life, everyone asked this same question to themselves.

Who am I

I will share my life experience, I hoping this article will help you or at least point you in a right direction. Also Im gonna use this article to let people know who I really am.

Struggle is very real

This is very vital for one to understand and be able to answer this question, each time our conscious raise this question to ourself. It bothered me deeply when…

Half Moon Bay, CA

Here I am

Sitting on the edge of a cliff

Couldn’t get better out of life

Here I am

Sitting close to cold water

Where past & future doesn’t matter

Here I am

Sitting between cold and warm

Realizing nature could never be harm

Here I am

Looking at the roaring ocean

Feeling it’s power in my emotion

Here I am

Looking at waves

It feels the land

It compliments the land

It thanks the land,

Clears its way for the next one to feel the sand

Here I am

Looking at life

I’m feeling it

I’m complimenting it

I’m thankful for it

Someday I will clear my way for the new one!

— Karthikkeyan —

In this article I want to share my approach and experience I have used to architect iOS projects, which, at least, suits well for me.

In my earlier days of programming, I was scared of the term ‘Architecture’ and always avoided any discussion related to it. But after working on many projects I understood that,

Architecting is nothing but organizing all, the independently working, layers in a best way that suits your project.

There is no one fixed architecture that suits well for all the projects all the time. Each projects could have an unique approach.

Now that being said…

Recently, in one of my project, I got a requirement to sign all API requests with HMAC MD5.

Time to embrace Apple’s Cryptographic Libraries.

There are many open source codes and tutorials available to accomplish it. I found below code by googling, thanks for someone who written this piece of code,

import Foundationimport CommonCryptoenum HMACAlgorithm {    case MD5, SHA1, SHA224, SHA256, SHA384, SHA512    func toCCEnum() -> CCHmacAlgorithm {        var result: Int = 0        switch self {         case .MD5:          result = kCCHmacAlgMD5        case .SHA1:          result = kCCHmacAlgSHA1        case .SHA224:          result = kCCHmacAlgSHA224        case .SHA256:          result = kCCHmacAlgSHA256        case .SHA384:

Recently, I ran into a UI of a music player. What’s interesting was, the player’s seek bar was circular. User can drag in a circular path to move forward and backward. In this article, I will explain how to create such a component and all the math behind it.

Logic behind

It involves simple trigonometry. The above image is the final output of our component. User can drag the red colored thumb view in the given circular path.


Since the UI is in the form of a circle, we need to recall our high school trigonometry.

Karthikkeyan Bala Sundaram

Sr. Software Engineer specialized in iOS.

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