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.

Continue reading “My experience in converting my paid educational apps to a subscription business revenue model.”

My Solution to my year-long back pain and health issues

Since I started my health and fitness journey, I have been facing issues with tremendous back pain and mobility.

As you may have guessed already, I started walking, but the pain was not going anywhere whatever I did.

I took physiotherapist assistance, machine exercises, long distance and long time walking but with no relief.

But one day, I just turned off the air conditioner for the whole night in my room for one or two weeks, and somehow, my back muscle was relieved, and I had no pain or muscle stiffness issues. But after that week, I turned on the air conditioner for the next three-four days, and the back pain was back again.

Continue reading “My Solution to my year-long back pain and health issues”

With the release of macOS Big Sur & macOS Monterey, the user cannot format External Hard Disk to ‘Mac OS Extended (Journaled, Encrypted)’ format as there is no option to do the same.

With the release of the macOS Big Sur Mac Operating System, Apple has removed the option under Disk Utility to allow users to format External Hard Drive to Mac OS Extended (Journaled, Encrypted) format.

There is only one option for Mac OS Extended (Journaled) but no choice with encryption. It only allows users to format Hard Disk with Apple File System APFS without encryption, with encryption & with case sensitivity.

Continue reading “With the release of macOS Big Sur & macOS Monterey, the user cannot format External Hard Disk to ‘Mac OS Extended (Journaled, Encrypted)’ format as there is no option to do the same.”

In-depth Review of Matrimony Website by Anuroop Wiwaha (anuroopwiwaha.com)

I have used the Anuroop Wiwaha Matrimony Website for the last four to five years. In addition, I have extensively used their mobile Apple iPhone app and website for my bride search. As a result, I discovered a few points that Anuroop Wiwaha Portal / Company improved upon to help the community get the right matrimony match for their search.

Observations:

Few Points that they can improve on.

Mobile App & Website Portal:

  1. At every event, they talk about having 20,000 Profiles / Accounts of the bride and groom registered on their portal. An average Anuroop Wiwaha account cost is INR 5,000/-.
  2. The user (Bride or Groom) can’t register with a free account as they don’t support free accounts. The user must pay an account fee upfront before registering to the portal. So it gives assurance that the user is at least serious about their search, and even the user has to submit identity proof within seven days of registration. So in a way, it eliminates the possibility of fake accounts or fraud.
  3. Even with this money of 20,000 Accounts * 5,000 Fee, the Bride or Groom Search is cumbersome and hectic. The mobile app is not full fledge as compared to a web portal. They use non-native software technologies for the Apple iPhone app, which takes minutes or sometimes fails to load content and data.
Continue reading “In-depth Review of Matrimony Website by Anuroop Wiwaha (anuroopwiwaha.com)”

Apply UIVisualEffectView & UIBlurEffect to any Views in iOS / iPadOS or macOS app.

Apple describes UIVisualEffectView & UIBlurView in its support document as follows:
Depending on the desired effect, the effect may affect content layered behind the view or content added to the visual effect view’s contentView. Apply a visual effect view to an existing view and then apply a UIBlurEffect or UIVibrancyEffect object to apply a blur or vibrancy effect to the existing view. After you add the visual effect view to the view hierarchy, add any subviews to the contentView property of the visual effect view. Do not add subviews directly to the visual effect view itself.

In other words, you don’t have to use Adobe Photoshop to get a blur effect and fake superimpose it on your UIView. Instead, you can programmatically get the same effect for every situation without hassle.

Note: If you are using UIVisualEffectsView in your app, I would strongly suggest you use a system setting called ‘Reduced Transparency’ to condition code it. If the user doesn’t want transparency, Blur, or Vibrancy effect for all of the apps on his iPhone, iPad, or Mac, he can do it with a single switch in the settings app. Another note view that you are applying effect should preferably be the Popover View Controller. Another thing to remember is to replace the blue color below with the UIColor of your choice with alpha channel transparency.

For UITableView and UITableViewCell, use the following code in your UITableViewController’s viewWillAppear function:

Continue reading “Apply UIVisualEffectView & UIBlurEffect to any Views in iOS / iPadOS or macOS app.”

Add a mouse hover effect / UIPointer Interaction to any iOS or iPadOS app views.

As Apple describes Pointer Interactions in its support document:

Pointer Interactions: Support pointer interactions in your custom controls and views.

iPadOS 13.4 introduces dynamic pointer effects and behaviours that enhance the experience of using an iPad with an external input device, like a trackpad or mouse. As people use an input device, iPadOS automatically adapts the pointer to the current context, providing rich visual feedback and the precision needed to enhance productivity and simplify everyday tasks.

Note:
UIPointer Interaction is only related to the iPad / iPadOS app

Initial Step:
Add ‘UIPointerInteractionDelegate’ in your View Controller’s Class Declaration

For UIButton:

Out-of-Box Implementation:

button.isPointerInteractionEnabled = true

UIView and Custom Implementation for UIButton:

Continue reading “Add a mouse hover effect / UIPointer Interaction to any iOS or iPadOS app views.”

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.

Continue reading “Get the iOS, iPadOS, and macOS operating system names, versions, and model identifiers programmatically.”

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.

Continue reading “Get iOS, iPadOS and macOS app Versions and Build numbers programmatically.”

Reset the Bluetooth module using the Terminal app on your Mac.

Here is the simplest way to reset the Bluetooth module on your Mac if you face any issues using your Bluetooth mouse (Magic Mouse) or Bluetooth keyboard (Magic Keyboard).

This command will reset Bluetooth on your Mac and then connect to all Bluetooth devices again after the reset.

Step 01:
Open the Terminal app from your Mac’s Applications > Utility folder.

Step 02:
Now copy-paste the below command in the terminal to reset Bluetooth on your Mac

Continue reading “Reset the Bluetooth module using the Terminal app on your Mac.”