Chọn điện thoại có Android Marshmallow

Một trong những tính năng bị chửi nhiều nhất trên Android là phần App Permissions khá ngu học. Mỗi app khi được cài vào điện thoại của bạn sẽ yêu cầu những quyền đặc trưng để truy cập vào những vùng dữ liệu (như ảnh, danh bạ, tin nhắn...) hay thiết bị trên điện thoại (wifi, camera...). Các bản ...

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

Oauth-http://oauth.net/

Oauth là phương pháp chia sẻ tài nguyễn giữa client và server mà không dùng đến username password. Oauth có 2 phiên bản 1.0a và 2.0 Oauth 1.0 a workflow: 1.Get customer key và secret key Provider ( Nhà cung cấp ví dụ yahoo) cho bạn Customer key và secret key 2.Request Token ...

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

Tầm quan trọng của .gitignore trong teamwork

Sắp hết tuần rồi mà chưa thấy đề tài nào ngắn ngắn để viết thì hôm nay có việc phải setup một project đưa lên Github cho team checkout về code. Bỗng nhớ ra ngày xưa setup xong, checkout về toàn không build được '_' Hôm nay mạn phép giải quyết cái vấn đề "lâu lẩu lầu lâu" này . Bài này có thể sẽ ...

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

Hello World với Swift, Docker, Sublime Text

Bạn có thể tự tạo Image Docker theo hướng dẫn của mình ở bài trước hoặc dùng cái mình Build trên Docker Hub: https://hub.docker.com/r/trquoccuong/ubuntu-swift/ Để tải file Docker của mình bạn có thể dùng: docker pull trquoccuong/ubuntu-swift Tạo thư mục ứng dụng trên máy tính ...

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

Tìm hiểu cách hoạt động reloading code của Lotus Framework

Như các bài trước mình đã từng viết thì khi khởi tạo xong 1 app thì việc run server và reload code được thực hiện qua lệnh này : lotus server Lotus không tự thực hiện việc reloading code mà sử dụng một gem là Shotgun để giúp thực hiện việc này. Sau đây mình sẽ phân tích về cách hoạt ...

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

Cơ bản với Swift Phần 3

Các bạn chưa xem phần 1, 2 có thể tham khảo: Phần 1 Phần 2 Phần 3 bao gồm: Optionals Kiểm soát lỗi (Error Handling) Gỡ rối (Debugging with Assertions) Sở dĩ mình để nguyên Optionals là vì mình cũng không biết phải dịch làm sao cho dễ hiểu mà không mất đi ý nghĩa của nó. Vì thế các bạn ...

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

Tìm hiểu lập trình blackberry 10

Lời mở đầu Thiết bị blackberry đầu tiên, 850 được giới thiệu vào năm 1999 như là một máy nhắn tin hai chiều tại Munich, Đức. Các thiết bị blackberry sơ khai, RIM 850 và 857 sử dụng DataTAC network. Trong năm 2003 những tính năng thông dụng của smartphone BlackBerry được phát hành, hỗ trợ push ...

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

Function trong Swift

function = hàm, phương thức Hàm bao gồm tham số (parameter) và kiểu trả về (return type) Ví dụ về hàm: func sayHello(personName: String) -> String { let greeting = "Hello, " + personName + "!" return greeting } print(sayHello("Henry")) Để khai báo hàm sử ...

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

Dùng gem friendly_id để tạo url đẹp trong Ruby on Rails

Trang web demo Thông thường, Rails sẽ mặc định tạo url cho các record theo dạng id, cụ thể là /articles/1, /articles/1/edit. Trong bài viết này mình sẽ cùng tìm hiểu về cách tạo một url dễ đọc, ví dụ như là /articles/bai-viet-so-1, /users/yuto-yasunaga. OPTIONAL: Tạo môi trường Bootstrap nhanh ...

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

Hướng dẫn dùng fastlane để build, up test tự động

Fastlane là 1 công cụ hỗ trợ cho iOS, Android developer trong việc release, build test cực kỳ tốt. Các tính năng chính của nó các bạn có thể tham khảo trên trang chủ: https://fastlane.tools/. Trong khuôn khổ bài viết này, mình sẽ hướng dẫn các bạn dùng Fastlane để build, up file ipa test lên ...

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

Reactive Programming với RxSwift

Bài này mình làm theo The introduction to Reactive Programming you've been missing với ví dụ convert sang RxSwift. Bạn có thể tìm thấy code chạy được trên Github. Nếu bạn đang gặp khó khăn khi bắt đầu học Reactive Programming với RxSwift , đừng vội lo lắng, không phải chỉ có mình bạn thế ...

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

Orientation trong iOS

Hôm nay mình tiếp tục trình bày với các bạn những tìm hiểu của mình về orientation trong iOS. Trước tới giờ mình không phải làm app với landscape bao giờ và thế là mình chẳng phải cần quan tâm tới orientatino của nó nữa. Một hôm đùng một cái khách hàng yêu cầu support landscape cho một màn hình ...

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

Những thói quen xấu làm kìm hãm sự tiến bộ của các lập trình viên, mới bắt đầu làm chưa lâu, mà tôi đã nhận ra trong khi kèm cặp họ

Nguồn : http://qiita.com/hirokidaichi/items/27c757d92b6915e8ecf7?utm_content=buffer65af1&utm_medium=social&utm_source=facebook.com&utm_campaign=buffer Người dịch : Phan Hoàng Minh Gần đây, tôi được phân công hỗ trợ những người lập trình chưa giỏi, dưới hình thức một kèm một ...

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

[Swift] Phân biệt let và var - giữa struct và class - [phần 1]

Để bắt đầu serial Kiến thức Swift cho lập trình viên iOS trau dồi và vững vàng hơn trước khi phỏng vấn, mình xin đề cập đến hai khái niệm let và var trong ngôn ngữ Swift mà các bạn khi phỏng vấn sẽ rất hay hỏi. Mình sẽ dùng phiên bản mới nhất đó là Swift 3 và mới hơn I - Khái niệm: var ...

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

Build Multi-App from 1 source XCode

Có bao giờ bạn gặp phải trường hợp muốn làm 2 app giống nhau gần như hoàn toàn chỉ khác nhau ở chỗ thay màu sắc thay một số tên hay thay đổi data của nó chưa? (Bạn nào hay làm app từ điển hoặc chuyên đi clone app chắc sẽ hay gặp hehe :P) Giờ các bạn xử lý thế nào bây giờ? Bình thường nếu là minh ...

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

Swift: cách tích hợp iAd và Admob vào cùng một app

Tích hợp iAd vào một app IOS hiện tại đã đơn giản hơn rất nhiều. Theo document của Apple thì chúng ta chỉ cần thêm 1 dòng vào viewDidLoad trong ViewController. override func viewDidLoad() { super.viewDidLoad() self.canDisplayBannerAds = true // here } Như vậy nếu có nhiều ...

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

Swift Tutorial: Ứng dụng nhận diện khuôn mặt đơn giản (Phần 3)

Phần 1: Hướng dẫn cơ bản về setup project, quản lý thư viện ngoài bằng Cocoapods, hướng dẫn sử dụng auto-layout để tạo giao diện ... Phần 2: Cài đặt Camera Session và sử dụng chức năng Face Recognition có sẵn trong CoreImage của iOS Phần 3: Một vài kiến thức nâng cao về xử lý ảnh ...

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

Cách lấy data từ file csv

Mấy hôm nay vật vả ngồi tạo file excel rồi save lại dưới dạng .csv đọc dữ liệu rồi tạo table... mỏi cả mắt luôn ý chứ. Nên bây giờ có thêm một bài viết để chia sẽ @[email protected] Tạo rails app Để tạo rails app có tên là airport bạn sử dụng lệnh sau: rails new airports File CSV Đặt ...

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

Tối ưu hoá tốc độ truy vấn trong Rails app – phần 1

Khi làm việc với các project nhỏ mình ít quan tâm đến phần tối ưu hóa truy vấn, vì với lượng data ít và quan hệ giữa các table đơn giản nên app nhanh hay chậm có thể khó nhận biết. Nhưng khi phải tính toán metrics, thực hiện các thống kê có dữ liệu từ nhiều bảng và lượng data ở mỗi bảng rất lớn. ...

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

Viết tắt code trong android bằng cách dùng AndroidQuery

Xưa nay chúng ta quen với việc code android bằng những dòng code dài lê thê lết thết và nhìn rất khá là rối mắt (đối với ai mới bắt đầu sử dụng, tập tành code android) nay chúng ta có thể thực hiện viết code android ngắn gọn hơn bằng cách dùng thư viện Android Query. Bài viết này tôi chỉ chia sẻ ...

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