Cách sử dụng JavaScript trên iPad

Vài tháng trước, tôi đã trình bày chi tiết quy trình thiết lập Pixelbook để viết mã. Nó không dễ dàng, đơn giản hay dễ hiểu, nhưng cuối cùng nó đã hoạt động. Tôi có tất cả sức mạnh và tính linh hoạt của Linux, quyền truy cập vào trình chỉnh sửa mã yêu thích của tôi (Mã VS) và tất nhiên là cả trải nghiệm duyệt web mượt mà mà Chromebook nổi tiếng

Cũng trong khoảng thời gian đó, tôi đã cố gắng thiết lập một chiếc iPad để viết mã. tôi đã thất bại thảm hại. Tôi thích sử dụng iPad để viết và làm các công việc sáng tạo khác. Nó siêu di động, có thời lượng pin tuyệt vời, màn hình xuất sắc và khả năng đa nhiệm hạn chế giúp tôi luôn tập trung. Thật không may, nó rất tệ đối với các tác vụ phức tạp và cố tình làm tê liệt để phát triển phần mềm

Nhưng bây giờ tôi đã lớn hơn và khôn ngoan hơn, và sau cả ngày thứ bảy vùi đầu vào tường, tôi vui mừng thông báo rằng tôi có thể sử dụng máy tính bảng trị giá 799 đô la để viết phần mềm. Tôi sẽ bao giờ thực sự sử dụng nó cho mục đích này? . Nhưng chúng ta sẽ đạt được điều đó

Vui lòng theo bước chân của tôi nếu bạn cũng muốn viết mã trên iPad. Tôi không thể hứa với bạn đó là một điểm đến đáng giá, nhưng tôi đã học được rất nhiều điều trên đường đến đó

Chương 1. Cuộc hành trình bắt đầu bằng cách hạ thấp kỳ vọng của tôi

Như mọi người đều biết, Apple sợ chết khiếp rằng bất kỳ ai cũng có thể chạy mã tùy ý trên một trong những thiết bị iOS nguyên sơ của mình. Nó có một chút ý nghĩa. các hạn chế của iOS và App Store là lý do tại sao một chiếc iPad lâu đời lại phản ứng nhanh hơn và không bị lỗi so với một chiếc MacBook Pro cùng tuổi

Nhưng nó làm cho việc phát triển phần mềm gần như không thể. Thật là mỉa mai vì iPad rất tuyệt vời cho người sáng tạo theo nhiều cách như vẽ, thiết kế và âm nhạc. Dưới mui xe là cùng một nhân Unix làm cho macOS trở nên tuyệt vời cho các lập trình viên

Dù sao, bạn biết tất cả điều này

Không giống như trên Pixelbook, nơi tôi muốn có một môi trường phát triển Rust đầy đủ về cơ bản có thể so sánh với thiết lập máy Mac của mình, tôi quyết định chỉ thực hiện một số phát triển web dựa trên JavaScript trên iPad của mình

Tôi chỉ biết nơi để đi. MãSandbox. Đó là một trang web và mọi thứ chạy trong trình duyệt. Do đó, iPad sẽ không thể ngăn cản ước mơ tạo ra “Máy tính 2” của tôi. Ứng dụng web Phần tiếp theo của Máy tính” bằng JavaScript

Cách sử dụng JavaScript trên iPad

CodeSandbox cho phép bạn sử dụng các gói NPM tùy ý và nó có trình chỉnh sửa mã dựa trên trình chỉnh sửa riêng của VS Code. Vì vậy, miễn là bạn gắn bó với thế giới JavaScript, nó gần như mạnh mẽ như một thiết lập phát triển web dựa trên máy tính để bàn truyền thống. CodeSandbox cũng loại bỏ một số phần thô của tệp cấu hình và có rất nhiều dự án tạo sẵn được xây dựng bằng nhiều công nghệ khác nhau (React, Vue, Redux và thậm chí cả các khung kỳ lạ như Hyperapp), giúp bạn dễ dàng bắt đầu với công cụ phức tạp.

Và tôi vô cùng hào hứng khi thấy CodeSandbox có chế độ Vim. Các tổ hợp phím Vim là cách ưa thích của tôi để điều hướng xung quanh văn bản và điều này đặc biệt quan trọng trên iPad khi bạn không có chuột để được hỗ trợ. Di chuyển con trỏ, tô sáng văn bản, xóa từ hoặc dòng, di chuyển dòng và nhảy khoảng cách lớn trong tệp, tất cả chỉ cần một vài lần nhấn phím trong Vim. Ngược lại với giải pháp thay thế iPad. vài giây chọc vào màn hình bằng ngón tay vụng về của bạn, hy vọng iOS sẽ nhận ra ý định của bạn

Về cơ bản, mọi thứ đều diễn ra tuyệt vời. CodeSandbox là tất cả những gì tôi cần và iPad của tôi đột nhiên trở thành một hộp webdev cực kỳ hữu ích — ít nhất là để xây dựng các loại thử nghiệm nhỏ mà tôi hướng tới

Ngoại trừ có một vấn đề. iPad không có phím Escape

chương 2. Cảm giác tuyệt vọng như thế nào

Hãy xem, trong Vim, có các “chế độ” khác nhau. ” Có chế độ mặc định nơi bạn sử dụng bàn phím để điều hướng xung quanh tài liệu của mình. Có chế độ lựa chọn, trong đó bạn sử dụng các phím điều hướng tương tự để chọn văn bản. Và quan trọng là có chế độ chèn, trong đó bạn sử dụng bàn phím để nhập. Vì bạn cần thoát khỏi chế độ chèn để di chuyển lại con trỏ, nên bạn cần một số loại lệnh để thoát khỏi chế độ chèn. Theo mặc định, lệnh đó được kết nối với phím Escape

Nhiều người dùng Vim (chẳng hạn như tôi) lập bản đồ một tổ hợp phím ưa thích như “jj” để thoát khỏi chế độ chèn dễ dàng hơn, nhưng CodeSandbox thực sự không phải là Vim. Nó chỉ mô phỏng một số tổ hợp phím mặc định của Vim. Vì vậy, tôi cần một phím Escape. Và iPad thậm chí không biết điều đó có nghĩa là gì

tôi nghiêm túc đấy. Lúc đầu, tôi nghĩ đây chỉ là vấn đề với Vỏ bàn phím thông minh của chính Apple, không có hàng chức năng và không có phím Escape. Vì vậy, tôi đã lấy một bàn phím Bluetooth thông thường và kết nối nó với iPad. Tôi bị kẹt trên phím Escape và. Không có gì. Trong thế giới của iOS, không có lối thoát

Tôi đã duyệt qua StackExchange và các vấn đề GitHub khác nhau trong trạng thái tuyệt vọng. Có, có nhiều cách để mô phỏng thao tác nhấn phím Escape bằng “Ctrl + [,” nhưng điều đó chẳng giúp được gì cho tôi trong trường hợp này. Tôi bị mắc kẹt trong chế độ chèn cho phần còn lại của cuộc đời mình

CodeSandbox, bạn đã đưa tôi đến rất gần

Trên thực tế, dựa trên tốc độ lặp lại nhanh chóng của CodeSandbox, tôi sẽ không ngạc nhiên nếu họ giải quyết vấn đề này trong tương lai gần

Nhưng trong khi chờ đợi. con trai phải làm gì?

Chương 3. Được rồi, hãy thử lại đám mây

Lần đầu tiên tôi thử thiết lập iPad để viết mã, tôi tự nhiên chuyển thẳng lên đám mây. Nhưng đám mây không phải là một nơi kỳ diệu nơi mọi giấc mơ của bạn trở thành hiện thực. Thiết lập hộp phát triển trên Digital Ocean hoặc Google Cloud yêu cầu một số kiến ​​thức về Linux và SSH, đồng thời không có giao diện GUI Linux để hỗ trợ khi kỹ năng dòng lệnh của bạn không thành công

Tại sao điều này trước đây lại khó khăn như vậy?

Thật kỳ lạ, những mảnh vụn kiến ​​thức rải rác từ nỗ lực cuối cùng của tôi trong việc thiết lập hộp phát triển đám mây là tất cả những gì tôi cần để nhanh chóng khiến mọi thứ hoạt động. Tôi đã trả cho hộp 5 đô la cơ bản trên Digital Ocean, cài đặt Ubuntu hoàn toàn trên đó và cung cấp cho nó khóa SSH mà tôi đã tạo trong ứng dụng Nhắc của Panic, trình giả lập thiết bị đầu cuối SSH cho iOS. Tại sao điều này trước đây lại khó khăn như vậy?

Sau khi SSH vào hộp Digital Ocean của mình, tôi bắt đầu thêm các công cụ tôi cần. Tôi đã cài đặt Neovim (một giải pháp thay thế Vim hiện đại) và tìm thấy ai đó. config cho Neovim trên GitHub và sao chép nó. Sau đó, tôi đã cài đặt nodejs, yarn, npm, bưu kiện, rỉ sét, gcc. tất cả những thứ tốt tôi khao khát. Bởi vì khía cạnh “máy chủ ngôn ngữ” của Mã VS là mã nguồn mở, nên tôi có thể nhận được nhiều gợi ý và lỗi mà tôi rất hay dựa vào khi mã hóa vào Neovim, mặc dù nó thiếu tất cả chuông và còi GUI của Mã VS

Cách sử dụng JavaScript trên iPad

Thật khó để tôi mô tả cách tôi đã làm tất cả những điều này, ngoài việc áp dụng tự do cài đặt sudo apt-get, sao chép và dán các tập lệnh shell và đọc cẩn thận các thông báo lỗi. Hầu hết, đó chỉ là nhiều năm thử và sai trong dòng lệnh. Tôi đoán hãy nhắn tin cho tôi nếu bạn gặp khó khăn về điều gì đó và tôi sẽ cố gắng hết sức để giúp đỡ. Bạn đã thử sửa đổi $PATH của mình chưa?

Vì vậy, dù sao đi nữa, bây giờ tôi có thể viết ứng dụng web bằng JavaScript, phân phát ứng dụng đó từ hộp Digital Ocean của mình và xem trước tác phẩm của mình trong Safari (có tải lại trực tiếp, nhờ một số phép thuật do Parcel thực hiện). Tôi thậm chí có thể chia màn hình thiết bị đầu cuối và Safari và thực sự bắt đầu làm việc

Nhưng ngay sau đó, tôi đã thất vọng. một phần rất nhỏ trong công việc “viết mã” của tôi thực sự là gõ mã. Tôi dành phần lớn thời gian của mình để đọc tài liệu và mã của người khác để thử và tìm hiểu xem mọi thứ hoạt động như thế nào. Sau vài phút duyệt StackOverflow, tôi nhận được thông báo từ Lời nhắc, cảnh báo rằng phiên SSH của tôi sắp bị ngắt kết nối do không hoạt động

Toàn bộ lý do iOS rất đẹp và phản hồi nhanh là vì nó hầu như không có đa nhiệm trừ khi bạn đang làm việc với nhiều ứng dụng âm thanh cùng một lúc. Prompt cố gắng hết sức để tồn tại, nhưng cuối cùng thì iOS luôn giết chết nó

Chương 4. UDP tiết kiệm trong ngày

Vì vậy, tôi đã tìm kiếm một giải pháp trên Google và phát hiện ra Mosh. Về cơ bản, Mosh là một giao thức UDP để sử dụng thiết bị đầu cuối từ kết nối không liên tục. Bạn kết nối qua SSH như bình thường, nhưng sau đó kết nối đó được chuyển cho Mosh để giữ cho nó “sống” trong thời gian ngừng hoạt động. Lời nhắc không hỗ trợ Mosh, vì vậy tôi đã trả thêm 20 đô la cho một ứng dụng giả lập thiết bị đầu cuối khác, được gọi là Blink và thiết lập Mosh. Phải mất một số thử nghiệm và lỗi để máy chủ Mosh chạy trên hộp Ubuntu của tôi và nhập chính xác chi tiết đăng nhập của tôi vào Blink, nhưng một khi tôi đã làm cho nó hoạt động, nó hoạt động rất tốt

Tôi có thể rời khỏi thiết bị đầu cuối trong nhiều ngày và ngay khi tôi mở Blink, tôi đã mở tất cả các phiên từ lần trước. Đối với các chiến binh dòng lệnh, đây không phải là một chiến công lớn. Họ biết tất cả về "kết nối lại" với các phiên hoặc bất cứ điều gì họ làm. Nhưng đối với tôi, đó là một thành tích to lớn

Trên thực tế, theo một số cách, tôi thích thiết lập iPad / Blink / Digital Ocean hơn là viết mã trên máy Mac của mình. Tôi không thể làm mọi thứ mà máy Mac của tôi làm — chẳng hạn như mọi thứ liên quan đến cửa sổ hoặc đồ họa, bên ngoài trình duyệt web, thực sự không thể — nhưng tôi rất vui khi biết rằng mình không làm hỏng máy Mac của mình bằng tất cả các ứng dụng khác nhau. . Nếu thiết lập của tôi bị hỏng không thể sửa chữa, thì chỉ cần một vài cú nhấp chuột để xóa hộp Ubuntu của tôi và bắt đầu làm mới

Ngoài ra, mặc dù hộp Digital Ocean của tôi chậm hơn rất nhiều so với MacBook Pro của tôi, nhưng nó có kết nối internet cực nhanh. Bất cứ điều gì tôi muốn git clone hoặc cài đặt npm đều cảm thấy nhanh hơn trên hộp đám mây này, nhờ độ trễ tối thiểu và đường truyền internet khổng lồ

Chỉ có một vấn đề. Tôi rất tệ về JavaScript

Oh, và trong trường hợp bạn đang tự hỏi. Blink hỗ trợ lệnh “Ctrl + [“ để giả lập thoát. Bạn cũng có thể ánh xạ phím Caps Lock của mình để thoát nếu bạn muốn thực sự điên rồ (theo truyền thống, tôi ánh xạ Caps Lock thành Ctrl, phím này cũng được Blink hỗ trợ). Nhưng, may mắn thay, cấu hình Neovim của tôi ánh xạ “jj” để thoát khi ở chế độ chèn, vì vậy tôi rất hài lòng về điều đó

Thực sự chỉ có một vấn đề với thiết lập hiện tại của tôi. Tôi rất tệ về JavaScript và do đó, không có gì tôi viết hoạt động ngay lần đầu tiên và tôi không thể thấy bất kỳ thông báo lỗi bảng điều khiển nào trong Mobile Safari vì đây là một trình duyệt bị tê liệt dành cho trẻ sơ sinh

MãSandbox. io bao gồm giao diện điều khiển riêng của nó

Tôi đoán công việc đầu tiên của tôi trong thiết lập mã hóa mới này sẽ là viết một yêu cầu kéo cho CodeSandbox để hỗ trợ phương thức thoát “jj”

Giá như tôi giỏi JavaScript hơn

Đó là một dưa chua thực sự tôi đã tìm thấy chính mình trong

Đăng ký nhận bản tin Verge Deals

Đăng ký để nhận các giao dịch công nghệ được Verge phê duyệt tốt nhất trong tuần

Chỉ một điều nữa

Vui lòng xác nhận đăng ký Verge Deals của bạn qua email xác minh mà chúng tôi vừa gửi cho bạn

Email (bắt buộc)

Ối. Đã xảy ra sự cố. Vui lòng nhập email hợp lệ và thử lại

Bằng cách gửi email của bạn, bạn đồng ý với Điều khoản và Thông báo bảo mật của chúng tôi. Bạn có thể chọn không tham gia bất cứ lúc nào. Trang web này được bảo vệ bởi reCAPTCHA và áp dụng Chính sách bảo mật và Điều khoản dịch vụ của Google

JavaScript có thể hoạt động trên iPad không?

JavaScript được bật theo mặc định cho iPhone và iPad .

Làm cách nào tôi có thể sử dụng JavaScript trong iOS?

Cách bật JavaScript trên iPhone của bạn .
Mở ứng dụng Cài đặt trên iPhone của bạn
Cuộn xuống cho đến khi bạn thấy "Safari" và nhấn vào đó. Để bật JavaScript, hãy khởi động ứng dụng Cài đặt và truy cập Safari. .
Ở cuối trang, hãy nhấn vào "Nâng cao. ".
Trên trang Nâng cao, bật JavaScript bằng cách vuốt nút sang phải

Tại sao JavaScript không hoạt động trong Safari trên iPad?

Trên iPad và iPhone JavaScript mặc định bị tắt . Khi bạn bật JavaScript và Cookies trong trình duyệt Safari của mình, đăng nhập có thể sẽ thành công. Để bật JavaScript trên iPad hoặc iPhone của bạn, hãy chọn Cài đặt, Safari và Nâng cao; .