9 คะแนน โดย medidevlab 2026-04-15 | 16 ความคิดเห็น | แชร์ทาง WhatsApp

สวัสดีครับ ผมเป็นนักศึกษาแพทย์ และเริ่มเรียนรู้การทำไวบ์โค้ดดิ้งด้วยตัวเองตั้งแต่ 2 เดือนก่อน เลยทำแอปเมนูบาร์สำหรับ macOS ขึ้นมาหนึ่งตัว วันนี้ขอเปิดตัวครับ!

MiniAI - เป็นแอปที่ทำอะไร

ไม่ว่าคุณจะอยู่ที่ไหน แค่เลือกข้อความแล้วกดคีย์ลัดที่ตั้งไว้ หน้าต่างเล็ก ๆ จะเด้งขึ้นมาจากเมนูบาร์และ AI จะอธิบายให้ทันที หัวใจสำคัญคือไม่ต้องสลับไปเบราว์เซอร์ ค้นหาในกูเกิล แล้วค่อยกลับมาอีกต่อไป

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

เทคโนโลยีที่ใช้

  • UI: NSPanel + SwiftUI (floating window ของแอปเมนูบาร์)
  • การตอบกลับของ AI: สตรีมมิง SSE เพื่อให้เกิดเอฟเฟกต์เหมือนกำลังพิมพ์แบบเรียลไทม์
  • แบ็กเอนด์: Supabase Edge Function เป็น API proxy (เพื่อไม่ฝัง API key ไว้ในไคลเอนต์)
  • Rate limiting: จำกัดการใช้งานรายผู้ใช้บนพื้นฐานของ PostgreSQL
  • การแจกจ่าย: เซ็นด้วย Developer ID + ผ่าน notarization เรียบร้อยแล้ว

ส่วนที่ใช้เวลาติดอยู่นานที่สุดระหว่างพัฒนา

  1. การตรวจจับการเลือกข้อความแบบทั้งระบบ (การจัดการสิทธิ์ Accessibility API)
  2. ความปลอดภัยของ API key (ช่วงแรกฮาร์ดโค้ดไว้ในไคลเอนต์ แล้วมารู้ทีหลังเลยต้องรื้อใหม่หมด)
  3. กระบวนการ notarization (ทำครั้งแรก เลยเสียเวลาไป 2 วันเต็ม)

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

สถานะตอนนี้

  • เปิดเบตาแล้ว ใช้งานฟรี
  • ดาวน์โหลดได้จากหน้าเว็บไซต์

ยินดีรับฟีดแบ็ก

  • UX ของคีย์ลัดเป็นธรรมชาติไหม
  • ติดตั้งแบบคลีนแล้วมีปัญหาหรือไม่
  • สถาปัตยกรรมมีจุดที่ควรปรับปรุงไหม
  • ใครเคยพัฒนาแอปคล้ายกัน รบกวนช่วยแนะนำได้เลย

ยินดีมากถ้าจะแชร์ทั้งข้อเสนอแนะด้านสถาปัตยกรรม หรือประสบการณ์เจอปัญหาจุกจิกกับ notarization บน macOS

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

16 ความคิดเห็น

 
t7vonn 2026-04-17

สวัสดีครับ ขอฝากความเห็นเล็กน้อยครับ!

  • เท่าที่ทราบ ในกลุ่มผู้ใช้ Mac มีหลายคนที่ใช้เครื่องมืออย่าง alfred / raycast และคีย์ลัดเริ่มต้นของแอปเหล่านี้คือ opt + space เลยคิดว่าคีย์ลัดเริ่มต้นอาจจะใช้แบบอื่นจะดีกว่าไหม
  • ดูเหมือนว่ายังไม่ได้เซ็นลายเซ็น/รับรอง notarization
(1) codesign  
$ codesign -dv --verbose=4 MiniAi.app  
Executable=/Users/.../Downloads/MiniAi.app/Contents/MacOS/MiniAi  
Identifier=com.miniai.app  
Format=app bundle with Mach-O thin (arm64)  
CodeDirectory v=20400 size=8551 flags=0x2(adhoc) hashes=257+7 location=embedded  
VersionPlatform=1  
VersionMin=917504  
VersionSDK=1704960  
Hash type=sha256 size=32  
CandidateCDHash sha256=c60ed7e37e533d09cf5365d97bf6428c8d42f2dd  
CandidateCDHashFull sha256=c60ed7e37e533d09cf5365d97bf6428c8d42f2dd94cdca992cd3f61e8e6554a3  
Hash choices=sha256  
CMSDigest=c60ed7e37e533d09cf5365d97bf6428c8d42f2dd94cdca992cd3f61e8e6554a3  
CMSDigestType=2  
Executable Segment base=0  
Executable Segment limit=1556480  
Executable Segment flags=0x1  
Page size=16384  
CDHash=c60ed7e37e533d09cf5365d97bf6428c8d42f2dd  
Signature=adhoc  
Info.plist entries=24  
TeamIdentifier=not set  
Sealed Resources version=2 rules=13 files=7  
Internal requirements count=0 size=12  
  
(2) gatekeeper  
$ spctl -a -vvv -t execute MiniAi.app  
MiniAi.app: rejected  
  
(3) Notary staple  
$ xcrun stapler validate MiniAi.dmg  
Processing: /Users/.../Downloads/MiniAi.dmg  
MiniAi.dmg does not have a ticket stapled to it.  
  
$ xcrun stapler validate MiniAi.app  
Processing: /Users/.../Downloads/MiniAi.app  
MiniAi.app does not have a ticket stapled to it.  
  • ถ้าติดตั้งได้ผ่าน App Store / homebrew แทนการแจกไฟล์ dmg ก็น่าจะดีครับ
 
medidevlab 2026-04-18

ว้าว ขอบคุณมากจริง ๆ ที่ช่วยดูให้อย่างละเอียดขนาดนี้ 🙏

  1. คีย์ลัด: ใช่ครับ/ค่ะ ตอนนี้ได้รับรายงานเรื่องคีย์ลัด ⌥Space ชนกับ Alfred/Raycast จากผู้ใช้ค่อนข้างบ่อยที่สุด
    รับทราบเรื่องฟังก์ชันตั้งค่าคีย์ลัดแบบกำหนดเองไว้แล้ว และจะใส่ไว้ในลำดับความสำคัญของการปรับปรุงครับ/ค่ะ!

  2. การเซ็นและ notarization: ใช่ครับ/ค่ะ ตอนนี้อยู่ในสถานะเซ็นแบบ adhoc
    เนื่องจากยังเป็นช่วงเริ่มต้นของการพัฒนา ค่าใช้จ่ายสำหรับ notarization ยังรู้สึกค่อนข้างเป็นภาระอยู่ เลยพักไว้ก่อน 😅
    ขอบคุณที่ช่วยตรวจสอบให้นะครับ/ค่ะ!

  3. วิธีแจกจ่าย: กำลังพิจารณาการแจกจ่ายผ่าน App Store หรือ Homebrew Cask อยู่เหมือนกัน
    ตอนนี้เพื่อให้ปล่อยได้เร็วเลยออกเป็น DMG ก่อน
    คิดว่าทิศทางที่คุณแนะนำมานั้นถูกต้องครับ/ค่ะ,,

เห็นถึงขั้นช่วยตรวจ codesign ให้ด้วยแล้วรู้สึกซาบซึ้งมากจริง ๆ
ขอบคุณมาก ๆ ที่มอบความใส่ใจให้กับผลิตภัณฑ์นี้!
ถ้ามีจุดไหนที่ไม่สะดวกอีก อย่าลืมบอกกันนะครับ/ค่ะ เป็นกำลังใจให้มากเลย 😄

 
kurthong 2026-04-16

ถ้าไม่ได้ตั้งใจจะขายในระดับโปรดักชันเป็นพิเศษ ผมว่าลองเปิดซอร์สบน GitHub เพื่อรับฟีดแบ็กดูก็น่าจะได้นะครับ?

 
medidevlab 2026-04-16

ขอบคุณสำหรับความคิดเห็นอันมีค่านะครับ!

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

ถ้าปล่อยเป็นโอเพนซอร์สเมื่อไหร่ อย่าลืมส่งฟีดแบ็กกันด้วยนะครับ~~ :)

 
kurthong 2026-04-16

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

 
medidevlab 2026-04-16

ฮ่าๆ ขอบคุณสำหรับคำแนะนำจากรุ่นพี่นักพัฒนานะครับ
ช่วงนี้โลกเปลี่ยนเร็วมากจนปรับตัวตามได้ยากจริงๆ!
ขอบคุณสำหรับข้อมูลมากมาย และหวังว่าจะติดตามกันต่อไปในอนาคตนะครับ 😁

 
ly0738 2026-04-15

เป็นโมเดล AI แบบไหนเหรอ??

 
jhk0530 2026-04-15

ระบุว่าใช้ Claude API

 
ly0738 2026-04-15

เนื้อหาก็เขียนไว้ชัดเจนอยู่แล้ว เลยตกใจนึกว่าผมเป็นคนถามเองหรือเปล่า ก็เลยลองไปหาอีกที

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

ครั้งหน้าถ้าช่วยบอกด้วยว่าอยู่ตรงไหนก็จะขอบคุณมากครับ

 
medidevlab 2026-04-15

ขอบคุณมากจริง ๆ สำหรับฟีดแบ็กอันมีค่านะครับ!

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

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

ไม่ทราบว่าได้ลองใช้แอปหรือยังครับ? เป็นอย่างไรบ้าง อยากรู้ความเห็นเหมือนกันครับ :)

 
ly0738 2026-04-15

อ๊ะ ผมได้บอกคุณ jhk0530 ไปแล้วครับ

 
ly0738 2026-04-15

มีระบุไว้ตรงไหนหรือเปล่าว่าใช้ Claude API?
ผมลองดูทั้งในเนื้อหาและในเว็บไซต์แล้ว แต่ยังไม่เห็นเลย

 
medidevlab 2026-04-15

สวัสดีครับ! ผมเป็นผู้พัฒนา
ตอนนี้กำลังใช้โมเดล Claude Sonnet 4 อยู่ครับ!

ต่อไปมีแผนจะเพิ่มตัวเลือกให้สามารถเลือก BYOK หรือโมเดลอื่น ๆ ได้โดยตรง

ขอบคุณที่ให้ความสนใจครับ :)

 
ly0738 2026-04-15

ขอบคุณสำหรับคำตอบครับ!
ปกติผมใช้ฟีเจอร์แปลแบบป๊อปอัปของ DeepL อยู่ แต่คงต้องลองใช้ตัวนี้ดูสักพักแล้ว
ต่อไปถ้ารองรับรูปแบบของ https://www.openresponses.org/ ด้วย เพื่อให้สามารถเปิดใช้ local LLM ได้ ก็น่าจะเป็นแนวทางที่ดีเหมือนกันครับ!

 
medidevlab 2026-04-15

ดูเหมือนว่าคุณน่าจะใช้งานฟีเจอร์การแปลเป็นหลักนะครับ!

ในอนาคตเรามีแผนจะเพิ่มฟังก์ชันเลือกโหมด เพื่อพัฒนาไปในทิศทางที่สามารถมอบฟีเจอร์การแปลที่เฉพาะทางมากยิ่งขึ้นได้ด้วย :)

ขอบคุณที่แนะนำวิธีใช้งานผ่านโมเดลแบบโลคัลนอกเหนือจาก external API ด้วยนะครับ! เราจะเพิ่มไว้ในแผนการพัฒนาต่อไปในอนาคต

ขอบคุณมากสำหรับฟีดแบ็กอันมีค่า และหากมีจุดไหนที่ใช้งานไม่สะดวก อย่าลืมบอกเราได้เสมอนะครับ 😄

 
ly0738 2026-04-23

ลองใช้มาหนึ่งสัปดาห์แล้ว ประสบการณ์การใช้งานดีมากจนยังใช้อยู่ต่อ ขอบคุณครับ
ถ้าแก้ปัญหาเรื่องวิธีแจกจ่ายคีย์ลัดได้เหมือนที่คนอื่นบอก ก็น่าจะดียิ่งขึ้นไปอีก! รอติดตามครับ