thảo luận Tất tần tật về mobile development

1644587296848.png

Em định học khóa android này. Mọi người xem có đủ kiến thức đi làm không ạ?
 
Mình đang làm Android dùng Kotlin(exp hơn 3 năm) thì có lời khuyên cho các thím mới thế này.
  • Nắm vững kiến thức OOP, cái này rất quan trọng
  • Luôn chủ động học và cập nhật kiến thức
  • Học hiểu sâu về bản chất chứ đừng cưỡi ngựa xem voi, điển hình mình gặp rất nhiều trường hợp trả lời " Rxjava dùng để xử lý gọi API"
  • Tìm hiểu các kiến thức nâng cao design pattern, solid
  • Cố gắng nắm vững tư duy về clean code ( có thể mua quyển sách đọc)
 
Mình đang làm Android dùng Kotlin(exp hơn 3 năm) thì có lời khuyên cho các thím mới thế này.
  • Nắm vững kiến thức OOP, cái này rất quan trọng
  • Luôn chủ động học và cập nhật kiến thức
  • Học hiểu sâu về bản chất chứ đừng cưỡi ngựa xem voi, điển hình mình gặp rất nhiều trường hợp trả lời " Rxjava dùng để xử lý gọi API"
  • Tìm hiểu các kiến thức nâng cao design pattern, solid
  • Cố gắng nắm vững tư duy về clean code ( có thể mua quyển sách đọc)
có cần học qua java android để học kotlin k bác, hay nhảy thẳng qua kotlin luôn, em có base java xíu do học trên trường rồi
 
Mình làm iOS, native cũng khá là lâu. Hiện giờ đang làm Swift, và mới start học/làm Flutter cho cross-platform apps (công việc), cuối tuần hoặc rảnh rỗi thì làm app SwiftUI iOS cá nhân kiếm ít $ cafe. :)
Có chút kinh nghiệm chia sẻ cho các bạn mới.

Mình thì k giỏi thuật toán lắm, kinh nghiệm chủ yếu Google và tự mài mò, và kiểu mưa dầm thấm lâu.. Lúc học thì từ thời còn ngôn ngữ Objective-C, vừa học vừa viết app xem như thực hành mới hiệu quả. Swift thì mình dùng từ 2016 đến nay.

Theo mình thì mobile thì càng làm nhiều càng tốt, đa số các ý thì như bạn linhlam ở trên nói. Nắm vững các khái niệm về app life cycle, build đc custom UI, dần sâu thì xem về luồng (concurrency, parallel), memory management, cách đọc stack trace... Mobile theo mình thì chủ yếu là vận dụng framework, hiểu rõ iOS / Android SDK, học cách debug app là quan trọng, nắm các best practices của công đồng (vd iOS thì tham khảo SwiftLint rules), architecture, design, solid, srp.. để vận dụng phù hợp; tuy nhiên k có gì là hoàn hảo cả.

Xu hướng bây giờ thì mình thấy các cty vẫn đang dần chuyển từ native sang cross platform (như thời còn RN), nhưng hiện nay Flutter đang lên.. Tuy nhiên bạn nào thích và đam mê 1 platform nào đó thì đừng ngần ngại đầu tư sâu vào platform đó, vẫn có nhiều cty chỉ tuyển thuần native. Vd đam mê iOS muốn tìm hiểu cách viết app cho iPhone iPad Mac... thì chọn Swift, và học thêm SwiftUI và Combine (functional reactive framework của Apple), biết Objective-C là 1 thế mạnh, tuy nhiên ngôn ngữ này khá khó và tài liệu đã outdated. Android thì Kotlin, Jetpack Compose và Java (case giống Objective-C) , tuy nhiên Android mình chưa có kinh nghiệm nên k dám khuyên.

mình thì chuyên iOS/Swift có các site/newsletter mà mình thấy hữu ích:

Quan trọng như mình nói ở trên là thực hành và đoc/follow các tech, news mới từ công đồng mà mình thích. Nói chung đam mê là đc và đừng nản chí, chúc mọi người thành công!
 
Last edited:
Mình làm iOS, native cũng khá là lâu. Hiện giờ đang làm Swift, và mới start học/làm Flutter cho cross-platform apps (công việc), cuối tuần hoặc rảnh rỗi thì làm app SwiftUI iOS cá nhân kiếm ít $ cafe. :)
Có chút kinh nghiệm chia sẻ cho các bạn mới.

Mình thì k giỏi thuật toán lắm, kinh nghiệm chủ yếu Google và tự mài mò, và kiểu mưa dầm thấm lâu.. Lúc học thì từ thời còn ngôn ngữ Objective-C, vừa học vừa viết app xem như thực hành mới hiệu quả. Swift thì mình dùng từ 2016 đến nay.

Theo mình thì mobile thì càng làm nhiều càng tốt, đa số các ý thì như bạn linhlam ở trên nói. Nắm vững các khái niệm về app life cycle, build đc custom UI, dần sâu thì xem về luồng (concurrency, parallel), memory management, cách đọc stack trace... Mobile theo mình thì chủ yếu là vận dụng framework, học cách debug app là quan trọng, nắm các best practices của công đồng (vd iOS thì tham khảo SwiftLint rules), architecture, design, solid, srp.. để vận dụng phù hợp; tuy nhiên k có gì là hoàn hảo cả.

Xu hướng bây giờ thì mình thấy các cty vẫn đang dần chuyển từ native sang cross platform (như thời còn RN), nhưng hiện nay Flutter đang lên.. Tuy nhiên bạn nào thích và đam mê 1 platform nào đó thì đừng ngần ngại đầu tư sâu vào platform đó, vẫn có nhiều cty chỉ tuyển thuần native. Vd đam mê iOS muốn tìm hiểu cách viết app cho iPhone iPad Mac... thì chọn Swift, và học thêm SwiftUI và Combine (functional reactive framework của Apple), biết Objective-C là 1 thế mạnh, tuy nhiên ngôn ngữ này khá khó và tài liệu đã outdated. Android thì Kotlin, Jetpack Compose và Java (case giống Objective-C) , tuy nhiên Android mình chưa có kinh nghiệm nên k dám khuyên.

Quan trọng như mình nói ở trên là thực hành và đoc/follow các tech, news mới từ công đồng mà mình thích. Nói chung đam mê là đc và đừng nản chí, chúc mọi người thành công!

Bác cho e hỏi xíu: native và cross là gì mà hay thấy các bác nhỉ.

E đang là newbie Android Java đang chuẩn bị tìm việc.

Như e biết thì là Android có 2 langs: Kotlin và Java
IOS có Swift và Obj-C

Vậy thì cái native và cross là gì của Mobie Dev nhỉ???
 
Bác cho e hỏi xíu: native và cross là gì mà hay thấy các bác nhỉ.

E đang là newbie Android Java đang chuẩn bị tìm việc.

Như e biết thì là Android có 2 langs: Kotlin và Java
IOS có Swift và Obj-C

Vậy thì cái native và cross là gì của Mobie Dev nhỉ???
hiểu nôm na là native là viết 1 (codebase) build ra 1 (platform, hoặc iOS, hoặc Android) vậy 😄

còn cross platform thì 1 codebase build ra cả 2 app Android và iOS luôn -> đa nền tảng

ưu điểm và nhược điểm của mỗi loại thì dài lắm.

đúng như bạn nói
=> iOS dùng ngôn ngữ là Swift, dựa trên SDK là UIKit (tất cả đều của Apple).
=> Android thì Kotlin trên Android SDK (Google)

thường khi nhập môn mobile bạn nên đi con đường native -> chuyên biệt 1 platform. sau này nếu có thời gian có thể nghiên cứu platform khác hoặc cross platforms luôn.
 
hiểu nôm na là native là viết 1 (codebase) build ra 1 (platform, hoặc iOS, hoặc Android) vậy 😄

còn cross platform thì 1 codebase build ra cả 2 app Android và iOS luôn -> đa nền tảng

ưu điểm và nhược điểm của mỗi loại thì dài lắm.

đúng như bạn nói
=> iOS dùng ngôn ngữ là Swift, dựa trên SDK là UIKit (tất cả đều của Apple).
=> Android thì Kotlin trên Android SDK (Google)

thường khi nhập môn mobile bạn nên đi con đường native -> chuyên biệt 1 platform. sau này nếu có thời gian có thể nghiên cứu platform khác hoặc cross platforms luôn.

Ah e hiểu r, nếu z cái Java e đang học thì là chỉ code app cho Android thôi, muốn code cho iOS thì e phải học lang mới là Swift mới code dc. Cái này là native.

Còn muốn code 1 lần mà build dc app chạy đc trên cả 2 nền tảng iOS và Android thì phải học 1 lang nào đó hỗ trợ chạy đa nền tảng đúng ko.

Nếu z thì việc của e lúc đó là chỉ cần học thêm ngôn ngữ nào đó mà hỗ trợ đa nền tảng là được đúng ko :)
 
Còn muốn code 1 lần mà build dc app chạy đc trên cả 2 nền tảng iOS và Android thì phải học 1 lang nào đó hỗ trợ chạy đa nền tảng đúng ko.

Nếu z thì việc của e lúc đó là chỉ cần học thêm ngôn ngữ nào đó mà hỗ trợ đa nền tảng là được đúng ko :)

đúng rồi bạn.

đa nền tảng thì khuyên bạn chọn Flutter nhé(của Google), ngôn ngữ để làm Flutter là Dart lang (ngôn ngữ này lai giữa Java và JavaScript)

nhưng mà bạn mới học và chuẩn bị đi làm thì cứ stick vào một định hướng cụ thể là Android, ngôn ngữ nếu bạn đang học Java thì nên học thêm Kotlin vì các cty hiện chỉ tuyển ngôn ngữ mới. cross thì chỉ là phương án dự phòng thôi. chúc may mắn!
 
Last edited:
Em học Flutter, thường gặp khó khăn khi gặp 1 class mới. Mọi người cho em hỏi cách học của mọi người ntn ạ?
 
Có bác nào code app upstore chia sẻ kinh nghiệm cho ae với, mình biết cả Android và iOS đang tìm hiểu upstore
 
Mình đang làm Android dùng Kotlin(exp hơn 3 năm) thì có lời khuyên cho các thím mới thế này.
  • Nắm vững kiến thức OOP, cái này rất quan trọng
  • Luôn chủ động học và cập nhật kiến thức
  • Học hiểu sâu về bản chất chứ đừng cưỡi ngựa xem voi, điển hình mình gặp rất nhiều trường hợp trả lời " Rxjava dùng để xử lý gọi API"
  • Tìm hiểu các kiến thức nâng cao design pattern, solid
  • Cố gắng nắm vững tư duy về clean code ( có thể mua quyển sách đọc)
Mình bổ sung thêm vài cái (nâng cao):
  • Nắm được kiến thức về architecture. Cái này lên tầm senior tí là bắt buộc luôn, trong lúc pv sẽ hỏi :shame:
  • Hiểu về Reactive Programming: căn bản là ko dùng vẫn được nhưng giờ nó đại trà quá rồi, ko rx thì cũng coroutine thôi :giggle:
  • Testing: cái này khó hay dễ là tùy vào kn mỗi người vì ko phải proj nào cũng viết test nhưng theo mình thấy biết được vẫn hơn, cảm thấy pro hơn hẳn :nosebleed:

Gửi từ Samsung SM-M515F bằng vozFApp
 
Back
Top