The iPad At Work: Coding

I wrote an article a while ago called The iPad Works that discusses how the iPad is a great computer for getting work done. Since writing that, I’ve read several posts and articles from others about how they are getting work done with their iPads, most recently this post from Denny. This inspired me to write more about working on the iPad. I’ve been doing something new with my iPad recently and thought I’d share how that’s working.

I wrote recently about how I have not been able to find the perfect journaling app. I’m currently using Bear for journaling, and I like it, but it’s not exactly what I want, and it’s overkill for a simple journal. So, I thought: “why not write my own app that does just what I want?

Since I use my iPad as my main computer, I decided to see how it would work for iOS app development. I’m retired, so I don’t have a schedule, or revenue goals, and thankfully, I don’t have a boss to report progress to. This seemed like a perfect hobby project.

So far, I’ve been pleasantly surprised. Everything is not perfect, and the apps and tools I’m using are not professional-level development tools. But, for a relatively simple app, especially when just getting started, it’s been pretty great.

The Tools

I’ve been using Apple’s Swift Playgrounds on the iPad to get started. It’s a pretty simple learning and coding tool, but it’s surprisingly good at what it does. I’m able to write code and get a preview of what I’m working on in near real time. I can even run the app I’m writing on the iPad to see how well it’s working.

I’ve also been using some other tools to help in this endeavor. These apps work great with the iPad’s simple multitasking, and even better with Stage Manager on an external display.

  • Textastic: A text editor that I use to browse through other code I’ve written over the years and copy/paste into Swift Playgrounds.
  • Working Copy: An app that uses git to save sets of changes I make to the app over time. This app supports Swift Playgrounds really well.
  • GitHub: An online code repository that also has issue and project tracking that I use to keep track of my work. The iPad app has gotten many new features lately.

How’s It Going?

I’ve made quite a bit of progress in a short period of time. Swift Playgrounds is fast and focused. It supports the full Swift programming language as well as the iOS SDK (software development kit). From a code perspective, I can write the same code as I would write using Apple’s professional tool, Xcode (as long as I stick to Swift).

I’ve used Xcode for years, and it’s a great tool, or rather, set of tools. It’s powerful, but, like many professional tools that have evolved over many years, it’s very complicated. Swift Playgrounds is simple and makes jumping in and out of the app super easy.

Speaking of Xcode, Apple’s done a fantastic job of enabling working between a Mac and iPad. Xcode supports opening the Swift Playgrounds file, which syncs over iCloud. Xcode pares down its feature set when opening these files, so I don’t accidentally add something that isn’t supported on the iPad. This way, I can use Xcode’s more advanced debugging features (more below) if needed.

Overall, the experience has been pretty good, and I’ve been having a lot of fun just grabbing my iPad and getting some coding done.

Good, Not Perfect

While this setup has been pretty good, even better than I expected, all is not perfect. Here are some less than perfect things.

Swift Playgrounds is not as stable as I’d like. When it’s working well, it’s great: fast coding, easy access to developer documentation, and super quick previews. However, it sometimes slows down when I’m typing and stops helping with code suggestions. And, if I’ve made a mistake in my code, it sometimes doesn’t report the error, but instead stops compiling the app. A quick force quit and restart fixes these issues, but they show up more often than they should.

There are also some things missing from Swift Playgrounds that make moving beyond a hobby app difficult:

  • Debugging: Not to get too technical, but there is no way to stop my code while it’s running, inspect variables, or catch errors as they happen. This is already becoming a problem as I add more to the app.
  • Other devices: There is no way to connect an iPhone and run the app there. Also, Xcode has simulators that allow running on various devices. These are not available in Swift Playgrounds.
  • Testing: There are no automated testing tools, so I have to manually run through everything in the app to make sure I haven’t broken something.
  • iCloud, and other services: There are some app services that are not supported. To add iCloud support to my app, I’ll have to move to Xcode and also move away from the Swift Playgrounds file to the full Xcode project system, meaning no more syncing with the iPad.

Summary

So, can the iPad work for creating an iOS app?

My verdict: the iPad with Swift Playgrounds is a great place to start learning about and working on an iOS app. It’s easy to explore new ideas and write real code. For many hobby apps, it’s all you’ll need. You really can create a complete app.

If your hobby project is turning into an app you want to list on the App Store, then you’re going to want to move to Xcode on a Mac. Any serious app will need the debugging tools, localization tools, and automated testing that Xcode provides.

I’m not yet at the point where I need to move away from Swift Playgrounds for my app, which is great, since I’ll be traveling over the holidays and will be able to make progress using my iPad. That said, I’ll be reaching that point fairly soon, and I’m disappointed that I won’t be able to complete the work on my preferred computer. Who knows, maybe Apple will give us more development tools for the iPad in the coming year.

What about you? Do you have types of work you do on your iPad that pushes the envelope? What sorts of work would you like to do on your iPad?


2 thoughts on “The iPad At Work: Coding

  1. Nice post, Rob, that’s awesome you’re able to do that much coding on iPad. I’ve never used Swift anything or Xcode. But it sounds like Swift on iPad is meant for learning to code rather than actually coding stuff. Yet it sounds like it’s super close to that level.

    I do use Textastic on iPad for “coding” html and css for my neocities site. It’s a great tool and really works well on iPad. On the Mac, I use Brackets, which is very similar to Textastic.

    On iPad, the most “work” I do is managing and writing the html/css files for my website, using Textastic, the Files app, Notes, and Safari. Denny pointed me to a good Safari extension that enables viewing website source code on the iPad.

    The other work I do on iPad is journaling, drafting, spreadsheets, and other basic personal productivity stuff (email, calendaring, to-dos). I have tried Affinity Photo and Designer on it, just scratching the surface. I’ve used the Canva app on iPad too for simple web graphic design.

    I don’t do audio, video, music, or podcast production on either Mac or iPad. I’m mostly text-based in work with occasional graphics mixed in (png, jpeg). I might make custom graphics on my iPad with the Pencil – something the Mac doesn’t do.

    Glad you shared this post; I enjoyed learning a bit more about what iPad is capable of.

    Liked by 1 person

    • Thanks, Jason. It seems that web coding is a great use case for the iPad. I’ve read your posts about it and really want to dig in more myself, but have too many hobbies right now. I know, there are worse problems!

      I, too, might work on some graphics if I get to the point where I need an icon for my app. I’m not much of an artist, though, so not sure how that will turn out.

      Thanks for reading and the comment!

      Liked by 1 person

Leave a reply to Jason McFadden Cancel reply