CÁC ỨNG DỤNG REATIVE VỚI MODEL-VIEW-INTENT - PHẦN 1 - MODEL

Khi tôi hình dung ra tôi đã mô hình hóa Model classes của tôi lần nào cũng sai, tồn tại rất nhiều vấn đề và nhức đầu, trước đây tôi đã từng có một vài chủ đề về nền tảng Android. Cuối cùng tôi đã có thể xây dựng ứng dụng Reactive bằng cách sử dụng RxJava và Model-View-Intent (MVI) như tôi chưa ...

Tác giả: Bùi Văn Nam viết 18:13 ngày 07/09/2018

Từ Java đến Kotlin: khi cú pháp không còn là nỗi lo!

Kotlin - Một ngôn ngữ ra đời với việc thừa kế những sự tốt đẹp của Java và giải quyết những vấn đề mà Java gặp phải. Điều đầu tiên cũng như là nội dung chính mà trong bài viết này tôi muốn đề cập đến đó là syntax. Kotlin syntax ở một góc nhìn nào đó rất giống Java, nhưng cũng rất khác. Số dòng code ...

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

Code Clean-up Kotlin

Giống như những ngôn ngữ khác thì việc refactor giúp chúng ta code nhanh , người khác đọc code cũng dễ hiểu hơn. Sử dụng apply cho các câu lệnh khởi tạo đối tượng để cho code sạch hơn, dễ đọc hơn. // Don't val textView = TextView( this ) textView.visibility = View.VISIBLE textView.text ...

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

Mỗi lập trình viên đều cần có (ít nhất) một Side Project

Lý do tại sao Bạn cần làm Side Project Xây dựng một sản phẩm sẽ giúp bạn có thêm kinh nghiệm và kỹ năng đáng giá: từ việc lên ý tưởng, lập kế hoạch thực hiện và nhiều nhiều thứ phải làm nữa… Kết quả là bạn sẽ có một sản phẩm thiết thực, ít nhất là với bạn. Học ...

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

Một số mẹo trong rails I18n

Cách gọi I18n en: my: messages: hello: "Hello" t( 'my.messages.hello' ) # Hello t( :hello , scope: 'my.messages' ) # Hello t( :hello , scope: [ :my , :messages ]) # Hello # dùng default nếu muốn trả về một giá trị mặc định khi không có khai báo trong file ...

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

[Android] Implement StickyHeaderRecyclerView với ItemDecoration của RecyclerView

Tại Google I/O 2014, cùng với sự ra mắt của Android Lollipop, Google đã giới thiệu RecyclerView - a better ListView với nhiều cải tiến cho phép gia tăng hiệu năng, đồng thời giải quyết nhiều vấn đề tồn tại của phiên bản ListView cũ. Khi nói đến RecyclerView, chúng ta có thể nhắc đến một số khái ...

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

21 nguồn mở tuyệt vời để viết các ứng dụng iOS bằng Swift

Series những dự án nguồn mở ấn tượng. Swift là 1 ngôn ngữ lập trình mục đích chung, được Apple phát triển cho iOS, OS X, watchOS và tvOS. Hiện tại, đây là ngôn ngữ nguồn mở nổi tiếng nhất trên Github. Mybridge AI đã đánh giá chất lượng nội dung và xếp hạng những bài viết tốt ...

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

13 bước để trờ thành Hacker chuyên nghiệp

Nếu bạn có ý định trở thành một hacker chuyên nghiệp hoặc đơn giản chỉ là tò mò muốn biết các hacker đang học những gì, thì bài viết này dành cho bạn. Trước tiên, bạn cần biết rằng hacking nói riêng và an toàn thông tin nói chung là những công việc cực kì khó và nặng nhọc. Chúng ...

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

Một thanh niên lừa cả Google Maps lẫn Apple Maps để đặt tên đường theo tên của mình

Anh chàng đã khiến cả chính phủ và các ứng dụng bản đồ nhầm tưởng để biến một con đường vô danh mang tên của mình trong hơn 4 năm . Năm 2013, Ge Yulu tình cờ phát hiện một con đường tại Bắc Kinh không có tên. Vì vậy, anh đã tự điền tên mình lên đó và được nhiều ...

Tác giả: Bùi Văn Nam viết 18:10 ngày 07/09/2018

Ứng dụng đa ngôn ngữ

Xin chào các bạn, trong quá trình phát triển sản phẩm, chúng ta nhận được các yêu cầu của khách hàng về việc muốn ứng dụng có thể hỗ trợ nhiều loại ngôn ngữ ví dụ như: tiếng anh, tiếng nhât, tiếng đức... Vậy chúng ta sẽ làm như thế nào? Bài viết này mình sẽ tạo một ứng dụng hỗ trợ đa ngôn ngữ bao ...

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

Android Yếu Lược

Đón đọc những bài viết đặc sắc ở blog https://giaosucan.blogspot.com Tháng Chạp năm Ất Mùi, tức năm 2015 sau công nguyên, tập đoàn FSOFT trúng thầu dự án mobile lớn nhất trong lịch sử, XXX. Với tổng giá trị cả triệu mỹ kim, Cuder lên tới 400 người, nhưng thời gian thì ngắn kỉ lục, chỉ hơn ...

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

Gem Faraday

Faraday là một thư viện HTTP client cung cấp interface dùng chung cho nhiều adapter (như Net::HTTP, HTTPClient) và nó cũng bao gồm các khái niệm về middleware rack khi xử lý vòng đời của request/response. Faraday hỗ trợ một số adapter như bên dưới: Net::HTTP (default) Net::HTTP::Persistent ...

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

Sugar ORM trong android

Xin chào mọi người, hôm nay tiếp tục là một bài viết về ORM Database trong android. Bài viết này mình sẽ giới thiệu về một ORM đó là Sugar ORM. Vậy Sugar ORM là gì ? Nó là một thư viện database giúp cho các lập trình viên thao tác được thuận tiện và đơn giản hơn. Nhưng tại sao lại dùng đến Sugar, ...

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

Null với Undefined trong JavaScript

Thoạt đầu null và undefined có thể giống nhau, nhưng chúng lại khác xa nhau. Bài viết này sẽ tìm hiểu những điểm khác biệt và giống nhau giữa null và undefined trong JavaScript. Null là gì? Có 2 đặc điểm của null bạn cần hiểu: null là empty hoặc không tồn tại giá trị. null phải được ...

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

Caching with Rails: Caching Strategies - HTTP Caching

Bài viết này tổng quan về việc giúp cho bạn tặng tốc ứng dụng của bạn với caching. Caching có nghĩa là lưu lại nội dung response của 1 request và tái sử dụng nó với các request tương tự. Caching là một cách thường xuyên được xử dụng để tối ưu ứng dụng rails. Bằng cách sử dụng caching, các trang ...

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

Tạo ứng dụng TODO LIST bằng Android và REST API (Phần 1)

Phần này mình sẽ nói sơ qua tất cả các công nghệ mình sử dụng cho dự án và chức năng của nó . Tất cả các công nghệ dưới đây đã được sử dụng thực tế và hòan tòan miễn phí. Lời nói đầu Chào các bạn , đây là lần đầu tiên mình viết bài chia sẽ kinh nghiệm và bài viết này mình viết dựa trên kinh ...

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

Giới thiệu các công cụ phân tích tĩnh giúp nâng cao chất lượng Code Android (Phần 1)

Đây là những công cụ dùng để phân tích mã nguồn của bạn mà không thật sự thực thi nó. Mục đích là để tìm ra các lỗ hổng tiềm tàng ví dụ như các lỗ hổng và lỗi bảo mật. Một trình phân tích code miễn phí phổ biến chẳng hạn như FindBugs kiểm tra code của bạn dựa trên một bộ quy tắc mà code của bạn nên ...

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

Tham chiếu function trong Kotlin: sử dụng function như lambda ở mọi nơi

Tham chiếu Function là một trong những cải tiến tuyệt vời mà chúng ta có được với Kotlin, bắt nguồn từ Java. Bạn đã biết rằng Kotlin hỗ trợ function như một type, có nghĩa là bạn có thể lưu một function trong một biến variable, sử dụng nó như một đối số của function khác, hoặc thậm chí làm cho một ...

Tác giả: Bùi Văn Nam viết 18:06 ngày 07/09/2018

typeof và instanceof

Chắc hẳn đôi lúc bạn cũng đau đầu vì việc validate kiểu dữ liệu đầu vào cho function ở javascript đúng không? 2 hàm được sử dụng để check kiểu dữ liệu là typeof và instanceof . Trong bài viết này mình sẽ giới thiệu một số cách để làm cho hàm instanceof của javascript có thể làm được nhiều hơn ...

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

Pagination Angular With Gem Kaminari

Mình mới làm quen với angular 1 thời gian, phải sử lý đến pagination. :man_detective_tone1: Những thư viện của angular đều là load tất cả item vào pagination rồi xử lý, nên mình quyết định custom 1 cái service pagination dùng cho sướng .. Làm với gem Kaminari chỉ cần truyền lên params[:page] ...

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