Factory Method Pattern in C#

Trong bài trước thì mình đã giới thiệu về "Builder Pattern in C#" , hôm nay thì mình xin tiếp tục giới thiệu về 1 pattern trong "Creational Patterns" , đó chính là Factory Method . Factory Method được sử dụng để định nghĩa interface tạo ra một object, nhưng chỉ để subclass quyết định class ...

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

Khôi phục trạng thái ứng dụng sau khi kill app.

Từ WWDC 2012 apple đã giới thiệu một tính năng khá đặc biệt mà thường chúng ta hay bỏ qua. Đó là việc phép người dùng quay lại ứng dụng của họ ở trạng thái chính xác mà họ đã rời khỏi ứng dụng. Đây là một tính năng mà mình thấy tương đối là hay. Như ta đã biết khi ứng dụng của bạn chuyển về trạng ...

Tác giả: Hoàng Hải Đăng viết 17:40 ngày 12/08/2018

Delegate trong Java

Delegate là gì? Delegate là một khái niệm quen thuộc trong C#, .NET, nó tương tự như con trỏ hàm trong C++. Delegate được dùng để tạo một bao đóng (encapsulation) cho bất kì phương thức nào, phù hợp (kiểu trả về, tham số) do delegate định nghĩa ra. Delegate có thể triệu gọi phương thức bất kì nơi ...

Tác giả: Hoàng Hải Đăng viết 17:40 ngày 12/08/2018

Có gì mới ở Constraint Layout

Chắc hẳn bạn đã từng sử dụng hoặc ít nhất cũng nghe thấy ConstraintLayout rồi chứ. Constraint layout là dạng layout tốt nhất để dựng UI, nó có thể đáp ứng được khả năng tự điều chỉnh kích thước theo kích thước màn hình. Mặc dù constraint layout có khả năng thực hiện công việc đó kể từ phiên bản ...

Tác giả: Bùi Văn Nam viết 17:40 ngày 12/08/2018

MVP pattern trong Android

Model-View-Presenter trong Android Có rất nhiều bài viết và ví dụ về kiến trúc MVP và có rất nhiều cách implement khác nhau. Và cộng đồng Android developers đang nỗ lực để implement pattern này với project Android một cách tốt nhất có thể. Nếu bạn quyết định áp dụng pattern này, bạn đang thực ...

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

Xây dựng sudoku game bằng react

Sudoku game là một trong những game giải đố mà tôi rất thích. Trong bài viết nay, tôi sẽ đề cập đến các bước cơ bản để xây dựng nên sudoku. Luật chơi Đặt số vào tất cả ô 9x9 để mỗi cột, mỗi hàng và mỗi nhóm 9 ô vuông 3x3 tạo thành 1 chuỗi số chứa các số từ 1 đến 9 Ta có khái niệm: peers, là ...

Tác giả: Bùi Văn Nam viết 17:40 ngày 12/08/2018

Sự khác nhau giữa equal?, eql?, ===, và == trong Ruby

Trong quá trình tìm hiểu về Ruby chắc hẳn chúng ta đã sử dụng hoặc nhiều lần bắt gặp các Equity method. Trong một số trường hợp chúng cho các kết quả giống nhau điều này đặt ra một câu hỏi là tại sao Ruby lại hỗ trợ nhiều method phục vụ cho việc so sánh như vậy? Để hiểu rõ hơn vấn đề này, chúng ta ...

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

Bạn không cần jQuery nữa đâu!

jQuery là một trong những thư viện javascript được yêu thích và đã từng được rất nhiều lập trình viên frontend sử dụng. Giờ đây, khi các trình duyệt ngày càng được phát triển và hỗ trợ nhiều tính năng hơn, chúng ta có thể thay thế những tác vụ của jQuery bằng các phương thức mặc định. Điều này ...

Tác giả: Bùi Văn Nam viết 17:40 ngày 12/08/2018

Canvas : Sân chơi thực sự trong Android

Khi nói đến việc tạo ra cái gì đó không làm được trên file xml sử dụng các View mặc định , các developer sẽ đối mặt với thử thách thực sự. Khi drawables và styles là không đủ, sự lựa chọn cuối cùng của chúng ta là vẽ nó! Canvas - sân chơi thực sự để các developer có thể tạo bất kỳ loại View hoặc ...

Tác giả: Bùi Văn Nam viết 17:40 ngày 12/08/2018

Quick Tip: Network Profiler in Android Studio 3.1

Nguồn bài viết: https://android.jlelse.eu/quick-tip-network-profiler-in-android-studio-3-1-491e530ac8f2 Android Studio 3.1 đã phát hành bản beta. Nó có thêm nhiều tính năng như kotlin lint check, D8 complier và Network Profiler cũng được sửa lại. Từ những ngày đầu của DDMS, chúng ra luôn có thể ...

Tác giả: Hoàng Hải Đăng viết 17:40 ngày 12/08/2018

Beginner With ES6

This articles, I want to show you guy about that basic of ES6, that you can understand and a few example on this it. As we know ES6 have been release at 2015. But on that time it just a few browser is supported it, But right now 2018, So many browser are supported, it also the most useful ...

Tác giả: Hoàng Hải Đăng viết 17:40 ngày 12/08/2018

Giới thiệu CoffeeScript 2 - Phần I

CoffeeScript là gì? CoffeeScript được xây dựng dựa trên JavaScript và nó biên dịch thành Javascript để bạn có thể chạy trên một trình duyệt Web hoặc sử dụng với các công nghệ như: Node.js cho các ứng dụng chủ. Quy tắc vàng của CoffeeScript: "It's just JavaScript". Các đoạn mã biên dịch sẽ thành ...

Tác giả: Bùi Văn Nam viết 17:40 ngày 12/08/2018

Đơn giản hóa việc sử dụng phương thức UICollectionViewFlowLayout Delegate trong Swift

Khi viết layouts cho collection view, chúng ta thường phân lớp UICollectionViewFlowLayout để có quyền truy cập vào các tùy chọn bổ sung được cung cấp. Có sáu thuộc tính được xác định trên UICollectionViewFlowLayout có thể được đặt bởi người dùng để xác định thuộc tính layouts : ...

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

Phần 3: Basic View

Project 5: Tip Caculator Tạo mới 1 project và tạo giao diện như sau cho ứng dụng Lưu ý: ở Content type của Text Field chọn Telephone Number để bàn phím chỉ hiện số khi nhập Income Gồm có Text Field, Label, Slider và kéo Outlet và Action cho chúng @IBOutlet weak var ...

Tác giả: Trịnh Tiến Mạnh viết 17:40 ngày 12/08/2018

Tại sao nên dùng Ruby on the Rails cho sản phẩm của bạn?

Hơn mười lăm năm trôi qua kể từ khi Ruby on Rails được giới thiệu. Một người đọc thông minh sẽ hiểu tên của nó có nghĩa là ngôn ngữ lập trình Ruby có một vai trò thiết yếu trong việc tạo ra framework cho các ứng dụng web. Ngày nay, có rất nhiều công cụ phát triển phần mềm. Tuy nhiên, ...

Tác giả: Hoàng Hải Đăng viết 17:40 ngày 12/08/2018

Override một số chức năng mặc định của gem Devise

Chắc hẳn với mỗi ROR developer đều đã nghe, đã sử dụng gem Devise ít nhất 1 lần rồi đúng không nào. Nhưng nếu chỉ dùng lại ở mức sử dụng những chức năng mặc định của Devise thì sẽ không có gì để bàn nhiều. Login, reset password, gửi mail reset password... đều là những chức năng mà Devise hỗ ...

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

Kotlin - API Control with Retrofit and RxJava

Giới thiệu Hầu hết chúng ta khi lập trình các ứng dụng cho mobile đều phải gọi api tới server để lấy hay cập nhật dữ liệu. Đối với những người mới như mình, mình mất khá nhiều thời gian để xem nên sử dụng cái gì, dùng như thế nào để lấy dữ liệu từ trên server xuống một cách dễ dàng và đơn ...

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

Một số điều cần biết khi sử dụng Socket.io

Mục đích **Chia sẻ một chút ** Đây là lần đầu mình viết blog để trên https://viblo.asia/. Có thể bài viết của mình sẽ có đôi chút lủng củng mặc dù vậy mong các bạn đọc đưa thêm phản hồi để bài viết được tốt hơn. Bài viết này không nhằm mục đích cho những bạn chưa biết gì về socket.io, nodejs, ...

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

Xây dựng mini weather app trên React

Mở đầu Setup hệ thống Trước tiên mình sẽ khởi tạo project bằng cách sử dụng npm để download các thư viện cần thiết và thiết lập môi trường cho ứng dụng: npm init Sau đây là các thư viện cần thiết mình đã cài đặt trong môi trường #package.json { "name": "weather_app", "version": ...

Tác giả: Hoàng Hải Đăng viết 17:40 ngày 12/08/2018

Tích hợp docker với project Laravel

Ở bài này mình sẽ hướng dẫn các bạn tích hợp docker vào dự án laravel. Docker (nếu chưa các bạn có thể cài đặt theo hướng dẫn tại (https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-16-04) Docker compose ( hướng dẫn cài đặt tại https://docs.docker.com/com ...

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