sudo gem install cocoapods -v 1.8.4
Install multiple version using the command above.
2. Check installed pod versions
gem list — local | grep cocoapods
This will list all installed cocoapod versions (I had 1.9.3 installed).
3. Now you can use any of the installed versions for pod install.
pod _1.8.4_ install
Install pods with specific version of cocoapods (change to your required version).
If you have any comment, question, or recommendation, feel free to post them in the comment section below! …
Reference : itunes-store-web-service-search-api
Just suppose you want to check the app details of facebook app.
For example: https://apps.apple.com/in/app/facebook/id284882215 is the facebook app link in store.
Here, 284882215 is the id.
Just copy paste the id and use the following URL in your web browser.
Note: The jp in the above link stands for Japan. Replace the country code of your app region as required.
This will download a json text file. Scroll to the bottom and it will show you the bundle id. This will also provide other app details as well.
Attaching the text file contents here for reference. …
One option is to right-click on each branch and delete them. But that is not easy if you have too many branches.
1. Click on your
Repository and select
A. Sound System Services within the AudioToolbox framework
A. Dispatch Groups
A. Core Animation
UIViewControllerinto state preservation, which property must first be set by the programmer?
displayScaleproperty on UITraitCollection?
A. To understand the pixel density of the device.
A. Local Authentication
UITabBarControllerbefore a "More" option is added?
A. An image, text label, and accessory
A. Color Blended Layers
UIGestureRezognizerDelegateto give precedence to conflicting gesture recognizers?
Enjoy!!. I will be adding more questions in this article. Just follow me so that you don’t miss any of them.
The problem with a single storyboard is that they become complex for larger projects. It is also difficult to maintain and also the source control part becomes a headache as well. Storyboard references are going to be helpful when you want to divide your views betweens storyboards and avoid all these issues.
The answer is YES.
A category can be declared for any class, even if you don’t have the original implementation source code.
A class extension bears some similarity to a category, but it can only be added to a class for which you have the source code at compile time (the class is compiled at the same time as the class extension).
Categories allow you to add methods outside of the main interface file. Whereas Extensions must be implemented in main Interface file. Which means we can safely conclude you cannot use extensions for extending Builtin classes or Classes for which you don’t have the source code, there you should use Categories. …
The iPhone has previously used the linear actuator for vibrations — this has shifted over to the Taptic Engine in the iPhone 6s and above. Apple applies its Taptic Engine to mimic a home button press, relay system notifications, and reinforce audio alerts. But the feedback from the system feels natural, and in sync with what is being presented on screen.
AudioToolbox.AudioServices helps us to vibrate the phone using the following code. This works on all devices.
Here is a LIST OF SOUND_IDs available in iOS devices.
Iphone 6s and above comes with taptic engine along with the introduction of 3D touch. iPhone 7 and above has a newer version of taptic engine which is better compared to the one in 6s. iPhone 7 and above doesn’t have a physical home button and hence, Apple had to come up with a more natural haptic feedback using the upgraded taptic engine. …
It is easy to create a QRCode scanner app in iOS using swift. The AVFoundation framework provides a default implementation to do the same. Let us see how it is done.
AVFoundation has AVCaptureSession which provides the camera interface which is needed to scan the code. All that we have to do is to add a customized version of
AVCaptureMetadataOutput to the AVCaptureSession instance and call
startRunning() on the same.
AVCaptureMetadataOutput has a
metadataObjectTypes array which should be customized based on our requirement and should conform to the
let metadataOutput = AVCaptureMetadataOutput()metadataOutput.setMetadataObjectsDelegate(self, queue: DispatchQueue.main)metadataOutput.metadataObjectTypes = [.qr, .ean8, .ean13, …