Nội dung
1. ProGuard hoặc DexGuard – mã hóa, bảo vệ code của bạn
Ngay khi bạn đã đưa ứng dụng lên Google Play hay App Store. Tức là ứng dụng đã không còn chỉ nằm trong máy tính của bạn nữa mà nó được show cho rất nhiều người, ai cũng có thể download về được. Và khi đó, có trời mới biết họ muốn làm gì với ứng dụng của bạn.
Các Hackers và Spammers luôn rình rập những ứng dụng tiềm năng trở thành ứng dụng HOT. Họ thường có những cách hack ứng dụng để kiếm tiền bất chính trên chính ứng dụng của bạn.
Ví dụ: tiền xu trong games hoặc có thể hack các add on tính phí. Hoặc đơn giản là sửa file apk để chèn quảng cáo của họ vào.
Để tránh sự việc đáng tiếc đã nêu, ta có thể dùng ProGuard
ProGuard đặt lại tên biến trong code của bạn, điều này khiến cho các hacker rất khó để crack trò chơi hoặc ứng dụng của bạn.
android { … buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’ } } … }Tuy nhiên, các hacker vẫn có thể xem được code của bạn sau khi biến đổi, chỉ có điều muốn hiểu thì chắc phải là thiên tài giải mã.
Cách sử dụng Mapping để hiển thị đúng dòng trong log của ProGuard
Khi truy cập ứng dụng cửa hàng google play sử dụng ProGuard thì chương trình sẽ tạo tệp mapping.txt.
Mục đích của tệp này giúp bạn có thể đọc được log khi cần phân tích lỗi. Nếu không, log bạn nhận được toàn chữ cái và số dòng code lỗi lung tung.
Trên Google Play console cũng yêu cầu upload tệp mapping.txt. Bạn có thể làm vào select <your app> -> crashes and ANRs -> Deobfuscation
Có một giải pháp nữa cũng hay không kém là: DexGuard. Mặc dù nó không đổi tên các biến trong code của bạn nhưng nó cũng rất khó để hacker dịch ngược lại mã nguồn.
2. Cập nhật/Đặt Version phù hợp
Bạn cập nhật ứng dụng để nâng cấp tính năng hay đây là sản phẩm mới hoàn toàn không?
Điều này được thể hiện qua thông số version code, thông số này không chỉ giúp bạn thông báo về Change Log mà còn có thể giúp bạn theo dõi hiệu suất cơ bản trong các ứng dụng phân tích thị trường như AppAnnie để hiểu version nào được dùng nhiều nhất.
Hãy nhớ rằng, Google Play và Apple không cho phép cập nhật ứng dụng nếu version không thay đổi
3. Luôn giữ gìn cẩn thận file Keystore
Trước khi bạn submit ứng dụng lên Google Play hoặc Apple Store, mỗi ứng dụng sẽ có một keystore được tạo ra.
Khi bạn cập nhập ứng dụng trên Google Play đều phải sử dụng keystore này.
Nếu bạn đánh mất keystore này, bạn sẽ không thể update ứng dụng. Mà bạn biết rồi đấy, ứng dụng mà không được update sẽ bị lỗi thời, người dùng sẽ dần bỏ ứng dụng của bạn.
Lúc này, bạn chỉ có nước release ứng dụng với keystore mới và submit lại ứng dụng (coi như làm lại từ đầu).
4. Sử dụng HTTPS (Hypertex Transfer Protocol Secure)
Nếu ứng dụng của bạn có kết nối đến server thì cần đảm bảo có kết nối bảo mật cũng như có chứng chỉ SSL.
Bạn quên điều này có thể đặt dữ liệu người dùng của bạn vào tình huống bị đe dọa. Bất kỳ hacker nào cũng có thể dễ dàng tấn công vào ứng dụng của bạn từ “cửa sau”(backdoor).
Đối với một nhà phát triển ứng dụng, sau một “trải nghiệm của người dùng”, việc bảo mật dữ liệu người dùng phải là điều tối quan trọng.
5. Chính sách Bảo mật và Điều khoản Dịch vụ đã sẵn sàng
Đối với cửa hàng Google Play và Apple Store, việc bạn cung cấp một liên kết tới Chính sách Bảo mật và Điều khoản Dịch vụ là rất quan trọng.
Dưới góc độ pháp lý, nó giúp người dùng hiểu những gì mà app đang làm với thông tin cá nhân họ.
Ngoài ra, bạn cũng đừng quên cung cấp cả thông tin của bên thứ ba mà ứng dụng dùng trong mục chính sách Bảo mật
Ví dụ một trường hợp điển hình là ứng dụng UC Browser. Ứng dụng từng bị xóa khỏi Google Play. Lý do rất đơn giản là ứng dụng sử dụng dữ liệu người dùng mà không được sự cho phép.
Chưa biết tạo chính sách bảo mật như thế nào bạn có thể vào App Privacy Policy Generator
7. Sử dụng Analytics để lắng nghe người dùng
Việc publish ứng dụng mà không cài đặt phân tích người dùng giống như việc ngồi trong phòng biệt giam vậy.
Người dùng thích tính năng nào nhất?
Thời điểm nào người dùng thoát khỏi ứng dụng?
Tại sao họ lại gỡ cài đặt ứng dụng?
Liệu ứng dụng có bị lỗi hay không? Nếu có thì khi nào, ở đâu, và như thế nào?
Người dùng đã mua ứng dụng của bạn chưa? Nếu anh ta đã mua thì điều gì đã thuyết phục anh ta mua, và nếu chưa thì cái gì đã khiến anh ta thất vọng?
Việc phân tích không chỉ tốt cho những công ty lớn mà có ích cả với nhà phát triển độc lập. Kết quả phân tích giúp nhà phát triển có thể thiết kế lại ứng dụng theo sở thích của người dùng và làm cho ứng dụng đó trở nên phổ biến hơn.
Có một số công cụ phân tích người dùng rất tốt như: Firebase và Facebook Analytics.
8. Assets Copyright / Bản quyền
Tài nguyên sử dụng trong ứng dụng gồm những gì?
Đó là ảnh, video, hay mã nguồn bạn lấy từ trên mạng… Tất cả những tài nguyên này đều cần phải cẩn thận về vấn đề bản quyền.
Sở hữu sản phẩm do mình làm ra rất quan trọng, giống như trang blog này. Google và Apple quy định trong Điều khoản và Điều kiện của họ rằng: một nhà phát triển phải có bản quyền đối với các tài nguyên sử dụng trong ứng dụng.
Vi phạm nhẹ thì bị gỡ ứng dụng, nặng thì khóa tài khoản. Mình đã có một bài học đắt giá về vấn đề bản quyền này. Ứng dụng của mình sử dụng một hình ảnh nhỏ xíu của bên thứ 3 và ứng dụng bị kiện. Sau đó ứng dụng của mình bị Google Play gỡ khỏi market.
Còn đối với code mã nguồn mở, bạn cần lưu ý về giấy phép mà tác giả cung cấp. Một số giấy phép mã nguồn mở như Apache 2.0, MIT… thì bạn tha hồ sử dụng.
Sau thực hiện xong những bước trên thì chờ điều gì nữa mà không đưa ứng dụng lên Google Play.