
Mình dùng các dự án hàng ngày của mình để thử nghiệm xem sau 1 năm thì các công việc liên quan đến phát triển phần mềm (backend, front end, ứng dụng di động) đã hoạt động tốt trên Apple Silicon chưa. Kết quả là đã hoạt động tốt. Mình thử với chiếc MacBook Pro 14' cấu hình thấp nhất của mình, thời gian xây dựng ứng dụng iOS thậm chí còn giảm đi 20% so với trước, thời gian xây dựng ứng dụng Android thì tương đương với một chiếc MacBook Pro Core i9 RAM 32GB.
Thử việc xây dựng Xcode
Kiếm dự án Mytour để thử xem, kết quả là MacBook Pro 14' CPU M1 Pro, RAM 16GB hoàn thành trước, chỉ mất 7:26 để xong. Trong khi đó, MacBook Pro 16' Core i9 RAM 32GB cần 9:34 để xong việc. Không chỉ nhanh hơn, con M1 Pro còn mát mẻ hơn nhiều, quạt gần như không quay, không có tiếng ồn và máy chỉ hơi ấm lên một chút. Trong khi con MacBook Pro Core i9 thì quạt hoạt động ồn ào, máy nóng và pin tuột nhanh, thậm chí khi quay video thử nghiệm tôi còn phải cắm điện cho con Core i9 sợ nó hết pin giữa chừng.
Thử xây dựng gói ứng dụng Android
Cả hai cho ra kết quả tương tự nhau, chỉ chênh lệch 1 giây mà thôi.
Xây dựng ứng dụng và sử dụng máy ảo
Dự án ứng dụng của mình sử dụng React Native, thử chạy trên máy ảo iOS và Android đều ổn. Việc cài đặt không gặp vấn đề, lưu ý chạy Terminal ở chế độ x86. Không cần chỉnh sửa code trong dự án. Gặp một số vấn đề như thiết lập ANDROID_HOME, quên set JAVA_HOME nhưng không phải do Apple Silicon, do không tuân thủ hướng dẫn của RN.
Về máy ảo, máy ảo iPhone không gặp vấn đề, còn máy ảo Android cài đặt dễ dàng, không gặp lỗi. Sử dụng Android Studio bản Artic Fox từ trang chủ Google, không cần chỉnh sửa thêm. Đây là bản Android Studio đã tối ưu cho chip Apple Silicon.
Wow, mình có thể chạy cả 2 máy ảo Android và iOS cùng lúc, mà không gặp vấn đề gì cả. Cũng không chậm so với bình thường. Trong khi đó, trên con MacBook Pro 16' cũ của mình, nếu mình chạy cả 2 máy ảo này song song thì thường bị giật, chậm, đặc biệt là máy ảo Android thường xoay xoay, không phản hồi nhanh khi click chuột
Docker
Đối với các dự án khác của mình sử dụng Docker, mình không cần phải chỉnh sửa nhiều. Docker hiện đã có bản chính thức cho Apple Silicon, cài đặt mới nhất từ trang chủ là xong. Docker-compose cũng hoạt động tốt theo đó. Các image mà mình sử dụng như Python, PHP, Redis, Celery, Postgres… đều có build dành cho ARM, riêng MySQL và Neo4j thì mình chỉ cần thêm 1 dòng vào docker-compose để nó tạo image theo dạng x86 là có thể chạy được luôn.
Với những dự án về data engineering, mình luôn sử dụng Docker từ mấy năm nay và không gặp vấn đề gì khi chạy các container này lên.
Có một số thứ mình chưa kịp test là các thư viện machine learning như TensorFlow, hay Scikit-learn chẳng hạn. Mấy thứ đó mình sẽ thử dần trong tuần sau, nếu có gì mới sẽ thông báo với mọi người.