Language

MQTT: Giới thiệu, Cài đặt và Best Practices

MQTT (Message Queuing Telemetry Transport) là một giao thức nhắn tin publish/subscribe nhẹ, được thiết kế cho các thiết bị bị giới hạn tài nguyên và mạng không ổn định. Ban đầu được IBM phát triển vào cuối những năm 1990 để giám sát đường ống dầu qua liên kết vệ tinh, ngày nay nó đã trở thành tiêu chuẩn thực tế cho giao tiếp IoT — từ cảm biến nhà thông minh đến hệ thống tự động hóa công nghiệp.

Trong bài viết này, chúng ta sẽ tìm hiểu MQTT là gì, cách cài đặt, các ví dụ thực tế, trường hợp sử dụng, điểm mạnh/yếu và những best practices cần tuân theo.

Read More

Best Practice: Bluetooth Low Energy trên các nền tảng khác nhau

Bluetooth Low Energy (BLE) là công nghệ cốt lõi trong các thiết bị theo dõi sức khỏe, nhà thông minh, thiết bị y tế và nhiều sản phẩm IoT khác. Khi xây dựng ứng dụng có BLE, bạn thường phải lựa chọn giữa: iOS thuần (native), Flutter hoặc React Native.

Thay vì phụ thuộc vào các thư viện BLE bên thứ ba cho Flutter hay React Native, cách tiếp cận tôi khuyến nghị — và thực tế áp dụng — là viết toàn bộ logic BLE bằng Swift thuần với CoreBluetooth, sau đó expose nó ra cho từng framework cross-platform thông qua cơ chế bridge của chúng. Với React Native, đó là Native Modules. Với Flutter, đó là Platform Channels.

Cách này giúp bạn kiểm soát hoàn toàn BLE stack, đảm bảo hành vi nhất quán trong mọi dự án, và không phụ thuộc vào các package BLE bên ngoài vốn hay bị tụt hậu so với các bản cập nhật iOS SDK.

Read More

Core Bluetooth trên WatchOS


Bạn đã bao giờ nghĩ đến việc thêm Watch App vào sản phẩm của mình chưa? Thắc mắc làm thế nào để CoreBluetooth hoạt động trên Watch App của bạn? Bạn đã đến đúng nơi! Hướng dẫn này là cẩm nang dành cho bạn. Trong bài viết này, chúng tôi sẽ hướng dẫn bạn từng bước qua quy trình tích hợp mượt mà dữ liệu từ các thiết bị Bluetooth vào ứng dụng Apple Watch của bạn.

Read More

Phát triển Bluetooth: Callback vs Reactive Programming

Xây dựng ứng dụng Bluetooth Low Energy liên quan đến việc xử lý nhiều thao tác bất đồng bộ: quét, kết nối, khám phá dịch vụ, đọc/ghi characteristic, và xử lý ngắt kết nối. Cách tiếp cận dựa trên callback truyền thống có thể nhanh chóng trở nên khó quản lý, dẫn đến điều mà các nhà phát triển gọi là “callback hell”. Trong bài viết này, chúng ta sẽ so sánh cách tiếp cận callback với lập trình reactive sử dụng RxSwift và RxJava, và khám phá cách các pattern reactive có thể cải thiện đáng kể code BLE của bạn.

Read More

Có gì mới trong BLE trên iOS 26?

Apple tiếp tục nâng cao khả năng Bluetooth Low Energy trong iOS 26, mang đến các tính năng mới và cải tiến cho các nhà phát triển xây dựng trải nghiệm kết nối. Trong bài viết này, chúng ta sẽ khám phá những bổ sung mới nhất cho Core Bluetooth và cách chúng có thể mang lại lợi ích cho ứng dụng của bạn.

Read More

Bảo mật giao tiếp Bluetooth: Triển khai luồng xác thực và mã hóa

Bluetooth đã trở thành sợi dây vô hình kết nối các thiết bị của chúng ta, từ đồng hồ thông minh và thiết bị theo dõi sức khỏe đến khóa thông minh và hệ thống IoT công nghiệp. Nhưng sự tiện lợi đi kèm với rủi ro: giao tiếp Bluetooth là không dây và dễ bị chặn bắt, khiến nó dễ bị nghe lén, truy cập trái phép và tấn công phát lại.
Để chống lại những mối đe dọa này, xác thực và mã hóa là thiết yếu. Trong bài viết này, tôi sẽ giới thiệu một luồng bảo mật Bluetooth mạnh mẽ, giải thích cách xác thực, trao đổi khóa và truyền dữ liệu mã hóa hoạt động cùng nhau. Chúng ta cũng sẽ so sánh nó với TLS/HTTPS vì cả hai đều chia sẻ cách tiếp cận bảo mật phân lớp tương tự.

Read More

iOS 18: Có gì mới trong CoreBluetooth?

AccessorySetupKit, được giới thiệu trong iOS 18, cách mạng hóa cách các phụ kiện Bluetooth và Wi-Fi của bên thứ ba tích hợp với các thiết bị iOS. Framework này mang lại trải nghiệm thiết lập liền mạch, tăng cường sự tiện lợi cho người dùng và mở rộng khả năng cho các nhà phát triển.
Trong khi AccessorySetupKit hỗ trợ khám phá cho các thiết bị Bluetooth, Wi-Fi và Local Network, bài viết này sẽ tập trung cụ thể vào BLE (Bluetooth Low Energy). Quy trình thiết lập cho các thiết bị Wi-Fi và Local Network tuân theo cách tiếp cận tương tự.

Read More

Bảo mật Bluetooth: Pairing và Bonding

Trong thời đại hiện đại, Bluetooth đóng vai trò quan trọng trong việc kết nối các thiết bị một cách liền mạch. Từ thiết bị theo dõi thể dục đến thiết bị nhà thông minh, Bluetooth Low Energy (BLE) cho phép các thiết bị giao tiếp hiệu quả trong khi giảm tiêu thụ năng lượng. Tuy nhiên, với sự gia tăng của truyền thông không dây, đảm bảo bảo mật đã trở thành mối quan tâm chính. Hai khái niệm cốt lõi của bảo mật Bluetooth là PairingBonding, thường bị hiểu nhầm trong bối cảnh BLE.

Read More

Android Bluetooth: Một cạm bẫy

Phát triển ứng dụng Android hỗ trợ BLE đầy rẫy thách thức, đặc biệt khi nói đến việc quản lý các thao tác đồng thời. Một trong những cạm bẫy phổ biến nhất mà các nhà phát triển gặp phải là hành vi không mong đợi xảy ra khi cố gắng thực hiện các thao tác BLE liên tiếp nhanh chóng. Trong bài blog này, chúng ta sẽ đi sâu vào lý do tại sao điều này xảy ra và cách bạn có thể vượt qua nó bằng cách triển khai cơ chế hàng đợi tùy chỉnh cho các thao tác BLE.

Read More

Best practice: iOS vs Android Bluetooth

Công nghệ Bluetooth đã trở thành một phần không thể thiếu của các ứng dụng di động hiện đại, cho phép giao tiếp không dây liền mạch giữa các thiết bị. Dù là để kết nối với tai nghe không dây, truyền file, hay tương tác với các thiết bị smart home, Bluetooth đóng vai trò quan trọng trong việc nâng cao trải nghiệm người dùng.

Đối với các nhà phát triển di động, việc hiểu cách triển khai chức năng Bluetooth là điều cần thiết. Trong bài viết này, chúng ta sẽ đi sâu vào so sánh chi tiết các framework phát triển Bluetooth cho iOS và Android.

Read More