Một số kinh nghiệm trong quá trình phát triển ứng dụng Android
Xin chào các bạn. Sau một vài dự án tôi quyết định chia sẻ với các bạn những kinh nghiệm mà tôi đã rất khó khăn để học được.
Có thể bạn quan tâm:
Dưới đây là một số mà tôi lựa chọn:
- Suy nghĩ thật kỹ 2 lần trước khi quyết định thêm bất kỳ thư viện nào, đó thực sự là việc nghiêm túc.
- Đừng sử dụng database trừ khi bạn thực sự cần đến nó.
- Bạn có thể nghĩ đến Realm database, nó khá thú vị.
- Bạn sẽ chạm mốc 65k methods khá nhanh, ý tôi là rất nhanh đó. Và Multidexing là cứu cánh dành cho bạn.
- RxJava là sự lựa chọn thay thế tốt nhất cho AsyncTasks và nhiều hơn cả thế nữa.
- Retrofit là thư viện networking tốt nhất.
- Đừng dại dột viết lại một HTTP client, sử dụng Volley hoặc thư viện OkHttp.
- Hãy viết code ngắn hơn bằng cách sử dụng RetroLamda
- Kết hợp RxJava với Retrofit và RetroLamda mang lại tối đa sự thú vị
- Tôi sử dụng EvenBus và nó thực sự tuyệt vời. Nhưng tôi không lạm dụng nó quá nhiều bởi vì source code sẽ trở nên hỗn độn
- Tôi đặt tên, nhóm package bởi feature chứ không phải layers
- Hãy chuyển mọi thứ ra khỏi Main Thread. Điều này sẽ cứu bạn khỏi ANR
- Sử dụng lint với layout sẽ giúp bạn tối ưu cấu trúc layout và bạn có thể xác định các views không cần thiết và loại bỏ chúng.
- Sử dụng Gradle và cấu trúc dự án được đề xuất của nó
- Đưa các thông tin nhạy cảm như password vào gradle.properties
- Sử dụng styles để tránh việc lặp các attributes trong XML
- Đừng tạo một cấu trúc view quá nhiều tầng
- Theo dõi nguồn điện và pin. Update dữ liệu khi sạc, dừng update khi pin yếu.
- Bạn có thể nghĩ về JobScheduler
- onLowMemory() sẽ được gọi khi hệ toàn bộ thống thiếu bộ nhớ. không chỉ riêng ứng dụng của bạn vì vậy bạn không thể tránh OutOfMemory với nó
- Lượng pin tiêu thụ là 30% cho các ảnh, animation, … và 70% cho Analytics, Ads, maps, gps
- Theo dõi kết nối và kiểu kết nối, hãy update data nhiều hơn khi có wifi kết nối.
- Sử dụng AccountManager để gợi ý tên đăng nhập và email
- Hãy đặt tên method một cách rõ ràng về chức năng ý nghĩa của nó
- Màn hình Splash là trải nghiệm đầu tiên khi đến với ứng dụng của bạn
- Đừng hiển thị màn hình Splash nếu bạn không cần nó
- Giữ file color.xml ngắn gọn và sạch sẽ, hãy định nghĩa bảng màu
- Tương tự giữ dimens.xml sạch sẽ, định nghĩa các dimen dùng chung generic
- Sử dụng StringBuffer hoặc StringBuilder
- Để tránh Memory Leaks:
- Không giữ reference của view bên trong AsyncTask
- Không giữ reference của View ở đối tượng static
- Tránh đưa các Views vào trong Collection, bạn có thể sử dụng WeakHashMap
- FlatBuffers là một thư viện hiệu quả cho việc serialization đa nền tảng.
- Serializable rất đơn giản để implement nhưng hiệu suất của nó thực sự khá tệ.
Có thể bạn chưa biết:
- Tiểu bang Washington đề xuất Dự luật khuyến khích phát triển công nghệ Blockchain và DLT
- Hàng trăm loại tiền điện tử không hoạt động vẫn được giao dịch trên...
- Blockchain – Khởi nguồn của một nền kinh tế mới: Chương 5 – Các khái niệm nâng cao (Phần 1)
- Thử nghiệm trái phiếu Blockchain của Ngân hàng Thế giới thu về 81 triệu USD
- Chiến game trên Blockchain, cuộc cách mạng tiếp theo?
- SWIFT đang thử nghiệm một hệ thống thanh toán mới để chấp nhận Fintech và công nghệ Blockchain
- Các nhà lập pháp Hoa Kỳ đề xuất dự luật nhằm tìm định nghĩa chung về công nghệ Blockchain
- Làn sóng blockchain tại Hàn Quốc
- Cái bắt tay của Intel và Enigma sẽ giải quyết những thách thức lớn nhất đối với Blockchain? Giá Enigma tăng trưởng hơn 20%
- Hướng dẫn cách tạo ví Ethereum (ETH coin) trên MyEtherWallet
- Google, Facebook và Uber: Khi nào họ sẽ ứng dụng công nghệ Blockchain?
- Hãng tin tức hàng đầu thế giới New York Time đang lên kế hoạch thử nghiệm xuất bản bằng Blockchain
DVMS chuyên:
- Tư vấn, xây dựng, chuyển giao công nghệ Blockchain, mạng xã hội,...
- Tư vấn ứng dụng cho smartphone và máy tính bảng, tư vấn ứng dụng vận tải thông minh, thực tế ảo, game mobile,...
- Tư vấn các hệ thống theo mô hình kinh tế chia sẻ như Uber, Grab, ứng dụng giúp việc,...
- Xây dựng các giải pháp quản lý vận tải, quản lý xe công vụ, quản lý xe doanh nghiệp, phần mềm và ứng dụng logistics, kho vận, vé xe điện tử,...
- Tư vấn và xây dựng mạng xã hội, tư vấn giải pháp CNTT cho doanh nghiệp, startup,...
Vì sao chọn DVMS?
- DVMS nắm vững nhiều công nghệ phần mềm, mạng và viễn thông. Như Payment gateway, SMS gateway, GIS, VOIP, iOS, Android, Blackberry, Windows Phone, cloud computing,…
- DVMS có kinh nghiệm triển khai các hệ thống trên các nền tảng điện toán đám mây nổi tiếng như Google, Amazon, Microsoft,…
- DVMS có kinh nghiệm thực tế tư vấn, xây dựng, triển khai, chuyển giao, gia công các giải pháp phần mềm cho khách hàng Việt Nam, USA, Singapore, Germany, France, các tập đoàn của nước ngoài tại Việt Nam,…
Quý khách xem Hồ sơ năng lực của DVMS tại đây >>
Quý khách gửi yêu cầu tư vấn và báo giá tại đây >>