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.
You can read more about Textastic in this App Store Story. Textastic is available for MacOS, iPad and iPhone.
Source Code Management
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.
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.
Many of the features are available in the free version of the app, however, more advanced features require a purchase.
An Integrated Development Environment
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,
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.
The lack of a runtime environment means the requirement for a terminal emulator to access a computing platform becomes more important.
A Runtime Environment
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.
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