# Can Julia be installed and used on an iPhone?

**URL:** <https://discourse.julialang.org/t/can-julia-be-installed-and-used-on-an-iphone/99813>\
**Category:** General Usage\
**Tags:** question\
**Created:** [June 3, 2023, 3:53pm UTC](https://discourse.julialang.org/t/can-julia-be-installed-and-used-on-an-iphone/99813 "2023-06-03T15:53:48Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![WuSiren](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/wusiren/32/42529_2.png) [@WuSiren](https://discourse.julialang.org/u/WuSiren)\
**Post date:** [June 3, 2023, 3:53pm UTC](https://discourse.julialang.org/t/can-julia-be-installed-and-used-on-an-iphone/99813/1 "2023-06-03T15:53:49Z")

</div>

I just find Julia language interesting, is it possible to carry it with me on the go? 😃

---

<div class="post-metadata">

**Author:** ![stevengj](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stevengj/32/71_2.png) [@stevengj](https://discourse.julialang.org/u/stevengj)\
**Post date:** [June 3, 2023, 4:47pm UTC](https://discourse.julialang.org/t/can-julia-be-installed-and-used-on-an-iphone/99813/2 "2023-06-03T16:47:58Z")

</div>

Easiest way would be to run it in the cloud, e.g. via [mybinder.org](http://mybinder.org).

---

<div class="post-metadata">

**Author:** ![AMJ](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/amj/32/214096_2.png) [@AMJ](https://discourse.julialang.org/u/AMJ)\
**Post date:** [June 3, 2023, 9:20pm UTC](https://discourse.julialang.org/t/can-julia-be-installed-and-used-on-an-iphone/99813/3 "2023-06-03T21:20:42Z")

</div>

Another way would be to install code-server on your server and connect to it via vscode.dev interface either on browser or with apps like Blink which has it built in.

---

<div class="post-metadata">

**Author:** ![Pia](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pia/32/215097_2.png) [@Pia](https://discourse.julialang.org/u/Pia)\
**Post date:** [February 11, 2025, 3:06pm UTC](https://discourse.julialang.org/t/can-julia-be-installed-and-used-on-an-iphone/99813/4 "2025-02-11T15:06:21Z")

</div>

(Disclaimer: I’m the developer of Pialytic)  
We just released [Pialytic](https://apps.apple.com/us/app/pialytic-julia-editor/id6741685816) for iOS. It lets you manage your Julia projects on your device and generate the result and plots. If you need to share the projects you can use automatic Dropbox or Box synchronization as well as Git integration.

---

<div class="post-metadata">

**Author:** ![Benny](https://avatars.discourse-cdn.com/v4/letter/b/49beb7/32.png) [@Benny](https://discourse.julialang.org/u/Benny)\
**Post date:** [February 11, 2025, 4:07pm UTC](https://discourse.julialang.org/t/can-julia-be-installed-and-used-on-an-iphone/99813/5 "2025-02-11T16:07:14Z")

</div>

I heard that iOS restricts JIT compilation (I don’t really understand it or how it’s done), so how does Pialytic let us use Julia on iOS? Does it run on a server somewhere?

---

<div class="post-metadata">

**Author:** ![jdad](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jdad/32/4739_2.png) [@jdad](https://discourse.julialang.org/u/jdad)\
**Post date:** [February 11, 2025, 5:41pm UTC](https://discourse.julialang.org/t/can-julia-be-installed-and-used-on-an-iphone/99813/6 "2025-02-11T17:41:07Z")

</div>

Seems fine, but how to do graphics? (I am using an IPad).

Trying

```julia
  using Plots
  scatter(rand(10))

```

does show nothing.

Thanks,  
JD

PS. Apparently the execution is delegated to `Verbosus.com` server?

---

<div class="post-metadata">

**Author:** ![Pia](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pia/32/215097_2.png) [@Pia](https://discourse.julialang.org/u/Pia)\
**Post date:** [February 11, 2025, 6:23pm UTC](https://discourse.julialang.org/t/can-julia-be-installed-and-used-on-an-iphone/99813/7 "2025-02-11T18:23:22Z")

</div>

Thank you for trying it out. You need to write the plot to a file by using savefig(…) or something similar:

```julia
using Plots

# Create some data to plot
x = 1:10
y = rand(10)

# Create a plot
plot(x, y, label="Random Data", xlabel="X Axis", ylabel="Y Axis", title="Simple Plot")

# Save the plot to a file
savefig("simple_plot.png")

```

And yes, currently it uses the web service available at [verbosus.com](http://verbosus.com) to generate the result. We’re working on an offline version as well but might take some time to become available, as it is not an easy task to do on iOS.

---

<div class="post-metadata">

**Author:** ![jdad](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jdad/32/4739_2.png) [@jdad](https://discourse.julialang.org/u/jdad)\
**Post date:** [February 11, 2025, 6:25pm UTC](https://discourse.julialang.org/t/can-julia-be-installed-and-used-on-an-iphone/99813/8 "2025-02-11T18:25:50Z")

</div>

Thanks for your quick answers. Best wishes for your (future) work !

---

<div class="post-metadata">

**Author:** ![WuSiren](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/wusiren/32/42529_2.png) [@WuSiren](https://discourse.julialang.org/u/WuSiren)\
**Post date:** [February 17, 2025, 8:47am UTC](https://discourse.julialang.org/t/can-julia-be-installed-and-used-on-an-iphone/99813/9 "2025-02-17T08:47:22Z")

</div>

Best wishes!

---

<div class="post-metadata">

**Author:** ![foobar\_lv2](https://avatars.discourse-cdn.com/v4/letter/f/ee59a6/32.png) [@foobar\_lv2](https://discourse.julialang.org/u/foobar_lv2)\
**Post date:** [February 17, 2025, 10:16am UTC](https://discourse.julialang.org/t/can-julia-be-installed-and-used-on-an-iphone/99813/10 "2025-02-17T10:16:27Z")

</div>

> [@Benny](#):
>
> I heard that iOS restricts JIT compilation (I don’t really understand it or how it’s done),

This is actually quite an interesting construction. As on almost every OS, ios doesn’t permit user code to directly mess with page-tables; instead there is a syscall interface where you request whatever you need.

So the kernel gets to see and consent whenever you want to map memory as readable, writable or executable.

On ios, you never get both writable and executable. And when you request an executable mapping, then the ios kernel inspects the code, and especially verifies cryptographic signatures (and you don’t have a valid signing key! Apple ios devices are not your property, you are a mere serf in the walled garden).

This suggests an obvious way out: If you provision the right kind of developer certificate on your ios device, then you can probably use a JIT, by signing the jitted code before asking the kernel to map it executable.

I think there are proof-of-concepts for this, but afaiu none of the major JIT engines have full support (meaning: Somebody wrote and integrated and maintains the code to make this work), where major JIT engines would be java hotspot/graal, javascript chrome/v8 and firefox, and LLVM.
