Tự động chụp lại screenshot khi scenario bị lỗi trên CircleCI

Hiện tại công ty của mình đang sử dụng Cucumber và Selenium để chạy các acceptance test. Mỗi khi có scenario nào fail trên CircleCI, thì bên mình sẽ chạy lại cái scenario đó dưới máy local để kiểm tra lại. Khoảng một tháng gần đây, sau khi áp dụng UI design mới thì gặp một vấn đề hết sức kì cục là: ...

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

Android từ cơ bản cho đến nâng cao - Android Gradle (P2 - Groovy Fundamentals)

Phần này sẽ đi vào tìm hiểu cơ bản về Groovy nhé. Bạn nào chưa đọc phần 1 thì có thể đọc tại đây Thực ra chúng ta không cần cài đặt Groovy vì Gradle đã cung cấp cho ta Groovy distribution luôn rồi và ta không cần phải cài đặtGroovy. Việc ta cần làm chỉ cần đặt Groovy code vào trong file build ...

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

Upload a File using Retrofit

Có rất nhiều docs hướng dẫn nhưng mình thấy upload như này hiệu quả nhất nên note lại Mình sẽ đi vào ví dụ luôn cho nhanh public interface ApiInterface { @Multipart @POST ("/api/Accounts/editaccount") Call<User> editUser (@Header("Authorization") String ...

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

String.xml trong Android

Những điều cần nhớ Hades 22-04-2017 Đừng dùng lại Đừng sử dụng lại strings cho nhiều màn hình khác nhau . 1 . Tưởng tượng rằng bạn có một hộp thoại loading trên 2 màn hình Sign in và Sign up. Vì cả 2 đều có chung một hộp thoại nên bạn quyết định sử dụng chung string - R.string.loading ...

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

Gom Marker trong Android với Google Maps Android API – Google Maps Android Marker Clustering Utility

Trong một số ứng dụng sử dụng Google Maps Android API bạn có thể thấy các marker rải trên bản đồ, nhưng với số lượng lớn marker sẽ làm cho trải nghiệp người dùng không được tốt nhất. Vì thế bạn nên sử dụng thêm một tiện ích của Google Maps Android API để gom các marker lại, khi thu nhỏ bản đồ ...

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

DÙNG LET HAY KHÔNG?

Mở đầu Khi chúng ta (lập trình viên Ruby on Rails) viết test, cho dù sử dụng rspec hay minitest, đều sẽ dùng let rất nhiều. Cú pháp let giúp chúng ta viết code dễ dàng và tiện lợi hơn rất nhiều: def activable? inactive? && !blacklist? end describe '#activable?' do let(:inactive?) ...

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

Chia sẻ lên mạng xã hội Twitter và Facebook trong ứng dụng iOS

Từ phiên bản iOS 6, Apple đã giới thiệu một framework mới gọi là “Social Framework”. “Social Framework” giúp bạn có thể dễ dàng tích hợp các tính năng của các trang mạng xã hội vào ứng dụng của mình. Hiện nay, nó hỗ trợ Facebook, Twitter và Sina Weibo. Các framework cung cấp ...

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

Swift Automaton và ứng dụng trong chức năng đăng ký cho iOS app

Hi mọi người, lâu lâu chưa viết bài được nên cảm thấy bứt rứt kinh khủng Năm nay mình mới join Mercari, #1 unicorn startup của Japan nên mất tương đối thời gian làm quen với môi trường và cả cuộc sống mới. Tháng 10 vừa rồi cũng là đoạn khổ chiến để up sourcebase lên Swift 4 , RxSwift 4 và tối ...

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

THREADING IN RAILS

Bài viết này được thực hiện từ năm 2012 với Ruby 1.9 và AR 3.x. Trên Ruby 2.x trở đi, Threadsafe là mặc định nên sẽ có một vài thông tin đã trở nên không cần thiết. Multi-threaded Rails Thread (1) hiểu đơn giản là 1 tiến trình hoàn thiện rất nhỏ được CPU thực hiện trong 1 khoảng thời gian. ...

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

[Android] Hiểu sâu hơn về CustomView và Hướng dẫn xây dựng thư viện UI IndicatorView

Các ứng dụng sử dụng Indicator Library: Github Hi anh em, tình hình là đợt vừa rồi mình có viết bài về Facebook Reaction được mọi người ủng hộ nhiệt tình nên quyết định viết thêm 2 hoặc 3 bài nữa về vấn đề Custom View cho anh em trơn tru hơn một chút về vấn đề này và có thể áp dụng nó ...

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

RUSSIAN DOLL CACHING

Bài viết được thực hiện tháng 01/2013 với AR 3.2. Bắt đầu từ AR 4.x trở đi, Russian Doll Caching được builtin sẵn trong Rails, và ta có thể sử dụng kỹ thuật này mà không cần phải cài thêm gem Caching là một trong những kỹ thuật được sử dụng nhiều trong các dự án Công Nghệ Thông Tin (CNTT) nhằm ...

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

App crash trên iOS 10 vì lỗi privacy description

Nếu app của bạn có sử dụng các thông tin liên quan đến user như là Camera hay Photo Library,... thì khi user sử dụng trên iOS 10, khả năng là app sẽ bị crash. Trong crash log sẽ có đoạn nội dung kiểu như này: Termination Reason: TCC, This app has crashed because it attempted to access ...

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

Tìm hiểu về Virtual-DOM

Thời gian gần đây, trong quá trình tìm hiểu về ReactJS, có một khái niệm được nhắc đến khá nhiều: Virtual-DOM. Vậy Virtual-DOM là gì, nó có những đặc điểm và lợi ích như thế nào? Chúng ta cùng tìm hiểu nhé. 1. Virtual-DOM là gì? Virtual-DOM, đúng như tên gọi của nó, DOM-ảo. Ảo, có nghĩa là ...

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

Dependency Injection in Objective C - Typhoon Framework

Giới thiệu Typhoon Framework là 1 thư viện dependency injection (DI) cho Cocoa và CocoaTouch. Với ưu điểm là nhẹ và dễ sử dụng. Git: https://github.com/typhoon-framework/Typhoon 1. Dependency Injection là gì? Là 1 design pattern thực thi inversion of control (IoC). Một "injection" là việc ...

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

XỬ LÝ MULTI-PROCESS VỚI FORK()

Bài viết này được thực hiện từ năm 2012 với Ruby 1.9 và AR 3.x. Trên Ruby 2.x trở đi, Threadsafe là mặc định nên sẽ có một vài thông tin đã trở nên không cần thiết. Related: THREADING IN RAILS What is fork() on Unix fork là 1 cách xử lý multi-process trong Unix, hoạt động theo kiểu sinh ra ...

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

iOS Multilanguage Application

Toàn cầu hoá có 1 vai trò rất quan trọng trong việc mở rộng thị trường cho ứng dụng của bạn. Thay vì chỉ hỗ trợ ngôn ngữ bản địa, hỗ trợ các ngôn ngữ phổ biến khác trên thế giới sẽ giúp ứng dụng của bạn được nhiều người biết đến và sử dụng hơn. Trong khuôn khổ bài viết này, tôi sẽ hướng dẫn các ...

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

Tìm hiểu Directives và Templates trong angularjs

AngularJS Directives Directives là gì? Directives là thành phần mở rộng HTML và có thể coi là các thuộc tính của các thẻ HTML mà Angular nó định nghĩa thêm Cách khai báo một directives trong angularjs Để khai báo là một Directive Controller thì chúng ta khai báo ng-controller ví dụ: ...

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

[Android/2D Graphics] Phân tích và mô phỏng nút cảm xúc của Android Facebook Application

Video demo: Tình hình là đợt vừa rồi mình có ngó Kiaplog profile của anh Huy Trần, lướt lướt thấy có chủ đề Phức tạp hoá vấn đề: Phân tích và mô phỏng nút cảm xúc của Facebook có lượng kipalog khiếp quá nên nhảy vào xem luôn. Đọc xong mà thấy mở mang đầu óc, nhưng tiếc là lâu chưa xem ...

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

Ý tưởng Interest group 10: God Want

Thành viên: Lê Văn Nghĩa, Đinh Thanh Tâm, Lê Văn Ban, Nguyễn Thị Ngọc, Phạm Cẩm Anh. Group 10 đưa ra 1 ý tưởng mới trong việc kết nối giữa khách hàng và các nhà cung cấp. Cùng với sự phát triển của Internet, mua bán online đã dần trở nên phổ biến. Thay vì phải mất thời gian đến các cửa hàng để ...

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

Ứng dụng BDD trong lập trình iOS

Testing đóng 1 vai trò quan trọng trong quá trình phát triển phần mềm. Hôm nay tôi sẽ giới thiệu với các bạn ứng dụng BDD test trong lập trình iOS. Giả sử ta muốn test 1 phép cộng đơn giản: File H // // ViewController.h // HelloKiwi // // Created by nguyen hai dang on 1/23/15. // ...

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