Advertisements
YellowCode.Books

Android Bài 28: Vòng Đời Activity

Qua bài học hôm trước, bạn đã thấy mình cố gắng trình bày các kịch bản mà các Activity, hay chính là các màn hình, được hệ thống quản lý như thế nào. Qua đó bạn cũng đã biết khi nào một màn hình vẫn còn được giữ lại trong hệ thống để phòng trường hợp người dùng bất ngờ quay lại. Hoặc khi nào thì hệ thống hủy đi một màn hình.

Bài học hôm nay chúng ta sẽ chỉ xem xét khía cạnh đời sống của duy nhất một màn hình. Để xem dưới sự tác động bởi hệ thống, thì các trạng thái của em nó sẽ phải trải qua là gì. Và với mỗi trạng thái như vậy bạn sẽ biết cách tác động đến ứng dụng để thực hiện một số tác vụ thích hợp nhất theo từng trạng thái như thế nào.

Nghe qua có vẻ hay đúng không. Mời các bạn cùng đến với bài học Android tiếp theo này.

Java Bài 33: Interface

Vâng, hôm nay chúng ta sẽ nói về interface. Nhưng bạn hãy dừng việc tưởng tượng rằng chúng ta đang nói đến việc làm sao xây dựng một giao diện cho ứng dụng Java. Tuy interface có nghĩa là giao diện, nhưng giao diện mà bạn đang nghĩ tới thì người ta gọi là UI cơ.

Vậy interface là gì nếu nó không phải là giao diện? Mời bạn đọc tiếp bài học hôm nay. Trước hết, để có thể hiểu bài viết về interface này, bạn nhất định phải đọc và hiểu khái niệm trừu tượng (abstraction) là gì trước.

Vì kiến thức về interface khá nhiều, mình cũng không chắc có thể nói hết tất cả các vấn đề của interface vào một bài viết hay không. Mình sẽ cố gắng trình bày nhiều nhất và rõ ràng nhất có thể, để bạn nắm được khái niệm và cách khai báo, sau này khi bạn bước qua lập trình ứng dụng Android, bạn sẽ hiểu rõ hơn về công dụng thực tế của interface.

ConstraintLayout – Phần 2: Các Chức Năng Nâng Cao

Như mình có nói ở phần 1, ConstraintLayout tuy dài (bị tách ra làm hai phần lận), nhưng nó không khó. Qua bài viết đó bạn đã nắm được ý nghĩa và cách sử dụng các công cụ cơ bản nhất mà Android Studio cung cấp để thiết kế kéo-thả cho layout mới mẻ này. Phần tiếp theo này bạn sẽ biết thêm các chức năng hay ho khác của ConstraintLayout, giúp bạn có thể thiết kế được tất cả các layout mà bạn muốn.

Và chắc chắn chúng ta sẽ cùng nhau thử thực hành xây dựng một layout hoàn thiện ở cuối bài hôm nay.

ConstraintLayout – Phần 1: Tìm Hiểu Các Thành Phần Cơ Bản

Cũng khá lâu rồi, mình luôn mong muốn được viết bài hoàn chỉnh về ConstraintLayout. Nhưng có nhiều điều khiến dự định này dang dở. Một phần cũng vì nếu như không có nó (ConstraintLayout) chúng ta cũng vẫn cứ sống thoải mái vui vẻ mà thôi. Phần nữa là vì bài viết sẽ cần rất nhiều ảnh động, đúng đặc thù của loại layout này, nên “tiến độ dự án” bị kéo dài ra.

Cho đến hôm nay thì kiến thức về ConstraintLayout đã trở nên khá nhiều (nhưng không khó). Sở dĩ kiến thức này nhiều là vì chúng ngày càng được bổ sung các tính năng hữu ích để lập trình viên chúng ta có thể vận dụng một cách linh hoạt nhất vào việc thiết kế các giao diện phức tạp. Và cũng vì kiến thức này nhiều quá nên mình tách ra làm hai phần. Điều này giúp cho các bạn dễ tiếp cận hơn, và mỗi bài cũng không chứa quá nhiều resource ảnh (cả động lẫn tĩnh), có thể ảnh hưởng đến hiệu quả load trang của chúng ta.

Java Bài 32: Tính Trừu Tượng (Abstraction)

Với việc đi qua bài học hôm nay thì chúng ta cũng đã nói đủ bốn đặc tính cốt lõi trong lập trình hướng đối tượng. Bốn đặc tính đó là:

– Tính Gói ghém dữ liệu, hay còn gọi là Encapsulation. Bạn có thể xem lại tính chất này ở các bài: khả năng truy cập, getter/setter.
– Tính Kế thừa, hay còn gọi là Inheritance. Bạn có thể xem lại tính chất này ở các bài: kế thừa, overriding, overloading.
– Tính Đa hình, hay còn gọi là Polymorphism. Bạn có thể xem lại tính chất này ở bài về polymorphism.
– Và hôm nay. Tính Trừu tượng, hay còn gọi là Abstraction.

Nghe qua thì thấy rất trừu tượng. Liệu kiến thức này có khó hiểu không và nó giúp ích gì cho việc tổ chức code trong OOP? Chúng ta cùng đi vào bài học luôn nhé.

Java Bài 31: Ép Kiểu Trong OOP

Chắc các bạn còn nhớ, chúng ta đã nói về ép kiểu ở bài học số 6. Và hiển nhiên bạn đã biết đến khái niệm ép kiểu là gì rồi, bài này chúng ta không cần nhắc đến.

Và ép kiểu ở bài học đó chính là ép kiểu trên các dữ liệu nguyên thủy. Việc ép kiểu lúc bấy giờ được phân biệt làm hai trường hợp riêng biệt, đó là ép kiểu ngầm định và ép kiểu tường minh. Xem ra thì ép kiểu mà bạn đã biết cũng không có gì phức tạp lắm nhỉ. Vậy thì hôm nay, khi biết về OOP, chúng ta sẽ xem việc ép kiểu trên các dữ liệu không-phải-nguyên-thủy sẽ trông như thế nào nhé.

Android Bài 27: Tìm Hiểu Back Stack

Nếu như ở bài hôm trước, chúng ta đã cùng nhau tạo một Activity mới cho TourNote – ContactActivity. Chắc chắn bạn đã cảm thấy thích thú với việc từ một Activity ban đầu, là MainActivity, nhấn vào item menu trên ActionBar một cái, hệ thống sẽ chuyển sang màn hình mới chính là ContactActivity. Rồi nhấn Back button ở ActionBar hay Back ở System Bar sẽ dẫn bạn quay về MainActivity ban đầu. Vậy thì có khi nào bạn thắc mắc rằng các màn hình bên trong một ứng dụng Android sẽ luân phiên hiển thị ra như thế nào? Một màn hình hiển thị ra thì màn hình kia đi về đâu, có bị xóa khỏi hệ thống không? Tại sao nhấn nút Back lại giúp quay về màn hình trước? Nhấn nhiều nút Back thì sẽ đi đến đâu? Vân vân…

Thì bài học hôm nay chúng ta sẽ chỉ đi vào lý thuyết, để trả lời cho các câu hỏi trên kia thông qua việc giải nghĩa khái niệm và cách hoạt động của Back Stack. Mặc dù chỉ là lý thuyết, nhưng những kiến thức của bài hôm nay sẽ làm nền tảng, được ứng dụng nhiều, và sẽ được mình nhắc đến nhiều ở các bài học sau đấy nhé.

Java Bài 30: Đa Hình (Polymorphism)

Bài hôm nay chúng ta sẽ nói sâu về tính Đa hình trong Java. Nghe qua đặc tính này thì có vẻ khó. Một phần vì ứng dụng của chúng không nhiều. Với cái tên nghe chẳng có cố định gì cả, như là biến hình gì gì đó. Cộng với khá ít tài liệu viết rõ về công năng này của OOP. Vậy thì chúng ta cùng đi sâu vào bài học để xem Đa hình là gì và nó có thực sự khó không nhé.

Tổng Hợp Các Công Cụ Lập Trình Android Mà Bạn Nên Biết (Phần 1)

Phải nói rằng thời buổi ngày nay lập trình thật sướng, đặc biệt là lập trình Android. Bởi vì chúng ta được cung cấp hàng tá các công cụ phụ trợ cho việc lập trình. Từ “chính chủ” của Google hay Android Studio, cho đến “chính khách” của các bác “hàng xóm” tốt bụng. Từ quản lý hiệu năng của ứng dụng, cho đến việc mang lại giao diện đẹp hơn… Cái khó trong việc này là làm sao để nhớ hết các công cụ đó, và cách sử dụng chúng hiệu quả nhất. Xuất phát từ nhu cầu đó. Mình bắt đầu tổng hợp các công cụ cần thiết này lại. Vì có khá nhiều công cụ nên mình dự định sẽ chia ra làm 3 phần. Trong đó phần hôm nay sẽ tổng hợp các công cụ cơ bản nhất mà bạn nhất thiết phải biết. Các phần sau sẽ là các công cụ mở rộng hơn, sẽ tốt nếu bạn biết và dùng đến.

Android Bài 26: Làm Quen Với Activity

Còn nhớ, đã rất lâu rồi, từ bài học số 5, chúng ta đã nói sơ qua cấu tạo cơ bản của một ứng dụng Android, trong đó các bạn đã biết đến một chút khái niệm và vai trò của Activity rồi. Nhưng trước đó, ở bài học số 3, khi bạn còn chưa biết đến Android cần có những gì, bạn đã phải tạo cho chính bạn một Activity đầu tiên, có tên là MainActivity, và chúng ta đã cùng xây dựng các dòng code trên Activity đó đến tận bây giờ. Vậy tính ra bạn đã hiểu Activity là gì rồi đúng không. Vậy bài học hôm nay mình sẽ viết gì. Tất nhiên còn một số kiến thức thú vị khác xoay quanh Activity. Như làm sao để tạo thêm nhiều Activity khác. Làm sao để truyền dữ liệu qua các Activity. Cách quản lý các Activity hiệu quả,… sẽ lần lượt được mình trình bày từ bài học hôm nay.