Facebook''s Shimmer Library

Shimmer is an Android library that provides an easy way to add a shimmer effect to any view in your Android app. It is useful as an unobtrusive loading indicator, and was originally developed for Facebook Home. You can easily implement Facebook Shimmer to let the users know your app is performing ...

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

Viết Rspec cho Controller

Viết Rspec là 1 phần không thể thiếu trong quá trình phát triển ứng dụng, bên cạnh những phần test logic trong Model thì phần viết test cho controller cũng là 1 phần khá quan trọng của việc viết Rspec. Tổ chức test. 'Describe' và 'Context' là 2 thành phần giúp cho phần tổ chức test của chúng ...

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

Convert SharePreferences Android sang kotlin

Những gì cần tìm hiểu đã có hết trong bài viết này rồi: https://viblo.asia/p/toi-uu-android-shared-preferences-924lJM8bZPM Hôm nay mình sẽ mạn phép dùng bài viết của tác giả ở trên để hướng dẫn các bạn convert SharePreferences của Android sang Kotlin 1.1. Phần khởi tạo SharedPrefs companion ...

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

Internationalization (i18n) trong angular 5

I18n sẽ giúp cho website trở nên đa dạng hơn về mặt ngôn ngữ để tiếp cận người dùng trên toàn thế giới , trong angular cũng vậy. Trong angular i18n sẽ có các công dụng sau: Hiển thị ngày, số, phần trăm và đơn vị tiền tệ ở định dạng. Dịch văn bản trong template Xử lý văn bản thay thế. 1. ...

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

Ansible Fundamentals - Ad-hoc Commands

Introduction. Việc triển khai và quản lý servers một cách đáng tin cậy và hiểu quả không phải là một công việc đơn giản. Khi những công cụ như Ansible chưa xuất hiện, luôn có một rào cản giữa các quản trị viên hệ thống (system administrators) với các nhà phát triển (developers) cũng như người ...

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

Thiết lập đa ngôn ngữ trong ứng dụng theo setting

1. Thiết lập đa ngôn ngữ trong setting Nếu chỉ thiết lập đa ngôn ngữ theo ngôn ngữ của máy thì chắc mọi đã có thể làm được rồi, ở đây mình xin giới thiệu 1 cách thiết lập đa ngôn ngữ mà không theo ngôn ngữ máy, nó được chỉnh trong setting của ứng dụng chẳng hạn. 2. Khó khăn trong thiết lập ...

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

tools:title="LayoutPreview"

Chắc hẳn các bạn khi bắt đầu phát triển ứng dụng Android đều bắt đầu bằng việc xây dựng các layout với giá trị hard-coding như android:text="Họ và tên", android:text="Ngày sinh"... Sau đó chúng ta có thể là nhận được các lời chỉ bảo hoặc đọc từ các hướng dẫn trên mạng và chuyển các giá trị ...

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

Working with Forms AngularJS

AngularJS là một phần gắn bó với công việc hàng ngày của mình, hôm nay mình muốn chia sẻ một vài kiến thức về Forms trong AngularJS theo cách nhìn nhận mà mình đọc được trong sách, hy vọng giúp ích cho mọi người. Preparing the Example Project Đầu tiên chúng ta sẽ có một file html là forms.html ...

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

Installing Multiple Versions of Node.js

Khi phát triển ứng dụng Nodejs, bạn có bao giờ đối mặt với trường hợp là phải cài đặt nhiều vesion của Node. Điều này xảy ra khi bạn có nhiều project và chúng yêu cầu nhiều version node khác nhau. Chúng ta phải cực nhọc cài bằng tay những version node và basing chúng tới những project. Điều này rất ...

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

What are the differences between variables created using let, var or const?

Scope var If a variable is created inside a function, it is scoped to the function If a variable is created outside of any function, it is scoped to the global object let & const let and const are block scoped let and const are only accessible within ...

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

Xcode Interface Builder Tips And Tricks

Đối với iOS Developer, việc hàng ngày phải sử dụng đến xcode để xây dựng lên các giao diện. Chắc hẳn mỗi người cũng có các tips riêng dành cho mình, hôm nay tôi đọc được blog này với các tips rất thú vị khi sử dụng Interface Builder trong Xcode. Để dễ dàng chọn một đối tượng khi nó nằm phía ...

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

RxSwift: Transforming Operators

Chuyển đổi các Element Thêm ví dụ mới này vào playground: example(of: "toArray") { let disposeBag = DisposeBag() // 1 Observable.of("A", "B", "C") // 2 .toArray() .subscribe(onNext: { print($0) }) .addDisposableTo(disposeBag) } Đây là những gì bạn vừa làm: ...

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

Kiểm tra Cơ sở dữ liệu (Dữ liệu) với Các Mẫu Thử nghiệm Phần II

1.Thử nghiệm trigger Kiểm tra các yêu cầu về quy ước code đã được tuân theo trong giai đoạn coding của trigger Kiểm tra xem các trình kích hoạt được thực hiện cho các giao dịch DML tương ứng đã hoàn thành các điều kiện yêu cầu. Kiểm tra cập nhật dữ liệu một cách chính xác khi chúng đã được ...

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

Recyclerview sử dụng sao cho hiệu quả

RecyclerView là một wedget được sử dụng rất phổ biến để hiện thị một danh sách trong các ứng dụng android. Nó là một phiên bản nâng cấp của ListView giúp cho việc quản lý và hiển thị danh sách dữ liệu một cách hiệu quả và đơn giản . Việc sử dụng RecyclerView không quá khó đối với các lập trinh ...

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

Shift Left Testing - Bí quyết cho Phần mềm thành công

Shift Left Testing, một thần chú DevOps mới trong phát triển phần mềm: Khi tôi sử dụng thuật ngữ 'Shift Left', có thể bạn đang tự hỏi không biết Shift Left có liên hệ gì tới một phần mềm? Khoảng 2 thập kỷ trở về trước gần như là không có ‘Testing Phase’ (pha kiểm thử) riêng cho việc ...

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

Sử dụng Angular Material Paginator với ASP.NET Core và Angular

Trong bài viết này tôi muốn giới thiệu tới các bạn làm thế nào để phân trang sử dụng table của Angular Material với Angular cùng với ASP.NET Core WebAPI. Với Angular Material Table và Paginator Module nó là khá dễ để cài đặt phân trang trong một cách hay, như vậy bạn có thể sử dụng nó trên phía ...

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

Selenium Basic: Textbox, dropbox,checkbox and radio button

package learnSelenium; import java.util.concurrent.TimeUnit; import org.openqa.selenium.By; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.suppor ...

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

Hướng dẫn tạo tài khoản AWS Free 1 năm

1. Các bạn truy cập địa chỉ aws.amazon.com và click vào nút Create AWS Account như hình. 2. Chọn I am a new user, nhập vào email đăng ký sau đó bấm vào nút Sign in using our secure server (vâng, là sign in chứ ko phải sign up hay register gì đâu) 3. Nhập địa chỉ email và password của ...

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

Blockchain và những thay đổi của nền kinh tế hiện nay

Câu hỏi “ Blockchain sẽ thay đổi nền kinh tế như thế nào?” được đặt ra trên Quora. Sau đây là câu trả lời của Samantha Radocchia, đồng sáng lập Chronicled. Hãy nghĩ đến cách mà kinh tế chia sẻ đã bùng nổ trong thập kỷ vừa qua. Nếu bạn đã từng đi Uber hay Grab, hoặc thuê Airbnb, ...

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

Các kiểu dữ liệu của Google Cloud Bigquery

Bigquery suppost nhiều kiểu dữ liệu, có thể là những kiểu cơ bản như Interger, Boolean, hay những kiểu phức tạp hơn như Array, Struct. Chúng ta sẽ đi tìm hiểu khái quát từng kiểu dữ liệu. Khi lưu trữ cũng như truy vấn dữ liệu, hãy chú ý tới các thuộc tính của kiểu dữ liệu sau: Property ...

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