Categories
Diary

วิธีนำอุปกรณ์ Android มาใช้โค้ดทิ้งแทนที่โน้ตบุ๊ต

ช่วงที่ผ่านมาก็จะมีพูดถึงการให้นักเรียนมาเรียนการเขียนโค้ด หรือที่คนพูดกันบ่อย ๆ (รวมถึงเจ้าหน้าที่รัฐฯ) ก็จะเรียกกันว่าโค้ดดิ้งที่ได้รับการบรรจุลงในวิชาวิทยาการคำนวณ โดยภาษาที่เหมาะกับผู้เริ่มต้นนั่นก็คือไพทอน

อย่างไรก็ดีการเขียนโปรแกรมไพทอนจำเป็นต้องใช้คอมพิวเตอร์เป็นหลักที่ใช่ว่าทุกคนจะมีกันเสียเท่าไร เลยคิดว่าไหน ๆ มือถือแอนดรอยด์ก็มีกันหลายคนแล้ว แถมเราก็เปลี่ยนจากไอโฟนมาเป็นซัมซุงที่รองรับ Samsung DeX อยู่แล้ว เลยมาเขียนบทความนี้ดีกว่า

ส่วนใครที่ใช้ไอแพดก็ไปอ่านได้ที่ “เมื่อนำ iPad มาเขียนโปรแกรมแทนที่โน้ตบุ๊ค”

การเขียนโปรแกรมโดยปกติจำเป็นต้องมีตัว Compiler หรือตัว Interpreter ของแต่ละภาษา โดยภาษาไพทอนจำเป็นต้องมีโปรแกรมของตัว Python เอง หรือตัวจาวาสคริปที่รันบนคอมพิวเตอร์ก็ใช้โปรแกรมอย่าง Node.js อย่างไรก็ดีโปรแกรมเหล่านี้ก็ไม่ได้มีให้ดาวน์โหลดจาก Google Play, Amazon App Store นี่ แล้วจะทำอย่างไร?

ทำได้ครับ วิธีแรกก็ตามในลิ้งค์บนนั้นเลย เราก็เช่าคลาวด์ที่ใดที่หนึ่งแล้วติดตั้งเครื่องมือที่เกี่ยวข้อง แล้วรีโหมดเข้าไปพัฒนาแอพ หรือใช้งานผ่าน Open VSCode Server (หรือ code-server) แต่เราจะไม่กล่าวถึงวิธีนั้น

อีกวิธีหนึ่งที่เราทำได้นั่นก็คือการติดตั้งเครื่องมือที่ให้เราติดตั้งแอพที่อนุญาตให้เรารันคอมมานไลน์ที่เป็น Linux Shell ได้อย่าง Termux ตามนิยามภาษาอังกฤษของตัวแอพนี้ว่า

Termux is an Android terminal emulator and Linux environment app that works directly with no rooting or setup required. A minimal base system is installed automatically – additional packages are available using the APT package manager.

อย่างไรก็ดี Termux มีข้อแตกต่างกับตัวลินุกซ์ปกติ

ความแตกต่างระหว่าง Termux กับลินุกซ์

Termux มีจุดที่แตกต่างระหว่างตัวลินุกซ์ที่อยู่ใน Termux กับตัวลินุกซ์ที่เราใช้งานกันปกติ (อ้างอิงจากหน้าเว็บนี้) นั่นก็คือ

  1. ระบบไฟล์จะไม่เข้ากันได้กับมาตรฐาน Filesystem Hierachy Standard ที่จะแบ่งตัวโฟลเดอร์เป็น /boot /etc /usr /home ทำให้อาจจะมีปัญหากับบางโปรแกรมบ้าง
  2. เนื่องมาจากตัวแอพคอมไพล์โดยใช้ Android NDK ทำให้ใช้งาน Bionic libc แทนที่จะใช้ตัวที่มีอยู่ลินุกซ์ปกติ ส่งผลทำให้เราไม่สามารถนำแอพบนลินุกซ์มาใช้งานได้ทันที เราจำเป็นต้องคอมไพล์ใหม่เสียก่อน
  3. โฟลเดอร์ที่เกี่ยวข้องกับ Termux รวมถึงโฟลเดอร์ที่เก็บข้อมูลแอพต่าง ๆ จะอยู่ในโฟลเดอร์ที่อยู่ในโฟลเดอร์ data ของ Termux อีกที
  4. Termux อนุญาตให้เราใช้งานเพียง user เดียว

เมื่อทราบข้อแตกต่างนี้แล้ว เรามาติดตั้ง Termux กันดีกว่า

การติดตั้ง Termux

เมื่อรู้จักกับ Termux แล้ว เราจะติดตั้งได้จากที่ไหน? ปกติเราจะติดตั้งจาก Google Play ใช่ไหมครับ ทีนี้แอพนี้มันก็มีให้ดาวน์โหลดอยู่ แต่ทว่า แอพที่ให้ดาวน์โหลดนั้นเป็นรุ่นเก่าที่ไม่ได้รัับการอัพเดทแล้วเนื่องมาจากปัญหาเรื่อง API เอง ดังนั้นทางเว็บผู้พัฒนาเอง และเราแนะนำให้ติดตั้งจาก F-Droid ที่เป็น App Store ที่ให้ดาวน์โหลดแอพที่ฟรี และเปิดเผยตัวโค้ด (Open Source) โดย

ขั้นตอนแรก ติดตั้งตัว F-Droid เสียก่อน โดยดาวน์โหลดจากเว็บผู้พัฒนาของ F-Droid

Download F-Droid

ต่อมา เมื่อดาวน์โหลดมาเรียบร้อย ตั้งค่าในหน้าการตั้งค่าให้ติดตั้งแอพจาก Unknown Sources (โดยมือถือซัมซุงที่เราใช้อยู่เข้าได้ที่ Settings -> Biometrics and Security -> Install unknown apps -> กดที่ตัว File Manager แล้วติ๊กถูกให้ Allow from this source ส่วนรุ่นอื่นอาจต้องไปอ่านคู่มืออีกทีครับ)

Enable Unknown Sources

ขั้นตอนที่สาม เข้าไปที่ตัวติดตั้ง F-Droid ผ่านทางหน้า File Manager แล้วติดตั้ง เมื่อติดตั้งเสร็จแล้วไปตั้งค่าให้ติดตั้งแอพจาก Unknown Sources โดยเลือก F-Droid เพื่ออนุญาตให้ F-Droid ดาวน์โหลดแอพที่ไม่ได้อยู่ใน Google Play Store ได้ครีบ

Enable F-Droid

ต่อไป เข้าไปที่หน้า F-Droid ค้นหาแอพที่ชื่อว่า Termux จากนั้นกด Install

Installation of Termux

สุดท้าย ตัวโปรแกรมจะติดตั้ง Termux เมื่อติดตั้งเสร็จแล้ว เข้าไปที่หน้าเมนูหลัก แล้วกดที่ Termux

การติดตั้งเครื่องมือที่เกี่ยวข้อง

หลังจากที่เข้ามาในตัว Termux แล้ว การใช้งานก็คือเราพิมพ์คำสั่งคอมมานไลน์เข้าไปในระบบให้มันทำงาน ซึ่งจุดนี้ก็จะคล้ายกันกับที่ใช้บนลินุกซ์เองครับ แต่จุดหนึ่งที่เราจะนำมาเขียนโปรแกรมแทนที่จะใช้คอมพิวเตอร์นั่นก็คือเราต้องติดตั้งเครื่องมือที่เกี่ยวข้องเสียก่อน

สำหรับผู้ที่ไม่เคยใช้คอมมานไลน์บนลินุกซ์ ผู้อ่านสามารถศึกษาได้ที่นี่ หรือจากที่นี่แต่เป็นภาษาอังกฤษที่ดูครบครันมากกว่าครับ

โดยภาษาหลัก ๆ ที่เขียนก็เป็นไพทอนที่เหมาะกับผู้เริ่มต้น เราเริ่มต้นโดยการอัพเดทรายการแพคเกจที่มีอยู่ในระบบเสียก่อนโดยพิมพ์คำสั่งว่า

~$ pkg update

หลังจากนั้นสั่งให้ระบบติดตั้งไพทอนได้โดยพิมพ์คำสั่งว่า

~$ pkg install python

ระบบจะติดตั้งแพคเกจไพทอน หลังจากนั้นเราเริ่มต้นไพทอนได้โดยพิมพ์

~$ python

หน้าจอจะปรากฏแอพไพทอนให้เราเขียนโปรแกรมได้แล้วตามภาพด้านล่างนี้ครับ

Python inside Termux

เมื่อเราเห็นหน้าจอตามข้างบนนี้แล้วมันเหมือนเป็นหน้าจอสำหรับการพิมพ์โค้ดเพื่อให้ตัวไพทอนประมวลผลได้ทันทีแบบ Interpreter ทั่ว ๆ ไปนี่แหละครับ อย่างไรก็ดีมีจุดที่สังเกตเลยเนื่องมาจากตัว Termux มีข้อจำกัดตามที่กล่าวไว้ในหัวข้อก่อนหน้า ดังนั้นแล้วไลบรารีบางไลบรารีที่ติดตั้งผ่านทาง pip3 อาจจะติดตั้งไม่ได้เนื่องมาจากมีปัญหาการคอมไพล์เครื่องมือที่เกี่ยวข้อง เรื่องนี้เราจะกล่าวถึงในหัวข้อถัดไปจากนี้

แต่ตอนนี้เราจะมากล่าวถึงวิธีการเขียนโค้ดเป็นไพล์ไพทอนออกมาแล้วค่อยสั่งให้ไพทอนทำงานด้วยคำสั่ง

~$ python <ไฟล์ตัวโค้ดที่พิมพ์ไว้>

ที่ผู้อ่านอาจจะสงสัยว่าเราจะทำได้อย่างไรล่ะ คำตอบก็เหมือนเดิม ทำได้ครับ แต่ก่อนอื่น เราต้องมาอนุญาตให้ตัว Termux เข้าถึงไฟล์ที่มีอยู่ใน Internal Storage/SD Card บนแอนดรอยด์เสียก่อน ด้วยคำสั่ง

~$ termux-setup-storage

ตัวโปรแกรมจะขึ้นหน้าจออนุญาตให้เราเข้าถึงตัวไฟล์ที่มีอยู่ใน Internal Storage/SD Card ครับ แล้วเราจะเข้าถึงได้อย่างไร? ตัว Termux จะสร้างไฟลเดอร์หนึ่งที่เหมือนเป็น Shortcut เพื่อให้เราเข้าถึงโฟลเดอร์​ และไฟล์เหล่านี้ได้ผ่านทางการพิมพ์คำสั่ง

~$ cd storage

ระบบจะเข้าถึงโฟลเดอร์ที่เกี่ยวข้องกับระบบ โดยจะแสดงโฟลเดอร์ dcim, downloads, movies, music, pictures ส่วนโฟลเดอร์ shared นี่เมื่อเปิดเข้าไปจะเป็นโฟลเดอร์ที่เป็น Shortcut เข้าไปยัง Internal Storage/SD Card ที่จะแสดงโฟลเดอร์ และไฟล์ที่มีอยู่ทั้งหมด เราสามารถแก้ไข ลบ สร้าง เปลี่ยนแปลงไฟล์เหล่านี้ได้เลย

ต่อไป เราจะมาแนะนำการติดตั้ง IDE ที่เกี่ยวข้อง

การติดตั้ง IDE ที่เกี่ยวข้อง

IDE บนแอนดรอยด์มาหลาย IDE แต่ที่เราใช้ตัวหนึ่งก็เป็น DroidEdit ที่เป็นแอพที่เสียเงิน แต่ใช้งานได้ดีในระดับหนึ่งเลย โดยติดตั้งได้ผ่านทาง Google Play Store ครับ ราคาอยู่ประมาณหลักร้อยบาท แต่ใช้งานได้ดีครับ

หน้าจอการใช้งานก็ตามด้านล่างนี้ครับ

DroidEdit

วิธีที่สองที่เราใช้ได้ นั่นก็คือใช้งานผ่านทางเว็บของไมโครซอฟท์เองอย่าง vscode.dev ที่ให้เราใช้งานตัว Visual Studio Code บนหน้าเว็บได้เลย เพียงแต่ฟังก์ชันจะจำกัดเมื่อเทียบกันกับ Visual Studio Code ที่มีอยู่บนคอมพิวเตอร์ และยังเป็นรุ่น Preview ดังนั้นแล้วตัวนี้ยังไม่สมบูรณ์ครับ

VScode dot dev

วิธีที่สาม เราสามารถติดตั้งตัว code-server หรือ OpenVScode server (ที่ทั้งสองตัวนี้ดูหน้าจอแล้วคล้ายกันกับที่เราเขียนบน Visual Studio Code) ได้ผ่านทางการติดตั้งใน Termux ได้อีก โดยการติดตั้งทำได้โดยติดตั้ง Debian แล้วติดตั้งเครื่องมืออันใดอันหนึ่งครับ โดยวิธีนี้ถ้าใครไม่อยากยุ่งยากก็ติดตั้ง IDE ตามที่แนะนำข้างบนนี้แล้วใช้งานกับไพทอนก็พอใช้ได้ในระดับหนึ่งแล้วครับ

การติดตั้ง Debian

เราติดตั้ง code-server ได้โดยการติดตั้งตัว Debian เสียก่อนเพื่อให้เราใช้งานลินุกซ์ได้แบบเต็ม ๆ ไม่มีจุดที่จำกัดของตัวลินุกซ์ที่มีอยู่บน Termux เอง โดยวิธีการติดตั้ง Debian เราพิมพ์คำสั่งตามที่อ้างอิงมาจากเว็บนี้ ได้โดยพิมพ์ไปว่า

pkg update -y && pkg install wget curl proot tar -y && wget https://raw.githubusercontent.com/AndronixApp/AndronixOrigin/master/Installer/Debian/debian.sh -O debian.sh && chmod +x debian.sh && bash debian.sh

กด Enter ตัว Termux จะติดตั้งเครื่องมือที่เกี่ยวข้อง หลังจากนั้นจะเริ่มต้นการติดตั้งตัว Debian ลงไป หลังจากนั้นเราจะพบว่าเราใช้งาน Debian อยู่ในขณะนี้ ขั้นตอนต่อไปจะเป็นการติดตั้งเครื่องมือที่เกี่ยวข้อง เราทำได้โดยติดตั้ง

apt updateapt upgrade -yapt-get install nano vim sudo curl wget git -y

ต่อมา สร้างผู้ใช้ และรหัสผ่านขึ้นมาแทนที่จะใช้ผู้ใช้ที่มีชื่อว่า root เราทำได้โดยการพิมพ์คำสั่ง

sudo adduser username

แล้วตอบคำถามตามที่หน้าจอปรากฏขึ้น เมื่อทำเสร็จแล้ว เราตั้งค่าให้ผู้ใช้นี้ใช้คำสัั่ง sudo ได้โดยการพิมพ์คำสั่งนี้ลงไป

sudo usermod -aG sudo username

แต่ถ้าทำแล้วไม่ได้ เราก็เข้าไปแก้ไขในไฟล์การตั้งค่าของ sudo ได้โดยการพิมพ์

visudo

แล้วเพิ่มผู้ใช้ใหม่ได้โดยการพิมพ์

<username> ALL=(ALL:ALL) ALL

แล้วบันทึกไฟล์ก็ทำให้ผู้ใช้สามารถใช้คำสั่ง sudo ได้เช่นกัน

เมื่อทำเสร็จแล้ว เราก็จะได้ผู้ใช้ใหม่ที่สามารถใช้งานคำสั่ง sudo เวลาที่จะติดตั้งแอพ หรือทำอะไรที่เกี่ยวข้องการตัวระบบปฏิบัติการเองครับ การเปลี่ยนไปใช้ผู้ใช้นี้เราทำได้โดยการพิมพ์คำสั่ง

su - <username>

นอกเหนือจากนี้เวลาที่เราจะกลับมาใช้งานตัว Debian ใหม่ผ่านทางหน้าจอ Termux เราทำได้โดยการพิมพ์คำสั่ง

~$ ./start-debian.sh

ต่อไปจะเป็นการติดตั้งเครื่องมือที่เกี่ยวข้อง มีสองทางเลือก หนึ่งติดตั้ง code-server กับสองติดตั้ง OpenVScode server ครับ โดยส่วนตัวจากที่เคยใช้ ใช้ได้ดีทั้งคู่ แต่เราชอบ OpenVScode server มากกว่า เพราะมันง่าย และไม่ต้องติดตั้งแพคเกจลงไปในระบบ ถ้าอยากลบก็สั่งลบทั้งโฟลเดอร์ไปได้เลย ง่ายกว่าเยอะ

นอกจากนี้สำหรับคนที่อยากทำอะไรหลาย ๆ อย่างในหน้า Termux เดียวกัน แนะนำให้ติดตั้ง tmux เข้าไปในระบบโดยการติดตั้งด้วยการพิมพ์คำสั่ง sudo apt install tmux แล้วพิมพ์คำสั่ง tmux เพื่อเริ่มต้นการใช้งาน

วิธีแรก ติดตั้ง code-server

ถัดไปจากการติดตั้ง และตั้งค่าตัว Debian แล้ว เราติดตั้งตัว code-server ได้โดยการพิมพ์คำสั่งด้านล่างนี้เพื่อทดสอบเสียก่อน

curl -fsSL https://code-server.dev/install.sh | sh -s -- --dry-run

กรณีที่ทดสอบแล้วพบว่าใช้งานได้ดี เราสามารถพิมพ์คำสั่งนี้เพื่อติดตั้งได้เลยผ่านทางการพิมพ์โค้ด

curl -fsSL https://code-server.dev/install.sh | sh

ตัวระบบจะดาวน์โหลดตัว code-server ลงมาในตัวเครื่องแอนดรอยด์เอง เมื่อเราต้องการใช้งาน code-server เราทำได้โดยการพิมพ์คำสั่ง

code-server

เพื่อเริ่มต้นการทำงาน แล้วเราเข้าผ่านทางการพิมพ์ที่อยู่เว็บไซต์ http://127.0.0.1:8080 แล้วเราจะพบหน้าจอ code-server ตามด้านล่างนี้ครับ

code-server login

เราเข้าสู่ระบบได้โดยการพิมพ์รหัสผ่านที่เป็นค่าเริ่มต้นได้โดยการเข้าไปดูในไฟล์ตามด้านล่างนี้ครับ

cat ~/.config/code-server/config.yaml

ระบบจะแสดงข้อมูลการตั้งค่า โดยจะแสดงมาตามด้านล่างนี้ครับ

bind-addr: 127.0.0.1:8080auth: passwordpassword: <password>cert: false

ดูตรง password ให้ก็อปปี้ตัวนี้แล้วนำไปแปะในหน้าเว็บนั้น เราจะใช้งานตัว code-server ได้แล้วครับตามหน้าจอด้านล่างนี้เลย

code-server main

เราจะพบว่ามันใช้งานได้แล้วครับ

วิธีสอง ติดตั้ง OpenVscode server

นอกจากตัว code-server ตามที่กล่าวไปข้างบนแล้ว ยังมีตัว IDE อีกตัวที่น่าใช้เช่นกัน แต่ติดตั้งได้ง่ายกว่าตัวข้างบน นั่นก็คือ OpenVSCode server ที่พัฒนาโดยผู้ให้บริการ Gitpod ครับ เราติดตั้งได้โดยการดาวน์โหลดตัวติดตั้งเสียก่อนโดยดาวน์โหลดที่ส่วน Release ในหน้า Github นี้ครับ

ก่อนที่จะดาวน์โหลดไฟล์มา ให้ตรวจสอบสถาปัตยกรรมซีพียูเสียก่อนได้โดยการพิมพ์คำสั่ง dpkg –print-architecture หรือ cat /proc/cpuinfo แล้วจะปรากฏรายละเอียดซีพียูครับ ของผู้เขียนจะขึ้นเป็น arm64 ครับ

เมื่อดาวน์โหลดแล้ว แตกไฟล์ก่อนด้วยการพิมพ์คำสั่ง

tar xzf <ตำแหน่งไฟล์ที่เราดาวน์โหลดไว้>

เมื่อแตกไฟล์เสร็จแล้ว เราเข้าไปในโฟลเดอร์ที่แตกไฟล์ไว้ จากนั้นเริ่มต้นการทำงาน OpenVSCode server ได้โดยการพิมพ์

./bin/openvscode-server

ระบบจะเริ่มต้นการทำงาน OpenVSCode server ผู้ใช้สามารถเข้าไปใช้งานได้โดยการก็อปปี้ที่อยู่ตามที่ปรากฏในหน้าจอแล้วเอาไปแปะในเว็บเบราวเซอร์ แล้วจะปรากฏหน้าจอตามด้านล่างนี้ครับ

OpenVScode server IDE

เราก็จะพบว่ามันใช้งานได้แล้วครับ

สำหรับผู้อ่าน

สำหรับผู้อ่านแล้ว ถ้าต้องการติดตั้งแบบไม่ยุ่งยากก็ติดตั้ง termux กับติดตั้งตัวไพทอนรวมถึงติดตั้ง IDE ที่มีอยู่บน Google Play ก็น่าจะเพียงพอในระดับหนึ่ง แต่ถ้าต้องการใช้ IDE แต่ต้องการให้ติดตั้งไลบรารีไพทอนให้ได้หลากหลายมากกว่านี้ได้ เราก็ทำจนถึงการติดตั้ง Debian

ส่วนผู้ใช้ที่ต้องการใช้งาน code-server หรือ OpenVSCode Server ก็ทำจนครบทุกขั้นตอนไปเลยนี่แหละครับ เมื่อติดตั้งเสร็จแล้ว มันใช้งานได้สบายเลยนะ เพราะไม่มีข้อจำกัดด้านไลบรารีไพทอนเลย เพียงแต่มันจะใช้งานได้ลำบากไปหน่อบยำหรับคนที่มีอุปกรณ์แอนดรอยด์ที่มีหน้าจอเล็ก

ดังนั้นแล้วเราแนะนำวิธีนี้สำหรับผู้ใช้มือถือที่รองรับการเชื่อมต่อหน้าจอภายนอกให้ออกมาเป็นเดสก์ท็อปอย่าง Samsung DeX รวมถึงแท็บเล็ตแอนดรอยด์มากกว่าครับ (ส่วนใครใช้แท็บเล็ตจอใหญ่ไปเลยแบบ Samsung Galaxy Tab S8 Ultra นี่ใช้เขียนโปรแกรมได้สบาย)

By Kittisak Chotikkakamthorn

My name is Nick (or Kittisak Chotikkakamthorn) who is working as a research assistant in biomedical engineering, Mahidol University. I research artificial intelligence in medicine about computer vision, which I have to write the code. It is the skill that I am practicing.

One reply on “วิธีนำอุปกรณ์ Android มาใช้โค้ดทิ้งแทนที่โน้ตบุ๊ต”

เราใช้คุกกี้เพื่อพัฒนาประสิทธิภาพ และประสบการณ์ที่ดีในการใช้เว็บไซต์ของคุณ คุณสามารถศึกษารายละเอียดได้ที่ นโยบายความเป็นส่วนตัว และสามารถจัดการความเป็นส่วนตัวเองได้ของคุณได้เองโดยคลิกที่ ตั้งค่า

Privacy Preferences

คุณสามารถเลือกการตั้งค่าคุกกี้โดยเปิด/ปิด คุกกี้ในแต่ละประเภทได้ตามความต้องการ ยกเว้น คุกกี้ที่จำเป็น

Allow All
Manage Consent Preferences Save