Some drafts in Pythonista

TL;DR

SSH client GIT client with a taste of vim-based-ide Python full-blown IDE C# full-blown IDE Lua full-blown IDE Game Development with Python (only prototyping), Lua (2D, 3D and publish to Appstore), Unity (not editor, not render, not compiler. But make your Unity autocomplete work inside C# iPad IDE if you find yourself more coding scripts for Unity than working with scene editor)

Introduction

Hello fellow developer. It seems you own an iPad (Pro). Or planning to buy one. (won’t blame your for desire, iPad right now is best option in terms of tablet with fluid and fast mobile OS. I learned this by my own experience)

I would warn (or please) you by saying this is not yet another article how to write css, html or code in js with your tablet. There are enough tools for frontend development out there on iPad (well, post-hype era, you know what happened).

Prerequisites

iPad or an iPad Pro. Keyboard. Bluetooth or iPad Pro keyboard Some amount of money to spend on applications. They are not exactly cheap, because these tools designed for small amount of people who willing to use iPad as development machine for it’s weight, battery and mobility.

SSH, terminal and… vim

We will start with application that will allow you to work with ssh connection, to access your servers. The application I work with is — Termius.

Why Termius? Many ssh connections, saving keys, passwords, holding connections when app in the background.

But main advantage of this applications in comparison with many others — PROPER terminal colors. Here comes the Vim part. If you are working with Vim that is packed with different plugins and color themes — Termius in my experience is the only SSH terminal application that works properly and you will see colors which you will see on your PC/Laptop.

I mean it. If you are fan of SpaceVim or NeoVim or other plugin-packed Vim, you will be pleased as how you can have full-blown IDE on your iPad thanks to Termius and proper display of colors. And I must say, this app came to this not a long ago — half of a year ago there were still issues with colors. In the meantime, all other ssh terminal apps are showing inverted or even crazy colorized output for SpaceVim and other colorized themed Vims.

Cost: free with paid upgrade. If you have many connections simultaneosly, holding them forever opened in the background — buy it. If not and you sometimes work with one-two connections, free version is more than enough.

Conclusion: you can have full-blown IDE on your iPad via SSH connection to server with Vim with plugins and themes. Any language. Well, as long as you have internet connection.

Repositories, github, bitbucket, your own

I’m sure that you are already aware of the answer, since every similar article is pointing to this app — Working Copy. No better app. Repositories code can be shared with many other applications, creating situation where you edit code in one app and Working Copy shows — there are updates, you can commit, etc. Very convinient.

Warning: don’t buy Working Copy Enterprise as separate app, right now the best way to download Working Copy free edition and upgrade inside it via in-app-purchase. Enterprise edition as different app stopped working not long ago (of course with free transfer of your purchase to free edition) due to apple forcing usage of in-app-purchases instead of different paid app or something like this.

Cost: you can start with free edition, have a taste and upgrade to paid verions if you like it and have many repositories, as I do.

Conclusion: you have huge packed with functionality application to work with your repositores.

Python

Okay, we came to my favorite language at the moment. And it has magnificent IDE for it thanks to Pythonista app.

This is like magic present from the future of tablet code development.

It has syntax highlight, working integration with Working Copy, so you can share code to Pythonista, edit code and just slide into Working Copy and commit.

And also… You can have goto definition and wonderful intellisense. Which is plain crazy taking in mind you are coding on iPad. Learn about and install Black Mamba if you are going to work with Pythonista.

Pythonista works with Python 2 and Python 3. Also, have libraries already included inside. Such as flask, sqlalchemy, numpy and many others. You can learn about libraries and documentation here: http://omz-software.com/pythonista/docs/

What’s more fascinated: it works offline. It has built in documentation for which I provided link above. You can learn python or refresh memory of standard library without internet connection.

Hell, you can even create your database based application with sqlite on iPad, then commit changes and just replace db connection urls and options to another engine in .env file on your server/PC, mac.

Also, Pythonista has builtin library to prototype UI applications for iOS devices. It’s not yet an easy task to publish such application in the appstore, but it surely helps to understand pyqt (somewhat similar to this UI library but much more complex), if you are into GUI based apps made with python.

Price: it’s paid application but it totally worth it if you find yourself coding in python more than often.

Conclusion: welcome to the glorious land of python development on the go. Not sure why other languages like ruby does not have similar IDE, but this app sure helps to spread python popularity, as it is not over the skies right now ;)

C#

Yep, you read correctly. You can painlessly code in language created by Microsoft on an iOS device.

What you need is: Continuous

This is like Visual Studio of some kind for iPad. You have all the pleasures of static typed language in advanced IDE: intellisense, autocomplete, goto definition.

There nothing more to say except that it is also like Pythonista has UI library to work with. I did not yet test it myself, but as I’m aware you can create complex UIs with this app. Not sure where to go further from here, if you are into GUI apps, you can learn yourself what can it deliver in this field.

Caveat: it does not yet work well with Working Copy integration. It can import repository, but won’t update it inside Working Copy. Unfortunately, to update code in Working Copy you will have to copy-pase code and insert it to commit to your repository. This is somewhat known issue and you can help it becoming resolved in future updates by writing to support email of developer of Continuous: http://continuous.codes/support

IDE works offline nicely, without any problems.

Price: it costs money, but it will come in very handy if you are rapidly learning/coding in C# and willing to copy-pase your files/code to share to your PC/mac.

Conclusion: C# as well as python got magnificent IDE in iOS land, so you can develop on the go.

Lua

Can’t imagine more easy to learn and code (learn lua in 15 minutes, imagine that) dynamic language to develop your prototypes or even full games. Codea — is the #1 Lua IDE for iPad.

And it was created with game development in mind. 2D graphics, 3D graphics. Engine can do all fancy stuff. Heck, it even has basic Augmented Reality functionality (no markers, only ground).

Ease to use any asset from outside with iOS Files app!

There is working workflow to publish your games to an AppStore, so you can develop and publish your app/game officially with documentation from Codea.

Editor has pleasant colors as in any other dark-themed IDEs out there. It has nice documentation, somewhat useful autocompletion.

It works nicely with Working Copy, so you won’t have problems with commiting code to repository.

Also, you can easily use your favorite libraries inside Codea. Unfortunately, there is no luarocks (package manager for lua) integration at the moment, but you can add file with your library, for example moses (functional programming utility belt for lua) and use it with your game/app code.

Small pleasant note: Codea comes with builtin OOP library to work with classes. It’s not middleclass (OOP library for lua), but it gets it’s job done well.

IDE works offile flawlessly without limitations.

Price: it costs money, but for occasional rapid prototyping and checking ideas this price is nice.

Conclusion: no better app to code libraries, prototype and even publish games on AppStore made with Lua. And I must add: lua is way easier to prototype something

Game Development, Lua, Python and Unity

Yes, you can develop games on iPad. I won’t cover Swift language applications, I’m sure you are well aware of them at this point.

Pythonista — you can successfully develop your game prototypes in python, but it will be forever inside Pythonista. Well, it has it drawbacks. There is module for 2D graphics that was created specifically for Pythonista — scene.

Lua — as written in Lua section, Codea. You can prototype and publish your games to the AppStore.

Unity — this one is a bit more interesting. If you are into Unity and find yourself more coding than moving things inside scene by hand, you can make your project work on your iPad. In terms of coding, autocomplete, intellisense. No rendering, compiling etc of course.

When you will try to import Unity project into Continuous you will stumble about numerous errors — lack of UnityEngine, UnityEditor libraries.

This can be fixed. It’s tricky solution but it does it’s job. First, you will need to find all of Unity core dll files inside your Unity installation on your PC/mac. I won’t cover here where to find them, you can google it successfully by yourself. Then you create folder inside your repository and call it something like “UnityCoreFiles”. Paste there all dll files and inner folders with dlls files you found. Here goes the most hard and boring part. Unity creates files: Assembly-CSharp.csproj and Assembly-CSharp-Editor.csproj. These files has links for all the dependencies to Unity dlls and your script files in them. In XML format. The thing is. You will need to copy those files and rename them somewhat to Assembly-CSharp-Editor.csproj_ and Assembly-CSharp.csproj_ respectively. Then change all paths to core dlls files you have in your repository (like “./UnityCoreFiles/UnityEngine.dll”). After doing all this, inside Continuous you would rename working Assembly-CSharp.csproj and Assembly-CSharp.csproj files to something like Assembly-CSharp.csproj_pc and Assembly-CSharp-Editor.csproj_pc and rename your own copied files with unerscore in the end to original names (remove underscode). Continuous will learn about your new files and learn about core dlls. From here you can code and have all intellisense, autocomplete for Unity core libraries without errors.

Conclusion

Hey, if you come to this point, you sure want to code without problems on your iPad. I hope this article helped to clarify some things and made your development more mobile!

If you found mistakes or have suggestions, please do not hesitate to comment and point things out.

Thanks for reading!