CI/CD với Travis-ci và Fastlane (Part 2)

Hi all, Tiếp nối phần một, hôm nay mình sẽ tiếp tục chia sẻ với các bạn về cách cài đặt fastlane và tích hợp để sử dụng với Travis. Fastlane là công cụ tự động hoá, giúp việc build và release ứng dụng di động trở nên dễ dàng và đơn giản. Các bạn có thể tham khảo đầy đủ tài liệu về fastlane tại ...

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

Các cách tốt nhất để tắt Keyboard trong 1 View Controller (iOS)

Trong khoảng thời gian trải qua dự án. Mình học hỏi được khá nhiều điều mới cao siêu và thú vị, nhưng cho đến 1 hôm mình được giao task nhỏ về keyboard mình mới biết rằng hoá ra có những cái rất cơ bản nhưng mình vẫn chưa biết. Bài viết này mình xin chia sẻ 1 bài dịch của 1 tác giả nước ngoài để ...

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

Bắt đầu thực hiện một ví dụ CRUD với Redux

Bài viết là hướng dẫn thực hiện một ví dụ đơn giản về CRUD các bài viết sử dụng Redux. Về các thành phần trong Redux mọi người có thể đọc hiểu ở trang chủ và một số bài viết trên Viblo. Cài đặt CLI: npm install -g create-react-app Tạo ứng dụng React: create-react-app crud-redux Di ...

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

Có gì đặc biệt với Textview trong Android P?

Android P được ra mắt bởi Google vào ngày 07 tháng 03 năm 2018, bản preview đầu tiên được release vào cùng ngày và bản final beta cuối cùng được released vào ngày 25 tháng 07 năm 2018 Có một số tính năng mới như giao diện mới cho quick setting menu, đồng hồ được chuyển sang bên trái của ...

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

Hướng dẫn lập trình macOS phần 3b (cuối)

Trước lúc bước vào phần mới tiếp tục thì chúng ta hãy cùng nhau xem lại thành quả của lần trước: (Refer bài viết chi tiết tại ĐÂY) Ở phần trước chúng ta đã viết xong tất cả các hàm cho những button ở trên màn hình, cơ bản app của chúng ta đã chạy thành công nhưng vẫn chưa đủ. Những button ở ...

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

Xây dựng một hệ thống gợi ý Collaborative Filtering dễ dàng như thế nào?

Hệ thống gợi ý là một hệ thống sử dụng các dữ liệu thu thập được từ người dùng nhằm dự đoán, gợi ý cho người dùng những sản phẩm, tính năng, dịch vụ mà người dùng có thể thích, từ đó nâng cao được chất lượng dịch vụ và thu lại lợi nhuận. Vậy cách để thực hành xây dựng một hệ thống gợi ý như thế ...

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

Tối ưu việc khởi tạo View bằng code trong Swift

Bên cạnh các file interface như xib, nib, storyboard, thì chúng ta cũng có thể thiết kế các view bằng code thuần. Việc khởi tạo bằng code cũng cho chúng ta nhiều điểm hay như có thể reuse code, tạo các lớp abstraction...Tuy nhiên, việc này cũng có cái hại là dễ dàng làm cho code trở nên rối rắm ...

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

Mocking request HTTP với Nock

Hôm nay, mình xin với thiệu với các bạn cách sử dụng Nock để tạo các request HTTP giả lập trong quá trình test. Hãy cùng tìm hiểu Nock qua các nội dung: Tại sao phải mock các HTTP request trong quá trình testing? Nock là gi? Ví dụ về việc sử dụng nock và nock.back Tại sao phải mock các ...

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

Tạo Animation với MotionLayout trong Android

MotionLayout là một phần của thư viện Android, nó kế thừa từ ConstraintLayout. Nó là widget duy nhất cho phép bạn tạo hiệu ứng animation bằng cách sử dụng XML. Trong hướng dẫn này, mình sẽ hướng dẫn các bạn cách thêm nó vào project Android Studio và tạo một vài animation khác nhau với nó. Chuẩn ...

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

[For Newbie] Những kiến thức không thể thiếu nếu muốn sử dụng RSpec trong Rails app

RSpec là gì? RSpec là một trong những testing framework phổ biến nhất cho Ruby. RSpec-rails là một mở rộng của RSpec, cho phép bạn viết unit tests cho controller, views, helpers và model trong ứng dụng Rails. Nó cũng cung cấp khả năng viết integration tests với selenium (sử dụng ...

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

Build Base class PageViewController using Rxswift.

Trong quá trình đọc code của các tiền bối thì tôi thấy có 1 class rất hay đó là base pageviewcontroller để sử dụng scroll ngang hay click vô tab. Vừa đọc vừa ứng dụng vào 1 project tương tự và để sau này có thể dùng lại nên tôi viết bài này có thể giúp ích cho bạn nào đó. Giải quyết vấn đề: ...

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

10 công cụ CLI mà bạn sẽ thích

Là một web developer, mình sử dụng Linux mỗi ngày. Trong bài viết này mình sẽ chia sẻ một số ứng dụng CLI giúp tăng năng suất làm việc. Một số công cụ là lựa chọn thay thế tốt hơn cho các lệnh Linux hiện có, một số khác cung cấp các tính năng hoàn toàn mới. Mình tin rằng các bạn sẽ thích chúng. ...

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

Dagger 2 cho người mới bắt đầu

Dagger 2 - là một dependency injection framework. Nó được sử dụng để genaration code thông qua các base anotation, code được genartion ra rất dễ đọc và debug Chuẩn bị Trước khi bắt đầu mình muốn các bạn tìm hiểu qua về SOLID principles đó là những nguyên lý thiết kế và viết code. Sau đó ở đây ...

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

[Write-up] meepwn contract - MEEPWN CTF Qualification Round 2018

https://scoreboard.meepwn.team/task Source code của "gate": pragma solidity ^ 0.4 .18 ; contract Meepwn_Wire { address public entrant ; constructor ( ) { entrant = msg . sender ; } function isAccountAddress ( address addr ) ...

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

Quản lý XCode Project bằng Xcodegen: Tạm biệt fix conflict file xcodeproject.

What is the problem with xcodeprojects? Xcode code quản lý file bằng file .xcodeproj , file này biết về toàn bộ source và resource và thông tin cài đặt cần thiết cần thiết cho để phục vụ cho việc lập trình cho ứng dụng iOS. Sau một thời gian dài sử dụng thì quản lý file .xcodeproj cũng xuất ...

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

Single-page app điều khiển history như thế nào ?

Single-page app (SPA) là một website hoạt động dựa việc render lại nội dung trang web theo cử chỉ của người dùng (vd khi người dùng click 1 link) mà không thực hiện request lên server để fetch lại toàn bộ HTML cho trang web đó. Nghe thì có vẻ trìu tượng, và trên thực tế thì có rất nhiều cách để ...

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

Tự động load trang với rails và thư viện js infinite scroll

I. Giới thiệu. Trong rails, bạn có thể thực hiện tự động load trang ở trên view khi sử dụng phân trang trong controller với nhiều cách, trong đó phổ biến nhất vẫn là tự viết javascript của mình, bạn có thể tham khảo tại đây. Nhưng bài viết này sẽ giới thiệu cho bạn một cách khác, đó là sử dụng ...

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

Xây dựng một ứng dụng thời tiết đơn giản sử dụng Vuejs - Phần 1

Cách tốt nhất để trở nên thuần thục một ngôn ngữ hay một framework là bắt tay vào một project nho nhỏ mà từ đó chúng ta có thể biến đổi những lý thuyết mình vừa học thành thực tiễn. Từ suy nghĩ này, mỗi khi tìm được một framework mới, mình đều bắt tay ngay vào làm. Và dự án lần này mình phát triển ...

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

Docker vs Docker-compose

Đứng ở phương diện của một Developer, chúng ta có thể sử dụng Docker để thiết lập môi trường ảo cho một dự án nào đó, mà không cần tốn quá nhiều công sức cài đặt hoặc làm ảnh hưởng tới máy tính hiện tại. Với những người mới tiếp xúc với docker như mình, đôi khi chưa hiểu rõ tại sao lại có file ...

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

Draw line với ARKit

Overview ARKit Thực tế tăng cường (AR) mô tả trải nghiệm người dùng thêm các yếu tố 2D(ARSKView) hoặc 3D(ARSCNView) vào chế độ xem trực tiếp từ máy ảnh của thiết bị theo cách khiến các yếu tố đó xuất hiện để sống trong thế giới thực. ARKit kết hợp theo dõi chuyển động thiết bị, chụp cảnh quay ...

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