Note tháng 12/2019

Vậy là đã hết tháng 12/2019, đồng thời … cũng hết năm 2019 luôn rồi. 2020 đã sang, Tết âm lịch cũng sắp đến. Chúc mọi người một năm mới … với nhiều dự định mới, may mắn và thành công nhé 😀

Và như thường lệ cứ hết tháng mình lại … tổng hợp lại những gì đã làm được, học được trong tháng vừa qua. Vậy nên giờ chúng ta bắt đầu nào !!!

I. Những gì đã làm được

1. Blog

Tháng 12 này blog có hai bài mới:

Tháng này blog ra ít bài hơn, với tần suất 2 tuần/bài. Mình thấy đây là tần suất phù hợp. Ra bài mới, sau nghỉ ngơi chút rồi lại viết bài mới. Và quan trọng là mình có thêm thời gian để … chau chuốt, tìm hiểu sâu hơn, đem lại kiến thức tốt nhất cho các bạn.

” Chia sẻ để tiến bước “, mình đã lấy phương châm này cho blog của mình. Giúp người khác, làm cho người khác hiểu hơn cũng chính là giúp mình hiểu hơn 😀

Vậy nên mong các bạn tiếp tục ủng hộ blog, comment, chia sẻ, subscribe mail nhé 😀 Cảm ơn các bạn

Cảm ơn bạn đã đọc các bài viết của Code cùng Trung. Bạn hãy ủng hộ blog bằng cách:

  • Comment bên dưới mỗi bài nếu có thắc mắc
  • Để lại địa chỉ email của bạn để nhận được thông báo sớm nhất khi có bài viết mới
  • Chia sẻ các bài viết của Code cùng Trung đến nhiều người khác

Ok nào giờ chúng ta sang tiếp mục 2

2. Công việc – cuộc sống – bla – bla

  • Trên cty có buổi workshop chia sẻ về “Cyber security” – an ninh mạng. Cơ bản nó là về các hình thức, kiểu tấn công mạng và cách phòng tránh. Nhiều cái khá hay, lý thú.
cyber security
Cyber security
  • Mình đã đọc xong cuốn “Đại dịch tâm lý thời hiện đại“ ở tháng trước. Có nhiều điều hay ở cuốn sách, nhưng một số điều mình thấy hay nhất là:

“Đừng bao giờ để những quan niệm xã hội của số đông đánh mê đầu óc mình”

Con người dễ bị mắc kẹt trong những cảm xúc tiêu cực và tư duy hạn hẹp của chính mình

Hãy ” lắng nghe” các giác quan của mình, sử dụng chúng cho đúng. Hãy “xây dựng” thói quen, đừng chạy theo kết quả

Trong xã hội thông tin như hiện nay, cái gì cũng có thể “vừa là đúng vừa là sai”. Vậy nên hãy cẩn trọng 😀

  • Hết cuốn trên mình lại đọc sang một quyển mới tên “Đến Nhật bản học về cuộc đời“.

Bạn sẽ hiểu được thêm về … con người Nhật, quá đỗi lịch sự, chu đáo, nguyên tắc, dễ gần.

Đồng thời khám phá đất nước … xinh đẹp này, nơi bảo lưu sự tĩnh lặng truyền thống và náo nhiệt hiện đại.

Cuốn sách là những dòng tâm sự, những chuyến đi, cảm nhận đầy sâu lắng, rất thật, gần gũi của tác giả.

đến nhật bản học về cuộc đời
Các bạn có thể xem tại Tiki
  • Tháng 12 này mình ăn chơi nhiều hơn các tháng trước. Một số hình ảnh :3
  • Sắm lịch … cho năm 2020
lịch fan marvel
Lịch cho fan marvel ^-^

Tháng 12 của mình đó. Các bạn làm gì, chơi ở đâu share lại ở comment nhé !!!

Ngó qua sự kiện sách – hot sale trên Tiki nhé

II. Những gì mình học được

Nào giờ sẽ đến phần những kiến thức mình học được, lượm được trong tháng. Let’s go !!!

1. Làm một cái recycler view xịn xò

Các bạn có thể làm một cái recycler view với hiệu ứng như trong video

Link thư viện: https://github.com/saket/InboxRecyclerView

2. Nhận diện chữ viết

Thuật ngữ cho phần này là: OCR (Optical character recognition). Hiểu đơn giản là chuyển các chữ viết, in ấn trên bìa, … thành các văn bản tài liệu.

OCR
Nhận diện chữ viết – quá đỉnh

Google đã cung cấp sẵn cho chúng ta API để xử lý vấn đề này, đó là Google Mobile Vision. Ngoài nhận diện chữ viết, nó còn có nhận diện khuôn mặt, barcode.

Các bạn có thể xem hướng dẫn trên medium tại đây

3. Sử dụng String

  • Hiển Thị Dấu (), Dấu gạch chéo và thấy báo lỗi ??? Dấu () thì sẽ không hiện lên trên màn hình
string format error
Lỗi ??? Why

Cách fix, chỉ cần thêm dấu gạch chéo trước mỗi kí tự là ok 

string format solution
Thêm dấu gạch chéo trước mỗi kí tự
  • Hiển Thị Các Ký Tự (&), (<), (>), () và cũng thấy lỗi ???
string format error
Báo lỗi đỏ ??? Bị bôi đậm ???

Cách fix:

Thay thế mỗi kí tự trên như sau (cụ thể ở trong hình nhé các bạn)

& thay bằng & amp;
– < thay bằng & lt;
– > thay bằng & gt;
– … thay bằng & #8230;

string format solution
Xong – hết lỗi – easy 😀

4. Vị trí đặt các resource như color, string, dimen, …

Thư mục res/values như sau

thư mục res
Thư mục res/values

Bạn hay để màu sắc trong file colors.xml, string trong file strings.xml phải không nào 😀

Tuy nhiên bạn … hoàn toàn có thể để như sau và … hoàn toàn có thể chạy ok :v

Lý do là ” các resource bên trong thư mục này đều có thẻ gốc là thẻ resources ” (folder res đó). Nhưng không nên nha !!!

cách viết thư mục res
All in one :3 luôn

5. Kotlin để code iOS – bạn đã thử ?

Kotlin sinh ra để … thay thế cho Java. Những gì Java có thể làm thì Kotlin cũng có thể làm được.

Tuy nhiên bạn có thể dùng …Kotlin code iOS thay vì Swift – hay chưa 😀

kotlin vi diệu
Kotlin vi diệu thật – các bạn đã học chưa ?

Các bạn có thể xem tại đây: https://www.jetbrains.com/lp/mobilecrossplatform/

Mình nghe dk là: ” Dùng kotlin code IOS mệt bỏ sử phải dùng run script để compile”.

Thực sự mình …chưa thử code nên chưa hiểu lắm, ai code rồi share lại mình vs nhé, tks !!!

6. MvRx của Airbnb

Bạn đã biết tới các mô hình MVC, MVP, MVVM ?

Ngoài ra Airbnb cũng đã tự phát triển một mô hình phần mềm riêng, gọi là MvRx. Được giới thiệu là ” make building products easier, faster, and more fun “.

Mình xem qua cũng khá hay, các bạn có thể xem tại link dưới

https://github.com/airbnb/MvRx/

7. Đẩy vùng text cần nhập lên trên bàn phím

Bạn muốn nhấn vào EditText mà sau đó nó sẽ được đẩy lên cao so với bàn phím như hình dưới ??

push edittext up
Ví dụ app messager

Hãy thử sử dụng thuộc tính android:windowSoftInputMode trong tag <activity> của file Android manifest. Có 2 lựa chọn là “adjustPan” và “adjustResize

Chi tiết hơn các bạn có thể xem tại đây

8. Bạn muốn cách khác để code giao diện Android

Bạn vẫn hay … code giao diện Android bằng cách nào ? Chúng có phải là:

Cách 1: code bằng file .xml – easy game 😀

Cách 2: code trong file .java, .kt, sử dụng các đối tượng có sẵn của Android kiểu như: linearLayout.add(new Button())

Các bạn vẫn hay dùng … một trong hai cách trên phải không nào 😀

Nhưng đó chưa hẳn đã hết, còn cách nữa, đó là: Litho: A declarative UI framework for Android

litho by facebook
Litho – phát triển bởi facebook – thử xem sao

Một số cái hay mình thấy là:

  • Asynchronous layout: có thể tính toán kích thước, tính cho view con ở background hết (bình thường là mainthread), chỉ draw là vẽ ở main thread.
  • Flatter view hierarchies: giảm số lượng ViewGroup => tăng hiệu suất, cải thiện bộ nhớ, …

Link trang chủ: https://fblitho.com/

Link git: https://github.com/facebook/litho

Ngó qua sự kiện sách – hot sale trên Tiki nhé

9. Bạn có hay đọc medium ?

Các bạn có biết tới medium ?? Cho bạn nào chưa biết thì đó là một … mạng xã hội (kiểu facebook, twitter đó :)) ) dưới dạng blog.

Trên đó bạn có thể đọc được .. rất nhiều điều hay, những chia sẻ, kinh nghiệm, câu chuyện các thứ – kiểu như blog của mình này :D. Bạn nào hay đọc share mình một số bài hay nào !!!

Mình cũng rất hay vào đọc, về Android, Kotlin, kiến thức lập trình, kinh nghiệm sống các thứ, … Nói chung là hay, chất, đỉnh.

Nhưng cái bạn sau một thời gian dùng sẽ gặp là như sau

medium
Sau một thời gian dùng và …

Hiểu đơn giản là bạn đang … đọc miễn phí, dạng free member. Bạn phải nâng cấp lên trả phí (5$/month) đó thì mới dk đọc .. ko giới hạn.

Và bạn không muốn trả phí ? Dễ là điều dễ hiểu mà :3

Bạn có thể xem tại đây để … như trên. Tuy nhiên bạn nên đọc về … những permissons plugin sử dụng – mình thấy khá nhiều và ethic problem này.

Hoặc đơn giản nhất là bạn bật “Cửa sổ ẩn danh” là sẽ ko bị như hình.

10. Set background theo màu ảnh nền

Bạn muốn set background – phần màu tím trên hình đó theo màu nền của bức ảnh ?

Set background theo màu ảnh nền

Bạn hãy search google từ khóa sau: “dominant color từ image android” là ok

Chính là bạn sẽ sử dụng Palette API, có thể xem tại: https://developer.android.com/training/material/palette-colors

11. AsyncTask trong Android

AsyncTask sẽ bị …deprecated trong Android 11, các bạn có thể xem tại đâyđây

AsyncTask
Good bye ‘n’ tks AsyncTask 🙁

Thay thế các bạn có thể sử dụng Rx, coroutine (trong kotlin)

12. Sequence trong Kotlin – nên thử ?

Bạn chưa học Kotlin, nên … học ngay đi nha. Chưa biết đến sequence, có thể xem tại: https://kotlinlang.org/docs/reference/sequences.html

Xử lý sequence thường nhanh hơn xử lý collection trực tiếp khi chúng ta có nhiều bước xử lý

Ta có đoạn code như sau

sequence
Code list thường vs code dùng sequence

Và thời gian chạy trung bình như sau

SequencesBenchmark.productsListProcessing 712 434 ns/op SequencesBenchmark.productsSequenceProcessing 572 012 ns/op

Tính ra nhanh hơn 20% lận. Để chi tiết hơn, các bạn có thể xem tại đây

Tạm kết

Vậy là hết rồi. Có gì các bạn để lại ý kiến, subscibe mail để nhận những bài mới nhất nhé 😀

Cảm ơn bạn đã đọc các bài viết của Code cùng Trung. Bạn hãy ủng hộ blog bằng cách:

  • Comment bên dưới mỗi bài nếu có thắc mắc
  • Để lại địa chỉ email của bạn để nhận được thông báo sớm nhất khi có bài viết mới
  • Chia sẻ các bài viết của Code cùng Trung đến nhiều người khác

Leave a Reply