Tuesday, December 24, 2019

iPad for Work in 2019

Waiting, waiting, waiting. I'll never get out of here. I'll die in Casablanca.
If my iPad Pro is going to be a laptop replacement, the question I constantly ask is can I use it for work? This years' answer? Basically, but I won't.
The summary is that while I can do my job on my iPad, I'm about 50% as efficient as doing my job on my MacBook and that loss of productivity is unacceptable in my day-to-day working. The good news is that it means I can confidently take only my iPad with me, with it's cellular connection, and get things done. That is pretty great. It isn't iOS 13 that has made this possible, it's some very great apps by some very amazing developments.

The Hardware Setup

I have the iPad Pro 12.9" 3rd gen with a cheap 3rd party smart cover. I have an Apple Pencil and use an Apple Magic Keyboard in the Studio Neat Canopy case. This setup works great for me.
I do have USB-C hub that lets me plug into an external monitor and Bluetooth mouse that I can connect and enable assistive touch pointing. This still feels like a gimmick to me and doesn't really allow me to get work done any better or faster than just touching the screen. If I were working all day, every day, on the iPad, it would be ergonomically better to use an external display at the correct height with an external pointing device.
What I have found pretty amazing is taking my iPhone Pro and hooking that to an external display, external keyboard, with a mouse. Every app, tip and trick I do on my iPad and I can also do on my phone and when that is connect to my big external display it's shockingly passable to work on and makes me dream of a future when the computer in my pocket is my only computer that I just dock.
  • Studio Neat Canopy - https://www.studioneat.com/products/canopy


It's better, BUT... I'm frequently triggering something that takes some time (30s?) to happen. Is it a bash script? Is it a web page process? A big file download? While it's running I want to switch away and check email, slack, maybe do something else and come back. iOS is going to kill whatever app was doing that process in the background unless I take pains to make sure it doesn't. That is horrible. I'm very used to not having to think about that, and I don't want to go through the mental stress to think again.

Web Meetings and Screen Sharing

I am on web meetings all day and I need to be able to share my screen. The Zoom App uses ReplayKit to allow you to share your iOS screen. As far as I can tell it is the only app that does this, so if I am the meeting host I can use Zoom and share my screen and get my job done. The problem is I am frequently invited to Webex, GoToMeeting, Join.me, Google Hangouts, and in all of these I cannot share my screen. So when someone asks me to share my screen I have to say that I can't, and that's not acceptable. Additionally on my Mac I share my external display to the meeting so I can use my other display to continue to slack, take notes, and do other things I don't want to share. This isn't possible on iPadOS.
I can't multitask while I'm in the web meetings very well. If I switch out of the meeting app the camera stops working so everyone is well aware that I am no longer paying attention to the meeting and instead doing other work. I think that in theory if I did the meeting in the slide over window this could be okay, but guess what? Almost all of the web meeting app only work in full screen mode.
I have tried to get around these limitations by using my iPhone to join the web meetings and my iPad to keep working (or vice versa) but that isn't a very pleasing experience.
  • Zoom - https://apps.apple.com/us/app/zoom-cloud-meetings/id546505307

Web Debugging

Another chunk of what I do is debugging marketing tags and code on web pages and this is a mess on the iPad. When I need to do real debugging I abandon all hope of being efficient on my iPad and go back to a computer. There are decent tools for being able to inspect HTML and even run JavaScript consoles in your browser. MIHTool and Inspect Browser will both get you there. In fact, you can even use Chrome to do some amount of this, but when you move into trying to see web request/response it's too hard. MIHTool can sort of do this, but tends not to work great. In Chrome, you can turn on the net debugger (chrome://net-export) and once it's complete email the log, drag the attachment into Files and then open with a JSON formatter/text editor. You can spin up Charles Proxy on device and dig into these requests, but all of this is just massively more difficult than using the developer tools baked into desktop Chrome/Safari. I'm unsure why this is so impossible, but maybe it has to do with Apple's requirement to use WebKit?

The Sketch App Problem

We use this app to draw designs. I need to use it for work and there is no iOS version. We could meet the same need using OmniGraffle and it would work on Mac and iOS, but I would have convince my company to change and I don't think I can win that fight.
There used to be more things like this where there was an alternative that would work on my iPad, but I can't push through a corporate change to make everyone switch to make me happy. For example, when managing a team of technical people, I cannot reasonably solve a repetitive problem using an iOS shortcut, because no one else on the team is using iOS for their full time work. I need solutions that work on Mac.
  • OmniGraffle - https://apps.apple.com/us/app/omnigraffle-3/id1164289776

The Apps to get Work Done

I am an Inbox Zero strategist and I need a workflow that allows me to switch from macOS to iPadOS to iOS well. My basic flow is that I have a very simple todo list in Agenda that syncs across devices. Each item in Agenda has a link out to the real project/work (AirMail link, Slack link, JIRA link, Confluence Link, etc). So while my work flows in via email and slack, I quickly read it and throw a follow up item into Agenda so I can remove the message.
AirMail - I use this for work email. I think I would be fine to use Apple Mail, but I put all my person mail in Apple Mail and my work email is in AirMail. I don't pay for a subscription for this and it meets all my basic needs of reading and writing mail. The feature that I really like is that I can drag-and-drop a link to a message over to my to do list in Agenda [see below} and then whether I'm on my iPad, iPhone, or Mac I can tap on that link an open up the original message in AirMail. This helps a lot with my Inbox Zero process of reading a message and if I need to follow up, throwing a link to it into my Agenda todo list.
  • AirMail - https://apps.apple.com/us/app/airmail-your-mail-with-you/id993160329
Slack - Yeah, we all use slack. I use it too. It's fine.
  • Slack - https://apps.apple.com/us/app/slack/id618783545
Chrome - I use this for work browsing and it's logged into my work Google Apps account. I would be fine to use Safari, but I keep it separate. I like that my password cache for work is now in Google and consistent across my desktop and my iOS devices. I have some URL shortcuts on my desktop that don't work in iOS which make me sad like I can do `jq something` to search JIRA or `cf something` to search confluence. It would be very easy to toss up an HTML homepage to do this, but I haven't.
  • Chrome - https://apps.apple.com/us/app/google-chrome/id535886823
Google Calendar - We use Google Apps at work and I have never trusted another Calendar app to manage this stuff correctly with Google Calendar. When I get a calendar invite in email I leave AirMail and go to Google Calendar to accept the meeting invite. Even the Google Calendar app is questionable when trying to schedule meetings and manage the invitee list and I frequently go into Google Chrome and the web interface for Google Calendar to get this to work. Here is the deal though, Gmail is amazing at parsing whatever crazy calendar invite has been slung at me.
  • Google Calendar - https://apps.apple.com/us/app/google-calendar-time-planner/id909319292
Agenda - I love this app so much. Seriously love it and I barely use its features. This is my scratch pad where I take quick notes before I move them over to Slack, Confluence, Google Docs, or whatever. I also keep my simple todo list there so whenever there is a email or a JIRA or Slack message to follow up on I toss a link to that thing into my todo list in agenda. Lots of people use Evernote for this, but I don't want to keep personal notes in a personal store. I want to scratch them someone until I can post them into a longer term shared storage place.
  • Agenda - https://apps.apple.com/us/app/agenda/id1370289240
Office Apps - We use Google Docs, Sheets, Slides for all of our internal documents and this are probably the worst office suite to use on iOS. The Google productivity apps work okay, doing it in Chrome works okay, and with desktop-class Safari I can get it done in Safari pretty well too. Sometimes it's painful trying to figure out which interface will get me into those documents the best. We also use Pages, Keynote for client-facing documents and those work great on iOS. Customer's send us Word, Excel, and PowerPoint and I have Office365 and those work great too.
Atlassian - These apps are "fine" for Jira and Confluence. More often I just use Chrome and the web interface.
Toggl - A great time tracking app that I don't pay for. We don't do corporate time tracking so this is just for personal use. I also don't use the App, but instead use the web interface in Chrome. I here Timerly is a great app that uses the Toggl API, but it's a subscription and I'm not ready to pay for it.
  • Toggl - https://apps.apple.com/us/app/toggl-time-tracker-for-work/id1291898086
iSH - This app is an x86 Linux shell emulator and may be in perpetual beta and it is definitely AMAZING. This is the app that lets me get my job done. I use git in the shell to get my company's code repo and then I can curl and run shell scripts and do all the glue work that is my day-to-day job. Sure, I could try and use Working Copy and Files and Shortcuts and all that iOS specific stuff, but I can't share that with my team. When I'm working command line with shell scripts against the git repo, that is ALL tools that everyone can use on the Mac or Linux machine. Sadly, I can't easily run processes in the background here without iOS killing the app, but in those cases I ssh to a remote server that runs a screen to kick off those tasks.
  • iSH - https://ish.app
Code Editor by Panic (formerly Coda) - Honorable mention for this amazing app. I don't use this app a lot, but is fantastic. Panic has a rumor there is a new updated vision of this app coming out and I will buy it instantly. The SFTP engine in here is amazing (because it's Transfer, right?) and is the best way I have found on iOS to download large files via SFTP. I can connect to a remote system in Coda and get a SFTP file system browser, ssh shell interface, and the code editor. I have run regex's on 1MM+ long test files and Coda eats it for lunch.
  • Code Editor by Panic https://apps.apple.com/us/app/code-editor-by-panic/id500906297