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/xxx.build/Debug\ (Staging)-iphonesimulator/OV.build/Script-05BB3CCD2FBD4842F78B0F4F.sh (in target 'xxx' from project 'xxx')
/bin/sh -c /Users/xxx/Library/Developer/Xcode/DerivedData/xxx/Build/Intermediates.noindex/xxx.build/Debug\\\ \\\(Staging\\\)-iphonesimulator/xxx.build/Script-05BB3CCD2FBD4842F78B0F4F.sh
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.
Implement a struct with single Rectangle with index parameter for each view to start and stop the animation programmatically via publisher with
PassthroughSubjectis passed as a parameter — which sends stream of values from their origin to it’ subscribers. The
PassthroughSubject'ssubscribers can use this information to update the state of the UI or to handle the occurred event. In
.onReceivewill have access to the value sent by the publisher to act on to update the UI state.
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
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
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:
rootStackViewcontains series of buttons. ( like $,$$, $$$, etc.. )
rootStackViewinside the UIView to establish corner radius functionality.
updateButtonImage. These variables values will be altered during expanding /unexpanding the buttons via
performAnimationis 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.
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
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 )
‘Nimble’ is matching framework provides matchers and assertions. Combination of these two creates wonders for swift developers.
Structure of ‘Quick’
Senior iOS Engineer @ Intuit | Exploring, Experimenting new ways of building mobile apps.