First impressions of a developer going full time on an iPad

Since breaking my hand I’ve been trying to find an ideal workflow using the iPad as a primary device and today marks my first complete week doing it. Bellow are some of my quick observations.

First, iOS apps that only open links in their web view can die in a fire. I’ve never been so frustrated at clicking links then not being logged in, then hitting open in Safari only to open the same login page again. Loosing the place I originally wanted to visit.

I know many developers can’t get enough screen real estate but I love the tiny screen. Running every app with no choice but full screen is awesome. Sure you can do full screen on the Mac but it isn’t as smooth. I’ve never felt so focused by having everything except what I’m working on out of sight.

I’ve embraced learning Vim and I set up a dev server, so I just ssh into it, and do all my work. It is surprisingly smooth and feels snappy. The only downside is I can’t find a console for frontend debugging anywhere. Luckily for me this week has been doing a lot of bug fixes and pull requests, so I’ve been able to get by but that is going to be a problem if I can’t find a solution.

The battery life is amazing. I’m working 8 hours then doing Laravel News tasks at night and still going to bed with 20-30% battery life left. I could never get this out of my MacBook.

I originally got the Apple Pencil for drawing cartoons, but it’s been surprisingly useful as a point and click mouse.

As I said in the opening these are my quick obsverations after spending a week with it as my primary machine, and I’ll write more about my development workflow next week when I’ve spent more time with it.

Refactoring For Prose

I’ve worked with a lot of legacy applications and one thing that I have seen many times is small things that are confusing. For example, I recently came across some code that looked like this:

if ($foo) {


    $noAction = true;


} else {


    $noAction = false;


}

That is pretty straightforward and easy to grasp. But what comes next is where the problem lies:

if (! $noAction) {


    //...


}

If we read this as a sentence it says, “if not no action” and most of us struggle figuring out what the double negative translates too. It’s not something that we encounter very often in English so when we see it our brains turn to mush.

From my experience things like this are common in older procedural code because you are defining the variable so far away from the use that it either morphed into the current style over time, or the variable is used in several different contexts and this was the path of least resistance when it was originally coded.

While you are coding try to think through things like you are writing prose. In this example, maybe something as simple as renaming the variable to $doAction would be sufficient.

if ($foo) {


    $doAction = false;


} else {


    $doAction = true;


}




if($doAction) {


    //... 


}

In my opinion reading “if do action” is much clearer and easy to grasp.

Breaking Routines

There are very few classes from college that I remember, and out of the ones I do remember, only one I’ve thought about since and that was personal finance. At the time, it was a required class for the degree I pursued and I wasn’t very excited about it.

My parents taught me about the basics of money. Stay away from credit cards, spend less than your paycheck, and try to make money work for you through investing. So I assumed any personal finance class would be boring, but I was wrong.

On the first day the instructor went through the normal first day routines, then started telling us his story. I was amazed at how frugal this guy was, and he was blowing my mind.

A few days into the semester he had us all calculate our net worth and shared back the typical observation. The class had a lot of older students and most had the majority of their net worth was from their home.

This lead his teaching back to being frugal as a way to increase your net worth and he said something to the effect of…

I want each of you to go home and switch the direction of your toilet paper.

I remember hearing audible gasps from the class. I had no idea people cared that much about the direction. It blew my mind so much that it engrained that memory so deep into my brain that I still think about it.

It’s a really smart idea and a great challenge. If you can’t accept the discomfort on something this small how are you going to say no to that $6 morning coffee?

Programming on an iPad

Since breaking my hand I’ve been struggling to find a workflow that really suits me, but one thing that I’ve found extremely helpful is the autocomplete and predictive typing from iOS. It’s been really helpful in quick communications like email, slack, Twitter, etc.. Plus the keyboard is smaller making those weird key combinations easier one handed.

Alas, as a developer I was constantly switching between iMac and iPad. Using the former for all my development needs and then the other for communication. I wanted to combine both and thought about how to do development on an iPad, and unfortunately, there isn’t a lot of options outside of ssh and a private server. Not being a fan of VIM and the likes I couldn’t go that route.

After searching I did come across a rudimentary solution and that is using a screenshare app on the iPad to connect to the iMac. This is only my second days using it like this but it ids working fairly well. I get all my comfortable apps like Sublime, PhpStorm, and Sequel Pro all from the iPad screen.

The app I used is called Screens and the on the iMac I used SwitchResX to bring down the aspect ration of the iMac. Here is what it looks like with phpstorm:

Tomorrow I go for a hard cast so I’m hoping that means I’ll get some use back in my fingers and be able to make typing easier, but until then this is working.

Siblings Fighting

I have two kids and one thing is guaranteed, if they are off playing by themselves its just as matter of time before they are fighting. I usually let them work it out, but when it escalates to a certain point they usually come screaming for me or my wife. Of course, not being in the room where it happened means it’s really hard to decipher what happened and everyone trying to speak at once is impossible.

In these situations what I do is look at one and say tell me what happened. As their story begins the other will always try and interrupt and its important to shut down the interruptions. Then after they are done the other gets a turn in the same fashion. Their stories always remind me of this Proverb

The one who states his case first seems right, until the other comes and examines him. Proverbs 18:17

Both stories seem to allows diverge and it’s hard to figure exactly what happened. Usually by the time this routine is over both have calmed down and go back to acting reasonable.