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

Tác giả: Trịnh Tiến Mạnh viết 17:11 ngày 07/09/2018

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

Tác giả: Vũ Văn Thanh viết 17:10 ngày 07/09/2018

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

Tác giả: Tạ Quốc Bảo viết 17:10 ngày 07/09/2018

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

Tác giả: Hoàng Hải Đăng viết 17:10 ngày 07/09/2018

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

Tác giả: Trần Trung Dũng viết 17:10 ngày 07/09/2018

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

Tác giả: Trần Trung Dũng viết 17:09 ngày 07/09/2018

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

Tác giả: Vũ Văn Thanh viết 17:09 ngày 07/09/2018

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ác giả: Trần Trung Dũng viết 17:08 ngày 07/09/2018

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

Tác giả: Trần Trung Dũng viết 17:08 ngày 07/09/2018

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

Tác giả: Tạ Quốc Bảo viết 17:08 ngày 07/09/2018

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

Tác giả: Trần Trung Dũng viết 17:07 ngày 07/09/2018

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

Tác giả: Vũ Văn Thanh viết 17:06 ngày 07/09/2018

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

Tác giả: Tạ Quốc Bảo viết 17:06 ngày 07/09/2018

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

Tác giả: Vũ Văn Thanh viết 17:06 ngày 07/09/2018

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

Tác giả: Trịnh Tiến Mạnh viết 17:05 ngày 07/09/2018

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

Tác giả: Hoàng Hải Đăng viết 17:05 ngày 07/09/2018

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

Tác giả: Tạ Quốc Bảo viết 17:04 ngày 07/09/2018

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

Tác giả: Vũ Văn Thanh viết 17:03 ngày 07/09/2018

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

Tác giả: Hoàng Hải Đăng viết 17:03 ngày 07/09/2018

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

Tác giả: Vũ Văn Thanh viết 17:02 ngày 07/09/2018