Back to Apple. A developer’s story

Introduction

I am a software developer. For about twenty years, I was a programmer in the video game business. Four years ago, I left salaried development to start a software development consultancy. These days, my bread and butter is helping small to mid-sized businesses with custom software solutions.

I also have a long history with Apple. As a kid, I cut my teeth with the Apple IIC (after my first computer, the C64). Then, after a long time in the DOS/Windows environment, I bought my first Macintosh in 2007 – a 17″ Intel Core 2 Duo MacBook Pro. I became entrenched due to the Operating System and the power to develop with a Unix shell. I went all in. My very first smartphone was a launch iPhone 8GB.

20180727_065205
My current development station is built around a 2018 32GB 6-core i7 MacBook Pro.

But soon, it came to pass that most of my clients required software developed under Visual Studio, targeting platforms such as .NET, ASP.NET and Azure. For development, I was becoming less and less Mac and Unix-centered.

At the same time, the Surface Pro hit the market and Windows PCs started to undergo a renaissance. As the Mac was stagnating, with Apple focusing on the iPhone, I made the move back to Windows. I sold my 15″ Retina MacBook Pro. Over the years, my decision was confirmed – the MacBook Pros were usually using older processors, capped at 16GB of RAM, with a less than typist friendly keyboard, and the Touch Bar replacing the F-keys. My Windows “laptop” of choice now is a 15″ Surface Book 2, which is an absolutely fantastic machine.

20180222_070953
Doing some Hebrew work with my favorite mobile device: the 15″ Surface Book 2.

The Windows world I came back to was a lot better than the one of Windows XP and Vista that I had left behind. I even used a Windows Phone (Lumia 1520) for a year, which I really liked, and developed a commercial app for it.

Unfortunately, Windows Phone would turn out to be a dead end as Microsoft abandoned it. So I moved to Android. Android has Linux roots, and allowed developers to hack away at it without needing to purchase a Mac.

I was pretty happy with my setup, and my last Android phone (which I still use and enjoy) is the Note8. As a Seminarian, I particularly enjoyed the Note’s stylus – something that helped me do my Greek and Hebrew work on the go by being able to write naturally. I travel quite a bit, so this is very handy.

The problem

But then, I started noticing that apps I developed were being consumed mostly by iOS customers. Even though Android had the lion’s share of the mobile market, most consumers in the developed world, consume applications primarily through iOS.

An example of this is through an app that I wholly own and develop, the 1650 Split Screen Psalter app. I released it simultaneously on Android, iOS, and Kindle Fire, because I wanted it to have as broad of a reach as possible. It is a free app and highly reviewed (4.9 on Google Play, 5.0 on the iOS App Store). There are NO barriers to entry with this product. The code base is maintained in lock step so one does not stagnate over the other.

With all of that, the OS stats are staggering: a four to one ratio of iOS users to Android. Four to one! There is one caveat: this app is primarily used in the English speaking world, and primarily in Reformed Churches, so this metric does not apply everywhere.

On other apps I have worked on, the numbers might not be as skewed. But the gulf is wide, regardless. With paid apps, the story is really bad. What is the end result? Developer care and attention is lacking when it comes to Android apps. The gold is in the iOS hills. It shows. Compare an iOS app to an Android app by the same dev and many times you will see the Android app being incomplete, out of date, or just buggy in comparison. The future looks even bleaker for Android: 80% of US teens prefer iOS to Android.

My biggest issue with sticking to Android was that I wasn’t interacting with Apple products. I was becoming “out of touch” with Apple’s ways. It is easy to fall into development and interaction models with an Android perspective. BUT, if you are going to develop products, it is best to live and breathe the ecosystem that your target audience lives in.

Having a Mac is a requirement

I always had to have a Mac laying around. Why? Because you cannot (legally) get around needing a Mac for iOS development. As a commercial developer, I am not going to break Apple’s license for macOS by creating what is known as a “Hackintosh”, that is, a custom built PC that you load macOS onto. In addition, I don’t have the time to mess with one. I need stuff that “just works” day in and day out.

But Apple’s hardware had been so out of date that it made it hard for me to buy a new MacBook Pro. So I did most of my development on the PC and then moved to Xcode for testing and development. I kept using an old Retina MacBook as a stopgap.

But then, out of nowhere, Apple released the 2018 MacBook Pros. Six Cores! Finally, 32GB of RAM! Fastest SSDs on the planet. I felt good about purchasing a Mac.

So I did so. After some teething pains, which I will write of in the future, it proved to be a good move.

Next, I needed a new development iPhone. My last iPhone was a 5s. I was using the emulator in XCode for testing newer devices. So I purchased an iPhone X. It is good. As good as the Note8 for me? No. I don’t think so.

The screen is small. No stylus. No consistent way to go “back” like Android’s dedicated back button. But it is fantastic for most people. The gesture based navigation system is usually quite brilliant. The CPU is fast. Battery life not as good compared to the Note.

Cameras are about the same. Neither camera vows me, but both are good for a smartphone.

20180801_074844.jpg
256GB iPhone X next to Original 8GB iPhone.

 

 

I now use the X as my primary phone because its users are my target audience. It is also a very nice phone. Take FaceID, the Notch, and 3D Touch – it is hard to understand those unique Apple touches without living in their world.

A word of advice

In closing, DON’T be dogmatic about the platforms you use. Particularly, if you are a developer. Consider Microsoft, pre-Nadella. They despised Linux  and ignored iOS in the hope that it would go away. Yet, what happened? Microsoft’s marketshare and dominance evaporated.

To survive, they realized their error and now are “promiscuous” in embracing all platforms. Even Linux. Today’s Microsoft is friendlier and more prosperous.

Facebook has had the proper approach (in this area). They have been good about developing wherever their users choose to dwell. Do that and you have a better shot at being successful. Don’t, and you will have a bitter end. BibleWorks recently fell into this trap. They refused to embrace mobile. Macs are huge in Seminaries. Yet their Mac solution relied on Windows emulation. Sadly, their business has now shuttered.

I saw this in the video game business. “We refuse to work on the Playstation”, “we won’t touch the Xbox”, “the PC is not our thing”, or “Nintendo systems are just for kids”, or “mobile devices are terrible”. Several of those companies are no more. Go where your users are!

Platforms are NOT religions. Yet that is how developers treat them. Platforms are an end to serving your customers. Think about your customers and not your preference. In that way, you may prosper in your work.

I will share my experiences with switching to macOS and iOS in a future post.

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: