Các công cụ và thư viện hay sử dụng trong lập trình android
Những IDE cần sử dụng : Android Studio 1.0 và 2.0, đối với bản Android Studio 2.0 vấn đề emulator đã được cải thiện khá nhiều, tốc độ đã tăng lên so với bản 1.0. Tuy nhiên, nếu bạn vẫn gặp vấn đề emulator quá chậm thì nên chú ý tới 1 số emulator tốc độ cao có Intel HAXM, hoặ Genymotion – Công cụ ...
Những IDE cần sử dụng : Android Studio 1.0 và 2.0, đối với bản Android Studio 2.0 vấn đề emulator đã được cải thiện khá nhiều, tốc độ đã tăng lên so với bản 1.0. Tuy nhiên, nếu bạn vẫn gặp vấn đề emulator quá chậm thì nên chú ý tới 1 số emulator tốc độ cao có Intel HAXM, hoặ Genymotion – Công cụ cho phép bạn tạo máy ảo nhanh nhất và tiện lợi nhất. Nếu bạn muốn sử dụng thêm CHPLAY để có thể tải và test ứng dụng thì emulator cũng hỗ trợ cho bạn, nói chung Genymotion là 1 emulator rất mạnh mẽ và đang được ưa chuộng hiện nay. Genymotion : http://www.genymotion.com/
Build quá chậm, không thể chịu đựng nổi ? Nếu bạn sử dụng gradle thì ngoài cách thêm thư viện hỗ trợ vào, bạn có thể vào Preference của Gradle và check vào mục Offline work.
Công cụ quản lý thư viện UI và các hoạt động trên android : DevAppsDirect Thư viện này giúp bạn kiểm tra được app chạy như thế nào trong thực tế.
Công cụ phân phối bản test Ngoài DeployGate ra, chẳng còn gì để nói. DeployGate https://deploygate.com/dashboard?locale=ja Hơn nữa lại còn có chức năng group, thật tiện biết bao. http://blog-ja.deploygate.com/post/87151299327
Làm chức năng hiển thị danh sách
ListView : http://developer.android.com/reference/android/widget/ListView.html Gần đây có một thư viện mới được thêm vào là RecyclerView, bạn dùng cái này cũng OK. RecyclerView : https://developer.android.com/reference/android/support/v7/widget/RecyclerView.html Nếu so sánh với TableView trên iOS thì có thể hiểu là class Adapter sẽ có vai trò Delegate – phần xử lí hiển thị của TableView. TrongListView thì đó sẽ là class ListAdapter. ListAdapter : http://developer.android.com/reference/android/widget/ListAdapter.html Chúng ta sẽ viết xử lí của từng cell vào đó. Ngoài ra, chúng ta sẽ cache từng dòng xử lí View để tối ưu performance. Cũng như trong iOS bạn cũng dùng lại Cell đúng không? StickyListHeaders : Giống Instagram, cung cấp header bám theo scroll của ListView. StickyGridHeaders : Phiên bản GridView của library phía trên. Android StaggeredGrid : Có thể đối phó grid có độ cao khác nhau. AdapterView Animator : Helper Library thực hiện animation khi thêm hàng vào AdapterView. cwac-touchlist : Library thực hiện drag-and-drop cho List.
UI Component
- Pull to refresh : ActionBar PullToRefresh: UI Component xuất ra hiển thị có update tại ActionBar khi người dùng pull. Android PullToRefresh: UI Component update khi pull theo phong cách Twitter. Hiện nay đã không maintain nữa nên khuyến khích sử dụng ActionBar PullToRefresh sẽ tốt hơn.
- ActionBar: FadingActionBar: Library áp dụng effect fade-out tại ActionBar. GlassActionBar: Library áp dụng effect như cửa sổ trong suốt tại ActionBar.
- WebView: –>Chromium WebView: Backport Library Webview của Chromium engine được đưa vào từ version KitKat. Sử dụng library này có thể giúp giải quyết được vấn đề tương thích OS version hay device khi implement Webkit. Text・Font: emojicon: Library giúp sử dụng emoji trên TextView. IonIconView: Library giúp hiển thị icon được cung cấp bởi ionicons.com được trên View. Android Iconify: Library giúp sử dụng được các loại font của FontAwesome trong app. Calligraphy: Library giúp làm dễ dàng custom font.
- Calendar: ExtendedCalendarView: Library cung cấp calendar view có thể hiển thị event, tạo thành set với DB lưu trữ content của calendar. GoogleCalendarView: Backport từ calendar app của Google.
- ImageView: CustomShape ImageView: ImageView có thể cắt chỉnh ảnh rồi tạo nhiều hình đa dạng. Rounded ImageView: Library tạo ImageView có góc tròn. PhotoView ImageView có chức năng phóng to thu nhỏ ảnh. ImageViewZoom: ImageView có chức năng phóng to thu nhỏ ảnh. Tối ưu hóa code: DI container Dagger: DI container dùng cho Java hay Android của công ty square. Sử dụng annotation javax.inject.Inject. Tạo code khi compile. Proton: DI container dùng cho Android. Sử dụng annotation javax.inject.Inject. Đưa instance vào tại thời điểm execute. ButterKnife: Chuyên hóa cho injection của View. RoboGuice: Wrapper dùng cho Android được Google cung cấp. Bên cạnh sử dụng annotation javax.inject.Inject, cung cấp độc lập annotation dành cho injection.
Có thể nói, trong lập trình Android nói chung và lập trình nói riêng, việc xử lý các vấn đề với networking là một trong các công việc quan trọng nhất. Công việc này luôn đòi hỏi thời gian, độ khó cao nhất trong dự án. Vì vậy, mình sẽ tổng hợp và giới thiệu một vài thư viện hữu dụng, tốt nhất để xử lý networking trong lập trình Android. Retrofit: Trên trang chủ của Retrofit có câu: “Retrofit turns your REST API into a Java interface” nói lên đầy đủ chức năng của nó.Đây là một giải pháp tuyệt vời để tổ chức các lời gọi API trong một dự án. Các lời gọi request được thêm đơn giản và tiện dụng. Ta sử dụng Callback để lấy kết quả các request gửi lên. Volley: Volley là một Networking Library được Google phát triển và công bố tại Google I/O 2013 để quản lý các request network và lưu trữ các kết quả trả về – response, nó giúp các nhà phát triển – developers không phải viết nhiều code như trước nữa.Các tính năng – features trong Volley cho phép cùng một lúc thực hiện nhiều request trên các tiến trình – threads khác nhau với các mức độ ưu tiên – priority. Tất cả các request được thực hiện và lưu trữ trong bộ nhớ cache – cache memories giúp cho việc reload lại dữ liệu nhanh hơn.Toàn bộ response được lưu trong memories vậy nên nó không tốt khi dùng để load các dữ liệu lớn như âm nhạc – music hoặc phim – movies.Nhưng nó thực sự tuyệt vời để load các dữ liệu dạng JSON, Image hay String. GSON : là một java library hỗ trợ việc convert Java Objects sang định dạng JSONtương ứng, và ngược lại, nó cũng có thể sử dụng để convert từ JSON sang Java Objects. Có một vài thư viên Java cũng có khả năng làm việc này, những Google Gson hỗ trợ tối ưu hơn cả và đặc biệt nó được update liên tục.Nó có thể làm việc với các Java Object tùy ý ngay cả với việc các object trong hệ thống cũ không có source code.Mục đích của Google Gson Cung cấp kỹ thuật xử lý đơn giản để convert từ Java Object sang JSON và ngược lại. Cho phép các unmodifiable objects converted từ Java sang JSON và ngược lại. Hỗ trợ mở rộng Java Generics. Cho phép custom format của object. Hỗ trợ custom các objects phức tạp. Và rất nhiều nữa Ngoài ra, GSON cũng là nhân của Retrofit đã nói ở trên.