Skip to main content

Posts

Những sai lầm trong RxSwift bạn nên tránh

Khi chúng ta bắt đầu học một ngôn ngữ lập trình mới hay frameworks mới, ta thường tạo nhiều lỗi do chưa hiểu kỹ được vấn đề. Bài viết này sẽ giới thiệu những sai lầm thường gặp khi làm việc với RxSwift. 1. combineLatest vs withLatestFrom Đây là lỗi rất thường hay gặp phải. combineLatest gởi event khi có bất kì một observales bên trong nào của nó gởi một event. Vì thế, nếu bạn muốn nhận phản hồi từ việc tap một button thì đó là ý tưởng sai lầm nếu sử dụng combineLatest. 2. Observable nên được khai báo với lazy Observable bản chất là một lazy sequence. Nó không nên chạy một logic nào cho đến khi có subscription. Đôi khi, ta cần bọc một API có sẵn trong một Observable: func rx_myFunction() -> Observable<Int> { let someCalculationResult: Int = calculate() return .just(someCalculationResult) } Việc bọc một giá trị đơn cũng chấp nhận được. Tuy nhiên, ta lại chạy tất cả các logic để tính toán giá trị trước một subscription. Nếu bạn sử dụng deffered, phé...

Phương thức bảo mật tối thiểu cần phải có cho mọi ứng dụng iOS

Bảo mật ứng dụng của bạn là một trong những khía cạnh quan trọng nhất của phát triển phần mềm. Người dùng ứng dụng của chúng ta hy vọng rằng các thông tin của họ đang được giữ một cách riêng tư và an toàn. Trong bài viết này, chúng ta sẽ thảo luận những sai lầm mà các nhà phát triển thực hiện đối với bảo mật ứng dụng và cách khắc phục chúng. Lưu trữ dữ liệu nhạy cảm ở sai vị trí Tôi đã nghiên cứu nhiều ứng dụng từ AppStore và nhiều ứng dụng trong số đó đang thực hiện cùng một lỗi, lưu trữ dữ liệu nhạy cảm ở nơi chúng không thuộc về. Nếu bạn đang lưu trữ những dữ liệu nhạy cảm đó trong UserDefaults , thì bạn đang mạo hiểm thông tin của người dùng. UserDefaults được lưu trữ đơn giản như một tệp danh sách các thuộc tính nằm bên trong thư mục Preferences ở trong ứng dụng của bạn. Chúng được lưu trong ứng dụng của chúng ta mà không bị mã hóa dưới bất kì hình thức nào. Về cơ bản, bằng cách sử dụng ứng dụng của bên thứ ba của hệ điều hành macOS ví dụ như iMazing , thậm c...

Remote push và Local push notifications trong iOS

Giới thiệu. Chắc hẳn với tất cả các app điện thoại nói chung và iOS nói riêng thì push notification là một phần không thể thiếu trong quá trình phát triển app đối với các lập trình viên. Khi sử dụng notifications, chúng ta có thể thông báo cho user những thông tin cũng như sự kiện quan trọng khi người dùng không bật app. Push notification có 2 kiểu: Local notification tức là push thông báo ở dưới local. Push notification hay là Remote notifications là sử dụng các remote push như Firebase, SNS Amazon cloud service thông qua APNS. Vấn đề. Dạo gần đây khi iOS lên iOS 12.0 ứng dụng của mình gặp rất nhiều vấn đề về Push notification từ Local push đến Remote push . Tuy code của các tiền bối trước rất ngon lành rồi nhưng mình cần tìm hiểu thêm về push notification để có thể debug trong đống code push siêu nhân các tiền bối để lại. Hiện tại ứng dụng của mình đang dính đến 1 cái Local notificaiton không hoạt động theo ý muốn và cũng đang phải nhờ cao nhân chỉ giáo =...

Xử lý việc tùy chỉnh UIColors với cách chính xác trong iOS

Nếu bạn là nhà phát triển ứng dụng thì bạn chắc chắn phải đối mặt với một số thách thức khi xử lý nhiều mã màu mà bạn đã sử dụng trong nhiều ứng dụng. Mở đầu Nếu bạn muốn thay đổi màu sắc cho một UIView trên storyboard bạn sẽ phải thông qua một màn hình chọn màu hoặc bạn thực hiện việc này trong code thông các hàm khởi tạo màu của class UIColor như: init(white: CGFloat, alpha: CGFloat) init(hue: CGFloat, saturation: CGFloat, brightness: CGFloat, alpha: CGFloat) init(red: CGFloat, green: CGFloat, blue: CGFloat, alpha: CGFloat) init(CGColor cgColor: CGColor!) init(patternImage image: UIImage) init(CIColor ciColor: CIColor) Điều này có vẻ khá là nhàm chán trong khi chúng ta phải thiết lập màu sắc bằng cách đưa ra các giá trị thích hợp, ví dụ: self . view . backgroundColor = UIColor ( red : 120 / 255 , green : 150 / 255 , blue : 200 / 255 , alpha : 1 ) Color Sets Apple đã giới thiệu một thứ gọi là Color Sets từ Xcode 9. Color Sets sẽ giúp bạn xác định...

Realm database trong iOS

I. Giới thiệu Đã là lập trình viên iOS, hẳn ai trong chúng ta cũng đã từng sử dụng Core Data để lưu dữ liệu của App vào database. Chúng ta đều có thể nhận thấy Core Data tương đối khó xử dụng ngay cả với những người đã có kinh nghiệm, code dài dòng, và việc quản lý dữ liệu rất khó khăn. Core Data lưu dữ liệu vào SQLite, và để nhìn thấy dữ liệu và quản lý dữ liệu trong SQLite một cách trực quan, chúng ta cần sử dụng các công cụ trả phí đắt tiền như SQLite Professional, Core Data Editor,… Realm database khiến những đau thương khi phải làm việc với Core Data không còn nữa. So với Core Data, Realm có rất nhiều lợi thế: Dễ dàng sử dụng hơn Tốc độ query nhanh hơn Quản lý dữ liệu dễ dàng và trực quan hơn Open source và tài liệu tham khảo được viết rất tốt Cross platform Với rất nhiều lợi thế như trên, Realm ngày càng được sử dụng phổ biến hơn. Trong bài viết này tôi xin giới thiệu với các bạn cách sử dụng Realm một cách cơ bản nhất thông qua một ứng dụng demo thực tế. ...