Categories
Dev Process Tools Udemy

Coding on a plane… on an iPad

The project

In my ongoing efforts to up my development game, I’m currently working on learning how to create an app that has user authentication. Adding authentication to the web app is completely new to me and as always I’m time-constrained. So when I found myself in a plane on the runway for over an hour thanks to a mechanical issue I thought why not try and get some study done on my iPad.

I had previously downloaded all my courses content on the Udemy iPad app. This was some luck on my part as streaming video content over a 4G data connection would quickly blow through my data cap which wouldn’t be ideal. I also had a bunch of dev apps I’d downloaded ages ago but hardly ever used.

The setup

I wasn’t sure how much I would really be able to do given I had a set of tools that I guess you’d call “non-traditional” from a web development perspective. Here’s what I used:

  • iPad Pro 10.5 – This continues to be a great machine for me. The screen size gives me a lot of flexibility without the bulk of the 12.7. It does have its limitations of course but increasingly iPad is filling more and more of my needs
  • iPhone 6s – My iPad doesn’t have LTE so I used my phone as a hotspot to connect to the internet
  • Textastic – While of course, I wish I had a text editor with all of the power of a desktop app, Textastic is the best I’ve found so far on iOS. The code highlighting is nice, it comes with a range of themes and custom fonts and works seamlessly with my iOS GitHub client of choice, Working Copy
  • Working Copy – This is one of those apps that constantly amazes me. It feels like this is an application that just shouldn’t be able to work on iOS but somehow it does. I had absolutely no issues connecting to my GitHub repos, downloading the latest build of the project I was working on, making changes in Textastic, then pushing those changes back to GitHub. Perfect!
  • Udemy – The work I was doing was part of the Udemy course I’ve been working through and thankfully the app supports downloading the course content to the device.

What works well

The fact this was possible at all feels sort of amazing. For the most part, the applications I used (listed above) did a great job at the basics and in some cases were far more. I think the thing that really stood out to me most was how the single view full-screen apps made me less likely to switch between apps and, as a result, help me focus on what I was doing more. That focus altered my workflow quite a bit. I’m not sure it was better or worse, but it was certainly different. Thinking about it I think I was far more likely to stay in my text editor and write code from my own mind rather than relying on the content of another window.

I also think the lack of some of the power features of a desktop text editor meant I was paying more attention to everything I typed. Not having the code editor automatically format my text for example really made me pay attention to how I was laying out my code because I knew it wouldn’t be reformatted on save. It will be interesting to see the differences between my handwritten code and what my normal beautified code looks like.

What could be better

Screen real-estate – Whenever you’re doing web development you need a few windows open at a time. You really can’t have too much screen real estate in this sort of work so a 10.5-inch screen is always going to be tight. Having said that it wasn’t horrible either.

Testing – The iPad doesn’t have a terminal nor can it run a node or mongo server so I wasn’t able to test my code. While it’s not a big deal given I was just following a tutorial I wouldn’t want to spend to much time working on something without being able to see the results of my efforts. That would run the risk of building issues on top of issues and it might lead to a lot of wasted effort. I could have used Panics excellent Prompt but the app I’m working on isn’t running on anything other than my local dev environment on my Mac. Sorting that from my iPad was more effort than I was prepared to make, although it probably could be done.

Textastic – I like the look and feel of Textastic but compared to my normal desktop setup it feels a li bit like coding in the dark. These may be features I’m oblivious to but I couldn’t see any form on code completion, code beautifying, or much beyond code highlighting. Not a deal-breaker of course but it’s another little thing that makes you less productive.

Udemy app doesn’t support split-screen – This really means a lot of switching back and forth between apps. Picture in the picture did work but because of the screen size, it made the screencast unreadable so that was of limited value.

I’m really interested to see how iOS continues to evolve as a part of my development workflow. With Apple splitting iPad off into its own OS (iPadOS) it’s difficult to imagine a future in which the iPad doesn’t become an even more capable development machine. With the increasing levels of support for external displays, full-blown safari support and other extended capabilities it’s not impossible future iPads might become fully capable dev environment. At least in some use cases.

The thing I’d like the most that would make the biggest difference is a terminal app. It’s a bit of a pipe dream as I can’t see Apple going that way, but I can dream, right?

Categories
Geekpulp

iPad Pro

I’ve been really loving working on my 10.5-inch iPad Pro since I got it around a year ago. Recently the newer, fancier 11-inch pro came out and as much as I lust after the new design I’ve decided not to upgrade this time around.

The main reason’s the hardware side of iPads seem so vastly ahead of iOS, my current model has a good chance of getting the improvements I’m wanting without shelling out for new hardware every year or two. There’s a bunch of stuff that’s limiting on my current pro that only software can really address. The things that hold me back are relatively minor in isolation, but combined they paint a picture of productivity friction that doesn’t match the pro moniker.

USB drive support in the files app

I don’t think this is something I would use all that often, I certainly don’t on my Mac, but it’s one of those capabilities that when you need it, you need it. Its absence is a particularly egregious limitation given how Apple devices have been shooting 4k video (which are very large files) for some time. Copying large files like this to a drive is often a much faster way of working and collaborating on this sort of thing.

Safari

iOS 12 multi tasking

Mobile Safari is an amazing thing, but sometimes it just doesn’t cut it, particularly when it comes to downloading files. For example, I want to download a file from a stock image site to include in this blog post, no can do (at least not in an obvious way) in Mobile Safari, yikes!

The camera app

Something I really like about the notes app on iOS is the document scanning function built into it. The only issue, I use Bear for note taking. On an iPad I rarely, if ever, use the camera for taking pictures but I frequently use to scan documents or take pictures of whiteboards. It would be great to be able just pop open the camera app and scan away. Scanning should be a system-wide capability and the camera app seems the obvious place to have it.

Image via The Verge

Multitasking improvements

There’s quite a bit in this space, but for me, it’s all about polishing what’s in the system now. I love using split screen to have two apps side by side, normally I use this when I’m doing things like replying to emails and want a browser to look stuff up at the same time. The biggest issue is there’s no way of seeing which application has keyboard focus. Yes, it’s a minor thing, but it’s little bits of friction like this that add up on daily iPad use.

Setting default apps

There’s a vast number of fantastic third-party apps available to meet just about any need. For instance, I use Outlook for my email, calendar and contacts because it works better with the Office 365 infrastructure at work. Unfortunately, you can’t set an app like Outlook to be the default “manager” of these activities. So if I click an email link in Safari, up pops the standard mail application. Not exactly ideal and certainly not pro.

The good news about all of these shortcomings is they are 100% solvable and (touch wood) are fairly likely things to come in a future release of iOS. Cool factor aside, skipping the new iPad Pro this time around feels like the right thing to do. There’s a lot of room for my existing device to grow with software updates, so it just doesn’t make sense for me, no matter how high the cool factor. The joy of Apple products.