This issue usually happens for the Xcode projects involving Cocoapods with more dependencies during [CP] Check Pods Manifest.lock script execution.

PhaseScriptExecution [CP]\ Check\ Pods\ Manifest.lock /Users/xxx/Library/Developer/Xcode/DerivedData/xxx/Build/Intermediates.noindex/\ (Staging)-iphonesimulator/ (in target 'xxx' from project 'xxx')
cd /Users/xxx/Documents/Projects/<project-name>
/bin/sh -c /Users/xxx/Library/Developer/Xcode/DerivedData/xxx/Build/Intermediates.noindex/\\\ \\\(Staging\\\)-iphonesimulator/

error: unable to spawn process (Argument list too long) (in target 'xxx' from project 'xxx')

The direct solution to fix this problem is setiing the build system to Legacy Build Sysrtem via ‘File -> Workspace Settings’

Legacy Build System could work till Xcode 11.x versions. However, with Xcode 12.x …

Writing tests for any piece of code is important for maintaining the quality of software which brings more confidence to product delivery. In today’s world most of the code are modularized and bundled to a library/pod making it easier to share, reuse across, managing deployment and release activities etc.. Writing unit tests for modularized code could be achieved comfortably along side with feature development by adopting techniques like TDD. However, the main challenge is how to share integration/ui tests to hosting apps for modularized code. Luckily, there’s a way to do it with “test-specs” in Podfile via Cocoapods.

Cocoapods can…

This SwiftUI iOS cocoapods library is used for indicating step actions for series of steps involved for any task. For eg: if you wanna illustrate the steps for collecting cash from an ATM , steps involved for any loan application. etc..

center, top, bottom alignments.

Visual conception of the library

Implement a struct with single Rectangle with index parameter for each view to start and stop the animation programmatically via publisher with PassthroughSubject is passed as a parameter — which sends stream of values from their origin to it’ subscribers. The PassthroughSubject's subscribers can use this information to update the state of the UI or to handle the occurred event. In .onReceive will have access to the value sent by the publisher to act on to update the UI state.

@State Variable animate is set to true or false based on the value received from the publisher to control…

Let’s say if we have any UIViewController to be used on any SwiftUI based app we have to follow below steps

Extend the protocol UIViewControllerRepresentable

Implement makeUIViewController and updateUIViewController

However writing a wrapper provides easier way to use it inline for any of the viewControllers.

Here two closures one each for the requirement of UIViewControllerRepresentable.

@autoclsore which will enable us to keep the conventions of UIViewControllerRepresentable and create our views lazily without requiring any additional syntax during calling.

Follow below steps

  1. Make SwiftUI View ready

2. Include it in UIKit Code like below.

3. If the project is supporting version ≤= iOS 12.0 , Update the Build Settings of Xcode like below.

Expand Link Binary With Libraries then Click on + and then Add SwiftUI.framework and make it Optional

Idea is to have a stack view of button aligned horizontally or vertically as per specification.

Follow below steps:

  1. Construct mainStackview for UIImageButton
  2. rootStackView contains series of buttons. ( like $,$$, $$$, etc.. )
  3. Pin both mainStackView & rootStackView inside the UIView to establish corner radius functionality.
  4. Have key variables like widthConstraint, buttonsAreHidden ,updateButtonImage. These variables values will be altered during expanding /unexpanding the buttons via didSet

performAnimation is called when button is toggled, this method performs below functionalities

Hides the rootStackView

update the button image to dotted_filled

hiding the sub layers left borders while animation is happening

update the width Constraint

remove constraints if any

Complete source code available in Github

Any feedback is really appreciated. Happy Coding. !!

Adding a dismissible view controller from bottom of the screen with a notch in 3 simple steps.

  1. Construct SheetViewController which contains ContainerViewController and NotchViewController and set up constraints

2. Add a blur effect view UIVisualEffectView

3. Animate with help of heightConstraint ( positive value ) and notchBottomConstraint ( negative value )

Complete source code is present in Github

Happy Coding..

Unit Testing helps in providing a instant visual feedback how application behaves. Tests and code work together to achieve even better code. Adopting it as part of development results in delivery of quality product. There’s a saying..

“ Better DX = Better UX ” ( Better Development Experience equates to Better User Experience )

Quick’ is a testing framework for Swift built on top of XCTest. which is very similar to Javascript’s Jasmine as many of you are aware of.

Nimble’ is matching framework provides matchers and assertions. Combination of these two creates wonders for swift developers.

Structure of ‘Quick’

Badarinath Venkatnarayansetty

Senior iOS Engineer @ Intuit | Exploring, Experimenting new ways of building mobile apps.

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