I Tried Coding On iPad Pro M1 (2021)

When I travel, I don’t want to take my laptop with me. My iPad makes more sense because of its small form factor. I can use it to watch videos, edit photos and I wondered how well it would work for front-end development.

This took me down several rabbit holes before I finally landed on three approaches that could work for software development.

The first approach was to do all of the development natively on the device. So, I tried to do what I always do. Download an editor or IDE, install node and everything else that goes along with setting up an environment for frontend development.

There were a bunch of editors. I looked at Touch Code Pro, Koder, Code Editor and finally landed on Textastic which for my preferences felt like the better option.

Now to figure out how to add a git client, node js and other dependencies.

Working Copy seems like the way to go for a git client, But trying to set up node is where things got really annoying. There were lots of different round about ways to get this working, but there had to be a simpler way.

Fortunately, while searching for an answer, I came across another IDE called Play.js. This was a huge win because I like the look and feel of the editor better than textastic, but more importantly you can quickly set up a React app with server and it lets you manage the dependencies. 

It was pretty simple to get a basic React app up and running, but the app isn’t super intuitive. I had to just start tapping the buttons to see what they do. Interestingly there are dev tools which is better than the other alternatives I tried but still not the same as chrome dev tools.

The second approach to coding on an iPad is to go 100% online using a tool called Replit. This is an online editor that lets you do everything through the browser including pushing to your GitHub account. 

It is nice because you don’t have to download anything. It was easy to setup and because you aren’t saving things locally, you can get away with an iPad that has less storage.

The downside is you have to be connected to the internet so you could be limited to where you can code or else have a data plan. 

Another con would be that if Replit had an outage you are out of luck until its back up and you are tied into their way of doing things.

That said, it’s still a viable option.

Before I get to the third option, I also want to mention that with the newer iPad pros you can actually connect your iPad to your monitor pretty easily through the usbc port. 

There are some scaling issues that make it less clean of a connection than using a laptop But, hey, a bigger screen is a plus especially since I went for the smaller iPad Pro.

The third option to consider is connecting to another device remotely. You could down the route of ssh’ing into another machine for some of your tasks and there are a bunch of different ways to do this or tools to use.

I settled on using an app called Jump Desktop, which has worked fine for my needs. You install an app on your iPad and another on your MacBook for remote access. 

The huge plus here is that you can connect directly to work computer and work in the OS of your choice with all of the same tools you are used to using. 

This is great when it comes to using chrome’s developer tools and it’s so much easier to do responsive development this way. Another thing I really really like about this approach is being able to use a decent file system.

The file app is ok on the iPad for small stuff like pages docs, but it is kinda clunky for managing tons of files.

A downside to this approach is that you still need a second device and it needs to be running. What if the power goes out or your machine crashes. You’re out of luck for awhile.

If you are mostly interested in using the ipad to learn javascript or some other language with html or css… There is technically an alternative to option one. You could still go with Play.js or a more language specific app like JS Anywhere for javascript or a different one for other languages.

For actual professional front end development I really like the experience of using Jump Desktop over Replit and Play.js for having continuity in my workflow. 

If I only owned an iPad, I would probably lean towards Play.js to keep things local and not be dependent on a web connection or so hindered by latency.

But here are the main reasons why I will only do software development on my iPad as a last resort. 

I already have a 13” M1 MacBook Pro for software development when I am working at my desk with my external monitor. So it doesn’t make sense to use the iPad in that scenario.

The iPad will only be for on the go and because the screen is so small, using the touch keyboard is an uncomfortable no go. You really need an external keyboard to be productive. 

I don’t use my iPad Pro for a ton of typing so paying the premium for the magic keyboard for iPad is not something I want to do. And I definitely don’t want to tote around another keyboard because then I might as well bring my laptop.

It was a fun experiment, but I won’t be ditching my MacBook Pro anytime soon. You should check out this short video on how I like the M1 MacBook Pro for programming.

Thanks for watching. I’ll see you in the next one. Lates.