The Possibilities With Developing iOS Applications From an iPad

Xcode is the missing Xfactor needed on the iPad. On a day to day basis, most of the work that gets achieved from my side, gets accomplished with a 2015 15" MacBook Pro Retina. Sometimes however, it's quicker, easier or just more fun to use iOS for the same tasks. Over the past few months, I have been making a push to use an iPad more wherever I can. This is entirely down to how beautiful the 12.9" iPad Pro is and the enhancements in iOS 9. I am currently using an iPad Air 2 and am yet to acquire my first iOS Pro device but it's a likely step I know I'll be making fairly soon. Just seeing how good the device looks in the Apple Store makes me want to try it, but I will need a few things to change first.

I have been enjoying the benefits of using iOS 9 on an iPad Air 2 with the split screen functionality. That feature alone is a game changer for productivity on the move. And with that in mind, I have frequently used the iPad for a lot of my tasks while working from a shared office, in a plane or in a coffee shop. I am treating the iPad as a creation and consumption device. I also do not currently have any accessories with the iPad so I am training myself to use the on-screen keyboard and I'm getting better. I can type 106 words per minute on a normal keyboard and approximately 72 on a glass screen which isn't bad. I'm using the TapTyping app for testing and improving my speed.

My wife recently asked me why I am spending time trying to focus on using just the iPad. Simply, it's more enjoyable using the iPad and I find myself concentrating better with the single focus on apps. Apart from being a Consultant on a day to day basis, I am also heavily focused on progression with developing more apps. Although the iPad can handle my day-job very well, it cannot currently handle my passion for app development. And sometimes, taking a full blown 15" laptop to other countries and workspaces isn't efficient and is a massive burden on the shoulders. The single piece missing of the puzzle for me to use my iPad on a full-time basis is Xcode, Apple's application for the development of apps.

A Typical Day

A normal day in the office for me consists of meetings, tasks, emails, projects and documents. I start my day with a check on the tasks that will take my attention for the day, which is something I've trimmed down the night before. I work through emails and then make my way through the tasks and projects for the day. One of the roles I fulfil is that of a pre-sales consultant and with that comes a need to send out numerous meeting requests and conduct a variety of meetings. The meetings range from planning out a proof of concept installation with a prospective customer, remotely installing our software, training partners on our product, support issues, peace making, internal catch-ups and product updates or follow up sessions. It's fair to say a lot of my week is consumed by meetings and emails, like most people.

I am also frequently sending out prerequisite documentation to partners and customers. All of this work gets achieved extremely well with Mac OS X. I use 2Do for tasks and manage my email in specific ways. We use Cisco WebEx for meetings and all of my documents are stored in Dropbox for easy access. Occasionally, I will need to connect to intranet sites or servers which requires me to be logged in via a VPN which is also a straight forward task.

iOS Tasks in Conjunction With Mac OS X

Truth be told, I have started getting a bit bored of Mac OS X; not because there is anything wrong with it, but because I just wanted a change. While things like working out are good routines to have on a daily basis, if your productivity is centred around routine tasks that you've stopped thinking about, you potentially lose the creativity as well. I am not bored of Mac OS X to achieve my tasks, I am bored of the procedures used to achieve those tasks and I want to change that. This is not a scientific or proven expert opinion; it is just something I believe. Of course, that doesn't mean you should change your productivity routines every week.

My experiments of using just an iPad for a few separate days spread over the last few months was for the purpose of introducing a change in my productivity routine. It was also because I find creativity when moving to work from a new location and I wanted to do that with the iPad. I work from home on a full-time basis and a power-outage in my street was the catalyst I needed to try this new approach.

Armed with an iPad, iPhone and a set of Beats Studio headphones, I spent an entire week working from a shared office space a few months ago. I then sporadically introduced more days working from the iPad from a different location, once or twice every week. This experiment lead me to one conclusion: I can do my 9-5 job entirely from an iPad from anywhere. The following is an unordered list of tasks I can and did do on my iPad.

I can manage my tasks and projects with the expertly designed 2Do for iPad, my emails with Spark, my notes with Apple Notes and my documents with Dropbox. Our company has file servers which I can connect to via Seafile and with using our own developed application, I can connect to all Intranet sites without needing a VPN. Speaking of VPNs, I have a subscription to Cloak VPN so I can keep my activity safe from the clutches and insecurity of public wireless spots.

I can set up meetings with WebEx and send out the invites using Fantastical. When it's time for the meeting, I can conduct it through the WebEx app. Internal company discussions happen via Slack and Skype. I can edit and sign PDFs via PDF Expert and create and conduct presentations with Keynote. Editing documents and spreadsheets with the Microsoft Office Suite is excellent way to do things on the iPad. I can connect to my Mac Mini directly from Screens and rather than going to the website, I can log my daily food in-take quickly from the LifeSum app. I even write my blog posts entirely from the iPad with Ulysses. I could easily do this on a Mac but I find that to be more distracting. I like the single screen focus and I'm slowly training myself to be comfortable typing on the glass keyboard with longer articles. While using Ulysses to write a blog post like this one, I can use the Blink app to add in affiliate links. I activate Split Screen on the iPad, get the link from Blink and save it to Copied. Back in Ulysses, I simply find the word that requires a link and bring up the Copied keyboard to paste that in. It's extremely fast and reliable and the iOS 9 feature of scrolling through text with two-fingers on the keyboard on the iPad (or 3D Touch on the iPhone) makes editing text extremely fast.

I can do all of this from my iPhone as well but for longer periods of time, it is of course more comfortable using the bigger device.

iOS-Only Tasks

I have talked about all of the tasks and actions I can do on the iPad as a direct counterpart to Mac OS X; I could do any of those tasks on the iPad that I could on the Mac. What about the iOS-only specific tasks? iOS has come a long way over the last few years and iOS 9 really took this mobile operating system to a new level. This is also true with power applications like Workflow and Drafts. Specific to iOS 9, I can quickly setup a reminder to an email, message, note or safari link with a Siri command: Remind me of this. When I am trying a new application, I'll create a new note in Apple Notes.app to write my thoughts on that. I will set up this reminder for a week from the time I create this note to check back on whether I am keeping or deleting this application.

Sir's "Remind me of this" feature. 

Because the reminder has a direct link to the note, it's easy to maintain reference. This feature is available on iOS only and is used by many third-party apps as well. I could for example create a new note in Drafts and have Reminders.app remind me of this in a few days or when I reach a specific location. While it's not possible to create this type of reminder on Mac OS X yet (because of the lack of Siri), when the reminder is created, the linked reference will also work on the Mac Reminders.app and clicking on the icon will take me directly to the note.

Through the use of Drafts and Workflow, I can set up some extremely powerful ways of working with iOS. I will be writing up a future set of in-depth articles on both Workflow and Drafts but I am just going to touch on some examples here. For example, I can set up a new note in Drafts to remind me of something when I reach home with a single tap of a button, or when I reach the office, my family's house in Singapore, the supermarket, the cinema or the shared office. The addresses are plugged into individual Workflows in the Workflow app and by typing my reminder in Drafts and enabling an action set (again, this will come in a separate post), I can choose where I'd like to be reminded. The text is added to the clipboard and the Workflow action is run with the location based reminder created instantly.

Through the use of TextExpander and Drafts, I can type :packing into a new Draft note for it to generate my packing list when travelling. This consists of a title (which I change to the country name) and a list of 71 items. With a single tap of an action in Drafts, it calls a Workflow created by Tim to create a new Checklist in 2Do with every single one of the 71 items added as a new item in the checklist. The first line of the Draft is the title of the newly created checklist in 2Do. This takes about 45 seconds to complete but it's about 10 minutes faster than it would be doing this on Mac. This simply isn't possible on Mac without complex Automation. It's so much faster and more fun to do this on iOS.

Because of my heavy use of Day One, I have also recently discovered a new Workflow for the movies I have watched. It prompts me to enter a movie name and it goes to find the poster, title, director, year and so much more information as well. I add in a comment and this gets added straight to my movies journal in Day One. Creating a neatly formatted Day One entry for the movie would take a lot longer than 10 seconds on Mac OS X. I have created this Workflow as a shortcut icon on my home screen which makes it even easier to run. This workflow is thanks to a tweet from Jenni Brehm. And you can find the Workflow I use (with a few modifications from the original) here: The Movie Diary

Workflow > Day One

What's Missing For Me? iOS Development from the iPad

As you can see, I can do a lot from my iPad. That's not to say everyone can or everyone wants to. I can doalmost everything. The almost is something I hope gets addressed this year at WWDC with Xcode for iPad. Let's call it Xcode Lite for this article to differentiate between the current version available on Mac. I am not very creative with names so please feel free to pick a better name, Apple. There are tools out there for development but I would need a lighter version of Xcode. For this to work, I'd imagine some form of Playground feature which allows you to write code on the left pane and view its action on the right pane in Xcode. That would work very nicely with the iPad to try out concepts, but it wouldn't be enough to satisfy my developer needs. Here is a list of features I'd like to see with Xcode Lite.

Full Project Navigation

I'm a terribly messy developer. I have classes representing small roles and responsibilities for each area within my apps where I know I could make it neater by having a single class to do most things. I'm not there yet, so with Xcode Lite, I'd like to have the ability to, on the left pane, manage and access all of the classes within my application. Imagine Mail.app on the iPad. The left pane represents the list of emails and the right is the selected email. The same would apply here. Developers should also be able to create new classes with the touch of a button.

Code Completion

There is no normal way for me to remember method names. This is especially true with a recent move from Objective C to Swift for my own development. Code completion takes care of that for me in Xcode and that would be an important part of Xcode Lite, especially if I'm using the iPad on a plane without Internet access. I'd like to be able to write the code for a UITableViewController using the Delegate and Data Source Methods with code completion.

Offline Access to the Documentation

A lack of Internet access should not be a barrier in finding out information about methods and classes. Developers should be able to reference the Apple documentation within Xcode Lite for all classes, methods and properties.

Full Storyboard Layouts

While there are a many code-only developers, I rely heavily on Storyboards to set up every screen within my application. I build the UI elements and segues using this mechanism and not having this on the iPad would hinder any progress in development. Imagine the power of being able to manipulate a Storyboard by hand (or Pencil) by adding in new UI components like a UIButton and UILabel. Or adding a new View Controller, assigning a UIImageView to it and adjusting some common settings. Imagine how powerful it would be to be able to adjust Auto-Layout constraints for components within the UI and set up StackViews. I can also vision segues being a powerful mechanism on a touch-screen device. For example, touch the Segue button and then select the source in the document outline (either the View Controller or a UI Component) and then connect it with the destination View Controller and select which type of segue you want.

Simulator

Of course, Xcode Lite would be essentially useless without an ability to preview our creations on a simulator. Developers should be able to run their applications in a simulator on the device. The simulator itself could be of an iPhone or iPad with the ability to interact with the UI components as you would on the simulator on the Mac. This reason alone could make Xcode Lite an exclusive to the iPad Pro lineup because of the extra power consumption required. And then suddenly the use of the Pencil for specific actions makes even more sense along with assigning keyboard shortcuts for external keyboards.

iCloud

This is a must. Start an application on the Mac and continue working on it from an iPad. And vice versa with any changes from the iPad syncing to iCloud to be available on the Mac.

One Can Dream

I am certainly not the first one to talk about the benefits of bringing Xcode to the iPad. Others have talked about it here and here. Apple may already have this planned; the WWDC Invites allow one to dream. It's full of Swift code and it could be a hint towards us getting Xcode for the iPad. If Apple announce this, it wouldn't take more than a heartbeat for me to make my way to the Apple Store and acquire the 12.9" iPad Pro with the Pencil and Keyboard. I would be able to work entirely off the iPad Pro without carrying around the much heavier MacBook Pro.

Of course, being realistic is an important aspect of this thought process. I am not expecting Xcode Lite to be able to submit applications to the App Store as well, so you'd still need a Mac for finalising apps. Working full time from an iPad does not mean I'd sell my MacBook Pro. It still would be extremely useful, especially for needing to test applications on a real device. However, my Mac Mini with a monitor could achieve the same result, so that would be something to think about. Xcode Lite would allow me to work entirely from a shared office, a coffee shop or even an airplane with just the iPad Pro on the table. I would be able to achieve my tasks and more importantly be able to add functionality to my apps while working remotely or on holiday. With the SD Card reader, I would be able to transfer all of my holiday photos from the DSLR to the iPad. Right now, the only reason I take the MacBook Pro on holiday is to get a bit of coding done on the plane and to transfer pictures during our trip (in case anything happens to the camera). I can already do one of these tasks with an iPad; I hope Apple make the other a reality this year.

iPads are changing the way we interact with our devices. There are some high-profile personnel in the tech industry already using an iPad on a full-time basis, like Federico Viticci. In fact, he even has a podcast dedicated to working entirely from an iPad. In a very recent article, Steven Sinofsky has also dedicated his words to how he switched from a PC to an iPad Pro. The timing is ripe and ready for Apple to bring padOS as an iOS version exclusive to the iPad, with professional-level applications. And hopefully some, if not all of the features in this incredible iOS 10 concept by Federico.