27 February 2014

เขียนโปรแกรมให้เป็น คิดกันอย่างไร? แก้ปัญหากันอย่างไร? - ตอนที่ 1

Updated on

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

        การเขียนโปรแกรมสมัยนี้จะไม่เหมือนกับสมัยก่อนแล้ว จากเมื่อก่อนการที่จะเขียนโปรแกรมขึ้นมาตัวหนึ่งได้นั้นจะต้องใช้เวลา การฝึกฝน และความพยายามพอสมควร แต่ในปัจจุบันนี้โปรแกรมที่ใช้เขียนโปรแกรมนั้นมีตัวช่วยให้สะดวกขึ้นเป็นอย่างมาก นึกถึงสมัยก่อนที่นั่งเขียนเว็ปทีก็ต้องเขียนภาษา HTML เอง ในขณะที่ทุกวันนี้แค่ Dreamweaver ก็จบแล้ว ลากๆวางๆ แก้นิดหน่อย (ยังไม่รวมไปถึง Framework ขั้นสูงตัวอื่นๆ)

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

        ด้วยความสะดวกสบายที่มากขึ้นแต่ก่อน ทำให้ในปัจจุบันนี้ใครๆก็สามารถ "เขียนโปรแกรมได้" แต่ไม่ได้หมายความว่า "เขียนโปรแกรมเป็น"

        อ้าว!? มันต่างกันยังไง?

23 February 2014

ติดตั้ง Plugin ของ Genymotion ให้กับ Android Studio

Updated on

        สำหรับบทความนี้จะเป็นตัวอย่างการติดตั้ง Plugin บน Android Studio เพื่อให้เรียกใช้งาน Genymotion ได้สะดวกยิ่งขึ้น


20 February 2014

ติดตั้ง Google Apps ให้กับ Genymotion

Updated on

        Google Apps คือเหล่าแอปพลิเคชันสำหรับบริการต่างๆของ Google ในเครื่อง Android ซึ่งเดิมทีนั้นบน Android Emulator ต่างๆเช่น AVD หรือ Genymotion จะไม่มีติดตั้งมาให้ตั้งแต่ต้น (เดิมที Genymotion มีมาให้ แต่ถอดออกไปทีหลัง) ดังนั้นจึงทำให้ผู้ใช้ไม่สามารถเขียนแอปพลิเคชันที่ใช้งานร่วมกับ Google Play Service ได้ อย่างเช่นการเรียกใช้ Google Maps บนแอปพลิเคชันที่สร้างขึ้น (เป็น Service ที่ใช้งานกันเยอะที่สุดละ)


        บทความนี้ก็จะมาบอกวิธีการติดตั้ง Google Apps ลงบน Genymotion กันเสียหน่อย จะได้เอาไว้ทดสอบแอปพลิเคชันที่ต้องใช้งาน Google Play Services ได้

ปัญหา INSTALL_FAILED_CPU_ABI_INCOMPATIBLE บน Genymotion

Updated on

        ปัญหานี้เป็นปัญหาที่เกิดขึ้นบน Genymotion เนื่องมาจากว่าบน Genymotion จะอิง CPU จากเครื่องของผู้ที่หลงเข้ามาอ่านใช้อยู่ อย่างเช่นเครื่องเจ้าของบล็อกเวลาใช้แอปพลิเคชันตรวจสอบ CPU ของ Genymotion ก็จะเป็น Intel Core i5 เป็นต้น

        แล้วปัญหาคืออะไรล่ะ?

        ปัญหาคือจะไม่สามารถติดตั้งบางแอปพลิเคชันได้เพราะว่าแอปพลิเคชันนั้นๆรองรับเฉพาะ ARM โดยจะขึ้นข้อความตอนที่ติดตั้งแอปพลิเคชันว่า

                INSTALL_FAILED_CPU_ABI_INCOMPATIBLE


09 February 2014

ติดโฆษณาบนแอพของเราด้วย AdMob ใน Google Play Service

Updated on

        ประกาศ - ผู้ที่หลงเข้ามาอ่านคนใดยังใช้ AdMob รูปแบบเก่าอยู่ กรุณาไปอัปเดตเป็นรูปแบบใหม่ด้วยนะครับ เพราะแบบเก่าจะหยุดให้บริการในวันที่ 1 สิงหาคม 2557 นี้


         ทั้งนี้ก็เพราะว่าทาง Google ได้เปลี่ยนจากวิธีเดิมที่เป็น AdMob SDK หรือก็คือใช้ไฟล์ไลบรารีจาก AdMob มาใส่ในโปรเจค เปลี่ยนมากลายเป็นใช้ไลบรารีของ Google Play Service แทน ทั้งนี้เพื่อรวบรวมไลบรารีต่างๆของ Google มารวมไว้ในไลบรารีของ Google Play Service ไปเลย


08 February 2014

BluetoothSPP - การใช้งาน Listener

Updated on
        บทความนี้เก่ามากแล้ว และหยุดพัฒนาต่อแล้ว

        สำหรับผู้ที่หลงเข้ามาอ่านคนใดยังไม่รู้จักกับคลาสนี้ให้ไปศึกษาก่อนที่ [Android Code] เปลี่ยนเรื่องบลูทูธให้เป็นเรื่องง่ายด้วย BluetoothSPP Library และถ้ายังไม่รู้จักการใช้งานเบื้องต้นให้ไปศึกษาก่อนที่ [Android Code] การเชื่อมต่ออุปกรณ์ผ่านบลูทูธแบบง่ายๆโดยใช้ BluetoothSPP


        คราวนี้จะมาพูดถึงการใช้งาน Listener ที่อยู่ในคลาส BluetoothSPP กันบ้าง โดยคลาส BluetoothSPP เจ้าของบล็อกได้ใส่ Listener ต่างๆไว้จำนวนหนึ่งเพื่ออำนวยความสะดวกในการใช้งาน ซึ่งจะมีทั้งหมดดังนี้

BluetoothSPP - การสร้างหน้าเลือกอุปกรณ์สำหรับเชื่อมต่อผ่าน Bluetooth

Updated on
        บทความนี้เก่ามากแล้ว และหยุดพัฒนาต่อแล้ว

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

        ถ้าผู้ที่หลงเข้ามาอ่านยังไม่ได้อ่านบทความการใช้งานคลาส BluetoothSPP มาก่อน ให้ไปอ่านก่อนที่ [Android Code] การเชื่อมต่ออุปกรณ์ผ่านบลูทูธแบบง่ายๆโดยใช้ BluetoothSPP


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

06 February 2014

BluetoothSPP - การใช้งานการเชื่อมต่ออัตโนมัติ

Updated on
        บทความนี้เก่ามากแล้ว และหยุดพัฒนาต่อแล้ว

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

        ถ้าผู้ที่หลงเข้ามาอ่านคนใดยังไม่เคยอ่านพื้นฐานการใช้งานคลาสนี้มาก่อน แนะนำให้ไปอ่านมาก่อน [Android Code] การเชื่อมต่ออุปกรณ์ผ่านบลูทูธแบบง่ายๆโดยใช้ BluetoothSPP


05 February 2014

BluetoothSPP - เปลี่ยนเรื่องบลูทูธให้เป็นเรื่องง่ายด้วย BluetoothSPP Library

Updated on
        บทความนี้เก่ามากแล้ว และหยุดพัฒนาต่อแล้ว

        สำหรับการรับส่งข้อมูลผ่านสัญญาณบลูทูธบนแอนดรอยด์นั้นจะนิยมใช้วิธีที่เรียกว่า Serial Port Profile (SPP) ซึ่งมีรูปแบบในการส่งข้อมูลเป็นแบบพอร์ตอนุกรม จึงเหมาะกับการใช้งานร่วมกับอุปกรณ์ภายนอกต่างๆที่ทำงานด้วยไมโครคอนโทรลเลอร์ เพราะบนไมโครคอนโทรลเลอร์จะมีขาสำหรับเชื่อมต่อแบบอนุกรมที่เรียกว่า UART ซึ่งสามารถนำมาใช้งานร่วมกับโมดูลบลูทูธเพื่อเชื่อมต่อกับแอนดรอยด์


04 February 2014

BluetoothSPP - การเชื่อมต่ออุปกรณ์ผ่านบลูทูธแบบง่ายๆด้วย BluetoothSPP

Updated on
        บทความนี้เก่ามากแล้ว และหยุดพัฒนาต่อแล้ว

        จากที่เจ้าของบล็อกได้เกริ่นถึงคลาส BluetoothSPP ที่เจ้าของบล็อกลองนั่งเขียนเองแล้ว ทีนี้มาพูดถึงวิธีการใช้งานเบื้องต้นกันบ้าง

        สำหรับผู้ที่หลงเข้ามาอ่านคนใดที่ยังไม่ได้อ่านบทความแนะนำ อยากให้ลองเข้าไปอ่านคร่าวๆก่อนที่ [Android Code] เปลี่ยนเรื่องบลูทูธให้เป็นเรื่องง่ายด้วย BluetoothSPP Library