01/10/2018, 09:49
Chọn react native hay Kotlin
Mình code iOS đc hơn 4 năm rồi, code đc Obj C và Swift, dạo này mún học thêm để lấn sang Android lun, cho mình hỏi là nên chọn React Native code bằng javascript build ra cả 2 thằng ios và android hay là nên học Kotlin cho android nhỉ ^^
Bài liên quan
một cuốn sách về Kotlin dành cho người mới bắt đầu mà mình kiếm được nè .Mà bạn cho hỏi code ios giờ mọi người dùng nhiều objc hay là swift nhiều hơn
https://drive.google.com/file/d/0B4bOgoGzn6g1OUwwVzVSRkNBTzQ/view?usp=sharing
thank bạn, Obj C vẫn nhìu việc hơn nhé, vì dự án maintain còn nhìu
nghe thiên hạ đồn thổi là swift giờ được apple chăm sóc tốt hơn ko biết có đúng ko
Android thì học kotlin không cần suy nghĩ nhiều, ReactNa thì có thể xem qua ‘cho biết’ vì cũng khá thú vị
anh chuyển qua làm kotlin rồi à mà sao em bảo cái này bây giờ giống như objc và swift mà
sao chả thấy ai bàn android thì học java nhỉ hoang mang
java cũ rồi với cả nó cứ dài dài thế nào ấy nghỉ cho khỏe học kotlin đi bác
Đợi 1 hoặc 2 năm rồi nhảy vào Kotlin.
Khi có đầy đủ thư viện trên Github cho Kotlin thì mới nhảy vào.
Mấy ngôn ngữ cùng hệ thống JVM như Groovy, Scala cũng nói là có thể sử dụng thư viện viết bằng Java nhưng đến giờ để sử dụng lib của Java phải bật thêm 1 plugin cho Scala. Tác giả hỗ trợ thì dùng được, nhưng không có đủ hết chức năng, hoặc tìm lib thuần về Scala.
Kotlin có syntax giống Swift, chắc Kotlin sẽ sống.
công nhân, cú pháp trong các thư viện có sẵn dài thật, nhưng mình vẫn thích java hơn hoang mang quá, mai mốt kotlin thay thế java thì tray
Java chưa chắc cũ nhé
Do Google nó tránh kiện tụng với Oracle (mình nghĩ là do kiện trong Java API) nên Google mới chọn Kotlin thay thôi. Bản thân Kotlin vẫn có thể viết chung với Java được
Thư viện Java còn rất nhiều nên vẫn phải học Java để xài thư viện thôi
Nói gì thì nói công ông Google này to đùng trong việc phổ cập Kotlin đấy, ngày xưa JetBrain ra Kotlin có mấy ai quan tâm?
Trong thời điểm này thì chưa thể thay được vì Kotlin hiện tại vẫn chạy bằng JVM như Java, các thành phần của Kotlin như Kotlin Runtime Library, Kotlin Standard Library cũng được viết bằng Java
Nhưng JetBrain đang có kế hoạch cho Kotlin chạy độc lập như mọi ngôn ngữ lập trình khác. Rất có hứa hẹn
Tuy nhiên anh Google có vẻ sẽ hơi khổ để vứt bỏ nền tảng Java ra khỏi Android, cũng là một trong những lý do Google chọn Kotlin thay vì ngôn ngữ, nền tảng khác
Tùy mục đích xây dựng sản phẩm mà chọn thôi bạn. Nếu app của bạn thuần dữ liệu (đa số hiện nay: fb, foody, lozi…) thì nên chọn react native.
Nếu app dạng game, chụp chỉnh sửa ảnh, cần sử dụng nhiều hiệu năng của phần cứng thì nên chọn ngôn ngữ native hoàn toàn. Trường hợp này, với câu hỏi của bạn thì nên chọn Kotlin.
Chỉnh sửa ảnh, tạo custom affect thì dùng Android NDK sử dụng C++. Cụ thể là tạo 1 List view có blur di chuyển trên 1 video đằng sau. Nếu dùng Java hay Kotlin code List View sẽ bị mất phản hồi, lúc đó phải can thiệp sâu C+.
hi ngôn ngữ mới nên code sướng hơn ngôn ngữ cũ, cấu trúc gọn hơn và safe hơn nhưng tính ổn định chưa cao và hay nâng cấp ^^
cúi tuần bận tí nên hơi bỏ bê, mình cũng research chút chút, react native đúng là đến giờ chỉ nên dùng cho những app đơn giản chứ chưa dùng cho app phức tạp đc, giải pháp hiện nay vẫn là khi build ra iOS PJ thì code native thêm vào những phần ko can thiệp đc, việc này cũng hơi phức tạp và tốn nhiều công sức, gọi qua lại giữa native và js và làm app kém performance,
Kotlin vẫn là native, hiện còn ít lib support hơn Java rất nhìu, một sự lặp lại của Obj C và Swift hồi đó nhưng giờ Swift cũng tốt rồi,
React native đang rất nổi và có nhìu công ty tuyển với mức lương tốt nhưng đường dài có lẽ mình vẫn sẽ chọn Kotlin, cộng với kinh nghiệm code obj C và Swift, mình hy vọng sẽ nhảy qua Kotlin nhanh hơn, về react native nếu có time dành ra tầm 2,3 tháng tìm hiểu cũng ko phải là vấn đề, bản thân mình có 1 chút ko thiện cảm với React vì mình đã làm 2 dự án mobile bằng cordova angular js rồi, nhưng sau đó phải đập đi code native lại vì chậm và nhìu bug (khi có os mới),
cảm ơn chia sẻ của các bạn ^^
React Native hướng Dev viết theo kiến trúc Undirectional Data Flow (UDF), được Facebook giới thiệu với thư viện Flux. Nền tảng iOS và Android lại hướng Dev viết theo MVC.
Trung bình thì thời gian build app theo UDF nhanh hơn và dễ maintain tình trạng state management so với MVC. Tuy nhiên, cộng đồng ReactiveX cũng có 1 bộ thư viện riêng cho phép viết UDF trên nhiều ngôn ngữ khác nhau, Swift, Java, JavaScript, Koltin đều có. Vì vậy nếu dùng được ReactiveX thì build native app vẫn nhanh như bên ReactNative, là có thể là nhanh hơn. Điều trở ngại ReactiveX là khó tiếp thu, vì tư duy lập trình khác. Nếu đã biết Haskell hoặc 1 ngôn ngữ thuần functional language thì tiếp thu ReactiveX dễ hơn.
Chú có biết là điểm hạn chế lớn nhất của Rx mình đã sài qua là binding. Nếu lạm dụng và binding lung tung thì tương lai cũng ác mộng lắm. Thấy có Elm Architecture coi thử đi cũng còn mới bên Mobile mà thực ra bên Fontend nó đã có lâu.
Mới làm mình cũng dính vụ binding. Lỗi hay gặp do mình bind nhầm đối tượng và cố gắng tạo thêm binding cho custom view hoặc lib’s view.
Cách mình tránh là tuân thủ 2 quy tắc: không tạo UIBinding mới, chi bind những đối tượng do RxCocoa hiện thực.
Có thể có solution khác
Kotlin mấy bạn ơi, nó ko replace Java đâu, mà nó support Java , 100% compatible Java . Mình cũng đang dùng Kotlin ở backend thay cho Java , chưa thấy có cản trở nào ngoài việc bạn có willing học cái mới
Thực sự mình chỉ làm IOS được hơn 1 năm thôi, cũng có sài qua Rx và cảm nhận thế =))