Mastodon iOS – Josh Hrach

Future App Development on iPad

With less than 24 hours until Apple unveils iOS 14 and a slew of software updates at WWDC 2020, I wanted to briefly get my thoughts down regarding something that has been in my head.

Many feel that, with the iPad positioned as a computing platform, the iPad itself needs to do more things like a Mac can. One of those is app development. While it’s not a totally useless platform for development, there are limitations. But I think there will be some lingering limitations for a while, and in a way, those limitations might help us see the direction Apple is taking their platforms.

Current State

Right now, the iPad has a limited availability for development. This is in the form of the Swift Playgrounds app, which is a great way to learn Swift within a playground environment. Since last year, it has supported SwiftUI, Apple’s new declarative UI framework.

Swift Playgrounds is useful but comes with some obvious limitations:

  • No actual app creation
  • IDE only – No Interface Builder/SwiftUI Preview canvas
  • Missing some SwiftUI functionality when running your code

It’s not totally useless. If you’re a fan of playgrounds like me, then you may already be used to building a lot of Xcode playgrounds to test various ideas and concepts. Doing the same on the iPad is no different.

iPad as ARM Mac?

With Apple’s rumored transition to ARM processors for their Mac line, some were speculating that the iPad Pro would be a good test device until actual ARM Macs ship later this year. However, this was shot down as the iPad Pro has only 6 GB of RAM, while the typical Mac starts with 8 GB.

From John Gruber at Daring Fireball:

iPad Pros only have 6 GB of RAM — no Mac has shipped with less than 8 GB in many years, and developers aren’t buying machines with 8 GB of RAM. Honestly, I think the RAM is a deal-breaker on the iPad Pro-as-ARM-Mac-dev-kit idea.

I also agree with this point. I don’t think the iPad Pro is itself a good candidate for testing macOS on ARM hardware. However, if we take the above limitation into account, let’s reason on some possibilities.

The Future of iPadOS

Why did Apple break out iPadOS from iOS? Sure, there are differences at the UI/UX level. For instance, you can drag and drop items between apps on the iPad, but on the iPhone this is limited to within the scope of a single app.

Even during the iOS 13 timeframe, the builds for iOS and iPadOS were similar in terms of foundation. There’s no surprise there. But this begs the question: is iPadOS just a marketing term?

With the recent release of the Magic Keyboard for the iPad Pro, I wonder if we’ll truly see the iPad move into more of a Mac-like direction. It will never become the Mac. It will never replace the Mac. But we might see some additions to the iPad that make it more compelling to use with something like the Magic Keyboard.

For one, let’s consider the initial transition in bringing iOS apps to the Mac. This was done by bringing UIKit from iOS to macOS. Last year, Apple announced Mac Catalyst as a way for iPad apps to easily come to the Mac, and improvements were made throughout iPadOS 13 to support mouse cursors and keyboard input.

The next stage in that transition is supposedly bringing support for iPhone apps to the Mac.

But that sounds so trivial. Why is that a separate stage in the release? If someone can easily make an app that supports iPhone and iPad now, what does this bring for developers?

iPadOS Windows

Last year, Apple added support for multiple windows (called “Scenes”) of the same app to exist at the same time. What this means is you can have two windows from the same app side by side in multitasking. Or have multiple windows from an app paired with multiple other apps. Example: You can have two Notes windows side by side, or two Messages windows, or two Safari windows.

However, there are still limitations on how windows can be arranged. Right now, you can have an app (or two, paired) take up the full display, and have an app visible via Slide-Over on the side.

What if the idea of iPhone apps coming to Mac is really intended for iPhone apps to come to the iPad? Imagine Slide-Over but refined and expanded, allowing iPhone-sized apps to live on your iPad screen, perhaps even when you’re on the home screen. With cursor and keyboard support, this would bring some added capabilities to iPadOS, bringing it closer to the Mac without actually running macOS.

I have no knowledge of future roadmaps, but I wouldn’t be surprised if that’s the direction iPadOS takes.

Now, what does this have to do with developing apps on the iPad?

The Future of App Development on iPad

Right now, app development is done on the Mac. Xcode lets you build apps for iOS, watchOS, iPadOS, tvOS, and macOS. And the Mac can simulate all of those environments.

If we were to expand iPad to be able to develop apps, we have to ask the question: What platforms can we simulate on an iPad?

If iPhone apps will soon be able to run on an iPad, I’d argue that being able to develop iPhone apps on an iPad version of Xcode is a possibility. And much like the Xcode for Mac is capable of building Mac apps, Xcode for iPad will be able to build iPad apps. In fact, I can see Watch and tvOS apps just as easily.

But what about Mac apps? While it could be possible, how would you test it? Mac apps have the most access to their platform than any other Apple OS, by far. Would you simulate a Mac environment to test a Mac app?

While not impossible, I find it highly improbable that you would be able to simulate a Mac environment on an iPad to test a Mac app.

Then you have the question of UI development. While you can programmatically build UI, Apple wouldn’t want to leave that as the only way to do so. And while many apps are still built with UIKit/AppKit and Interface Builder, Apple has showed us a new way to build UIs: SwiftUI.

With SwiftUI, we’re able to build apps for all of Apple’s platforms (including the Mac). With SwiftUI, I also think Apple is slowly laying the foundation for eventually supporting a version of Xcode for iPad.

While the iPad won’t be able to build everything Xcode for Mac can, it’ll eventually be able to build apps for the iPad, iPhone, Apple Watch, and possibly tvOS. But you would have limitations: SwiftUI would be your only route for UI.

If this ends up being true, it also shows Apple’s priorities: Enable developers to build apps for their more popular platforms with limited, more specialized tools, and leave the larger development picture to the Mac.

So will Xcode come to the iPad? I think so. Will it replace Xcode for Mac? No. Will the iPad replace the Mac? No.

But what we will definitely see is a separation of iOS and iPadOS. Last year was just marketing. This year and beyond, we’ll see it in practice.

Limiting Distractions: Notifications

Sometimes, especially if you’re like me, you’ll be on a roll when it comes to work, perhaps figuring out a program you’re working on, when you suddenly get interrupted. And just like that, your mental focus is gone. What were you doing? You’ll figure that out after a few minutes.

Notifications can sometimes be that interruption. Sure, it may be cool to have your iPhone docked next to your computer. But if the constant comments on Facebook are distracting you, is that a good thing to keep in sight?

The better question: are you in control of your device, or is it in control of you?

While I’m not one to disable all of my notifications ((Yet)), as some have done, earlier this week I started disabling notifications that I had set up for some time. In particular, anything with a social element has been muted. My iPhone and iPad no longer have permission to display notifications, play sounds, or show a badge icon. In short, if I want to know what’s going on there, I’ll find out when I manually check those platforms.

Even if you’re a heavy Twitter user, is there any reason why you need to be disturbed with every mention? Is something so urgent that a social media message should disrupt your life? I’m doing my best to say no to those questions. My iOS devices are useful. To me. They respond to what I want to use them for. And that’s how this relationship will stay.

Countr, my first app on the App Store

It’s been many months since I last talked about app development. I’m a bit disappointed with myself, personally, and how much I haven’t shared. It’s been a fun experience as I’ve dived into Objective-C, Xcode, and learning how to develop things on my own. Since then, iOS 8 was previewed (and since launched), Swift was introduced as a new programming language, and more APIs and development tool updates have happened across the Apple ecosystem.

Well, I’ll be writing more thoughts about the development process soon. But first, I wanted to talk about the first app I’ve developed through to launch. That is Countr, a simple app to quickly take a count. I had wanted an app to help me take a count when I’m at certain meetings or assemblies. I feel this app does this excellently.

While the app was released in late August, I only just now announced it. Moving to Arizona took up a lot of time. Go figure.

Countr not only helped me learn the development process, but I got a nice overview of the app release process. I’m very grateful for the update to iTunesConnect, which has made it a much more attractive experience when checking on the status of my app.

In upcoming posts, I’ll talk about developing Countr, developing for iOS in general, and some other things that I thought were pretty cool.

I want to thank the few friends that helped beta test Countr before release. I got a lot of good feedback and, while it is a simple app, the others that I’m working on are not as simple. I made sure to use the same process with Countr that I would expect with a larger, complex application. It’s been insightful, and I’m ready to release more apps later this year.

Countr is available for free on the App Store.

Why You Shouldn’t Buy the iPad 2 (and Why You Should Be Glad Apple Still Sells It)

On October 22nd, 2013, Apple announced updates to some of their products. Along with the release of OS X Mavericks, their latest version of their desktop operating system, they also announced new versions of iLife and iWork applications for iOS, OS X, and iCloud. New MacBook Pros were also announced.

The expected items, though, were a pair of new iPads. The iPad mini was given a much needed Retina display, while the full size iPad was upgraded and became the new iPad Air, a thinner and lighter 9.7″ iPad. Both of these updates were expected due to news leaks over the past few weeks and were welcomed with open arms.

The Shocker

However, there was a bit of a surprise when it came to what the new iPad line-up now consisted of. Both of those new iPads would be the premium product, while older versions remained on sale. That has been Apple’s MO with iPhones and iPads for years. Yet, while last year’s breakthrough iPad mini made sense to keep in the line-up, the iPad 2 seemed out of place. Why would Apple keep selling this 2.5 year old iPad, one that doesn’t even use the latest Lightning connector?

Screen Shot 2013-10-25 at 2.08.39 PM

Apple’s current iPad line-up

For one, it apparently still sells very well. For many people, the iPad 2 provides everything that a person might need or even want from a tablet. Technophiles may not show any interest in it, but anyone that isn’t tech-savvy who is looking for their first tablet would be more than happy with a new iPad 2. ((iPad 2 owners may feel differently when comparing their tablet performance on iOS 7 versus what they used to have on iOS 6, but new customers undoubtedly wouldn’t notice. ))

Second, by leaving the iPad 2 in the line-up, it gives consumers an option for an iPad that still supports the 30-pin connector and the massive amount of accessories that were created for that connector. But is this a big enough reason for people to buy an iPad 2 when, for $100 more, they can get the new iPad Air?

The iPad 2 was great when it was released. But lacking a Retina display and still using the old 30-pin connector (plus the A5 chip that doesn’t keep quite up to speed with its modern breathren) makes it a poor choice from the current iPad line-up. For identical specs, you can pay $100 less and get the iPad mini. The screen may be smaller, but you’re getting a thinner form factor AND a device with more functionality ((iOS 7 on the iPad mini supports Airdrop, for example, though on the iPad 2 it does not.)) than the older iPad 2.

Add to this the fact that, on Apple’s own website, you can find refurbished 4th generation iPads available for $379. Yes, you can get a newer iPad from Apple’s own website for less than the iPad 2. But if newer models can be purchased for less than $400, why would you want to buy an iPad 2?

Screen Shot 2013-10-25 at 2.22.40 PM

You can get a newer iPad straight from Apple for less than a new iPad 2!

This is why I say you shouldn’t buy an iPad 2. If you have the $399 to spend on it, why not get a newer model? Even the next newest model, the 3rd generation iPad, had a Retina display. While you would still be sporting the larger connector and an older body style compared to the iPad Air, you’d also have a capable tablet with a higher resolution screen.

Even if you don’t buy an iPad 2, however, there’s reason to be happy Apple still sells it. Why is that?

Product Longevity

Don’t you hate buying a product when, months later, it seems like your relatively new purchase is obsolete? Thankfully, while Apple continues to iterate and innovate with hardware, much of the capabilities of their devices come from within the silicon.

iPhone 3G customers may recall a time when their iPhones could not do the now common task of copy-and-paste. Yet, a software update (iOS 3) brought that feature, and others, to their iPhones. They may not have had the latest processor or camera specs, but those iPhone owners were able to get improved use from their devices.

Similarly, Apple has a fairly good track record of supporting older iOS devices. And each time Apple continues to sell an older generation model, (( For example, Apple continued to sell the iPhone 3GS and iPhone 4 when the iPhone 4S was launched.)) they also permit the latest iOS software to run on it, albeit with some features likely not supported. ((This isn’t just a matter of Apple wanting people to upgrade. Sometimes, the features introduced simply can’t be supported on older hardware without degraded performance. Apple’s goal is not to just pack in features but to give a great user experience. At times, this means some devices can’t get every new feature.)) When the iPhone 4S launched, iOS 5 was also released. The iPhone 3GS, still being sold at the time, was able to get that software update. Neither it nor the iPhone 4 had the ability to use Siri. Yet, each phone still found extended use by its owners. ((The iPhone 3GS went on to support even the latest version of iOS 6. Thus far, iOS 7 is supported on devices as far back as the iPad 2 and iPhone 4)) Likewise, when iOS 7 was announced this past June, Apple was still selling the iPhone 4. iOS 7 was installable on those older devices, even though Apple removed them from their line up at their iPhone event in September.

The iPad 2 may not be the wisest choice for buying a new iPad. Yet, the fact that Apple is still selling it means that, quite likely, unless new iPads are announced in the spring, the iPad 2 could possibly support iOS 8. Even if it doesn’t, there’s a good chance the third generation iPads and newer will support it. And as iPad and iPhone hardware matures, it’s likely we’ll see more and more generations of iOS devices supporting newer versions of IOS. They may not have the hardware to support all of the latest features ((Touch ID, 120 fps HD video recording, etc)), but they’ll remain up to date nonetheless.

But for any iOS device owners who have purchased an iPhone or iPad in the past 2 years, you’ll be okay using your device for at least another year with updates galore. If Apple will support a device from March 2011, yours should be supported, too.