Hi friends, in this blog we will discuss about how multiple projects are handled in iOS.

🎯 Challenges which we face with single project.

  • Consider a situation that you have one application that will be published in various countries with some different features but also it have some same features. Instead of keeping duplicate work, you can work similar feature as framework and you can use it in your app.
  • One more use case is :- If you’re working in a big team / your app is very big, it’s better to keep separate project for each work. It helps for CI/CD integration to alert particular team about…

In Xcode 11 & iOS 13 +

Earlier to Xcode 11/iOS 13, when you create a new project, some default files like AppDelegate.swift, ViewController.swift and a Main.storyboard and few other files were created but from Xcode 11 you might have noticed that along with the default files like above, a new file SceneDelegate.swift is also created.

If you’re still confused about what is app life cycle and AppDelegate. Please read my blog application life cycle in iOS.

I hope by now you’re aware of AppDelegate, how app delegate interact to user event and app life cycle. …

  • The application life cycle constitutes the sequence of events that occurs between the launch and termination of application.
  • It is very important to understand for all the iOS Developers, who wants smooth user experience.

Steps involved from device reboot to app launch:-

  • When user turn on the phone, no applications are running except app which belong to OS.When user tap on your app icon, SpringBoard launches your app.

SpringBoard is the standard application that manages the iPhone’s home screen. Other tasks include starting WindowServer, launching and bootstrapping applications and setting some of the device’s settings on startup

  • While springboard animates your app’s launch screen, your app and necessary…

It is used to restrict parts of your app’s source code. This essentially helps for prohibiting other modules, frameworks, classes and code from using your code.


  • Ability to clearly define a public API for your code
  • Hide private implementation details

The 5 Access Levels In Swift

  1. open and public — anyone can access, within the module, and in code that imports the module
  2. internal — anyone can access, but only within the module (default)
  3. fileprivate — anyone can access, but only within the current Swift file
  4. private — only the enclosing declaration can access, such as a class or struct.

The default access level in…

To make your app beautiful in any screen and orientation is a challenging task. Autolayout make it easy to support different screen sizes in your apps. First will try to understand the autolayout fundamental before learning programatic layouts. Click here to know about autolayout fundamental.

There are two ways you can write autolayout in code.

  1. Using Auto Layout Visual Format Language.
  2. Using Layout Anchors.

In this blog, I’l try to cover most of the things about Anchors and how to debug the layout error.

Steps need to follow to add constraints:-

  • Call addSubview so that view is in the hierarchy.
  • Set translatesAutoresizingMaskIntoConstraints = false
  • Create constraints and…

This content guide provides a layout area which can be used to place text and related content. Area width generally be constrained to a size that is easy for the user to read.

Consider an example of label with leading and trailing space of 16points. Top space with 50points. The label has the number of lines set to zero (unlimited) and is using the body dynamic text style. Your label constraint look like this

Constraints of label
  • Without ReadableContentGuide view look like this in iPad pro landscape orientation and iPhone portrait orientation.

Every view in view hierarchy need to have size(width and height) and position(x and y).

You have 3 option to set size and position for view in iOS.

  1. You can directly setting the frame of a view.
  2. Adding dynamism with Autoresizing mask.
  3. Positioning a view with AutoLayout

Setting the frame of a view:-

Frame of a view is a rectangular with position x-y coordinates and size with width and height. It can be set by CGRect(x: CGFloat, y: CGFloat, width: CGFloat, height: CGFloat)

e.g: view.frame = CGRect(x: 10, y: 10, width: 50, height: 10)


  1. Fine-grained control
  2. You define the frame so it’s easier for you…

Constraints with VFL to create view

Using Visual Format Language, with a single line of code, you can specify multiple constraints in either the horizontal or vertical direction.

Available Symbols in VFL:

  • | superview
  • - standard spacing (usually 8 points; value can be changed if it is the spacing to the edge of a superview)
  • == equal widths
  • -10- non standard spacing (10 points)
  • <= less than or equal to
  • >= greater than or equal to
  • @250 priority of the constraint, can have any value between 0 and 1000.

Visual Format Syntax:-

  • H: Indicates horizontal orientation.
  • V: Indicates vertical orientation.
  • If you’re not mentioning H:/V:, Auto Layout defaults to horizontal orientation.
  • Spacing —…

You can create custom view using one of the way mentioned in below.

  1. Using Storyboard
  2. Using XIB
  3. Creating views programatically.

click here, to know detailed explanation with example to create custom views.

what are advantages of Storyboards?

  • A nice way to manage how different controllers talk to each other
  • Give you a complete look at the flow of your application.
  • It’s work well with small apps.

what are disadvantages of Storyboards?

  • If you working in a team, Git merge conflicts are usual.
  • you can’t create custom inits
  • you can’t reuse views.
  • To get a full picture of a UI component…

This is a question I have personally asked multiple times during my iOS development career. Today In this blog will go through some detail about frame and bounds

What is Frame and Bounds?

Frame = a view’s location and size using the parent view’s coordinate system. It is represented as (x: CGFloat, y: CGFloat, width: CGFloat, height: CGFloat).

x and y coordinate are represented with respect to parent view.

Bounds = a view’s location and size using it’s own coordinate system. It is represented as (x: CGFloat, y: CGFloat, width: CGFloat, height: CGFloat).

bounds x and y coordinate is always 0 (zero). …

Manasa M P

iOS Developer in walmart

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