03 February 2013

สารบัญบทความแอนดรอยด์




อัพเดทล่าสุด 21 กรกฎาคม 2560

Android Code

    • Supporting Samsung Devices in 2017 is easier than ever for Android 7.0
    • มาเรียกใช้งาน Dialog บนแอนดรอยด์ให้ถูกต้องกันเถอะ
    • Let's Fragment - ว่าด้วยเรื่องการสร้าง Fragment จาก Constructor ที่ถูกต้อง
    • สิ่งที่ Android Dev ควรรู้ใน Samsung Galaxy ยุค 2017 (และหลังจากนี้)
    • มาสำรวจกันว่ามีคำสั่งสำคัญอะไรบ้างที่เปลี่ยนแปลงไปบน Android O
    • ลองเล่น Notification Channels ของเล่นใหม่จาก Android O
    • ลองเล่น Font Resource ของเล่นใหม่จาก Android O
    • ดัก Screen Orientation Event ใน Activity อย่างไรให้ถูกต้อง
    • เก็บตกโค้ดแอนดรอยด์จาก Snippet ที่ใช้ใน Code [email protected] Dev Day [ตอนที่ 1]
    • ทำไมจึงไม่ควรเก็บข้อมูลทิ้งไว้ใน Singleton หรือ Static Variable
    • จัดการปัญหา WebView กับ SSL Certificate อย่างไรให้ถูกต้อง
    • Intent และ Pending Intent - ส่งใจ ไปหาเธอ
    • เรื่อง Security กับ Recent App ที่นักพัฒนาควรรู้
    • ทำไม Android Dev ถึงควรใช้ Parcelable มากกว่า Serializable
    • แก้ปัญหา Boilerplate น่าเบื่อๆของ Shared Preferences ด้วย Shade
    • สวัสดี Custom View สุดที่รัก ตอนที่ 2
    • สวัสดี Custom View สุดที่รัก ตอนที่ 1
    • เมื่อเจ้าของบล็อกต้องทำ Recycler View กับเส้นประเจ้าปัญหา
    • มารู้จักและควบคุม System UI ใน Android App กันเถอะ
    • รู้จักกับ SnapHelper ของเล่นใหม่ที่เพิ่มเข้ามาใน Recycler View [เวอร์ชัน 24.2.0 ขึ้นไป]
    • การเปิด Page หรือ Official Account บน Social ต่างๆผ่าน Android App
    • ว่าด้วยเรื่อง Recycler View กับการใช้งานจริงในแบบฉบับเจ้าของบล็อก ตอนที่ 4
    • ว่าด้วยเรื่อง Recycler View กับการใช้งานจริงในแบบฉบับเจ้าของบล็อก ตอนที่ 3
    • ว่าด้วยเรื่อง Recycler View กับการใช้งานจริงในแบบฉบับเจ้าของบล็อก ตอนที่ 2
    • ว่าด้วยเรื่อง Recycler View กับการใช้งานจริงในแบบฉบับเจ้าของบล็อก ตอนที่ 1
    • วันนี้แอปพลิเคชันของคุณรองรับ Multi Window ของ Samsung แล้วหรือยัง?
    • ลองเล่น Quick Settings Tile API ของเล่นใหม่ใน Android 7.0 Nougat
    • มารู้จักกับ RxJava และ RxAndroid กันเถอะ [ตอนที่ 4]
    • มารู้จักกับ RxJava และ RxAndroid กันเถอะ [ตอนที่ 3]
    • มารู้จักกับ RxJava และ RxAndroid กันเถอะ [ตอนที่ 2]
    • มารู้จักกับ RxJava และ RxAndroid กันเถอะ [ตอนที่ 1]
    • สรุปเนื้อหาและสิ่งที่ไม่ได้พูดใน Firebase Android Codelabs จากงาน I/O Extended Bangkok [ตอนที่ 2]
    • สรุปเนื้อหาและสิ่งที่ไม่ได้พูดใน Firebase Android Codelabs จากงาน I/O Extended Bangkok [ตอนที่ 1]
    • รู้กันหรือเปล่าว่าแอนดรอยด์มีสิ่งที่เรียกว่า Device Administrator อยู่นะ
    • รู้จัก Multi Window บน Android N และวิธีการรับมือ
    • ทำไม Android Developer ควรรู้และเข้าใจใน Activity Life Cycle
    • ยินดีต้อนรับเข้าสู่โลกของ Vector ด้วย Vector Drawable
    • มาทำความรู้จักและลองใช้งาน Google Cloud Messaging กันเถอะ
    • DEX with Over 65K Methods problem and how to use MultiDex on Android
    • ทดลองเล่น Cloud Vision API บนแอนดรอยด์
    • DEX with Over 65K Methods และการทำ MultiDex ที่นักพัฒนาแอนดรอยด์ควรรู้จักไว้
    • เมื่อเจ้าของบล็อกได้รู้จักกับ AOP และได้ลองใช้ AspectJ
    • Configuration Changes อีกหนึ่งอย่างที่นักพัฒนาแอนดรอยด์ควรรู้จัก
    • ลองพัฒนา Android Application แบบ MVP กันดูมั้ย? ตอนที่ 1
    • Using Google Maps Direction API on Android with Google Direction Library
    • ใช้งาน Google Maps Direction API ให้ง่ายๆขึ้นด้วย Google Direction Library
    • มารู้จักกับ Layout Manager ใน Recycler View กันเถอะ!
    • Save/Restore กับ Instance State ใน Fragment ควรทำอย่างไรกันนะ?
    • มา Save/Restore กับ Instance State บน Activity ให้ถูกต้องกันเถอะ
    • ลองเขียน Instrumentation Test บน Android Studio
    • Chrome Custom Tabs ของเล่นใหม่สำหรับ In-app Browser
    • Let's Fragment - วิธีการรับส่งข้อมูลของ Fragment
    • AppCompatDelegate สำหรับการทำ Activity ใดๆให้รองรับ AppCompat
    • File Observer สำหรับตรวจเช็คการเปลี่ยนแปลงของไฟล์
    • ทำ Location Provider แบบเหนือชั้นด้วย Smart Location Library
    • Localization Activity - Best way to support several language
    • Localization Activity - Library สำหรับแอปพลิเคชันหลายภาษา
    • มาใช้ Google Location Services API กันเถอะ
    • วิธีการทำให้ TextView สามารถกดเลือกที่ข้อความบางส่วนได้
    • วิธีการเรียกใช้งาน Resource โดยกำหนดชื่อไฟล์จาก String
    • รู้จักกับ Snackbar ของเล่นตัวใหม่จาก Material Design
    • การใช้งาน Google Maps Android API บน Android Studio เบื้องต้น
    • การทำ Unit Test บน Eclipse ADT
    • ลองทำ Unit Test บน Android Studio กันเถอะ
    • รู้จักกับ Palette & Swatch ลูกเล่นใหม่เพื่อเพิ่มสีสันให้กับแอพ
    • รู้จักการใช้งาน Deep Link (URL Scheme) กับ Android Application
    • ลองหัดสร้าง Class และ Listener กันเถอะ - ตอนที่ 3
    • ลองหัดสร้าง Class และ Listener กันเถอะ (Android Code & Design Style) ตอนที่ 2
    • ลองหัดสร้าง Class และ Listener กันเถอะ (Android Code & Design Style) ตอนที่ 1
    • Round Corner Progress Bar สำหรับคนบ้าขอบมน
    • Let's Fragment - ใส่ Indicator ให้กับ View Pager [ภาคสอง]
    • Let's Fragment - ใส่ Indicator ให้กับ View Pager [ภาคแรก]
    • Let's Fragment - เพิ่มลูกเล่นให้กับ View Pager ด้วย Page Transformer
    • Let's Fragment - มาทำ View Pager กันเถิดพี่น้อง~ [ตอนที่ 2]
    • Let's Fragment - มาทำ View Pager กันเถิดพี่น้อง~ [ตอนที่ 1]
    • Let's Fragment - วงจรชีวิตของ Fragment (Fragment Lifecycle)
    • Let's Fragment - รู้จักกับ FragmentTransaction สำหรับการแสดง Fragment [ตอนที่ 2]
    • Let's Fragment - รู้จักกับ FragmentTransaction สำหรับการแสดง Fragment [ตอนที่ 1]
    • Let's Fragment - เริ่มต้นง่ายๆกับ Fragment แบบพื้นฐาน
    • Fragment Principle - มารู้จักกับ Fragment กันเถอะ~
    • ลองทำ Location Provider ด้วย Location API ใน Google Service Library กันเถอะ
    • แนะนำให้รู้จักกับ API ของ Google Play Services
    • เก็บค่าตัวแปรให้ถาวรแบบง่ายๆได้ด้วย Shared Preferences
    • การใช้งาน Simple TCP Library แบบ Simple TCP
    • Simple TCP Library - ลากันที TCP ที่ยุ่งยาก
    • การเซฟภาพหน้าจอแบบมี Dialog แสดงอยู่ด้วย
    • ทำไมภาพถึงไม่ยอมแสดงใน Gallery
    • มาซ่อนแถบเมนูแบบอัตโนมัติเหมือน Facebook และ Google+ กันเถอะ
    • มาทำความรู้จักกับ Object Animator กันดีกว่า~!
    • OnClick OnLongClick และ OnTouch สัมพันธ์กันอย่างไร?
    • การใช้งานคลาส GooglePlaceSearch ใน GoogleDirectionAndPlaceLibrary
    • การใช้งานคลาส GoogleDirection ใน GoogleDirectionAndPlaceLibrary
    • GoogleDirectionAndPlaceLibrary ทางเลือกง่ายๆสำหรับชาว Google Maps
    • ใส่รหัสลับสำหรับเปิดแอปพลิเคชันด้วย Secret Code
    • ทำไมต้อง findViewById ? คิดเล่นๆ แต่ได้อะไรมากกว่าที่คิด !
    • มาลองเล่นกับ Assist บนแอนดรอยด์กันบ้าง
    • การใช้งาน Listener สำหรับบลูทูธใน BluetoothSPP
    • การสร้างหน้าเลือกอุปกรณ์ที่จะเชื่อมต่อสำหรับ BluetoothSPP
    • การใช้งานการเชื่อมต่ออัตโนมัติในคลาส BluetoothSPP
    • เปลี่ยนเรื่องบลูทูธให้เป็นเรื่องง่ายด้วย BluetoothSPP Library
    • การเชื่อมต่ออุปกรณ์ผ่านบลูทูธแบบง่ายๆโดยใช้ BluetoothSPP
    • ใส่ลูกเล่นด้วย Animation ให้กับ List View
    • ว่าด้วยเรื่อง Interpolator ใน Animation
    • การสร้าง Animation จาก Animation Resource [Anim]
    • ยืนยันการออกจากแอปพลิเคชัน เมื่อกดปุ่ม Back
    • วิธีดึงภาพ Thumbnail จากไฟล์วีดีโอที่อยู่ใน External Storage [หรือ SD]
    • วิธีดึงภาพ Thumbnail จากไฟล์วีดีโอที่อยู่ใน Resource [res/raw]
    • จัดการกับ Custom List View ที่มีภาพอย่างไรให้มีประสิทธิภาพ
    • เปลี่ยนตัวหนังสือใน List View โดยไม่ต้องทำ Custom List View
    • การทำ Text To Speech สำหรับภาษาไทย [Thai TTS]
    • จัดการกับเรื่องการหมุนหน้าจอด้วย Orientation Manager
    • มาทำให้แอปพลิเคชันรองรับหลายภาษากันเถอะ
    • ติดโฆษณาให้กับแอปพลิเคชันด้วย mobileCore
    • เกร็ดความรู้กับการจัดการกับไฟล์เสียง [Sound Effect]
    • การส่งข้อความผ่าน SMS แบบง่ายๆ
    • Best Location คลาสสำหรับการทำ Location Manager
    • การสร้าง Activity ใหม่และการข้ามไปมาระหว่าง Activity [แบบละเอียดสำหรับมือใหม่]
    • การเก็บค่าไว้ใน res/values [Values Resource]
    • การใช้งาน Google Place API ค้นหาข้อมูลสถานที่
    • D-Pad Controller
    • ทำตัวเลือกสำหรับเมนู [Menu Cursor]
    • วิธีตรวจสอบด้วยโค๊ดว่าเครื่องเป็น Smartphone หรือ Tablet
    • สร้าง Timer สำหรับนับเวลาถอยหลังด้วยคลาส CountDownTimer
    • เปลี่ยนเสียงพูดให้กลายเป็นข้อความด้วย Voice Recognition
    • การทำ Text To Speech เพื่ออ่านข้อความที่ต้องการ
    • การแสดงตำแหน่งปัจจุบันบน Google Maps Android API v2
    • การ Random ชุดสีที่เตรียมไว้มาแสดง
    • การแปลง String ให้เป็น Unicode
    • การแสดงภาพ GIF Animation บนแอปพลิเคชัน
    • การ Random ตัวเลขจำนวนหลายๆตัว
    • การ Random ตัวเลขเบื้องต้น
    • ตัวอย่างการจัดการข้อมูลในฐานข้อมูลเบื้องต้น [ดู เพิ่ม แก้ไข ลบ]
    • การใช้งาน Bluetooth เพื่อรับส่งข้อมูล [บลูทูธกับไมโครคอนโทรลเลอร์ได้]
    • การเพิ่มเสียงประกอบลงใน Application [BGM & Effect]
    • วิธีการบันทึกภาพ Layout ใน Android App ด้วยโค้ด
    • การใช้งาน Location Manager (GPS)
    • วิธีการทำ Splash Screen ที่ถูกต้อง (แต่ไม่ใช่ที่สุด)
    • ใช้งานแผนที่ด้วย Google Static Map
    • ว่าด้วยเรื่อง Context
    • การรับข้อมูล Intent จากแอพฯอื่นแล้วส่งข้อมูลกลับไป [Result Content]
    • การรับข้อมูล Intent จากแอพฯอื่นๆ [Get Content]
    • การอ่าน QR Code และ Barcode ด้วย Intent [Result]
    • การใช้งานกล้องเพื่อบันทึกวีดีโอแบบง่ายๆด้วย Intent [Result]
    • การใช้งานกล้องเพื่อถ่ายภาพแบบง่ายๆด้วย Intent [Result]
    • การเลือกไฟล์ภาพจาก Gallery ด้วย Intent [Result]
    • การใช้ Intent สำหรับแชร์ไฟล์ใดๆ [Send]
    • การใช้ Intent เพื่อเปิดไฟล์ใดๆ [View]
    • การใช้ Intent เพื่อเปิดแผนที่ [View]
    • การใช้ Intent เพื่อเปิด URL [View]
    • การใช้ Intent สำหรับแชร์ข้อความสำหรับ Email [Send]
    • การเรียกเปิดแอพฯอื่นๆ ด้วย Intent
    • การใช้ Intent สำหรับแชร์ข้อความ String [Send]
    • Scroll View Slider การทำให้ Scroll View เลื่อนอัตโนมัติ
    • การใช้งาน Humidity Sensor
    • การใช้งาน Proximity Sensor
    • การใช้งาน Gyroscope
    • การใช้งาน Light Sensor
    • การใช้งาน Accelerometer
    • แสดงเส้นทาง Direction บน Google Maps Android API v2 [ตอน 2]
    • แสดงเส้นทาง Direction บน Google Maps Android API v2 [ตอน 1]
    • การส่งข้อมูลผ่าน Intent ระหว่าง Activity
    • การใช้ Cursor กับฐานข้อมูล SQLite
    • การ Query ในฐานข้อมูล SQLite
    • ฐานข้อมูล SQLite ถ้าเข้าใจก็ไม่ใช่เรื่องยาก
    • การวาด Polyline และ Polygon ลงบน Google Maps Android API v2
    • การใช้ Listener กับ Camera ใน Google Maps Android API v2
    • การควบคุมมุมกล้องและการกำหนดค่าสำหรับแผนที่ใน Google Maps Android API v2
    • การใช้ Listener กับ Marker ใน Google Maps Android API v2
    • เปลี่ยนภาพ Marker ใน Google Maps Android API v2
    • การสร้าง Marker ลงบน Google Maps Android API v2
    • การเลื่อนไปยังตำแหน่งที่ต้องการบน Google Maps Android API v2
    • การกำหนดรูปแบบพื้นผิวของ Google Maps Android API v2
    • Image Viewer สำหรับแสดงภาพที่มีขนาดใหญ่
    • การใช้ List View แสดงตัวเลือกเพื่อแสดงข้อมูลจากฐานข้อมูล
    • การใช้ List View ให้แสดงตัวเลือกเป็น Dialog
    • List View กับการใช้ Listener เบื้องต้นและข้ามไปยัง Activity อื่น
    • Endless Scrolling ListView ทำใหม่ใช้ง่ายกว่าเดิม
    • สร้างฐานข้อมูล SQLite อย่างไรให้ไว?
    • แจก SQLite สำหรับ Dictionary ของ Lexitron
    • JoyStick Controller
    • การ Chat ผ่าน WLAN ด้วย TCP Socket
    • Circle Selector การเลือกค่าแบบหมุน
    • สร้างการเคลื่อนไหวง่ายๆ ด้วยคลาส TranslateAnimation
    • สร้างการเคลื่อนไหวง่ายๆ ด้วยคลาส ScaleAnimation
    • สร้างการเคลื่อนไหวง่ายๆ ด้วยคลาส RotateAnimation
    • สร้างการเคลื่อนไหวง่ายๆ ด้วยคลาส AlphaAnimation
    • สร้างการเคลื่อนไหวง่ายๆ ด้วยคลาส Animation
    • การส่งข้อมูลผ่าน WLAN ด้วย TCP Socket
    • Custom List View เบื้องต้น
    • LogCat พื้นฐานการพัฒนา Application
    • การทำให้ List View แสดงค่าจากฐานข้อมูลแบบวนลูป [Endless Scrolling List View]
    • ทำภาพเคลื่อนไหวด้วย Animation List
    • การทำให้ List View แสดงค่าแบบวนลูป [Endless Scrolling List View]
    • การนำเข้าข้อมูลจาก .csv ลงในฐานข้อมูล
    • SQLite บน Android เบื้องต้น (แอบละเอียด)
    • การสร้าง Custom Dialog
    • การเรียกใช้ Bluetooth

Android Design

    • Mobile Application Design Tips - เพราะบางอย่างนั้นไม่ได้เหมาะกับบนมือถือเสมอไป
    • มารู้จักกับ Prototyping Tools สำหรับงาน Mobile Application กันเถอะ
    • เรื่องราวของ Left/Right กับ Start/End ของ Layout ในแอนดรอยด์
    • Style and Theme - เพราะชีวิตต้องมีสไตล์
    • ทำ Password Visibility Toggle แบบง่ายๆได้ด้วย Android Design Support Library
    • จัดการภาพที่ใช้ใน Android Application อย่างไรให้ถูกต้อง
    • Constrain Layout ของเล่นใหม่ที่จะมาเปลี่ยนโลกของ Android Layout
    • สิ่งที่ควรจะรู้เมื่อต้องตะลุยไปกับงานแอนดรอยด์ที่เกี่ยวกับ Font สุดหรรษา
    • ทำไมแอนดรอยด์ต้องใช้หน่วย DP?
    • แจกภาพ Icon ของ Android Studio
    • แก้ปัญหาภาพพื้นหลังบิดเบี้ยวได้ง่ายๆด้วย Relative Layout
    • แจก Logo สำหรับ Android Wear
    • แจก Logo สำหรับ Android แบบใหม่
    • การใส่ช่องไฟใน Custom List View
    • Device Definitions Add-on for Layout Preview on Graphical Layout
    • เฉลยโจทย์ Multiple Screen Support ในงาน Android Workshop [ข้อที่ 2]
    • Device Definitions Add-on สำหรับ Layout Preview ใน Graphical Layout
    • เฉลยโจทย์ Multiple Screen Support ในงาน Android Workshop [ข้อที่ 1]
    • วิธีการออกแบบไอคอนสำหรับแอปพลิเคชันแอนดรอยด์ [Icon]
    • การใช้งาน Nine Patch ในแอปพลิเคชันแอนดรอยด์
    • Margin กับ Padding มีดีอย่างไร และต่างกันอย่างไร?
    • เคล็ดไม่ลับกับภาพ Drawable Resource สำหรับรองรับหน้าจอหลายขนาด
    • การใช้ภาพ Gradient ระหว่างสีตรงกันข้าม
    • Device Art Generator - สร้างภาพตัวอย่างง่ายๆ บนภาพอุปกรณ์แอนดรอยด์
    • แจกภาพ Vector ของ Android Device รุ่น Nexus 2012 Series
    • ปุ่มปิดแอพจำเป็นต้องมีจริงๆหรือ??
    • เปลี่ยนภาพ Toggle Button ตามต้องการด้วย Selector [Custom Toggle Button]
    • เปลี่ยนภาพ Button ได้ดั่งใจด้วย Selector [Custom Button]
    • สร้างภาพง่ายๆจาก XML ด้วย Shape Drawable
    • การทำงานของโฟลเดอร์ใน Resource [res]
    • แท้จริงแล้วหน่วย dp คืออะไร?
    • ว่าด้วยเรื่อง Size และ Density ของหน้าจอ
    • Screen Rotation ทำอย่างไรให้รองรับกับการหมุนหน้าจอได้
    • Layout Weight ใช้อย่างไร ใช้ให้เป็น
    • Multiple Language การออกแบบให้รองรับหลายภาษา
    • Device Screen ใน Eclipse ของดีที่ควรหัดใช้ให้เป็น [SDK Tools ต่ำกว่า 20]
    • การกำหนดขนาดใน Properties
    • Supporting Multiple Screens - การรองรับหน้าจอที่หลากหลาย
    • Android Compatibility - ความเข้ากันได้ในแอนดรอยด์
    • ว่ากันด้วยเรื่อง Nine-Patch

Android Dev Tips

    • Floobits - Realtime Collaborative Editing สุดเจ๋งสำหรับ Android และ Web Developer ที่ไม่ควรพลาด
    • วิธีแก้ปัญหา Unable to unzip และ Could not expand ZIP บน Android Studio
    • สรุปสาระสำคัญจากงาน Google I/O 2017 ที่นักพัฒนาแอนดรอยด์ไม่ควรพลาด
    • ว่าด้วยเรื่อง Issue ของ Activity Stack สุดแปลกที่ไม่เคยเจอมาก่อน
    • รวม Session สำหรับสาย Android ที่น่าสนใจจากในงาน Google I/O 2017
    • เมื่อ Google Play บังคับให้นักพัฒนาต้องใส่ Privacy Policy เมื่อเข้าถึงความเป็นส่วนตัวของผู้ใช้
    • วิธีการสร้าง Keystore บน Android Studio
    • เมื่อเจ้าของบล็อกต้องเจอปัญหา Dependency Conflict
    • วิธีการเปิด Freeform Mode บน Android 7.0 Nougat ขึ้นไป
    • เรื่องเล่าจาก Instant Run สุดเทพบน Android Studio
    • การเข้าใช้งาน GitHub แบบมี Two-Factor Authentication บน Android Studio
    • เตรียมตัวกันให้พร้อมกับ Android Studio 2.2!!
    • ปฏิบัติการณ์ทำ Mockup แบบฉบับเร่งด่วนโคตรๆแต่ไม่ธรรมดาด้วยเวลาแค่ 2 วัน
    • เหล่า Android Dev ทั้งหลายลองมาทำความรู้จักกับ Android TV กันเถอะ~
    • การ Filter แอพบน Google Play Store : ทำไมบางเครื่องถึงลงแอพบางตัวไม่ได้นะ?
    • มาเพิ่ม Developer Page ใน Google Play กัน
    • Rename Package Name ใน Android Studio ให้อยู่รอดปลอดภัย?
    • การนำ Library ที่เป็นไฟล์ AAR มาใช้งานในโปรเจคของเรา
    • Unit Test กับ Instrumentation Test บน Android Studio ต่างกันอย่างไร
    • โค๊ดที่มีเส้นขีดกลาง เค้าเรียกว่า Deprecated Code
    • ลองใช้ Mirror Plugin สุดเจ๋งสำหรับ Realtime Layout Preview บน Android Studio
    • Logcat พื้นฐานสำคัญที่ Android Developer ต้องรู้จัก
    • Android File Grouping - Plugin ของดีชาว Android Studio
    • 17 พื้นฐานที่ควรรู้สำหรับสายงาน Android Developer
    • How to take a screenshot on Sony Android TV
    • การ Capture Screen บน Sony Android TV
    • ปัญหา aidl is missing บน Android Studio
    • \"10 ข้อที่ควรทำและ 10 ข้อที่ไม่ควรทำ\" บน Google Play Store
    • ทำไมต้องกำหนดเลขเวอร์ชันของ Dependencies ใน Android Studio
    • วิธีตรวจสอบเวอร์ชันล่าสุดของ Dependencies ที่ใช้งานอยู่
    • การตั้งค่า Environment Variable สำหรับ Android SDK บน Windows
    • การตั้งค่า Environment Variable สำหรับ Android SDK บน Mac OS
    • Project Structure บน Android Studio
    • 20 ข้อดีที่ทำให้ Android Studio เป็น IDE ที่น่าใช้กว่า Eclipse ADT
    • วิธีการดึงไฟล์ฐานข้อมูลจากเครื่องจริง
    • การกำหนด Content Rating สำหรับแอพที่อยู่บน Google Play
    • ไฟล์ AAR คืออะไร และแตกต่างอย่างไรกับ JAR
    • Android Drawable Importer - Plugin แนะนำสำหรับ Android Studio
    • รู้จักการใช้งาน Android Studio แบบพื้นฐาน [ตอนที่ 2]
    • รู้จักการใช้งาน Android Studio แบบพื้นฐาน [ตอนที่ 1]
    • มีอะไรบ้างใน Android 5.1 Lollipop MR1 [แบบฉบับนักพัฒนา]
    • มีอะไรใหม่ใน Android L Developer Preview ! [แบบฉบับนักพัฒนา]
    • มีอะไรบ้างใน Android 4.4 KitKat [แบบฉบับนักพัฒนา]
    • ปัญหา Completion บน Android Studio อิงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่
    • การใช้งาน Android Virtual Device บน Android Studio
    • วิธีแก้ปัญหาเกี่ยวกับ HAXM เมื่อเปิด Emulator AVD
    • เปลี่ยนไอคอนแอพฯแบบง่ายๆบน Android Studio
    • การ Export ไฟล์ APK บน Android Studio เพื่อนำไป Upload ขึ้น Play Store
    • เปลี่ยนสีให้กับ Logcat บน Android Studio
    • รู้จักเครื่อง ก่อนคิดจะเขียนแอพฯ
    • แก้ปัญหา Multiple dex files define บน Android Studio
    • รู้จักกับ Dependencies และการเรียกใช้ Library บน Android Studio
    • Android Studio นั้นลงยากและชอบมีปัญหาจริงๆหรือ?
    • พึ่งจะรู้ว่า Package Name เค้ามีหลักการตั้งชื่ออย่างไร
    • วิธีการติดตั้ง Java Development Kit (JDK) บน Windows
    • วิธีแก้ปัญหา No resource found that matches the given name ... บน AppCompat v7
    • สิ่งที่เรียกว่า Development
    • การส่ง APK ขึ้น Google Play
    • ปัญหา Supplied javaHome is not a valid folder บน Android Studio
    • ปัญหา Build Gradle สำหรับ Android Wear บน Android Studio ไม่ได้
    • Android Studio ติดปัญหา Update ไม่ได้
    • ขั้นตอนการติดตั้ง Plugin ให้กับ Android Studio
    • ทำไมถึงยังไม่ลองไปใช้ Android Studio กันดูซักทีล่ะ?
    • มาลองเรียกใช้งาน Android Support Library กันเถอะ
    • Import Class อย่างไรไม่ให้ซ้ำซ้อนกัน
    • ช่วยด้วย! Emulator พิมพ์ภาษาไทยไม่ได้!!
    • การติดโฆษณาบนแอปพลิเคชันแบบง่ายๆด้วย AppWrapper ของ Vserv
    • รู้จักกับ Keystore และ Debug/Signed Keystore
    • เกร็ดความรู้เกี่ยวกับการขายแอปพลิเคชันแอนดรอยด์
    • Guideline สำหรับการเริ่มต้นเขียนแอปพลิเคชันแอนดรอยด์
    • วิธีดึงข้อมูลที่อยู่ภายใน Internal Storage ของแอปพลิเคชัน [/data/data]
    • วิธีแก้ปัญหา Found 2 versions of android-support-v4.jar in the dependency list
    • เขียนโปรแกรมให้เป็น คิดกันอย่างไร? แก้ปัญหากันอย่างไร? [ตอนที่ 3]
    • การติดตั้ง Genymotion บน Mac OS X
    • ทำ Batch File สำหรับ Execute คำสั่ง ADB
    • การทำ ADB หรือ Debugging ผ่าน WiFi
    • ปัญหา Your APK cannot be analyzed using 'aapt dump badging'
    • Package Name บน Android Application คืออะไร?
    • เขียนโปรแกรมให้เป็น คิดกันอย่างไร? แก้ปัญหากันอย่างไร? [ตอนที่ 2]
    • เขียนโปรแกรมให้เป็น คิดกันอย่างไร? แก้ปัญหากันอย่างไร? [ตอนที่ 1]
    • ติดตั้ง Plugin ของ Genymotion ให้กับ Android Studio
    • ปัญหาตูดหมึกๆกับ Debug Certificate Expired ขณะที่ทำการ Run
    • ปัญหา Google Text-to-speech Engine บน Genymotion หยุดทำงาน
    • ติดตั้ง Google Apps ให้กับ Genymotion
    • ปัญหา INSTALL_FAILED_CPU_ABI_INCOMPATIBLE บน Genymotion
    • การขายแอปพลิเคชันบน Google Play
    • ติดโฆษณาบนแอพของเราด้วย AdMob [Google Play Service]
    • หา Developer Options ไม่เจอ~
    • การ Update Google Play Services Library
    • Android Manifest พื้นฐาน ประกอบไปด้วยอะไรบ้าง
    • วิธีแก้ปัญหา Export Aborted
    • USB Host และ USB Accessory บน Android
    • แชร์โค๊ดให้คนอื่นดู จงใช้ GitHub Gist เถิดดดดดด
    • การนำไฟล์ไปใส่ใน Genymotion [Copy file to Genymotion]
    • Graphical Layout ไม่แสดงภาษาไทย [ตัวหนังสือเป็นรูปสี่เหลี่ยม]
    • การซื้อเครื่องสำหรับนักพัฒนาแอปพลิเคชันแอนดรอยด์
    • คำสั่งใน API เวอร์ชันใหม่ บนแอปพลิเคชันที่รองรับ API เวอร์ชันเก่า?
    • อยากจะเอา APK ขึ้น Google Play ต้องทำยังไง?
    • Android Platform Version Dashboard - From the Past to the Present
    • วิธีแก้ปัญหา ClassCastException แบบไม่มีสาเหตุ
    • แอปพลิเคชันหยุดทำงาน ทำยังไงดี?
    • ว่าด้วยเรื่อง Function จะมีใครบ้างนะที่จะเข้าใจมัน
    • เจาะลึกกับการล็อคหน้าจอแอปพลิเคชัน [Screen Orientation]
    • การอ่าน Certificate Fingerprint จาก Keystore
    • ADT ชอบค้างตอนเปิด Properties ที่แถบ Android
    • การติดตั้ง ADB Driver แบบ Manual บน Windows
    • ใช้ IF-ELSE ยังไงให้สั้น [บางกรณีเท่านั้น]
    • วิธีแก้ปัญหา Installing Software has encountered a problem
    • วิธีเช็ค Fingerprint จาก debug.keystore แบบง่ายๆ
    • Genymotion - Android Emulator สุดเจ๋งสำหรับนักพัฒนาแอนดรอยด์
    • เจอปัญหา android.R หรือ R.java มีปัญหาทำยังไงดี
    • แก้ไข Package Name ยังไงไม่ให้ผิด
    • รวม ADB Driver สำหรับอุปกรณ์แอนดรอยด์
    • 5 วิธีการใช้ Log และ LogCat ให้เกิดประโยชน์
    • Incorrect line ending: found carriage return (\\r) without corresponding newline (\\n)
    • ว่าด้วยเรื่อง Resource, Assets และ External Storage
    • ติดตั้งโปรแกรมพัฒนา Android Application ง่ายๆด้วย ADT
    • แนะนำเล็กน้อยสำหรับผู้ที่จะอัพ App ที่ใช้ Google Maps ขึ้น Play Store
    • ซื้อเครื่องมาเขียนเขียนแอพแอนดรอยด์ จะเลิอกยังไงดี?
    • ว่าด้วยเรื่องการติดตั้ง App จากโปรแกรมลงบนอุปกรณ์แอนดรอยด์
    • ข้อมูลผู้ใช้งานอุปกรณ์แอนดรอยด์
    • เก็บค่าความละเอียดของหน้าจอ
    • ติดโฆษณาบนแอพของเราด้วย AdMob [AdMob SDK]
    • แก้ปัญหาภาษาไทยใน CSV แสดงผลเพี้ยน

Android Things

    • มาลอง Android Things ด้วยบอร์ด NXP Pico i.MX6UL กัน!! [ติดตั้งใช้งาน]

iOS Code

    • มามะ มาลองเขียน iOS App บน Android Studio กันเถอะ!!




เหล่าพันธมิตรแอนดรอยด์

Devahoy Layer Net NuuNeoI The Cheese Factory Somkiat CC Mart Routine Artit-K Arnondora Kamonway Try to be android developer Oatrice Benz Nest Studios Kotchaphan@Medium Jirawatee@Medium Travispea@Medium