Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

iOS support for iPad #11889

Open
1 task done
jaanli opened this issue May 16, 2024 · 12 comments
Open
1 task done

iOS support for iPad #11889

jaanli opened this issue May 16, 2024 · 12 comments
Labels
feature [core label] platform support An umbrella label for all platforms

Comments

@jaanli
Copy link

jaanli commented May 16, 2024

Check for existing issues

  • Completed

Describe the feature

It would be super helpful to have iOS support, as collaborative editing is often made a lot easier with the screen and form factor of the iPad Pro.

Would this be possible? Happy to beta test / contribute if I can.

If applicable, add mockups / screenshots to help present your vision of the feature

Happy to submit a Figma user flow if needed :)

@jaanli jaanli added admin read feature [core label] labels May 16, 2024
@JosephTLyons JosephTLyons added platform support An umbrella label for all platforms and removed triage labels May 16, 2024
@jansol jansol mentioned this issue May 20, 2024
1 task
@fwcd
Copy link

fwcd commented Jul 10, 2024

Would love to see iOS support be a thing. The low-level graphics stack (Metal etc.) is very similar to macOS, so don't think a port would be that far out of reach1 as already mentioned in #12039 (comment).

Footnotes

  1. Also more feasible than e.g. Visual Studio Code, which is built on web tech (while the server version runs in Safari, there's no Electron for iOS and native UIs are generally nicer anyway).

@jaanli
Copy link
Author

jaanli commented Jul 11, 2024

We at @onefact need this as well for our work with doctors.

Is there a WebAssembly port yet? We’d be happy to help contribute this.

@fwcd
Copy link

fwcd commented Jul 11, 2024

Is there a WebAssembly port yet?

#12332 (comment)

@anEXPer
Copy link

anEXPer commented Jul 22, 2024

I'm interested in this because I want to use Zed via a remote connection to either my home Mac Studio or a linux cloud workstation - both from an iPad pro, and, even more so, from a Vision Pro, which as I understand it is closer to an iOS device as well.

@seniorgoogles
Copy link

I'm interested in this because I want to use Zed via a remote connection to either my home Mac Studio or a linux cloud workstation - both from an iPad pro, and, even more so, from a Vision Pro, which as I understand it is closer to an iOS device as well.

#me2

@MastroPino
Copy link

This would be a super killer feature with remote development and ciao ciao vscode

@turbolent
Copy link

turbolent commented Aug 29, 2024

I had a quick look into this:

This gets fairly far. However, it fails on wasmtime, which does not have support for iOS yet (In general, the inability to JIT code on non-macOS Apple platforms is going to be problematic):

wasmtime build errors
error: unknown directive
  |
note: instantiated into assembly here
 --> <inline asm>:2:1
  |
2 | .hidden wasmtime_fiber_start_21_0_1
  | ^

error: unknown directive
  |
note: instantiated into assembly here
 --> <inline asm>:4:1
  |
4 | .type wasmtime_fiber_start_21_0_1,@function
  | ^

error: unknown directive
   |
note: instantiated into assembly here
  --> <inline asm>:37:5
   |
37 |     .size wasmtime_fiber_start_21_0_1,.-wasmtime_fiber_start_21_0_1
   |     ^

error: unknown directive
   |
note: instantiated into assembly here
  --> <inline asm>:39:1
   |
39 | .hidden wasmtime_fiber_init_21_0_1
   | ^

error: unknown directive
   |
note: instantiated into assembly here
  --> <inline asm>:41:1
   |
41 | .type wasmtime_fiber_init_21_0_1,@function
   | ^

error: unknown directive
   |
note: instantiated into assembly here
  --> <inline asm>:61:9
   |
61 |         .size wasmtime_fiber_init_21_0_1,.-wasmtime_fiber_init_21_0_1
   |         ^

error: unknown directive
   |
note: instantiated into assembly here
  --> <inline asm>:63:1
   |
63 | .hidden wasmtime_fiber_switch_21_0_1
   | ^

error: unknown directive
   |
note: instantiated into assembly here
  --> <inline asm>:65:1
   |
65 | .type wasmtime_fiber_switch_21_0_1,@function
   | ^

error: unknown directive
    |
note: instantiated into assembly here
   --> <inline asm>:110:9
    |
110 |         .size wasmtime_fiber_switch_21_0_1,.-wasmtime_fiber_switch_21_0_1
    |         ^

error: ADR/ADRP relocations must be GOT relative
   |
note: instantiated into assembly here
  --> <inline asm>:47:13
   |
47 |             adrp x17, _wasmtime_fiber_start_21_0_1
   |             ^

error: unknown AArch64 fixup kind!
   |
note: instantiated into assembly here
  --> <inline asm>:47:13
   |
47 |             adrp x17, _wasmtime_fiber_start_21_0_1
   |             ^

error: unknown AArch64 fixup kind!
   |
note: instantiated into assembly here
  --> <inline asm>:48:13
   |
48 |             add x17, x17, :lo12:_wasmtime_fiber_start_21_0_1
   |             ^

error: could not compile `wasmtime-fiber` (lib) due to 12 previous errors

I see at least two options:

  • Keep WebAssembly support in the Zed iOS port. This means probably adopting another (additional) WebAssembly runtime that works on iOS. Maybe just the built-in JavaScriptCore?
  • Remove WebAssembly support. This means gating all WebAssembly-related functionality behind a feature flag.

@mikayla-maki
Copy link
Member

Very excited for this!

@turbolent
Copy link

To start with, and also make it easier to port Zed to other platforms (e.g. WebAssembly), it might make sense to make it easier to port the "core" of Zed, i.e. putting the WebAssembly-based extension functionality behind a feature flag.

From looking at the commits, it seems like @maxdeviant and @maxbrunsfeld worked a lot on the extensions functionality: What do you think?

I'd be happy to start working on this

@paclarap
Copy link

paclarap commented Sep 6, 2024

If i may add - even if it is already out of active support - targeting iPad Pro 1. gen and orient on iPad 5th/6th gen as the common baseline might be the lowest as it gets while maintaing upwards compatibility and build a common denominator. Besides that these models are widespread and still in use.

In any case, happy to help testing!

P.s.: if iPhone will be intended to become a target the according models would be iPhone X/XS (for out-of-support iOS like 1. gen iPad) and iPhone XR (for supported iOS - like 6th gen iPad).

@turbolent
Copy link

Looks like the issue in wasmtime is bytecodealliance/wasmtime#8735

@abuchanan920
Copy link

Was just looking at this issue and saw the wasmtime issue above was fixed less than an hour ago :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature [core label] platform support An umbrella label for all platforms
Projects
None yet
Development

No branches or pull requests

10 participants