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: ...
Push Notification trên android với Azure Notification Hubs (ANH)
Việc push notification trên android không còn quá xa lạ với các ứng dụng đặc biệt với các ứng dụng sử dụng internet. Có rất nhiều library, hay các service hỗ trợ như Google Cloud Message (GCM) Amazon Simple Notification Service (ADM) Với ANH cũng tương tự như các service trên nhưng sử dụng ...
Quản lý sự kiện trong ứng dụng với Laravel Event
Cách đây 3 năm, tôi có một dự án web mà lúc đó mới chỉ biết sơ sơ về PHP, thế rồi với từ khóa “best PHP framework” Google đã trả lời hàng triệu kết quả mà chỉ cần lướt qua trang đầu, tôi đã thấy câu trả lời đó là Laravel, một cái tên thật lạ tai. Trước đó, tôi đã từng được nghe đến ...
Swift Closure
Documents Apple References Blog Blog What is closure? Closures are self-contained blocks of functinality that can be PASSED around and USED in your code -> Closure is a 1st class Object Closures can CAPTURE and STORE REFERENCES to any constants and variables from the ...
Multiple File Uploads sử dụng Dropzone trong Ruby on Rails
Trong bài viết này, chúng ta sẽ đi tìm hiểu cách upload nhiều file trong ứng dụng Ruby on Rails sử dụng một thư viện javascript là Dropzone. Dropzone là một thư viện javascript cho phép upload nhiều file thông qua Ajax, cho phép drag and drop file hoặc thư mục trên các trình duyệt khác nhau. Bài ...