The iPad as a Development Platform

First off, I am not a professional developer. I write Python code, HTML, CSS, etc as time permits for interest’s sake, self-improvement or to solve some specific problem I am having.

As you may have seen from a previous article, I use an iPad Pro as my primary computing platform. One of the weak spots I thought existed when I first started the journey to iPad as desktop was writing code. Ok, maybe I was too cheap to want to “buy in” for the extra features at first.

When you think about writing code you typically need:

  • An editor supporting the language(s) you want to develop in;
  • A source code management system;
  • An IDE possibly; and,
  • A runtime environment or terminal emulator to connect to a platform to run the code.

Some of these exist on the iPad, and some may need additional resources. Let’s talk about what I have learned through my journey to writing code on my iPad.

There are a lot of code editors in the App Store. I like Textastic for its interface and integration with SSH, Emmet ad TextExpander. Textastic is capable of syntax highlighting for the languages I currently write in, including Python, HTML, CSS and JavaScript and Markdown. In fact, Textastic supports syntax highlighting for over 80 programming languages.

Image for post

You can read more about Textastic in this App Store Story. Textastic is available for MacOS, iPad and iPhone.

The most commonly used source code management environment today is git. Well, a git platform exists on the iPad, and supports a wide range of the git functions. My preference is Working Copy.

Working Copy allows you to create local git repositories and synchronize them with a remote running in GitHub, GitLab, BitBucket and other git environments such as AWS CodeCommit. It supports a WebDAV server for local nodes and iOS apps to interact with the files in Working Copy.

Image for post

Working Copy supports commit, log, branching etc. Looking at the repository details, you can see every commit which has occurred (log), commit individual files, merge, rebase, push, pull, fetch as well as commit and revert.

Image for post

Many of the features are available in the free version of the app, however, more advanced features require a purchase.

IDE environments including an editor and runtime platform are a major benefit on traditional computing environments, and some are available for iPad. For example:

  • Pythonista for Python; and,
  • JavaScript Anywhere.

Due to limitations established by Apple for the App Store, the number of IDEs available is relatively small.

Pythonista has an integrated runtime, so code created in the editor can be executed in the integrated console. It also connects to Working Copy — by opening the Working Copy folder in Pythonista, code changes are immediately reflected in Working Copy and can be committed at any point.

Image for post

The lack of a runtime environment means the requirement for a terminal emulator to access a computing platform becomes more important.

There are many ways to solve this problem if you cannot run your code natively on the iPad. I use Terminus as my SSH app, and connect to either a Mac on our local network, or a virtual machine created in one of the cloud environments for the time I need it.

Image for post

While not as full-feature or as integrated as working directly on a *nix platform, especially when it comes to a runtime environment, the iPad is still a great development environment where you can write your code, sync with git, and execute the code in an IDE or on through an ssh session to a remote host.

I don’t know if this platform would work for highly complex or large application development projects, but I also don’t see why it wouldn’t.

This article is cross-posted on LinkedIn and Medium.

Copyright 2019, Chris Hare

Written by

Chris is the co-author of seven books and author of more than 70 articles and book chapters in technical, management, and information security publications.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store