อัพเดทล่าสุด 7 เมษายน 2563
Android Code
• CameraX ตอนที่ 2 - ใช้งาน CameraX แบบง่ายๆด้วย CameraView• CameraX ตอนที่ 1 - รู้จัก CameraX กันแล้วหรือยัง?
• Notification in Android ตอนที่ 8 - อัปเดตข้อมูลให้กับ Notification
• Notification in Android ตอนที่ 7 - การแจ้งเตือนแบบ Heads-up notification
• Notification in Android ตอนที่ 6 - กำหนด Notification Style ในรูปแบบต่างๆ
• Notification in Android ตอนที่ 5 - Notification Channel
• Notification in Android ตอนที่ 4 - Notification Action
• Notification in Android ตอนที่ 3 - ทำให้ Notification สมบูรณ์ยิ่งขึ้น
• Notification in Android ตอนที่ 2 - คำสั่งพื้นฐานของ Notification
• Notification in Android ตอนที่ 1 - เรื่องพื้นฐานของ Notification ที่ควรรู้
• อยากจะเปิดหน้าแชทใน Facebook Messenger ผ่านแอปต้องทำยังไง?
• รู้จักกับคำสั่งสำหรับ Security ที่อยู่ใน AndroidX
• View Binding บนแอนดรอยด์ทำแบบไหนได้บ้างนะ?
• สร้าง Repository ใน MVVM บนแอนดรอยด์ให้เขียนเทสได้ง่ายกันเถอะ
• รู้จักกับ ViewPager2 ที่จะมาแทน ViewPager แบบเดิมๆ
• จะใช้ ViewModel หรือ AndroidViewModel ดี?
• มาเปลี่ยน Dependency Injection ให้เป็นเรื่องง่ายด้วย Koin กันดูมั้ย?
• เปลี่ยน Launch Screen ให้ดูดีกว่าที่เคยเป็นด้วยเทคนิคง่ายๆกันเถอะ
• จัดการ Fragment Back Stack อย่างไรให้เหมาะสม
• Dagger 2 in Android [Part 4] - ทำ Dependency Injection ให้กับ Android Framework Component ต่างๆ
• Dagger 2 in Android [Part 3] - ทำ Dependency Injection ให้กับ Activity และ Fragment
• ส่งข้อมูลระหว่าง Activity/Fragment แบบหล่อๆด้วย LiveData และ ViewModel ของ Android Architecture Components
• เมื่อทำ Google Maps แล้วอยากจะเช็คว่าพิกัดนั้นๆอยู่ในพื้นที่ที่กำหนดไว้หรือป่าว?
• Dagger 2 in Android [Part 2] - มาเตรียมโปรเจคสำหรับ Dagger กัน
• Dagger 2 in Android [Part 1] - Dependency Injection แบบหล่อๆด้วย Dagger 2
• เตรียมตัวให้พร้อมกับ Display Cutout บน Android P
• หมดปัญหาวุ่นวายกับ Background Task ด้วย WorkManager
• มาทำชีวิตให้ง่ายขึ้น เขียนโค้ดให้ดีขึ้นด้วย Android Support Annotation กันเถอะ
• แอบส่อง ImageDecoder ใน Android P ที่จะมาแทนที่ BitmapFactory
• สร้าง RecyclerView แบบสบายๆด้วย ListAdapter จาก Support library
• Service in Android - [ตอนที่ 6] JobIntentService จาก Support Library เพื่อใช้แทน IntentService
• Service in Android - [ตอนที่ 5] มาสร้าง Bound Service กันเถอะ
• Service in Android - [ตอนที่ 4] มาสร้าง Foreground Service กันเถอะ
• ทำ Auto Initialize ให้กับ Library แบบเท่ๆกันเถอะ
• รู้จักกับ google-services.json เมื่อต้องใช้งาน Google API และ Firebase
• Firebase Crashlytics มาแล้ววววว ลาก่อน Firebase Crash Reporting
• Service in Android - [ตอนที่ 3] เจาะลึกการเรียกใช้งาน Service และ Intent Service
• Service in Android - [ตอนที่ 2] Lifecycle ของ Service
• Service in Android - [ตอนที่ 1] พื้นฐานของ Service
• ItemTouchHelper ใน Recycler View ที่จะช่วยให้การ Drag และ Swipe เป็นเรื่องที่โคตรง่าย
• ว่าด้วยเรื่อง @SerializedName ใน Gson และ ProGuard
• ภาษา Kotlin กับการทำ Parcelable ในแอนดรอยด์
• ทำ Phone Number Verification ด้วย Auth API ของ Google Play Services
• จะทำยังไงให้ App รู้ได้ว่าผู้ใช้กด Screenshot ระหว่างเปิด App กันอยู่นะ?
• มาทำ Loading ที่ดีต่อใจผู้ใช้ใน Android App กันเถอะ
• รู้จักและเรียกใช้งาน Camera API v1 บนแอนดรอยด์แบบง่ายๆ [ตอนที่ 1]
• รู้จักและเรียกใช้งาน Camera API v1 บนแอนดรอยด์แบบง่ายๆ [ตอนที่ 2]
• ว่าด้วยเรื่อง MAC Address บนอุปกรณ์แอนดรอยด์
• มาเรียกใช้งาน Dialog บนแอนดรอยด์ให้ถูกต้องกันเถอะ
• Let's Fragment - ว่าด้วยเรื่องการสร้าง Fragment จาก Constructor ที่ถูกต้อง
• มาสำรวจกันว่ามีคำสั่งสำคัญอะไรบ้างที่เปลี่ยนแปลงไปบน Android O
• ลองเล่น Notification Channels ของเล่นใหม่จาก Android O
• ลองเล่น Font Resource ของเล่นใหม่จาก Android O
• ดัก Screen Orientation Event ใน Activity อย่างไรให้ถูกต้อง
• เก็บตกโค้ดแอนดรอยด์จาก Snippet ที่ใช้ใน Code Battle@Firebase 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
• ว่าด้วยเรื่อง Recycler View กับการใช้งานจริงในแบบฉบับเจ้าของบล็อก ตอนที่ 4
• การเปิด Page หรือ Official Account บน Social ต่างๆผ่าน Android App
• ว่าด้วยเรื่อง Recycler View กับการใช้งานจริงในแบบฉบับเจ้าของบล็อก ตอนที่ 3
• ว่าด้วยเรื่อง Recycler View กับการใช้งานจริงในแบบฉบับเจ้าของบล็อก ตอนที่ 2
• ว่าด้วยเรื่อง Recycler View กับการใช้งานจริงในแบบฉบับเจ้าของบล็อก ตอนที่ 1
• วันนี้แอปของคุณรองรับ Multi Window ของ Samsung แล้วหรือยัง?
• Style and Theme - เพราะชีวิตต้องมีสไตล์
• ลองเล่น Quick Settings Tile API ของเล่นใหม่ใน Android 7.0 Nougat
• มารู้จักกับ RxJava และ RxAndroid กันเถอะ [ตอนที่ 4]
• มารู้จักกับ RxJava และ RxAndroid กันเถอะ [ตอนที่ 3]
• มารู้จักกับ RxJava และ RxAndroid กันเถอะ [ตอนที่ 2]
• มารู้จักกับ RxJava และ RxAndroid กันเถอะ [ตอนที่ 1]
• รู้กันหรือเปล่าว่าแอนดรอยด์มีสิ่งที่เรียกว่า Device Administrator อยู่นะ
• สรุปเนื้อหาและสิ่งที่ไม่ได้พูดใน Firebase Android Codelabs จากงาน I/O Extended Bangkok [ตอนที่ 2]
• สรุปเนื้อหาและสิ่งที่ไม่ได้พูดใน Firebase Android Codelabs จากงาน I/O Extended Bangkok [ตอนที่ 1]
• รู้จัก Multi Window บน Android 7.0 Nougat และวิธีการรับมือ
• ทำไม 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 อีกหนึ่งอย่างที่นักพัฒนาแอนดรอยด์ควรรู้จัก
• มามะ มาลองเขียน iOS App บน Android Studio กันเถอะ!!
• ลองพัฒนา Android Application แบบ MVP กันดูมั้ย? ตอนที่ 1
• Using Google Direction API on Google Maps in Android with Google Direction Library
• Google Direction Library - ใช้งาน Google Direction API บน Google Maps แบบง่ายๆ
• มารู้จักกับ 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 v2 - การใช้งานบน Android Studio เบื้องต้น
• ลองทำ Unit Test บน Android Studio กันเถอะ
• รู้จักกับ Palette API ลูกเล่นใหม่เพื่อเพิ่มสีสันให้กับแอปของคุณ
• รู้จักการใช้งาน Deep Link (URL Scheme) กับ Android Application
• ลองหัดสร้าง Class และ Listener กันเถอะ - ตอนที่ 3
• ลองหัดสร้าง Class และ Listener กันเถอะ - ตอนที่ 2
• ลองหัดสร้าง Class และ Listener กันเถอะ - ตอนที่ 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 - Lifecycle ของ Fragment
• Let's Fragment - รู้จักกับ FragmentTransaction สำหรับการแสดง Fragment [ตอนที่ 2]
• Let's Fragment - รู้จักกับ FragmentTransaction สำหรับการแสดง Fragment [ตอนที่ 1]
• Let's Fragment - เริ่มต้นง่ายๆกับ Fragment แบบพื้นฐาน
• Fragment Principle - มารู้จักกับ Fragment กันเถอะ~
• แนะนำให้รู้จักกับ API ของ Google Play Services
• เก็บค่าตัวแปรให้ถาวรแบบง่ายๆได้ด้วย Shared Preferences
• การใช้งาน Simple TCP Library แบบ Simple TCP
• Simple TCP Library - ลากันที TCP ที่ยุ่งยาก
• การเซฟภาพหน้าจอแบบมี Dialog แสดงอยู่ด้วย
• ทำไมภาพถึงไม่ยอมแสดงใน Gallery
• มาซ่อนแถบเมนูแบบอัตโนมัติเหมือน Facebook และ Google+ กันเถอะ
• มาทำความรู้จักกับ Object Animator กันดีกว่า~!
• OnClick OnLongClick และ OnTouch สัมพันธ์กันอย่างไร?
• ใส่รหัสลับสำหรับเปิดแอปพลิเคชันด้วย Secret Code
• ทำไมต้อง findViewById ? คิดเล่นๆ แต่ได้อะไรมากกว่าที่คิด !
• มาลองเล่นกับ Assist บนแอนดรอยด์กันบ้าง
• BluetoothSPP - การใช้งาน Listener
• BluetoothSPP - การสร้างหน้าเลือกอุปกรณ์สำหรับเชื่อมต่อผ่าน Bluetooth
• BluetoothSPP - การใช้งานการเชื่อมต่ออัตโนมัติ
• BluetoothSPP - เปลี่ยนเรื่องบลูทูธให้เป็นเรื่องง่ายด้วย BluetoothSPP Library
• BluetoothSPP - การเชื่อมต่ออุปกรณ์ผ่านบลูทูธแบบง่ายๆด้วย BluetoothSPP
• ว่าด้วยเรื่อง Interpolator ใน Animation
• ยืนยันการออกจากแอปพลิเคชัน เมื่อกดปุ่ม Back
• วิธีดึงภาพ Thumbnail จากไฟล์วีดีโอที่อยู่ใน External Storage
• วิธีดึงภาพ Thumbnail จากไฟล์วีดีโอที่อยู่ใน Raw Resource
• จัดการกับเรื่องการหมุนหน้าจอด้วย Orientation Manager
• ภาพ Vector ขยายยังไงภาพก็ไม่แตกกกกกก
• มาทำให้แอปพลิเคชันรองรับหลายภาษากันเถอะ
• เกร็ดความรู้กับการจัดการกับไฟล์เสียงในโปรเจค
• การส่งข้อความผ่าน SMS แบบง่ายๆ
• การสร้าง Activity ใหม่และการข้ามไปมาระหว่าง Activity [แบบละเอียดสำหรับมือใหม่]
• การเก็บค่าไว้ใน Value Resource
• ลองทำ D-Pad Controller ใช้ในแอป
• วิธีตรวจสอบด้วยโค๊ดว่าเครื่องเป็น Smartphone หรือ Tablet
• สร้าง Timer สำหรับนับเวลาถอยหลังด้วยคลาส CountDownTimer
• เปลี่ยนเสียงพูดให้กลายเป็นข้อความด้วย Voice Recognition
• การทำ Text To Speech เพื่ออ่านข้อความที่ต้องการ
• Google Maps Android API v2 - การแสดงตำแหน่งปัจจุบันบน Google Maps
• แปลง String ให้เป็น Unicode
• การแสดงภาพ GIF Animation บนแอนดรอยด์
• ตัวอย่างการจัดการข้อมูลในฐานข้อมูลเบื้องต้น [ดู เพิ่ม แก้ไข ลบ]
• การเพิ่มเสียงประกอบลงใน Application [BGM & Effect]
• Screen Capture หรือ Capture ภาพบน Layout ผ่านโค้ด
• วิธีการทำ Splash Screen ที่ถูกต้อง (แต่ไม่ใช่ที่สุด)
• แสดงภาพแผนที่ Google Maps ในแอปด้วย Google Static Map
• ว่าด้วยเรื่อง Context
• การรับข้อมูล Intent จากแอปฯอื่นแล้วส่งข้อมูลกลับไป
• การรับข้อมูล Intent จากแอปอื่นๆ
• การอ่าน QR Code และ Barcode ด้วย Intent
• การใช้งานกล้องเพื่อบันทึกวีดีโอแบบง่ายๆด้วย Intent
• การใช้งานกล้องเพื่อถ่ายภาพแบบง่ายๆด้วย Intent
• การเลือกไฟล์ภาพจาก Gallery ด้วย Intent
• การใช้ Intent สำหรับแชร์ไฟล์ให้แอปอื่นๆ
• การใช้ Intent เพื่อเปิดไฟล์ด้วยแอปอื่นๆ
• การใช้ Intent เพื่อเปิดแผนที่ด้วยแอปอื่นๆ
• การใช้ Intent เพื่อเปิด URL ด้วยแอปอื่นๆ
• การใช้ Intent สำหรับแชร์ข้อความสำหรับ Email
• การเรียกเปิดแอพฯอื่นๆ ด้วย Intent
• การใช้ Intent สำหรับแชร์ข้อความ String ให้แอปอื่น
• Sensor API in Android - การใช้งาน Humidity Sensor
• Sensor API in Android - การใช้งาน Light Sensor
• Sensor API in Android - การใช้งาน Proximity Sensor
• Sensor API in Android - การใช้งาน Gyroscope
• Sensor API in Android - การใช้งาน Accelerometer
• การส่งข้อมูลระหว่าง Activity ผ่าน Intent
• SQLite in Android - การใช้ Cursor กับฐานข้อมูล SQLite
• SQLite in Android - การ Query ในฐานข้อมูล SQLite
• SQLite in Android - ฐานข้อมูล SQLite ถ้าเข้าใจก็ไม่ใช่เรื่องยาก
• Google Maps Android API v2 - การวาด Polyline และ Polygon ลงบน Google Maps
• Google Maps Android API v2 - การใช้ Listener กับ Camera ใน Google Maps
• Google Maps Android API v2 - การควบคุมมุมกล้องและการกำหนดค่าสำหรับแผนที่ใน Google Maps
• Google Maps Android API v2 - การใช้ Listener กับ Marker ใน Google Maps
• Google Maps Android API v2 - เปลี่ยนภาพ Marker ใน Google Maps
• Google Maps Android API v2 - การสร้าง Marker ลงบน Google Maps
• Google Maps Android API v2 - การเลื่อนไปยังตำแหน่งที่ต้องการบน Google Maps
• Google Maps Android API v2 - การกำหนดรูปแบบพื้นผิวของ Google Maps
• สร้างฐานข้อมูล SQLite อย่างไรให้ไว?
• ลองสร้าง JoyStick Controller ไว้ใช้ในแอป
• การนำเข้าข้อมูลจาก .csv ลงในฐานข้อมูล
• การสร้าง Custom Dialog
Android Design
• รับมือกับปัญหาชวนปวดหัวกับขนาดของตัวอักษรเมื่อต้องเจอกับฟอนต์ที่หลากหลาย• เมื่อขนาดหน้าจอของมือถือในยุคใหม่ ไม่ใช่ 16:9 อีกต่อไป
• แบ่ง Layout ให้รองรับหน้าจอทุกขนาดด้วย Configuration Qualifier กันเถอะ
• เลิกใช้ Left/Right และเปลี่ยนมาใช้ Start/End ใน Layout ของแอนดรอยด์แทนได้แล้วนะ
• ทำ Password Visibility Toggle แบบง่ายๆได้ด้วย Material Design Support Library
• จัดการภาพที่ใช้ใน Android Application อย่างไรให้ถูกต้อง
• Constrain Layout ของเล่นใหม่ที่จะมาเปลี่ยนโลกของ Android Layout
• มารู้จักกับ Prototyping Tools สำหรับงาน Mobile Application กันเถอะ
• สิ่งที่ควรจะรู้เมื่อต้องตะลุยไปกับงานแอนดรอยด์ที่เกี่ยวกับ Font สุดหรรษา
• เพราะดีไซน์บางอย่างนั้นไม่ได้เหมาะกับบนมือถือเสมอไป
• ทำไมแอนดรอยด์ต้องใช้หน่วย DP?
• แก้ปัญหาภาพพื้นหลังบิดเบี้ยวได้ง่ายๆด้วย Relative Layout
• 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]
• วิธีการออกแบบไอคอนสำหรับแอปพลิเคชันแอนดรอยด์
• การใช้งาน Nine Patch ในแอปพลิเคชันแอนดรอยด์
• Padding และ Margin สำคัญและต่างกันอย่างไร?
• เคล็ดไม่ลับกับภาพ Drawable Resource สำหรับรองรับหน้าจอหลายขนาด
• ภาพ Vector ขยายยังไงภาพก็ไม่แตกกกกกก
• เปลี่ยนภาพ Toggle Button ตามต้องการด้วย Drawable Selector
• เปลี่ยนภาพ Button ได้ดั่งใจด้วย Drawable Selector
• สร้างภาพง่ายๆจาก XML ด้วย Shape Drawable
• แท้จริงแล้วหน่วย dp คืออะไร?
• ว่าด้วยเรื่อง Size และ Density ของหน้าจอ
• Layout Weight ใช้อย่างไร ใช้ให้เป็น
• การกำหนดขนาดใน Properties
• Supporting Multiple Screens - การรองรับหน้าจอที่หลากหลาย
• Android Compatibility - ความเข้ากันได้ในแอนดรอยด์
• ว่ากันด้วยเรื่อง Nine Patch บนแอนดรอยด์
Android Dev Tips
• สรุปการเปลี่ยนแปลงของ Feature และ API ใน Android 10 (API 29)• สรุปการเปลี่ยนแปลงของ Feature และ API ใน Android 9.0 Pie (API 28)
• สรุปการเปลี่ยนแปลงของ Feature และ API ใน Android 8.1 Oreo (API 27)
• สรุปการเปลี่ยนแปลงของ Feature และ API ใน Android 8.0 Oreo (API 26)
• สรุปการเปลี่ยนแปลงของ Feature และ API ใน Android 7.1 Nougat (API 25)
• สรุปการเปลี่ยนแปลงของ Feature และ API ใน Android 7.0 Nougat (API 24)
• สรุปการเปลี่ยนแปลงของ Feature และ API ใน Android 6.0 Marshmallow (API 23)
• สรุปการเปลี่ยนแปลงของ Feature และ API ใน Android 5.1 Lollipop (API 22)
• สรุปการเปลี่ยนแปลงของ Feature และ API ใน Android 5.0 Lollipop (API 21)
• สรุปการเปลี่ยนแปลงของ Feature และ API ใน Android 4.4 KitKat (API 19)
• มากำหนด Authority ของ Content Provider ให้เหมาะสมกับแอปของคุณกันเถอะ
• สรุปเนื้อหา Modernize the Development of LINE Messenger for Android จากงาน LINE Developer Day 2019
• วันนี้คุณย้ายจาก Support Library ไปเป็น AndroidX แล้วหรือยัง?
• เปิดโปรเจค Android Studio ผ่าน Command Line บน Mac OS และ Linux
• รู้จักกับ Biometric Authentication บนแอนดรอยด์
• บทย่อของการเปลี่ยนแปลงใน Android แต่ละเวอร์ชัน [Feature & API]
• เดี๋ยวนี้ Google Play Console เค้ามี Internal Test ให้แล้วนะ
• Jetifier เบื้องหลังการทำงานของ Android Gradle Plugin สุดเทพสำหรับ AndroidX
• ลองตรวจสุขภาพโค้ดด้วย Inspect Code ใน Android Studio กันดูมั้ย?
• ปัญหา Translucent Window บน Android 8.0 Oreo ที่นักพัฒนาไม่ควรมองข้าม
• สรุปเนื้อหาสำคัญจากงาน Android Flash Talk ณ เชียงใหม่
• มาลองทำ Plugin เพื่อใช้งานบน Android Studio กันดีกว่า [ตอนที่ 1 - เริ่มต้น]
• เรียกใช้งาน Dependency ผ่าน Git แบบง่ายๆด้วย JitPack
• ยุคนี้ทั้งที เปลี่ยน findViewById เป็นแบบใหม่กันเถอะ
• เล่าสู่กันฟังกับ Architecture Components จากงาน GDD Europe 2017
• เขียนโปรแกรมให้เป็น คิดกันอย่างไร? แก้ปัญหากันอย่างไร? [ตอนที่ 4]
• Supporting Samsung Devices in 2017 is easier than ever for Android 7.0
• วิธีแก้ปัญหา Unable to unzip และ Could not expand ZIP บน Android Studio
• สรุปสาระสำคัญจากงาน Google I/O 2017 ที่นักพัฒนาแอนดรอยด์ไม่ควรพลาด
• ว่าด้วยเรื่อง Issue ของ Activity Stack สุดแปลกที่ไม่เคยเจอมาก่อน
• รวม Session สำหรับสาย Android ที่น่าสนใจจากในงาน Google I/O 2017
• สิ่งที่ Android Dev ควรรู้ใน Samsung Galaxy ยุค 2017 (และหลังจากนี้)
• เมื่อ Google Play บังคับให้นักพัฒนาต้องใส่ Privacy Policy เมื่อเข้าถึงความเป็นส่วนตัวของผู้ใช้
• วิธีการสร้าง Keystore บน Android Studio
• มาลอง Android Things ด้วยบอร์ด NXP Pico i.MX6UL กัน!! [ติดตั้งใช้งาน]
• เมื่อเจ้าของบล็อกต้องเจอปัญหา 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 ให้อยู่รอดปลอดภัย?
• วิธีใช้งาน AAR Library ในโปรเจคแอนดรอยด์ของคุณ
• 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
• 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
• วิธีการดึงไฟล์ฐานข้อมูลจากเครื่องจริง
• ทำไมถึงยังไม่ลองไปใช้ Android Studio กันดูซักทีล่ะ?
• การกำหนด Content Rating สำหรับแอพที่อยู่บน Google Play
• ไฟล์ AAR คืออะไร และแตกต่างอย่างไรกับ JAR
• มีอะไรบ้างใน Android 5.1 Lollipop MR1 [แบบฉบับนักพัฒนา]
• Android Drawable Importer - Plugin แนะนำสำหรับ Android Studio
• ขั้นตอนการติดตั้ง Plugin ให้กับ Android Studio
• รู้จักการใช้งาน Android Studio แบบพื้นฐาน - ตอนที่ 2
• รู้จักการใช้งาน Android Studio แบบพื้นฐาน - ตอนที่ 1
• เบื่อ Case Sensitive เวลาเรียก Code 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
• วิธีการติดตั้ง Java Development Kit (JDK) บน Windows
• การส่ง APK ขึ้น Google Play
• การขอ Permission เยอะๆบนแอนดรอยด์นั้นมันอันตรายจริงๆหรือ? Study Case จาก Pantip
• Case Study ที่ไม่ต้องเขียนโปรแกรมเป็นก็ขายแอปพลิเคชันได้
• Import Class อย่างไรไม่ให้ซ้ำซ้อนกัน
• มีอะไรใหม่ใน Android L Developer Preview [แบบฉบับนักพัฒนา]
• ช่วยด้วย! Emulator พิมพ์ภาษาไทยไม่ได้!!
• รู้จักกับ Keystore และ Debug/Signed Keystore
• เกร็ดความรู้เกี่ยวกับการขายแอปพลิเคชันแอนดรอยด์
• Guideline สำหรับการเริ่มต้นเขียนแอปพลิเคชันแอนดรอยด์
• วิธีดึงข้อมูลที่อยู่ภายใน Internal Storage ของแอปพลิเคชัน
• เขียนโปรแกรมให้เป็น คิดกันอย่างไร? แก้ปัญหากันอย่างไร? - ตอนที่ 3
• การติดตั้ง Genymotion บน Mac OS X
• ทำ Batch File สำหรับ Execute คำสั่ง ADB
• การทำ ADB หรือ Debugging ผ่าน WiFi
• Package Name คืออะไร ทำไมถึงสำคัญกับการพัฒนาแอปแอนดรอยด์
• เขียนโปรแกรมให้เป็น คิดกันอย่างไร? แก้ปัญหากันอย่างไร? - ตอนที่ 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
• ติดโฆษณาบนแอพของเราด้วย AdMob ใน Google Play Service
• หา Developer Options ไม่เจอ~
• Android Manifest ประกอบไปด้วยอะไรบ้าง (สำหรับผู้เริ่มต้น)
• USB Host และ USB Accessory บนแอนดรอยด์
• แชร์โค๊ดให้คนอื่นดู จงใช้ GitHub Gist เถิดดดดดด
• การนำไฟล์ไปใส่ใน Genymotion
• การซื้อเครื่องสำหรับนักพัฒนาแอปพลิเคชันแอนดรอยด์
• เมื่อต้องเจอคำสั่งใน Android API ที่เรียกใช้งานต่างกันในแต่ละเวอร์ชัน
• Device Art Generator - สร้างภาพตัวอย่างง่ายๆ บนภาพอุปกรณ์แอนดรอยด์
• แอปพลิเคชันหยุดทำงาน ทำยังไงดี?
• ว่าด้วยเรื่อง Function จะมีใครบ้างนะที่จะเข้าใจมัน
• เจาะลึกกับการล็อคทิศทางหน้าจอแอปพลิเคชัน
• การอ่าน Certificate Fingerprint จาก Keystore
• การติดตั้ง ADB Driver แบบ Manual บน Windows
• การทำงานของโฟลเดอร์ใน Resource
• วิธีเช็ค Fingerprint จาก debug.keystore แบบง่ายๆ
• Genymotion - Android Emulator สุดเจ๋งสำหรับนักพัฒนาแอนดรอยด์
• รวม ADB Driver สำหรับอุปกรณ์แอนดรอยด์
• ว่าด้วยเรื่อง Resource, Assets และ External Storage ในแอนดรอยด์
• ซื้อเครื่องมาเขียนเขียนแอพแอนดรอยด์ จะเลือกยังไงดี?