Kéo và Thả


Một số ứng dụng có thể tồn tại mà không cần bất kỳ bộ lưu trữ dữ liệu nào. Tuy nhiên, hầu hết các ứng dụng hữu ích khác đều lưu một số trạng thái như cấu hình người dùng, hồ sơ người dùng, mục tiêu, v.v. Trên iOS, Apple cung cấp Core Data như một framework để lưu trữ dữ liệu quý giá của bạn. Một điều cần lưu ý là mặc dù CoreData có thể lưu trữ dữ liệu trong cơ sở dữ liệu quan hệ nhưng thực tế nó không phải là một database engine.
Trong bài hướng dẫn này, tôi sẽ chia sẻ với bạn một trải nghiệm tồi tệ tôi gặp phải khi làm việc với Core Data. Hy vọng rằng sau khi đọc chia sẻ của tôi, bạn sẽ tránh được vấn đề tương tự trong các dự án của mình.
Hãy bắt đầu.

Tại Fossil, tôi đã có cơ hội thử nghiệm tích hợp Google Drive như một nền tảng lưu trữ đám mây. Ưu điểm chính của việc sử dụng Google Drive là dễ dàng chia sẻ với các thành viên khác, với giao diện web tốt để chỉnh sửa nội dung các thư mục, và nó miễn phí. Tuy nhiên, tôi đã gặp khó khăn khi cố gắng làm cho Google Drive hoạt động do thiếu tài liệu và bài viết liên quan đến Google Drive APIs, đặc biệt là trong Swift. Ngoài ra, code và ví dụ trên trang web của Google đã lỗi thời. Do đó, tôi quyết định viết bài viết này với hy vọng tiết kiệm thời gian của bạn khi bạn muốn tích hợp Google Drive vào ứng dụng của mình. Hãy bắt đầu.

Tối qua, tôi đọc một chương của một cuốn sách là một trong những cuốn sách yêu thích của tôi: "The pragmatic programmer" (Của Andrew Hunt và David Thomas). Chương này thảo luận về cách sử dụng assertion để làm code dễ debug hơn. Chúng ta đều biết rằng assertion là một công cụ thiết yếu để viết test, nhưng nó làm được nhiều hơn thế. Hãy cùng tôi gặp gỡ anh chàng này: Assertion.

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!
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.

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.
![]()
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!