
Swift - Closure: Bài 1: Closure cơ bản
Swift - Closure: Bài 1: Closure cơ bản Hôm nay, mình xin đổi gió một chút, để nhân tiện ôn lại phần closure. Closure cơ bản 1. Đặt vấn đề Closure là gì? Định nghĩa các kiểu thì mình không đề cập nhiều nữa, trên mạng có rồi. Mình sẽ dựa vào những ví dụ thực tế để giải thích ý nghĩa. Tất ...

What's New in Android N and Wear 2.0
Mặc dù phiên bản Developer Preview cho Android N đã sẵn sàng trước khi Google I / O diễn ra cho các thiết bị lựa chọn, Google đã công bố một phiên bản chính thức cho người sử dụng với các thiết bị trong I / O, mở cửa cho nhiều người để trải nghiệm các tính năng và kiểm tra những gì có sẵn trong ...

RxSwift: Bài 6: RxCocoa (Part 1)
RxSwift: Bài 6: RxCocoa 1.Tổng quan Ta sẽ nghiên cứu 1 cái app lấy thời tiết ở 1 thành phố. Source code ở đây. Chúng ta sẽ dùng RxSwift, RxCocoa and SwiftyJSON để lấy data từ API. Sau này mình sẽ có 1 loạt bài viết về các cách lấy JSON trong đó có Codable. Các bạn lấy source về rồi vào ...

RxSwift: Bài 5 - Observables and Subjects in Practice (Part 3)
RxSwift: Bài 5 - Observables and Subjects in Practice (Part 3) WHICH DISPOSE BAG TO USE ? Như vậy, nhìn chung các bạn đã hiểu sơ về cách giao tiếp giữa 2 màn hình. Bây giờ, ta cần tìm hiểu thêm về dispose bags để quản lý bộ nhớ của Observable supscriptions tốt hơn. Dispose Bag rất hay trong ...

Method dispatch hay trò lố của protocol
Method dispatch là gì? Method dispatch là thuật toán xác định cách thức vận hành method thông qua compiler. Nhắc đến method dispatch, thường người ta sẽ nói đến 2 kiểu điển hình: Static dispatch: xác định hàm được chạy trong quá trình biên dịch. Dynamic dispatch: xác định hàm được chạy trong ...

RxSwift: Bài 5 - Observables and Subjects in Practice (Part 2)
RxSwift: Bài 5 - Observables and Subjects in Practice (Part 2) Step 3: Talking to other view controllers via subjects Phần này ta sẽ connect ViewController chính của ta với PhotosViewController, để người dùng có thể chọn ảnh tuỳ ý từ album ảnh của họ. Trước hết, ta comment phần hard-code ...

RxSwift: Bài 3 - Disposing and terminating
RxSwift: Bài 3 - Disposing and terminating 1. Đặt vấn đề: Nhắc lại là 1 observable sẽ không làm bất kì điều gì cho đến khi nó nhận một subscribe. Cái việc subscription này sẽ trigger hay báo hiệu cho một observable để bắt đầu phát ra các events, cứ thế cho đến khi nó phát ra sự kiện .error ...

RxSwift: Bài 5 - Observables and Subjects in Practice (Part 1)
RxSwift: Bài 5 - Observables and Subjects in Practice (Part 1) Đến bài này, có lẽ mn đã hiểu observables và các loại subjects. Tuy nhiên thực tế để áp dụng như binding UI đến data model hay đưa ra một new controller và gán ngược output lại nó lại rất khó khăn chứ không đơn giản. Bây giờ mình ...

Tìm hiểu về phương pháp lập trình Test Driven Development (part2)
Mình sẽ tiếp tục part 2 về TDD Các bạn theo dõi part 1 tại đây Ở part 1 mình đã viết test 1 cho nhận vào một số chia hết cho 3, trả về chuỗi Fizz, bắt tay vào test 2 nào 2. Nhận vào một số chia hết cho 5, trả về chuỗi Buzz Trường hợp thứ 2 là hàm run() nhận vào một số n chia hết cho 5 (nhưng ...

Làm việc hiệu quả với Bitmap trong Android [Part 1]
Thuật ngữ Load Bitmap Efficiently Chúng ta biết rằng trong lập trình Mobile nói chung và Android nói riêng, Bitmap luôn được sử dụng rất nhiều để tạo Graphic Design cho ứng dụng bởi lẽ chúng sẽ tạo nên sự trực quan cho người dùng hơn là những dòng chữ khô khan. Một ứng dụng đẹp là một ứng dụng ...

RxSwift: Bài 6: RxCocoa (Part 2)
RxSwift: Bài 6: RxCocoa (Part 2) Retrieving data from the OpenWeather API Trong ApiController, ta thay fake data bằng đoạn code sau: func currentWeather(city: String) -> Observable<Weather> { return buildRequest(pathComponent: "weather", params: [("q", city)]) .map { json in ...

RxSwift: Bài 1 - Observable và Just, Of, From
RxSwift: Bài 1 - Observable và Just, Of, From Đôi lời: Mình viết loạt bài này không phải là loạt bài tut, nó chỉ là những kiến thức mình tự hiểu và tự take note dưới góc nhìn của một newbie. Hiện giờ tài liệu RxSwift khá mơ hồ và đọc rất thiếu chiều sâu. Do đó, mình muốn viết 1 loạt bài cho ...

Manipulating Browser's History With HTML5 History API
Background Browser provided ways for user to navigate around the web by using something call a URL(Uniform Resource Locator) either by clicking on the link or entering it directly into the browser's location bar. Browser making a request to the server identify by the URL and the server perform ...

RxSwift: Bài 4 - Subjects (Part 3) - Variables
RxSwift: Bài 4 - Subjects (Part 3) - Variables 1. Giới thiệu: Như để cập ở Part 1, 1 Variable có các tính chất của BehaviorSubject và lưu trữ giữ liệu hiện tại của nó như là trạng thái hiện tại của nó. Bạn có thể truy cập giá trị hiện tại này thông qua property "value" của nó. Và bạn cũng ...

Laravel Controller: Ngưng ngược đãi (1)
Một dự án khi có nhiều người cùng tham gia, thời gian kéo dài, chức năng tăng lên thì nảy sinh cả tỉ tỉ vấn đề nhức nhối. Một trong những vấn đề đó chính là controller càng ngày càng như 1 đống hổ lốn, khó đọc, khó bảo trì và rất... bự. Chỉ cần nghĩ đến việc fix 1 bug nhỏ nhỏ lúc đăng nhập thôi ...

RxSwift: Bài 2 - Subscribing to observables
RxSwift: Bài 2 - Subscribing to observables 1. Khái niệm Subscribe (đăng kí) đến một RxSwift observable khá giống như NotificationCenter, thay vì addObserver(), ta dùng subscribe(). Không giống như NotificationCenter, cái mà ta hay dùng .default như là 1 singleton instance, mỗi observable ...

Phân tích connect() và mapStateToProps()
Giới thiệu Chào các bạn, bài viết này mình sẽ chia sẻ hai khái niệm (function) chính mình sẽ làm việc, chạm mặt rất nhiều lần trong một ứng dụng React và Redux các bạn nhé, đó chính là connect() và mapStateToProps(). Mình hi vọng qua bài viết này, đâu đó giúp cho các bạn mới bắt đầu với React và ...

RxSwift: Bài 4 - Subjects (Part 2) - BehaviorSubject và ReplaySubject
RxSwift: Bài 4 - Subjects (Part 2) - BehaviorSubject và ReplaySubject 1. BehaviorSubject BehaviorSubject tương tự như PublishSubject ngoại trừ chúng sẽ nhận giá trị gần nhất của .onNext event đến những new subscribers . Xem sơ đồ sau: Dòng thứ nhất là BehaviorSubject, 2 dòng tiếp theo ...

RxSwift: Bài 4 - Subjects (Part 1) - PublishSubject
RxSwift: Bài 4 - Subjects (Part 1) - PublishSubject 1. Đặt vấn đề Ở ba bài trước, bạn đã biết observable là gì? Làm sao để tạo ra nó, làm sao để subscribe nó, làm sao để dispose khi đã subscribe xong. Trong thực tế, ta muốn add new values vào observable at runtime mà sau đó sẽ emit đến ...

Programming languages' milestones: An overview from 1960 - present (the last part)
Previously on Programming languages' milestones: An overview from 1960 - present : Part 1 : (Full article is provided on this url: https://viblo.asia/p/programming-languages-milestones-an-overview-from-1960-present-part-1-yMnKMq2rK7P ) Part 2 : (Full article is provided on this url: ...