Mandar Apte

UI/UX Designer from Mumbai, Maharashtra, India.

Category: Apple Xcode

Xcode is an integrated development environment (IDE) containing a suite of software development tools developed by Apple for developing software for OS X and iOS.

  • My side of the story of selling Apple iPhone apps on the Apple App Store while doing a day job…!!!

    I am selling apps on Apple App Store since 2012, Tried free apps with excellent sales but no revenue or no Apple iAd revenue or very little. I kept doing that for two to four years. Then I removed all of my apps from the sale and kept my account inactive with no apps on ready for sale for almost one or two years.

    Then Swift language was introduced with support for Unicode while watching Apple’s Keynote presentation, I got the idea of Learning Devanagari Script apps with support for Marathi, Sanskrit and Hindi Languages.

    It got almost 3 months of the year 2016 for me to record 500 audio samples and videos with proper code to get to the level of MVP i.e. Minimum Viable Product.

    Next three years I finished recording audio and designing videos and vector illustrations. So it was a total of 700 Audio Recordings with statements and alphabets (Vowels, Consonants and Barakhadi), and 422 animated videos for stroke by stroke guide. Then almost 500 vector and raster illustrations.

    With Covid and Corona Epidemic and forced leave from March to November I finished and upscaled all of my apps with visual and performance quality for my Mudrakshar, Swarakshar and Chitrakshar apps.

    (more…)
  • My experience in converting my paid educational apps to a subscription business revenue model.

    After experimenting with various apps, I ventured into an educational language-earning app in 2013/14. I developed three apps Mudrakshar for tracing Alphabets, Swarakshar for Pronouncing Alphabets and Chitrakshar for Alphabet Charts with Illustrations and audio pronunciation. All three apps were dedicated to Devanagari Script—mainly Marathi, Sanskrit and Hindi Language. For Chitrakshar, I added the English Language with Latin script.

    I am developing my apps for Apple iOS, iPadOS and macOS platforms. Here is my Apple Developer Profile if you want to check it out.

    I think the In-App purchase / StoreKit framework was not introduced back then. That’s what I remember. So I used paid app business model to support my app development and time invested.

    Maybe because I started sailing my apps with an upfront paid pricing model, I was forcing my users to purchase them without allowing them to try them before they bought. As a result, I had significantly fewer downloads or sales. But over the years, I sold almost 1,000 units of apps or more. I also utilised App Store Connects’s App Bundles feature at that time. App Bundles undoubtedly helped me to sell more apps with discounts.

    (more…)
  • Get the iOS, iPadOS, and macOS operating system names, versions, and model identifiers programmatically.

    Programmatically get iOS, iPadOS, macOS Catalyst Operating System Name and Version and a model identifier of iPhone, iPad, and Mac devices.

    Here is a simple way to programmatically get the operating system name and version of your iOS, iPadOS and macOS.

    The code below will also return the value of the iPhone, iPad, and Mac Model identifiers to help you determine whether the device is a MacBook or iMac in a Mac case, an iPhone 11 Pro, or an iPhone 13 Pro.

    Step 01:
    First, import IOKit. It is only required for macOS Catalyst app-specific code.

    (more…)
  • Get iOS, iPadOS and macOS app Versions and Build numbers programmatically.

    Here is a small function I have written that you can use in your iOS, iPadOS or macOS Catalyst app to get your app’s current version, build number, and print it on the screen whether it will be on the app’s about or support view.

    Copy the below function in the Xcode project’s UIViewController Swift class file.

    (more…)
  • Essential factors to be considered while choosing UILabel and UITextView to display text for iOS, iPadOS and macOS apps.

    Choosing between UILabel and UITextView starts when you want to display text in your Apple iOS, iPadOS or macOS Catalyst App.

    I have even gone through the process of choosing UILabel or UITextView to display text on my app.

    So, I have made a small numbered list to help you choose the right option…

    Choose UILable to display text:

    1. If the text word count is small in number
    2. If Top Aligning text to the top border is not the requirement
    3. UILable is not tappable interactive, or selectable to the user’s input
    4. if you want to automatically adjust the font size and fit text to the UILabel bounding box layout

    Here is a Sample Code for UILabel:

    (more…)
  • Programmatically add Fab (Floating Action Button) Button to iPhone, iPad and Mac App.

    When Google released the Material Design Guidelines, they introduced many new design elements, including the Fabeingutton, a Floating Action Button.

    Normally, we see the Fab button in Android Mobile Apps, but many Apple iPhone, iPad, and Mac App Developers have started using it in their designs.

    Here, we will see how to programmatically add the Fab button in your iOS, iPadOS, and macOS app on any view, including UICollectionView or UITableView.

    Step 01: First, declare the UIButton variable in your View Controller

    var fabButton = UIButton()
    

    Step 02: Add this code to viewDidLoad()

    (more…)
  • Set UINavigation Bar Large Title Text Foreground Colour.

    Here is how to set UINavigation Bar Large Title Text Colour (Foreground Colour) in iOS 11, 12, 13 and above,

    Declare Navigation Bar Title Text & Large Title Settings like this in your View Controller’s ViewDidLoad() Method:

    self.navigationItem.title = "Home"
    self.navigationController?.navigationBar.prefersLargeTitles = true
    self.navigationController?.navigationItem.largeTitleDisplayMode = .automatic
    

    Now write the below line inside ViewDidLoad() to get the Large Title Foreground colour as White Colour like this:

    (more…)
  • Set UIImageView Image Inset for iOS and iPadOS app.

    Here is an example if you want to inset UIImageView so that the image does not fit edge to edge of the UIImageView

    Note:
    The latest version of Xcode & Latest version of Swift Programming Language is preferred.

    Here is step by step procedure to achieve the designed result:

    Step 01:
    Create Apple iOS Project in Xcode. Add UIImageView to View Controller in Storyboard.

    Step 02:
    Now Connect that UIImageView to the View Controller Swift File. It will look something like this.

    @IBOutlet weak var imageView: UIImageView!
    

    Step 03:
    Now add the following code in the ViewDidLoad Function of your View Controller File.

    (more…)
  • Animate tab bar switches with a transition effect for UITabBarViewController.

    I was searching the web for answers on how to give the CurlUp / CrossDissolve / FlipFromRight / FlipFromLeft / CurlDown / FlipFromTop / FlipFromBottom transition effect for the UITabBar Tab Switch.

    I found this answer, but it has a bug or a black screen when you tap on the same tab twice, i.e., the destination and current tab are the same.

    So I solve this issue with my logic and additional if and else statement.

    So here is the final answer without any bugs.

    Step 01:
    Add these two classes as Super Class to your UITabBarViewController

    UITabBarController, UITabBarControllerDelegate
    

    Step 02:
    Now add the following code to your viewDidLoad Function in your UITabBarViewController

    self.delegate = self
    
    (more…)
  • Hide the Navigation Bar on Scroll.

    Assumption:
    I assume you have embedded UINavigationBar inside your Apple iOS app on Storyboard.

    If you want to mimic the behaviour of the Apple Safari iOS App, such as hiding the navigation bar on the scroll, you can do it in just a single line of code without any hassle.

    You have to add the following code in your View Controller’s viewDidAppear function where you have added UINavigationBar in the Storyboard:

    (more…)