Phát triển ứng dụng Windows bằng React Native - ti le cuoc

/imgposts/74g4kzg9.jpg

Trong kỳ nghỉ Tết Nguyên Đán, sau khi sử dụng React Native để phát triển thành công hai ứng dụng Android, tôi chợt nảy ra ý tưởng thử xem có thể dùng React Native để phát triển ứng dụng khách hàng Windows hay không. Dù Microsoft đã chính thức hỗ trợ và dự án trên GitHub cũng nhận được rất nhiều lượt đánh giá cao, nhưng cuối cùng lần thử nghiệm này lại kết thúc bằng thất bại. Tuy nhiên, điều đó cũng giúp tôi nhận ra rằng việc sử dụng cấu trúc khởi tạo Expo để phát triển ứng dụng Windows là không phù hợp.

Khi bắt đầu quá trình phát triển, tôi đã gặp phải một số lỗi kỹ thuật đáng chú ý:

Lỗi xuất hiện khi chạy lệnh:

> npx react-native run-windows
‼ Không tìm thấy phiên bản VS công khai nào
 i Đang thử phiên bản tiền phát hành của VS
 × Không thể tìm thấy MSBuild với VCTools cho Visual Studio 17.11.0 hoặc mới hơn. Hãy đảm bảo tất cả các thành phần cần thiết đã được cài đặt.
 × Có khả năng cài đặt của bạn thiếu các phần mềm phụ thuộc cần thiết. Các phụ thuộc có thể tự động được cài đặt bằng cách chạy tệp node_modules\react-native-windows\scripts\rnw-dependencies.ps1 từ PowerShell với quyền quản trị viên.
Để biết thêm thông tin, truy cập 
Lệnh thất bại. Chạy lại lệnh với tùy chọn --logging để biết thêm chi tiết.

Microsoft Visual Studio Community 2022 (64-bit) - Phiên bản hiện tại 17.10.5 Sau khi nâng cấp, tôi thực hiện lại lệnh:

> npx react-native run-windows

Việc mở PowerShell với quyền quản trị viên (elevated PowerShell prompt) thường là cần thiết để thực thi các lệnh và kịch bản yêu cầu quyền hạn cao hơn. Chạy tệp node_modules\react-native-windows\scripts\rnw-dependencies.ps1:

Kiểm tra dung lượng trống trên ổ đĩa hiện tại > 15 GB            OK
Kiểm tra bộ nhớ cài đặt >= 16 GB            Thất bại (cảnh báo)
Kiểm tra phiên bản Windows >= 10.0.17763.0              OK
Kiểm tra chế độ Developer đã bật                    OK
Kiểm tra hỗ trợ đường dẫn dài đã kích hoạt              Thất bại

Vấn đề về phiên bản Visual Studio thấp có thể được giải quyết bằng cách mở Visual Studio và cập nhật lên phiên bản mới nhất.

yarn add --dev @react-native/js-polyfills metro-config @react-native/metro-babel-transformer metro-runtime @react-native/metro-config

Sau đó, chạy lệnh yarn start sẽ khởi động bình thường.

Cuối cùng, quá trình bị mắc kẹt ở bước này. Bất kể trong Visual Studio hay dòng lệnh, biên dịch đều báo lỗi này.

Sau khi thêm thư mục Windows và các phụ thuộc vào dự án Expo hiện có, tôi nhận thấy Android Studio không thể biên dịch mà báo lỗi. Khi loại bỏ các phụ thuộc liên quan đến Windows, việc biên dịch APK Android trở lại bình thường.

Một đêm dài cố gắng vẫn chưa thể hoàn thành việc đóng gói ứng dụng Windows bằng React Native. Tôi nghĩ tốt nhất nên chờ đợi sự hỗ trợ chính thức từ Expo. Ngoài ra, hầu hết các thành phần được sử dụng trong dự án React Native chỉ tuyên bố hỗ trợ Android, iOS và web, rất ít khi nhắc đến nền tảng Windows. Do đó, để thật sự hỗ trợ Windows là một thách thức lớn.

Một lựa chọn thay thế tuyệt vời là sử dụng Wails để phát triển ứng dụng Windows. Cơ chế logic cơ bản có thể được viết bằng lệnh Go trước, sau đó phát triển giao diện và tái sử dụng các thành phần React. Thực tế, tôi nhận thấy việc phát triển công cụ nhỏ bằng Golang khá thuận tiện, thậm chí còn dễ dàng hơn so với .NET.

Hướng dẫn phát triển ứng dụng đa nền tảng bằng React Native