Juno 1.2 and Juno Connect 1.5

Jul 27, 2020

We have released a series of updates for Juno and Juno Connect apps over the last few months, bringing a lot of new things to both! Our apps finally have many of the features we have been planning for a long time, and there are, of course, many more that are still planned and being worked on. Let’s take a quick look at what’s new in Juno 1.2 and Juno Connect 1.5.

Notebook Editor

The first thing you are going to notice in both Juno 1.2 and Juno Connect 1.5 is our new notebook editor: it has been redesigned to deliver even better mobile experience, and now has much improved typography with full Dynamic Type support. In fact, Dynamic Type is supported throughout all our apps — so every button, caption and title will respect system font settings (including accessibility options).

When Apple released their all-new Magic Keyboard for iPad earlier this year, it certainly was great news for apps like Juno. So we have immediately added trackpad support to both Juno and Juno Connect, and now our apps work beautifully with all hardware keyboards and trackpads!

Notebook editor now has a number of options for exporting code output: you can export output of a cell as text via cell menu, or simply press-and-hold or drag-and-drop your code-generated plots, graphs or other images.

Last but not least, notebook editor now behaves much better when you work with code, too: text selection is no longer a troublesome task, and callout edit menu is more responsive and has several new much-requested actions.

Juno Connect

We have improved connectivity in Juno Connect 1.5 with several important additions: for example, you can now enable background location access to make SSH connections more persistent. We have also expanded connection configuration with a couple of new settings, including support for ECDSA and Ed25519 keys in SSH tunnels. Finally, you can now download files from your Jupyter server, and export your notebooks in whatever format your server supports.


The toolset of libraries and packages available in Juno has expanded immensely over the last few releases: Juno 1.2 comes with SciPy, Scikit-learn and ipywidgets! Frankly, this is a huge milestone for us, and we have put a lot of effort into making these tools available on iOS and iPadOS. We have even included a new introductory notebook, where you can explore a sample dataset, and then build a neural network classifier — all right on your iPhone or iPad!

We have also updated some of our packages that were already available, and added a cool new feature to Matplotlib: it will now automatically adjust its plotting style based on currently selected app UI theme, so that your plots look just as cool in dark mode as they do when the lights are on.

Juno 1.2 has received a lot of improvements under the hood as well: for example, it now handles context restoration in a much better way. We know that a lot of you were experiencing frequent interruptions by the OS, which is very unforgiving to 3rd party apps with significant performance footprint (which Juno naturally is). Juno will now do its best to bring you back to exactly where you were, if it gets purged by the OS in background — restoring the notebook, file system permissions and even interpreter session (your imported modules and computed variables).

Speaking of under the hood improvements, Juno 1.2 has been religiously optimized to be as quick and small as possible: launch times were cut in half, and Juno currently comes as a just-over-100-Mb download when you install it from App Store. Which, by the way, includes a Python interpreter, entirety of Jupyter, as well as NumPy, Matplotlib, Pandas, SciPy, Scikit-learn and a few other libraries and packages!

Juno 1.2 lets you easily switch your notebook’s working directory to any location on device, even if it’s in another app’s sandbox (e.g. in another app’s Documents folder). We know that working with absolute paths on iOS and iPadOS can be quite involved, so having a quick way to change your cwd should make your life a bit easier — you can now use relative paths whenever you need file system access. And, of course, Juno will remember your working directory for each notebook, and will persist file system access permissions.

We have addressed a number of issues related to our package installer, too — it’s still not a package manager yet, and is still “stateless” (although we are working on an improved version of it!), but it will now act a bit more clever when it comes to selecting package distributions and performing install actions. For example, it will now let you install packages where native extensions are optional and can be omitted (e.g. simplejson), whereas previously it would simply give up and force you to install those manually.

As always, we have a lot of exciting things coming up very soon — so stay tuned, consider leaving a positive review on App Store, and don’t forget to tell your friends about Juno! 😉