Concepts every senior iOS developer should know.

This is a summary of concepts, that every senior iOS developer should know (Not in the order of priority). Add “what to use, when” with every headers as you read.

Suggestions are welcome.

Different architecture patterns:

MVC, MVVM ,Clean Architecture ,Viper …

Different source control options:

Git, Subversion etc. Services like Github, GitLab ….

Different Dependency manager options:


Different Data store Options:

Coredata, realm, xml, file, SQlite, FMDB, SQLCipher …..

Different choices in programming methodology:

Functional Reactive Programming, Object Oriented Programming, Protocol Oriented Programming
Frameworks : Reactive Cococa, Reactive Swift, RxSwift, RxCocoa…

Different choices in solution implementation:

Native, Hybrid etc.
Frameworks : Angualar2, ReactNative, Xamarin, Cordova …..

Different options to assure code quality:

DI, Unit testing, Test Automation, TDD, BDD, Styleguide, clang-format (automated style guide)
Frameworks :  XCTest, iOS Snapshot Test Case, KIF (iOS Integration Testing Framework)…

Different process to assure quality:

Effective Code reviews
Tools : Crucible, Atlassian Stash, Differentials
Frameworks : ObjcLinte, SwiftLint ….

Different Options to send push notifications:

APNS, Firebase, Thirdparty Options like Urban Airship…

Different Options to track user behavior + analytics:

Google Analytics

Different Options to track report and analyze app crashes:

Crashlytics, Fabric ….

Different Options to distribute apps for prod and test:

Enterprise vs Consumer facing (Apple Appstore), Hockey …..

Different Options to deploy apps remotely:

MobileIron, Airwatch….

Different Options for CICD:

Travis, Jenkins …..

Different Options to track the project:

JIRA, Phabricator …..

Concepts every senior iOS developer should know.

Creating split zip archive in mac

In terminal, execute the command below:

zip -r -s 64 FolderName/

Note that the default unit is in MB. As per your need, you can use k(KB),g(GB) or t(tb).

For unarchiving, you may need to use third party tools such as Keka or Unarchiver.


Creating split zip archive in mac

Installing SSL certificates (.cer) in iOS devices

For a developer, installing  different certificates in iOS devices is a common work flow step.
There are many ways to do it but, here is one that I consider to be the easiest.

High level steps:

  1. Creation of an ad-hoc wifi network
  2. Running a simple web server
  3. Browse the directory in iDevice
  4. Installing the certificates

Detailed steps:

1. Creation of an ad-hoc wifi network

The ad-hoc network creation in my mac machine did not help me.  If it does not work for you, go ahead and create a hotspot and connect your iMac and iDevice to that wifi.

2. Running a simple web server

  • Open terminal in your mac.
  • Go the directory where you have the certs to be installed
  • Run the below command.
python -m SimpleHTTPServer
  • Open your the browser in your mac and try the below address

You should Ideally see something similar to the screen below:


Make a note of the IP address of your mac.

3.Browse the directory in iDevice

Open safari in the iDevice and enter the below url and tap go.
If everything works well, you should see something similar to this:

Now, select the certs that you want to install and follow the prompts thrown by iOS.


Installing SSL certificates (.cer) in iOS devices

Modifying File attribute in Bulk, Mac OSX

Here is a small snippet of shell script, that could be used if you want to change the file or folder attributes. Such as creation date or modified date.

find YOUR_DIRECTORY_NAME -print | while read filename; do
 # This will change the creation date of all the files under 'YOUR_DIRECTORY'
 SetFile -d '12/31/2015 04:12:45' "$filename"
 # This will change the Modified and Last opened date. 
 #Format : yyyymmddhhmm 
 touch -t 201512310537 "$filename"


  1. Save the script in to a .sh file.
  2. Edit the two directory name and date variables as necessary.
  3. Make it executable by chmod a+x
  4. Either drag in to the terminal app or make Terminal the default app to open.

Note: SetFile is a utility that comes with Xcode.


How can I change the date modified/created of a file?

Modifying File attribute in Bulk, Mac OSX

Podcasts for iOS Developers

Of late, the time it takes to travel to work and back home has been steadily increasing.

One of the ideal options to make use of that time is to listen to technical podcasts.

Here is a list that I have prepared after some googling.

Sharing all of them here hoping that it may help someone else.

Name Website RSS Feed
Core Intuition
Code Radio
developers life
Design Details
RayWenderlich podcast
The App Guy
The App Story
Live This
site canÕt be reached
Build and
Analyze Retired
The talk show This
site canÕt be reached
IRQ Conflict Forbidden
Buildphase This site canÕt be reached
cocoaradio This site canÕt be reached
The iDeveloper
Podacst This site canÕt be reached



Podcasts for iOS Developers