Developing User Interfaces by writing code alone to develop complex forms is laborious, timeconsuming and counterproductive. The lack of C# Form Designer in.Net Core 3.0 Visual Studio 2019 makes all of the new features in.Net Core 3.0 useless and out-of-reach for new developers. K4RHB Software has been forced to return to Visual Studio 2017.
- Mar 22, 2020 Visual Studio Code was deployed and run remotely from a server, all setup from an iPad. Despite a few minor issues, this experiment showed that the iPad can be a great tool for development now that.
- Want to see my AdMob Revenue on my iOS App? Apple's new Sidecar feature.
Earlier this year I wrote about the iPad Pro, and how I had furiously returned it after being disappointed in the device's promise and limitations. Now, just a few months later, I have a confession to make: I went out and purchased another one—and I was wrong the first time around.
For the second kick of the tires, I picked the smaller 11-inch model with LTE. Unlike it's big brother, it's much smaller for carting around, and slips into your bag undetected—great for quick work on the train or before your meeting at the cafe.
What I've discovered this time around is a sense of delight from the iPad that I hadn't really seen in technology for a while. Essentially, I liked the iPad because, despite its restrictions and rigidity, it actually helps me get more work done. Anydesk for macbook air.
One thing at a time
There are two things that the iPad excels at: battery life—despite a constant 4G connection—and the ways it forces you to multitask: slowly, with intent.
I've tested a lot of computers for getting work done, but the majority of my day job involves writing words—not code—which is a perfect fit for the iPad Pro. It feels backwards to say it, but because the iPad doesn't have multiple floating windows, and no mouse, I'm able to focus on on thing at a time.
If it's time to write, I'll fire up iAWriter and get a post done without flipping between windows or browsing the internet—a thing that's much more tempting to do when I've got a big desktop screen and Twitter open in the background, a click away.
The iPad's multi-tasking experience is better in this way as well; split-screening apps isn't new, but because iOS allows you to 'dock' an app to the side and summon it, quickly check for updates, and throw it away, it doesn't break me out of the mental model of what I should be doing—writing—because the main task remains there, full-screen, in the background.
Because iOS is so rigid, this can feel uncomfortable sometimes—Safari remains a total mess on the iPad—but what I've come to love the iPad for in my workflow is single-threaded tasks I need to complete, one at a time.
Because it has 4G, I can cycle through these tasks regardless of location, whenever I get the chance, and unlike every Intel-based laptop I've ever used, the iPad actually gets well beyond a full day's use on a charge, stretching into the next without breaking a sweat.
That's how the iPad Pro has now become an important part of my routine: I check my email on the iPad at the start of the day, reply and clear as much as I can, briefly browse Twitter, and plan my day in Todoist.
Anything light-touch is done on the iPad, and I use it to escape the shackles of my desk, better keeping on top of my freelance business during the day. I take notes on calls with the pencil, too, which are easier to cross-reference later than using paper, and instantly accessible by tapping the lock screen with the pencil.
Once I'm ready to start working, I jump to my desktop—where I no longer check email frequently, but prefer to use my coding tools or jump into the deep-end of writing a piece that involves a bit more work.
But, when I've done the serious work and need a moment away from the big screen, the iPad is my escape: I can slam through emails from the couch or dining room table, and it doesn't really feel like work. I find using a desktop computer really distracting, so using the iPad as a way to carve off some tasks away from my workstation has helped my work day become more structured, and less stressful.
The simplicity, and stability of the iPad is something I've come to count on—it's a tool that helps me do one thing at a time, without distractions. It just wasn't really obvious at first.
Keyboards, screens and dongles
I initially grabbed the smaller iPad without the keyboard case, but in doing so, I realized Apple actually made a mistake: the iPad Pro needs it to really make the most of the device. If you want to really use it in your workflow, the iPad is unusable in any other way.
I had assumed that I could use the onscreen keyboard in split mode fairly comfortably, but what you won't find out until after you buy an iPad Pro is that Apple inexplicably blocked split keyboard on these two models. Sorry, it doesn't work—and there's no real hope for this to change anytime soon
So, I ordered the keyboard case, and despite my reservations from the previous experience with it, it's much better with a keyboard attached to the back, than without. The smaller iPad Pro's keyboard case is less unwieldy, while no less terrible in the way it's made—but it does the job better than any other janky case or external keyboard ever will.
Without a keyboard, typing on the iPad's screen just gets tiresome, and I'd argue is why they tend to end up being turned into dedicated Netflix machines instead. Adding the keyboard case transforms the experience entirely: you can do actual stuff on this thing.
For most of us, we need to type words into forms, emails, or content management systems—and doing this on a touchscreen would be abysmal. The keyboard case helps, more than I expected, make the iPad feel magic.
And, thanks to that USB-C port, I can plug in my mechanical keyboard to write a post—like this one—anytime I please, and it just works. Color me surprised, but it's a delightful change from the lightning-port hellscape of the past.
That's what made this generation of iPad Pro hardware appealing: carrying a Apple USB-C dongle around meant you could plug one into a TV to watch a movie, or use a keyboard whenever you want to—and it feels incredibly capable as a result.
The disappointing bits
The hardware is beautiful, and I keep finding myself wishing I could do basic coding work on the iPad.
I'm not asking for the ability to run a full LAMP stack—though I wouldn't say no—but something in the middle, like Visual Studio Code, connected to a remote development machine with all my dependencies in Azure, so I can fix a CSS bug or deploy a hotfix without hauling my laptop with me.
That doesn't seem that infeasible, but I'm baffled by the lack of support for it. There are a few horrible, hacky ways to do this kicking around, but nothing as elegant as I've seen with Visual Studio Code's existing 'remote' development tools—it's just that we can't use them on iOS.
I'm hopeful this will change with time, but until then, I won't be trying to move this part of my workflow over. If Visual Studio Code were to build an iOS-based editor with the ability to use its remote tools, I'd just start using a containerized workspace in Amazon Web Services full-time.
I'm already doing this on Windows anyway to keep things portable, so connecting to a remote environment on the the iPad seems like such an obvious easy win. Especially given it would pair perfectly with long battery life and always-on 4G for this exact use case:
![Visual Studio Code Ipad Pro Visual Studio Code Ipad Pro](/uploads/1/3/7/3/137340585/957989429.gif)
There are a few other niggles that still bum me out, like just how poorly the Apple Pencil is supported for any sort of writing task—even OneNote, which is famous for transcribing handwriting, doesn't support it on iPad.
This is bizarre, along with the apparent lack of developer interest in doing much with it. I've been hoping that tools like Notion, which I use to organize my digital life, would support handwriting and transcription, but I'm yet to see any meaningful bits from apps worth using.
iOS remains as frustrating as it is beautiful, too, and it feels like I'm falling over myself sometimes to get something simple done. Things like flinging a photo between apps, or keeping two Safari tabs open on the screen at the same time, are non-trivial (if you do this, a fun Safari bug will lose the text cursor on any forms you have open until Safari is killed).
Visual Studio Code Ipad Pro 11
But, as always, rumors seem to say that iOS 13 will fix many of these niggles—though I doubt it'll reduce the amount of time I spend trying to get iCloud to stop harassing me about drive space.
Despite these problems, the iPad shines because of iOS' quirks, and it's a sacrifice I'm finding myself increasingly willing to make in exchange for how it helps me get things done.
If you're considering getting an iPad, it's exponentially improved by adding 4G to it—don't cheap out and skimp on it, figuring you'll use a hotspot instead. There's something magic about pulling it out of your bag and being online instantly that's worth the slight price hike, and totally changes the experience.
The iPad changed my mind
In the past, I've written about how devices like Surface Go are the perfect venn diagram of productivity and portability—and remain convinced that Microsoft's approach is the right one, allowing a tiny tablet to do run full desktop apps.
But, what Microsoft still doesn't have is a good enough dedicated tablet software story yet: Surface Go is one of my favorite devices in years, but its problem is a lack of tablet-mode apps worth using. If it had better battery life, that might be worth the compromise in the opposite direction, but that'll need to be addressed in future revisions.
That's where the iPad shines. It nails the tablet side of things, even though it can't run a single desktop app—so it doesn't matter at all. It's fast, light, and lasts all day, while being able to pull off the things that make me money, or push my business forward.
For me, it took thinking about how the iPad could fit into my workflow better, and resisting imposing my existing habits on it, to realize that sometimes simplicity is everything, and that's where the iPad Pro slotted in perfectly.
? iPad Pro 11' with LTE
The way we have created content has changed immensely over the past years. When the iPad first came out I was a little skeptical as it really was just a large iPhone and had minimal functionality for content creation. Content consumption on the other hand was always something that the iPad did excel at. Within the past few years the iPad has challenged a laptop as the primary content creation device for me. While I still spend a lot of time on a full macOS laptop I wondered if the iPad could replace the laptop as a coding platform and that is what we are going to take a look at with this post.
Development IDE
If you have ever done development you are familiar with Integrated Development Environment, or IDE. An IDE is usually used as a way to simplify the process and consolidate various tasks associated with developing software. For example, if you are programming an Arduino board you would download the Arduino IDE and be able to do simple syntax validation as well programming the board all from a single application. The problem with the iPad has generally been trying to find an IDE. With the switch to Software Defined Networking (SDN) and having to integrate with Application Programming Interfaces (API) many have started to learn Python. So if you wanted to develop for Python on the iPad you would want to find a Python IDE which would generally lead to Pythonista. Once we have that installed we can start to develop our Python scripts and run them on the iPad. But what about more complex solutions or other programming languages? This is where an IDE like Microsoft Visual Studio Code comes handy, however, it is only released for macOS and Windows, or is it? Microsoft does have a paid solution called Visual Studio Codespaces but there is a free open source solution available as well. Code-Server is an open source version of Visual Studio Code that you can setup on any Linux or macOS platform, you can also run it in a Docker container if you choose. Once you have this installed and setup you can connect it to git repositories and develop from your iPad using any web browser such as Safari or Edge.
With the built-in git integration you can modify your code, stage it for commits on the appropriate branches, and then commit the changes all from the iPad. The only downside to this solution is the live preview aspect if you are a web developer. But there are other solutions for that! Master to do list excel.
Web Development
Majority of my development is web related, combining a mixture of backend and front end code development. So how can you preview all of your changes before applying to your production server? This is where different workflows comes into play. While Python is the hot new thing for scripting and device access the web is still powered primarily by PHP backends with various different front end frameworks like Vue.js, React.js, etc. We need a web server for all this to work, here is where we kind of fall apart on the iPad. But, depending on your frameworks that you use as well as hosting providers there are a few different options we have. For example, one could use the Laravel Vapor framework which leverages AWS Lambda functions to create a serverless environment which can be separated into production and staging using their internal publishing commands. In order to use this I still need to have a full fledged Laravel Vapor environment running locally somewhere, for example on your macOS machine running under Valet. Once we are ready to test our changes we would push a commit to the staging environment which would run various scripts to position the content across the various AWS components. We can accomplish similar by simply using git branches and triggers. Once you commit a change to your dev branch you can have a full fledged AWS or Digital Ocean server for example setup to watch that repo and pull any changes down automatically. Providing your iPad has connectivity you can now visualize any of the changes you had made. This is something that we do with Laravel Forge for RSSI|COMPARED and many other applications I have developed. Forge monitors my git repositories and any time I make a commit it pulls the changes down automatically, runs composer update, and prepares the new version of the application. If it is successful it alerts me via a Slack notification, if it fails I get the Slack notification as well as an email with what the deployment error was.
Conclusion
Visual Studio Code Ipad Pro
As you can see we certainly can develop and test from an iPad today and I do on many occasions. I couple these applications with an iPad Pro 11″ as well as the new Magic Keyboard and it’s a very flexible development environment. I do enjoy the Magic Keyboard and have become quite accustomed to typing on it with really only one major complete: the number keys. They are tucked under the screen too close and I keep hitting the bottom of the iPad frame when I try to hit the number keys. So as long as you aren’t typing numbers a lot it works well. The problem with this overall solution though is that it requires you to be online always, this really isn’t that big of a deal because I’m pretty much always online. If there isn’t WiFi available I can turn on the cellular radio in my iPad which is attached to a GoogleFi data only SIM for low cost cellular connectivity. By leverage Code-Server the data usage is minimal as I’m not downloading large libraries and such. Using Code-Server doesn’t only allow you to code from an iPad but also allows you to code quick fixes from any computer that has Internet access without downloading anything! I’m curious to hear if you are using similar solutions and how well they work for you as well as what hasn’t worked.