Universal Control and iPad for Python
- Update iPadOS 15.4 and MacOS 12.4. This means go to System Preferences in MacOS and choose update and Settings/About for iPadOS.
- Then you need to go to a strange dialog in the Mac which is System Preferences > Display > Universal Control and enable all the buttons which are Allow your cursor and keyboard to move between any nearby Mac or iPad and then Push through the edge of a display to connect a nearby Mac or iPad
- Now when you drag over an edge on the Mac, it assumes that is where the iPad is and wanders over there. So it doesn't do anything magically like figure out placement, but just guesses, it works pretty well.
One confusing thing is that this is different from Sidecar where the iPad is used as a secondary display. That's useful in coffee shops where you need more display space. But most of the time I think I'm going to be using Universal control because then I can still use the native iPad applications
When to use Universal Control?
So what do you use it for? Well, that's a great question:
- Putting Slack on the iPad. Well, so what do you put on there you things that you interact with but don't want to be distracted. I find that it is really nice to type with a mechanical keyboard and also to use a real mouse (which iPadOS now supports well). It is basically for things that need to
- In most of my home systems thanks to the pandemic, I have a big screen and then the MacBook is open on the right. I normally leave my music if I'm chilling or Trello on the right.
- Then the main screen I use Rectangle to do tiling windows and on 27" screens I have four of them and on larger ones like 43" or 55", I can have six of them.
Using iPad as a computer for testing and simple development
My biggest issue with the iPad is that it is such a powerful computer that I wonder if it can be used for simple Python development for example. The latest 2021 model specifically because it has a real M1 chip, but you can't really use it for anything. But I saw a post on ish and A-Shell. These let you run a full Alpine Linux environment inside an iPad application. You can even run Python with ask add python3 and other packages other things. I'm going to experiment with this and see if I can just run sample applications and things there.
I'm going to see if I can do a git clone as well so simple python applications will run and maybe even docker! While there are python environments that you can run, this is a full version of Linux running inside a tablet operating system. Pretty incredible how powerful mobile chipsets have become.
Some of the other solutions are to use Carnets for standalone Jupyter notebooks and this includes NumPy, Pandas, and Matplotlib so good for simple notebooks when you are disconnected. You can even do a
%pip install right inside of Carnets and get packages which are pretty cool. And if you have a gigantic iPad, you definitely want the variation that includes Scipy. Juno is the paid version which is prettier.
Then there are native full Python environments PyTo costs $10 and has local IDE with NumPy, SciPy and its OK to do.