Naming convention resources trong Android

Bạn còn nhớ lần cuối mà bạn phải mò vào file strings.xml để tìm String mà mình cẩn không ? Hay lần mà bạn phải lục thư mục drawalbes để tìm ảnh mà bạn cần ? Bất cứ khi nào chúng ta bắt đầu một project mới, ta luôn chú trọng quan tâm đến việc cài đặt, sử dụng mô hình code ra sao nhưng bạn đã ...

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

Giải mã cơn sốt Bitcoin

Bitcoin đã xuất hiện trên thế giới từ năm 2009 nhưng thực sự mới bùng nổ tại Việt Nam trong năm nay. Cụ thể là sau đợt càn quét của virus wannacry, không chỉ những người am hiểu về kỹ thuật mà còn rất rất nhiều người muốn biết bitcoin là gì? Và tại sao lại được Hacker tuyển chọn để làm "chiến lợi ...

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

Một số thủ thuật trong JS

Một số thủ thuậ hữu ích khi viết code javascript Có rất nhiều thủ thuật trong JS ở bài viết này mình xin trình bày môt số thủ thuật hữu ích trong JS Đặt thời gian chờ XMLHttpRequest Có thể hủy bỏ kết nối nếu XHR quá lâu(ví dụ do vấn đề mạng) bằng cách sử dụng setTimeout() với việc gọi XHR ...

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

Đóng gói CLLocationManager

Lấy thông tin vị trí hiện tại của ứng dụng (device) từ lâu đã trở thành 1 trong những yêu cầu quá thường xuyên đối với khách hàng.Và do đó, các lập trình viên cũng đã quá quen thuộc và xử lý task này không mấy khó khăn. Mình cũng đã code rất nhiều dự án với nhưng yêu cầu khác nhau, ví dụ như: lấy ...

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

Ứng dụng Chat với Rails 5 Action Cable và Nexmo SMS API

Một số tính năng mới nổi bật trong Rails 5 như Turbolinks 5 và API mode, nhưng thú vị nhất là tích hợp sẵn WebSocket với Action Cable. Tính năng này giúp xây dựng các ứng dụng real-time hoàn hảo theo chuẩn Rails. Để demo, chúng ta sẽ xây dựng một ứng dụng chat real-time kết hợp Action Cable và ...

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

Learn RSpec (part I)

Mỗi một dòng code viết ra đều phải qua quá trình với rất nhiều kiểm tra chặt chẽ. Nhằm mục đích giảm thiểu công sức bỏ ra để kiểm tra mỗi lần phải viết lại code cũng như đảm bảo chất lượng đầu ra, chúng ta có rất nhiều công cụ để giúp test code tiện lợi và logic hơn, một trong số đó là RSpec. Trong ...

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

9 Essential CSS tricks everyone should know

Một số lời khuyên, thủ thuật kỹ thuật đôi khi có thể giúp bạn xây dựng nên những thiết kế mà bạn mong muốn: 1. Absolute positioning Nếu bạn muốn kiểm soát nơi mà một phần tử hiển thị trên website của bạn mọi lúc, Absolute positioning sẽ giúp bạn thực hiện điều đó. Tưởng tượng cửa sổ trình duyệt ...

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

Ultimate Guide to JSON Parsing With Swift 4

Mở đầu Trong bài viết trước, tôi đã giới thiệu một số func mới trong Swift 4. Ở bài viết này, tôi sẽ giới thiệu cơ bản về Parsing JSON data trong Swift 4 mà Apple đã cung cấp sẵn cho chúng ta. The Basics Ví dụ ta có một cấu trúc JSON trả về như sau: { "name": "Endeavor", "abv": ...

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

Sử dụng Codable được support ở Swift 4 để viết thử một Decoder (CSVDecoder)

Mở đầu Như chúng ta đã biết Codable đã được thêm vào ở Swift4. Thực tế thì việc Encode, Decode không phải chỉ JSON mới có thể làm được. ở Foundation cũng đã có PropertyListEndcoder , PropertyListDecoder. Ngoài ra, việc sử dụng một Protocol Decoder Encoder độc lập , với lợi ích mà Codable mang lại ...

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

Phân quyền người dùng với gem Administrate và Rolify

Administrate là một thư viện Rails tự động tạo ra trang quản lý admin. Trang quản lý này sẽ tạo ra giao diện mặc định cho phép người dùng có thể thêm, sửa hoặc xóa các bạn ghi của tất cả các model trong ứng dụng. Hệ thống nào cũng cần phải có chức năng phân quyền, ở đây tôi giới thiệu một thư ...

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

Recursion

Đệ quy là gì ? Đệ quy (tiếng Anh: recursion) là phương pháp dùng trong lập trình trong đó có chương trình được viết ra chứa các hàm từ gọi đến chính nó. Thuật toán đệ quy đi liền với một số bài toán nổi tiếng ví dụ như: Towers of Hanoi(TOH) , Inorder/Preorder/Postorder Tree Traversals, DFS of ...

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

Việt Nam chịu tấn công mạng qua IoT nhiều thứ hai thế giới

Tỷ lệ thiết bị IoT như camera an ninh, router... bị nhiễm mã độc, tấn công mạng ở Việt Nam chỉ đứng sau Trung Quốc. Theo báo cáo từ Kaspersky Lab, Việt Nam nằm trong nhóm ba nước hàng đầu chịu ảnh hưởng về các cuộc tấn công nhắm vào những thiết bị Internet of Things (IoT) khi chiếm tỷ lệ tới ...

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

EventBus: Events for Android

EventBus: Events for Android Hướng dẫn Ta thêm vào build.gradle file: compile 'org.greenrobot:eventbus:3.0.0' 2.1. Khởi tạo Event Ví dụ ta khởi tạo NoteEvent như sau : package tuananh.com.eventbus; /** * Created by framgia on 27/06/2017. */ public class NoteEvent { private ...

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

Form_with trong Rails 5.1 với form_for và form_tag

form_for và form_tag đã rất quen thuộc trong các phiên bản Rails, nhưng chúng sẽ được thay thế bởi form_with trong tương lai (rails 5.1). Dưới đây giới thiệu về sự khac nhau giữa form_for, form_tag và form_with với các ví dụ đơn giản. Một cú pháp cho tất cả Trước đây, khi bạn muốn tạo một form ...

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

Danh sách các ứng dụng Android mã nguồn mở tuyệt vời để tăng cường kỹ năng lập trình cho bạn

Cách tốt nhất để học là đọc và đọc thật nhiều, điều này luôn đúng đối với developer chúng ta. Nếu bạn muốn kỹ năng lập trình của mình tốt hơn nữa thì bạn phải đọc thật nhiều code hơn nữa . Sách, theo dõi các blogger, các forums đều tốt ở một mức nhất định nhưng không có gì có thể thay thế một ...

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

Tạo intro slide cho ứng dụng android của bạn

Khi tạo ứng dụng android, bạn muốn có màn hình giới thiệu về ứng dụng của bạn trước khi bắt đầu vào ứng dụng, thông thường bạn nghĩ đây đến việc thêm vào màn hình Splash vào trong ứng dụng, tuy nhiên splash nó chỉ là 1 màn hình nhiều khi không đủ để giới thiệu hết thông tin về ứng dụng của bạn. ...

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

Vài đường cơ bản về CAGradientLayer

Đã bao giờ bạn muốn thay những màu sắc đơn điệu trong app của mình thành những đường đổ bóng, gradient hay là chính khách hàng của bạn yêu cầu như thế chưa? Mình đã từng gặp phải câu hỏi này rồi và sau đây sẽ là vài đường code cơ bản để tạo ra mấy thứ đẹp đẽ đó sử dụng CAGradientLayer. Viết trên ...

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

Hướng dẫn làm VR với Unity (phần 3)

Chào các bạn hôm nay mình sẽ tiếp tục hướng dẫn các bạn làm VR với Unity . Hôm nay mình sẽ hướng dẫn nội dung chính là : Tương tác trong VR Trong VR, chúng ta thường xuyên phải kích hoạt một đối tượng mà người dùng đang xem . Trong VRSample, chúng ta đã xây dựng một hệ thống đơn giản, có thể mở ...

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

[React-Native] Part 1: Style & Layout with Flexbox

Chào các bạn. Như ở bài trước React-Native: Overview and Getting Started , mình đã giới thiệu về cơ bản React-Native và những bước để start một project React-Native. Tiếp theo, trong bài viết này mình sẽ giới thiệu về Style trong React-Native. Đi sâu hơn một chút chúng ta sẽ tìm hiểu về Flexbox . ...

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

Anko + Kotlin + Android = The trendy combo!

Kotlin is a new buzzword in the Android development world after Google I/O '17. According to the Kotlin's official site: It's a statically typed programming language for modern multiplatform applications. Google is excited to make Kotlin as an official language for Android. Kotlin works ...

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