03 กันยายน 2558

[Android Code] Chrome Custom Tabs ของเล่นใหม่สำหรับ In-app Browser



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

         แต่วันนี้เจ้าของบล็อกจะมาแนะนำสิ่งใหม่ที่ดีกว่านั้นอีก นั่นก็คือ Custom Tabs จาก Chrome นั่นเอง

31 สิงหาคม 2558

[Android Code] Let's Fragment - วิธีการรับส่งข้อมูลของ Fragment



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

        สำหรับการรับส่งข้อมูลของ Fragment นั้นทำได้หลากหลายวิธี ซึ่งขึ้นอยู่กับความเหมาะสมและรูปแบบในการทำงานของ Fragment โดยจะขอแบ่งประเภทของรูปแบบหน่อยนะ

24 สิงหาคม 2558

[Android Dev Tips] โค๊ดที่มีเส้นขีดกลาง เค้าเรียกว่า Deprecated Code



        เคยกันมั้ยเอ่ย? นั่งพิมพ์โค๊ดอยู่ดีๆแล้วก็พบว่ามีโค๊ดบางตัวมีขีดเส้นคั่นกลางอยู่? นั่นล่ะครับที่เค้าเรียกว่า Deprecated Code

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

23 สิงหาคม 2558

[Android Code] AppCompatDelegate สำหรับการทำ Activity ใดๆให้รองรับ AppCompat



        ผู้ที่หลงเข้ามาอ่านหลายๆคนคงจะรู้จักกับ AppCompatActivity กันบ้างแล้ว เพราะว่าในตอนนี้มันถูกประกาศไว้ให้อัตโนมัติในเวลาที่สร้างโปรเจคแอนดรอยด์ขึ้นมาใหม่ ซึ่งเจ้า AppCompat นี้เข้ามาเสริมการทำงานของ Material Design Theme, Action Bar, Dialog และ ShareActionProvider ที่จะช่วยให้ลูกเล่นใหม่ๆเหล่านี้รองรับบนแอนดรอยด์เวอร์ชันเก่าๆด้วย เพียงแค่ Activity นั้นๆจะต้องประกาศใช้งาน AppCompatActivity ด้วย ถึงจะรองรับ

        แต่ถ้าโปรเจคของผู้ที่หลงเข้ามาอ่านใช้งานจาก Activity Class ของ Library ตัวหนึ่ง แต่ว่า Activity Class ตัวนั้นๆไม่ได้รองรับ AppCompat (ไม่ได้ Extend จาก AppCompatActivity) เช่น SlidingActivity หรือ IOIOActivity เป็นต้น แล้วจะเรียกใช้ AppCompat ได้อย่างไรล่ะ? นั่นล่ะ ที่มาของ AppCompatDelegate


15 สิงหาคม 2558

[Android Dev Tips] ลองใช้ Mirror Plugin สุดเจ๋งสำหรับ Realtime Layout Preview บน Android Studio



        เนื่องจากว่ามีน้องคนหนึ่งได้ทักเจ้าของบล็อกมาเกี่ยวกับปลั๊กอินตัวนี้ ซึ่งเจ้าของบล็อกลองไปนั่งใช้ดูแล้วพบว่ามันเจ๋งดี น่าสนใจไม่น้อย ก็เลยเอามานั่งเขียนบทความให้อ่านกันเล่นๆอีกครั้ง

         Mirror เป็นปลั๊กอินสำหรับ Android Studio ที่ทาง jimu Labs Inc. สร้างขึ้นมาเพื่อให้นักพัฒนาสามารถทดสอบ/ออกแบบหน้าจอบนอุปกรณ์แอนดรอยด์ได้สะดวกขึ้นและไวยิ่งขึ้น

[Android Code] File Observer สำหรับตรวจเช็คการเปลี่ยนแปลงของไฟล์



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

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

05 สิงหาคม 2558

[Android Code] ทำ Location Provider แบบเหนือชั้นด้วย Smart Location Library



        Location Provider หรือที่ชอบเรียกกันว่า GPS เป็นอีกหนึ่งลูกเล่นที่แอปพลิเคชันหลายๆตัวนิยมใช้งานกัน แต่ทว่าถ้านักพัฒนาจัดการกับมันได้ไม่ดี มันก็จะกลายเป็นส่วนหนึ่งของการบริโภคพลังงาน ซึ่งเจ้าของบล็อกก็เคยแนะนำให้เปลี่ยนไปใช้ Google Location Services API แทน เพราะทั้งง่ายและมีประสิทธิภาพ

        แต่ทว่า Google Location Services API ก็มีข้อจำกัดตรงที่ตัวมันเองผูกกับ Google Play Services ภายในเครื่อง ถ้าเครื่องนั้นๆไม่มี Google Play Services ก็จะใช้งานไม่ได้ (แต่เชื่อเถอะ อุปกรณ์แอนดรอยด์ 90% บนโลกนี้มีหมดแหละ) ดังนั้นถ้าเครื่องที่ไม่มีก็จะต้องทำให้มันเรียกใช้โค๊ดธรรมดาๆได้ สุดท้ายก็จะกลับเข้าสู่ลูปเดิมคือเรื่องประสิทธิภาพ

        ดังนั้นวันนี้เจ้าของบล็อกจึงมาขอแนะนำอีก Solution เพื่อช่วยให้นักพัฒนามีชีวิตสะดวกสบายยิ่งกว่าเก่า ด้วย Library สำหรับ Location Provider ที่ชื่อว่า Smart Location

01 สิงหาคม 2558

[Android Dev Tips] Logcat พื้นฐานสำคัญที่ Android Developer ต้องรู้จัก



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

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