Language

Đưa ứng dụng iOS của bạn lên Store

Gửi ứng dụng của bạn lên Apple Store không đơn giản như việc nhấn một nút “thần kỳ” rồi mọi thứ tự động hoàn thành, nhưng cũng không phức tạp như bạn nghĩ. Có thể đây là lần đầu tiên bạn phát hành ứng dụng đầu tiên của mình, và bạn chưa có cơ hội làm quen với quy trình gửi ứng dụng trước đó. Hướng dẫn từng bước này sẽ chỉ cho bạn quy trình chính để gửi ứng dụng từ con số không đến thành công. Lưu ý rằng bạn cần có Tài khoản Developer trả phí để hoàn thành việc này.
Bắt đầu thôi!

Read More

ANCS: Apple Notification Center Service

Lời mở đầu

ANCS, viết tắt của Apple Notification Center Service, được thiết kế bởi Apple. Nó cho phép các phụ kiện Bluetooth kết nối với thiết bị iOS qua BLE một cách đơn giản để truy cập các thông báo xảy ra trên thiết bị iOS.

Read More

Memory Leak


Là một Software Engineer, bạn chắc chắn đã nghe về khái niệm Memory leak. Memory leak là tình huống các khối bộ nhớ được cấp phát bởi chương trình vẫn còn trong bộ nhớ mặc dù chúng không còn được tham chiếu nữa. Leak lãng phí không gian bằng cách lấp đầy các trang bộ nhớ với dữ liệu không thể truy cập. Kết quả là, kích thước bộ nhớ sử dụng trong ứng dụng của bạn tiếp tục tăng, ảnh hưởng đến trải nghiệm người dùng và hiệu suất của ứng dụng. Tệ hơn nữa, ứng dụng của bạn sẽ bị crash ngẫu nhiên vì một tiến trình sẽ bị hệ thống kết thúc nếu nó tiêu thụ quá nhiều bộ nhớ.
Trong chủ đề này, chúng ta sẽ thảo luận cách bộ nhớ được quản lý trong iOS và cách sử dụng bộ nhớ hiệu quả. Đọc tiếp nào.

Read More

Thực hành tốt nhất: iBeacon


Chào mừng bạn đến với phần tiếp theo của series “Cách xử lý BLE ở chế độ background“.
Trong phần trước, tôi đã hướng dẫn bạn cách giữ cho ứng dụng của bạn sống càng lâu càng tốt khi ứng dụng vào chế độ background bằng cách sử dụng kỹ thuật State Preservation and Restoration được Apple hỗ trợ. Tuy nhiên, có một số trường hợp sử dụng mà kỹ thuật này không thể xử lý được, như mô tả bên dưới (tham khảo tài liệu Apple: Conditions Under Which Bluetooth State Restoration Will Relaunch An App)

Như bạn thấy, có một trường hợp phổ biến khi người dùng force quit ứng dụng từ multiple task view (Dù vô tình hay cố ý), kỹ thuật Restoration không thể đánh thức ứng dụng của bạn. Hãy tưởng tượng rằng ứng dụng của bạn có một tính năng cho phép người dùng nhấn một nút trên thiết bị BLE đã kết nối của bạn để tìm điện thoại của họ ở đâu, nhưng nếu ứng dụng của bạn không chạy hoặc không thể thức dậy để xử lý tín hiệu BLE gửi từ thiết bị của bạn, tính năng này sẽ vô dụng.
Trong bài viết này, tôi sẽ hướng dẫn bạn một kỹ thuật sử dụng iBeacon để giải quyết trường hợp này, giúp ứng dụng của bạn có thêm một cơ hội để thức dậy mặc dù nó đã bị người dùng terminate. Hãy bắt đầu!

Read More

Thực hành tốt nhất: Cách xử lý Bluetooth Low Energy ở chế độ background

Lời mở đầu

Khi làm việc với CoreBluetooth, bạn đã bao giờ quan tâm rằng ứng dụng BLE trên iOS có thể tồn tại như thế nào khi nó bị hệ thống terminate? Làm thế nào chúng ta có thể đưa nó trở lại background? Có thứ gì giống như service trên Android có thể tồn tại mãi mãi không? Bạn có thể tìm thấy câu trả lời cho tất cả các câu hỏi này trong bài viết này. Hãy đọc tiếp!

Read More

Làm việc với Thread Safe trên iOS


Như bạn có thể biết, từ “Thread safe” đề cập đến một khái niệm khoa học máy tính trong ngữ cảnh của các chương trình đa luồng. Một đoạn code được gọi là “Thread safe” nếu bất kỳ dữ liệu chia sẻ nào chỉ được truy cập bởi một thread tại bất kỳ thời điểm nào. Lưu ý rằng các dữ liệu chia sẻ này được gọi là critical section trong hệ điều hành.
Điểm quan trọng là các kiểu collection trong Swift như Array và Dictionary không phải thread-safe khi được khai báo mutable (với từ khóa var).
Trong bài viết này, chúng ta sẽ thảo luận một số kỹ thuật để làm cho code của chúng ta thread safe trong iOS.

Read More

Big Endian vs Little Endian


Trong khoa học máy tính, bit là đơn vị thông tin nhỏ nhất. Nó đại diện cho một chữ số của hệ thống số nhị phân. Một chuỗi 8 bit được gọi là một byte. Có hai cách để lưu trữ một chuỗi dữ liệu trong máy tính: Big Endian và Little Endian. Nếu công việc của bạn liên quan đến dữ liệu theo byte, bạn nên biết cách xử lý byte theo hai định dạng này. Trong bài viết này, tôi sẽ giải thích cách dữ liệu được lưu trữ trong máy tính, sự khác biệt chính giữa hai định dạng này, sau đó cung cấp một số code hữu ích để làm việc với byte trong Swift và Objective-C.

Read More