ช่วงที่ผ่านมาก็จะมีพูดถึงการให้นักเรียนมาเรียนการเขียนโค้ด หรือที่คนพูดกันบ่อย ๆ (รวมถึงเจ้าหน้าที่รัฐฯ) ก็จะเรียกกันว่าโค้ดดิ้งที่ได้รับการบรรจุลงในวิชาวิทยาการคำนวณ โดยภาษาที่เหมาะกับผู้เริ่มต้นนั่นก็คือไพทอน
อย่างไรก็ดีการเขียนโปรแกรมไพทอนจำเป็นต้องใช้คอมพิวเตอร์เป็นหลักที่ใช่ว่าทุกคนจะมีกันเสียเท่าไร เลยคิดว่าไหน ๆ มือถือแอนดรอยด์ก็มีกันหลายคนแล้ว แถมเราก็เปลี่ยนจากไอโฟนมาเป็นซัมซุงที่รองรับ 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 กับตัวลินุกซ์ที่เราใช้งานกันปกติ (อ้างอิงจากหน้าเว็บนี้) นั่นก็คือ
- ระบบไฟล์จะไม่เข้ากันได้กับมาตรฐาน Filesystem Hierachy Standard ที่จะแบ่งตัวโฟลเดอร์เป็น /boot /etc /usr /home ทำให้อาจจะมีปัญหากับบางโปรแกรมบ้าง
- เนื่องมาจากตัวแอพคอมไพล์โดยใช้ Android NDK ทำให้ใช้งาน Bionic libc แทนที่จะใช้ตัวที่มีอยู่ลินุกซ์ปกติ ส่งผลทำให้เราไม่สามารถนำแอพบนลินุกซ์มาใช้งานได้ทันที เราจำเป็นต้องคอมไพล์ใหม่เสียก่อน
- โฟลเดอร์ที่เกี่ยวข้องกับ Termux รวมถึงโฟลเดอร์ที่เก็บข้อมูลแอพต่าง ๆ จะอยู่ในโฟลเดอร์ที่อยู่ในโฟลเดอร์ data ของ Termux อีกที
- Termux อนุญาตให้เราใช้งานเพียง user เดียว
เมื่อทราบข้อแตกต่างนี้แล้ว เรามาติดตั้ง Termux กันดีกว่า
การติดตั้ง Termux
เมื่อรู้จักกับ Termux แล้ว เราจะติดตั้งได้จากที่ไหน? ปกติเราจะติดตั้งจาก Google Play ใช่ไหมครับ ทีนี้แอพนี้มันก็มีให้ดาวน์โหลดอยู่ แต่ทว่า แอพที่ให้ดาวน์โหลดนั้นเป็นรุ่นเก่าที่ไม่ได้รัับการอัพเดทแล้วเนื่องมาจากปัญหาเรื่อง API เอง ดังนั้นทางเว็บผู้พัฒนาเอง และเราแนะนำให้ติดตั้งจาก F-Droid ที่เป็น App Store ที่ให้ดาวน์โหลดแอพที่ฟรี และเปิดเผยตัวโค้ด (Open Source) โดย
ขั้นตอนแรก ติดตั้งตัว F-Droid เสียก่อน โดยดาวน์โหลดจากเว็บผู้พัฒนาของ F-Droid
![Download F-Droid](https://i0.wp.com/asset.nickuntitled.com/2022/03/download_fdroid.jpg?w=580&ssl=1)
ต่อมา เมื่อดาวน์โหลดมาเรียบร้อย ตั้งค่าในหน้าการตั้งค่าให้ติดตั้งแอพจาก Unknown Sources (โดยมือถือซัมซุงที่เราใช้อยู่เข้าได้ที่ Settings -> Biometrics and Security -> Install unknown apps -> กดที่ตัว File Manager แล้วติ๊กถูกให้ Allow from this source ส่วนรุ่นอื่นอาจต้องไปอ่านคู่มืออีกทีครับ)
![Enable Unknown Sources](https://i0.wp.com/asset.nickuntitled.com/2022/03/enable_myfile.jpg?w=580&ssl=1)
ขั้นตอนที่สาม เข้าไปที่ตัวติดตั้ง F-Droid ผ่านทางหน้า File Manager แล้วติดตั้ง เมื่อติดตั้งเสร็จแล้วไปตั้งค่าให้ติดตั้งแอพจาก Unknown Sources โดยเลือก F-Droid เพื่ออนุญาตให้ F-Droid ดาวน์โหลดแอพที่ไม่ได้อยู่ใน Google Play Store ได้ครีบ
![Enable F-Droid](https://i0.wp.com/asset.nickuntitled.com/2022/03/enable_fdroid.jpg?w=580&ssl=1)
ต่อไป เข้าไปที่หน้า F-Droid ค้นหาแอพที่ชื่อว่า Termux จากนั้นกด Install
![Installation of Termux](https://i0.wp.com/asset.nickuntitled.com/2022/03/install_termux.jpg?w=580&ssl=1)
สุดท้าย ตัวโปรแกรมจะติดตั้ง Termux เมื่อติดตั้งเสร็จแล้ว เข้าไปที่หน้าเมนูหลัก แล้วกดที่ Termux
การติดตั้งเครื่องมือที่เกี่ยวข้อง
หลังจากที่เข้ามาในตัว Termux แล้ว การใช้งานก็คือเราพิมพ์คำสั่งคอมมานไลน์เข้าไปในระบบให้มันทำงาน ซึ่งจุดนี้ก็จะคล้ายกันกับที่ใช้บนลินุกซ์เองครับ แต่จุดหนึ่งที่เราจะนำมาเขียนโปรแกรมแทนที่จะใช้คอมพิวเตอร์นั่นก็คือเราต้องติดตั้งเครื่องมือที่เกี่ยวข้องเสียก่อน
สำหรับผู้ที่ไม่เคยใช้คอมมานไลน์บนลินุกซ์ ผู้อ่านสามารถศึกษาได้ที่นี่ หรือจากที่นี่แต่เป็นภาษาอังกฤษที่ดูครบครันมากกว่าครับ
โดยภาษาหลัก ๆ ที่เขียนก็เป็นไพทอนที่เหมาะกับผู้เริ่มต้น เราเริ่มต้นโดยการอัพเดทรายการแพคเกจที่มีอยู่ในระบบเสียก่อนโดยพิมพ์คำสั่งว่า
~$ pkg update
หลังจากนั้นสั่งให้ระบบติดตั้งไพทอนได้โดยพิมพ์คำสั่งว่า
~$ pkg install python
ระบบจะติดตั้งแพคเกจไพทอน หลังจากนั้นเราเริ่มต้นไพทอนได้โดยพิมพ์
~$ python
หน้าจอจะปรากฏแอพไพทอนให้เราเขียนโปรแกรมได้แล้วตามภาพด้านล่างนี้ครับ
![Python inside Termux](https://i0.wp.com/asset.nickuntitled.com/2022/03/python_termux.jpg?w=580&ssl=1)
เมื่อเราเห็นหน้าจอตามข้างบนนี้แล้วมันเหมือนเป็นหน้าจอสำหรับการพิมพ์โค้ดเพื่อให้ตัวไพทอนประมวลผลได้ทันทีแบบ 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](https://i0.wp.com/asset.nickuntitled.com/2022/03/droidedit.jpg?w=580&ssl=1)
วิธีที่สองที่เราใช้ได้ นั่นก็คือใช้งานผ่านทางเว็บของไมโครซอฟท์เองอย่าง vscode.dev ที่ให้เราใช้งานตัว Visual Studio Code บนหน้าเว็บได้เลย เพียงแต่ฟังก์ชันจะจำกัดเมื่อเทียบกันกับ Visual Studio Code ที่มีอยู่บนคอมพิวเตอร์ และยังเป็นรุ่น Preview ดังนั้นแล้วตัวนี้ยังไม่สมบูรณ์ครับ
![VScode dot dev](https://i0.wp.com/asset.nickuntitled.com/2022/03/andriod_vscodedev.jpg?w=580&ssl=1)
วิธีที่สาม เราสามารถติดตั้งตัว 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](https://i0.wp.com/asset.nickuntitled.com/2022/03/android-code-server-login.jpg?w=580&ssl=1)
เราเข้าสู่ระบบได้โดยการพิมพ์รหัสผ่านที่เป็นค่าเริ่มต้นได้โดยการเข้าไปดูในไฟล์ตามด้านล่างนี้ครับ
cat ~/.config/code-server/config.yaml
ระบบจะแสดงข้อมูลการตั้งค่า โดยจะแสดงมาตามด้านล่างนี้ครับ
bind-addr: 127.0.0.1:8080auth: passwordpassword: <password>cert: false
ดูตรง password ให้ก็อปปี้ตัวนี้แล้วนำไปแปะในหน้าเว็บนั้น เราจะใช้งานตัว code-server ได้แล้วครับตามหน้าจอด้านล่างนี้เลย
![code-server main](https://i0.wp.com/asset.nickuntitled.com/2022/03/android-code-server-main.jpg?w=580&ssl=1)
เราจะพบว่ามันใช้งานได้แล้วครับ
วิธีสอง ติดตั้ง 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](https://i0.wp.com/asset.nickuntitled.com/2022/03/android_openvscode_server.jpg?w=580&ssl=1)
เราก็จะพบว่ามันใช้งานได้แล้วครับ
สำหรับผู้อ่าน
สำหรับผู้อ่านแล้ว ถ้าต้องการติดตั้งแบบไม่ยุ่งยากก็ติดตั้ง termux กับติดตั้งตัวไพทอนรวมถึงติดตั้ง IDE ที่มีอยู่บน Google Play ก็น่าจะเพียงพอในระดับหนึ่ง แต่ถ้าต้องการใช้ IDE แต่ต้องการให้ติดตั้งไลบรารีไพทอนให้ได้หลากหลายมากกว่านี้ได้ เราก็ทำจนถึงการติดตั้ง Debian
ส่วนผู้ใช้ที่ต้องการใช้งาน code-server หรือ OpenVSCode Server ก็ทำจนครบทุกขั้นตอนไปเลยนี่แหละครับ เมื่อติดตั้งเสร็จแล้ว มันใช้งานได้สบายเลยนะ เพราะไม่มีข้อจำกัดด้านไลบรารีไพทอนเลย เพียงแต่มันจะใช้งานได้ลำบากไปหน่อบยำหรับคนที่มีอุปกรณ์แอนดรอยด์ที่มีหน้าจอเล็ก
ดังนั้นแล้วเราแนะนำวิธีนี้สำหรับผู้ใช้มือถือที่รองรับการเชื่อมต่อหน้าจอภายนอกให้ออกมาเป็นเดสก์ท็อปอย่าง Samsung DeX รวมถึงแท็บเล็ตแอนดรอยด์มากกว่าครับ (ส่วนใครใช้แท็บเล็ตจอใหญ่ไปเลยแบบ Samsung Galaxy Tab S8 Ultra นี่ใช้เขียนโปรแกรมได้สบาย)