Android Code
-
การส่ง Test Double ด้วย Koin ในคลาส Application เพื่อทำ UI Test
-
ส่งข้อมูลระหว่าง Activity/Fragment แบบง่าย ๆ ด้วย Fragment Result API
-
การเรียกใช้งาน Activity ที่มีการส่งข้อมูลกลับด้วย Activity Result API
-
ทำไมเราถึงไม่ควรเอา RecyclerVIew ใส่ไว้ข้างใน NestedScrollView
-
การใช้งาน ConcatAdapter ใน RecyclerView ร่วมกับ LayoutManager หลายๆแบบ
-
สร้าง Reuseable ViewModel ด้วย Interface Delegation เพื่อใช้กับ ViewModel ตัวอื่นๆ
-
Google Maps SDK for Android v3 - ตอนที่ 1 ทำความรู้จักกับ Maps SDK
-
เตรียมตัวให้พร้อมกับ Package Visibility ที่เพิ่มเข้ามาใน Android 11
-
จัดการกับ State Changes ใน Custom View อย่างไรให้ครอบคลุม (รวมไปถึง Inherited Custom View)
-
ทำเว็ปให้รองรับในแอปแอนดรอยด์แบบเท่ๆด้วย Trusted Web Activity
-
Android App Bundle — ตอนที่ 2 สิ่งที่ควรรู้ในการใช้งาน Android App Bundle
-
Android App Bundle — ตอนที่ 1 รู้จักความสามารถและเบื้องหลังในการทำงาน
-
CameraX ตอนที่ 2 — ใช้งานแบบง่าย ๆ ด้วย PreviewView และ CameraController
-
Notification in Android ตอนที่ 8 — อัปเดตข้อมูลให้กับ Notification
-
Notification in Android ตอนที่ 7 — การแจ้งเตือนแบบ Heads-up notification
-
Notification in Android ตอนที่ 6 — กำหนด Notification Style ในรูปแบบต่างๆ
-
Notification in Android ตอนที่ 3 — ทำให้ Notification สมบูรณ์ยิ่งขึ้น
-
Notification in Android ตอนที่ 2 — คำสั่งพื้นฐานของ Notification
-
Notification in Android ตอนที่ 1 — เรื่องพื้นฐานของ Notification ที่ควรรู้
-
สร้าง Repository ใน MVVM บนแอนดรอยด์ให้เขียนเทสได้ง่ายกันเถอะ
-
มาเปลี่ยน Dependency Injection ให้เป็นเรื่องง่ายด้วย Koin กันดูมั้ย?
-
Dagger 2 in Android [Part 4] — ทำ Dependency Injection ให้กับ Android Framework Component ต่างๆ
-
Dagger 2 in Android [Part 3] — ทำ Dependency Injection ให้กับ Activity และ Fragment
-
เมื่อทำ Google Maps แล้วอยากจะเช็คว่าพิกัดนั้นๆอยู่ในพื้นที่ที่กำหนดไว้หรือป่าว?
-
Dagger 2 in Android [Part 2] — มาเตรียมโปรเจคสำหรับ Dagger กัน
-
Dagger 2 in Android [Part 1] — Dependency Injection แบบหล่อๆด้วย Dagger 2
-
มาทำชีวิตให้ง่ายขึ้น เขียนโค้ดให้ดีขึ้นด้วย Android Support Annotation กันเถอะ
-
แอบส่อง ImageDecoder ใน Android 9 Pie ที่จะมาแทนที่ BitmapFactory
-
Service in Android — [ตอนที่ 6] JobIntentService จาก Android Jetpack เพื่อใช้แทน IntentService
-
Service in Android — [ตอนที่ 5] มาสร้าง Bound Service กันเถอะ
-
Service in Android — [ตอนที่ 4] มาสร้าง Foreground Service กันเถอะ
-
Firebase Crashlytics มาแล้ววววว ลาก่อน Firebase Crash Reporting
-
Service in Android — [ตอนที่ 3] เจาะลึกการเรียกใช้งาน Service และ Intent Service
-
ItemTouchHelper ใน Recycler View ที่จะช่วยให้การ Drag และ Swipe เป็นเรื่องที่โคตรง่าย
-
จะทำยังไงให้ App รู้ได้ว่าผู้ใช้กด Screenshot ระหว่างเปิด App กันอยู่นะ?
-
รู้จักและเรียกใช้งาน Camera API v1 บนแอนดรอยด์แบบง่ายๆ [ตอนที่ 2]
-
รู้จักและเรียกใช้งาน Camera API v1 บนแอนดรอยด์แบบง่ายๆ [ตอนที่ 1]
-
มาสำรวจกันว่ามีคำสั่งสำคัญอะไรบ้างที่เปลี่ยนแปลงไปบน Android 8.0 Oreo
-
ทำไมจึงไม่ควรเก็บข้อมูลทิ้งไว้ใน Singleton หรือ Static Variable
-
รู้จักกับ SnapHelper ของเล่นใหม่ที่เพิ่มเข้ามาใน RecyclerView
-
ว่าด้วยเรื่อง Recycler View กับการใช้งานจริงในแบบฉบับเจ้าของบล็อก ตอนที่ 4
-
การเปิด Page หรือ Official Account บน Social ต่างๆผ่าน Android App
-
ว่าด้วยเรื่อง RecyclerView กับการใช้งานจริงในแบบฉบับเจ้าของบล็อก ตอนที่ 3
-
ว่าด้วยเรื่อง RecyclerView กับการใช้งานจริงในแบบฉบับเจ้าของบล็อก ตอนที่ 2
-
ว่าด้วยเรื่อง RecyclerView กับการใช้งานจริงในแบบฉบับเจ้าของบล็อก ตอนที่ 1
-
ลองเล่น Quick Settings Tile API ของเล่นใหม่ใน Android 7.0 Nougat
-
รู้กันหรือเปล่าว่าแอนดรอยด์มีสิ่งที่เรียกว่า Device Administrator อยู่นะ
-
สรุปเนื้อหาและสิ่งที่ไม่ได้พูดใน Firebase Android Codelabs จากงาน I/O Extended Bangkok [ตอนที่ 2]
-
สรุปเนื้อหาและสิ่งที่ไม่ได้พูดใน Firebase Android Codelabs จากงาน I/O Extended Bangkok [ตอนที่ 1]
-
DEX with Over 65K Methods problem and how to use MultiDex in Android
-
DEX with Over 65K Methods และการทำ MultiDex ที่นักพัฒนาแอนดรอยด์ควรรู้จักไว้
-
Google Direction Library — ใช้งาน Google Direction API บน Google Maps แบบง่ายๆ
-
Chrome Custom Tabs ของดีที่จะช่วยให้การเปิดเว็ปในแอปเป็นเรื่องง่ายๆ
-
AppCompatDelegate สำหรับการทำ Activity ใดๆให้รองรับ AppCompat
-
รู้จักกับ Palette API ลูกเล่นใหม่เพื่อเพิ่มสีสันให้กับแอปของคุณ
-
รู้จักการใช้งาน Deep Link (URL Scheme) กับ Android Application
-
Let’s Fragment — เพิ่มลูกเล่นให้กับ View Pager ด้วย Page Transformer
-
Let’s Fragment — รู้จักกับ FragmentTransaction สำหรับการแสดง Fragment [ตอนที่ 2]
-
Let’s Fragment — รู้จักกับ FragmentTransaction สำหรับการแสดง Fragment [ตอนที่ 1]
-
เก็บข้อมูล Key-value ลงในเครื่องแบบถาวรด้วย Shared Preferences
-
เก็บตกโค้ดแอนดรอยด์จาก Snippet ที่ใช้ใน Code [email protected] Dev Day 2017
Android Design
-
กำหนดค่า Margin และ Padding ใน Layout Resource ด้วย Horizontal หรือ Vertical ได้แล้วนะ
-
รับมือกับปัญหาชวนปวดหัวกับขนาดของตัวอักษรเมื่อต้องเจอกับฟอนต์ที่หลากหลาย
-
เปลี่ยน Launch Screen ให้ดูดีกว่าที่เคยเป็นด้วยเทคนิคง่ายๆกันเถอะ
-
แบ่ง Layout ให้รองรับหน้าจอทุกขนาดด้วย Configuration Qualifier กันเถอะ
-
เลิกใช้ Left/Right และเปลี่ยนมาใช้ Start/End ใน UI Layout ได้แล้วนะ
-
ทำ Password Visibility Toggle แบบง่ายๆได้ด้วย Material Design Components
-
Constrain Layout ของเล่นใหม่ที่จะมาเปลี่ยนโลกของ UI Layout บนแอนดรอยด์
-
มารู้จักกับ Prototyping Tools สำหรับงาน Mobile Application กันเถอะ
-
สิ่งที่ควรจะรู้เมื่อต้องตะลุยไปกับงานแอนดรอยด์ที่เกี่ยวกับ Font สุดหรรษา
-
แก้ปัญหาภาพพื้นหลังบิดเบี้ยวได้ง่ายๆด้วย FrameLayout และ ImageView
Android Dev Tips
-
Google Play SDK Index - เครื่องมือแสดงข้อมูล Commercial SDK ที่นักพัฒนาควรรู้
-
การ Export ไฟล์ AAB บน Android Studio เพื่อนำไป Upload ขึ้น Google Play / Android App Store
-
การเปิดใช้งาน Play App Signing สำหรับแอปที่มีอยู่บน Google Play แล้ว
-
Context กับ Target Context ใน Instrumented Test ไม่เหมือนกันนะ
-
Task และ Back Stack ตอนที่ 8 - Multiple Task & Concurrent Document
-
Task และ Back Stack ตอนที่ 4 - Home Screen และ Recents Screen
-
ทำไม Android OS จึงเหมาะกับ Kiosk / Vending Machine ในปัจจุบัน
-
เมื่อ Google Play Services ให้ผู้ใช้ปิด Ads Personalization ได้
-
ทำไม App Architecture บนแอนดรอยด์ในยุคนี้ถึงนิยมใช้ Architecture Components?
-
การทำให้ Foldable Android Emulator รองรับ Posture ในรูปแบบต่างๆ
-
สรุปการเปลี่ยนแปลงของ 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
-
บทย่อของการเปลี่ยนแปลงใน Android แต่ละเวอร์ชัน [Feature & API]
-
เดี๋ยวนี้ Google Play Console เค้ามี Internal Test ให้แล้วนะ
-
Jetifier เบื้องหลังการทำงานของ Android Gradle Plugin สุดเทพสำหรับ AndroidX
-
ลองตรวจสุขภาพโค้ดด้วย Inspect Code ใน Android Studio กันดูมั้ย?
-
ปัญหา Translucent Window บน Android 8.0 Oreo ที่นักพัฒนาไม่ควรมองข้าม
-
รู้จักกับ google-services.json เมื่อต้องใช้งาน Google API และ Firebase
-
มาลองทำ Plugin เพื่อใช้งานบน Android Studio กัน - ตอนที่ 1 เริ่มต้น
-
เล่าสู่กันฟังกับ Architecture Components จากงาน GDD Europe 2017
-
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 เมื่อเข้าถึงความเป็นส่วนตัวของผู้ใช้
-
การเข้าใช้งาน GitHub แบบมี Two-Factor Authentication บน Android Studio
-
Floobits — Realtime Collaborative Editing สุดเจ๋งสำหรับ Android และ Web Developer ที่ไม่ควรพลาด
-
ปฏิบัติการณ์ทำ Mockup แบบฉบับเร่งด่วนโคตรๆแต่ไม่ธรรมดาด้วยเวลาแค่ 2 วัน
-
เหล่า Android Dev ทั้งหลายลองมาทำความรู้จักกับ Android TV กันเถอะ~
-
เปลี่ยนชื่อ Package Name ใน Android Studio ให้อยู่รอดปลอดภัย
-
Unit Test กับ Instrumented Test บน Android Studio ต่างกันอย่างไร
-
การตั้งค่า Environment Variable สำหรับ Android SDK บน Windows
-
การตั้งค่า Environment Variable สำหรับ Android SDK บน Mac OS
-
20 ข้อดีที่ทำให้ Android Studio เป็น IDE ที่น่าใช้กว่า Eclipse ADT
-
Android Drawable Importer — Plugin แนะนำสำหรับ Android Studio
-
เบื่อ Case Sensitive เวลาเรียก Code Completion บน Android Studio กันหรือป่าว
-
เปลี่ยนภาพไอคอนของแอปแบบง่ายๆด้วย Asset Studio บน Android Studio
-
การ Export ไฟล์ APK บน Android Studio เพื่อนำไป Upload ขึ้น Android App Store
-
Let’s Fragment — รู้จักกับ FragmentTransaction สำหรับการแสดง Fragment [ตอนที่ 1]
-
เมื่อต้องเจอคำสั่งใน Android API ที่เรียกใช้งานต่างกันในแต่ละเวอร์ชัน
-
Device Art Generator — สร้างภาพตัวอย่างง่าย ๆ ด้วยภาพบนอุปกรณ์แอนดรอยด์
-
Genymotion — Android Emulator สุดเจ๋งสำหรับนักพัฒนาแอนดรอยด์
-
ว่าด้วยเรื่อง Resource, Assets และ External Storage ในแอนดรอยด์
-
App Filter บน Google Play - ทำไมบางเครื่องถึงลงแอปบางตัวไม่ได้นะ?