Chuyển đến nội dung chính

simvyn: một bảng điều khiển cho mọi simulator, emulator và thiết bị

simvyn là một dashboard và một CLI cho mọi thiết bị bạn phát triển trên đó — iOS Simulator, Android Emulator và máy thật qua USB. 351★, cập nhật lần cuối 2026-08-05. Chạy bằng một lệnh, không cần cấu hình.

simvyn là gì?

Phát triển di động khiến việc điều khiển thiết bị bị phân mảnh qua quá nhiều công cụ. Khởi động simulator thì mở Xcode. Xóa sạch emulator thì mở Android Studio. Đọc log thì adb logcat ở một cửa sổ và Console.app ở cửa sổ khác. Đặt vị trí GPS giả thì mỗi nền tảng một hộp thoại. Xem file SQLite của app thì phải kéo thủ công ra khỏi thiết bị.

simvyn gom tất cả về một dashboard web, và ánh xạ mọi tính năng sang CLI để chạy được cả khi không có giao diện:

npx simvyn

Lệnh đó khởi động server cục bộ, mở dashboard và tự phát hiện mọi thứ đang kết nối — simulator, emulator, thiết bị USB.

Vì sao lập trình viên Flutter nên quan tâm

Flutter đã trừu tượng hóa phần ứng dụng qua các nền tảng. simvyn trừu tượng hóa phần thiết bị, nửa còn lại mà Flutter chưa bao giờ động tới. flutter run chọn thiết bị nhưng không giúp gì cho những việc xung quanh.

Ba tính năng có giá trị ngay trong quy trình Flutter:

Trình xem database. Duyệt bảng SQLite và chạy truy vấn SQL, thêm SharedPreferences trên Android và NSUserDefaults trên iOS. Nếu app dùng sqflite, Drift hay shared_preferences, đó chính là toàn bộ lớp lưu trữ cục bộ, xem được mà không phải viết màn hình debug.

Trình duyệt file. Duyệt sandbox của app, tải file lên/xuống, sửa văn bản ngay tại chỗ. Tái hiện lỗi cache hỏng không còn là công việc khảo cổ.

Giả lập vị trí. Đặt tọa độ, hoặc phát lại lộ trình GPX/KML kèm điều chỉnh tốc độ. Thử tính năng bản đồ hay giao hàng không còn nghĩa là đi vòng quanh văn phòng.

Ngoài ra: log realtime có lọc theo mức và tìm kiếm regex, chụp ảnh và quay màn hình có lưu lịch sử, mở deep link kèm danh sách yêu thích, gửi payload thông báo đẩy tới iOS Simulator, đọc/ghi clipboard, log crash, và đẩy ảnh/video vào thư viện của máy.

Tính năng Collections là thứ dễ bị bỏ qua. Gói một chuỗi thao tác thiết bị — đặt ngôn ngữ, bật chế độ tối, gieo vị trí, cài bản build — rồi áp cho nhiều thiết bị cùng lúc. Đó là quy trình chuẩn bị QA của bạn được đóng thành một đối tượng dùng lại được.

Khi nào nên dùng simvyn?

  • bạn liên tục chuyển qua lại giữa iOS và Android và chán phải mở hai IDE chỉ để làm việc vặt với thiết bị
  • bạn cần xem trạng thái trên máy — bảng dữ liệu, preferences, file sandbox — mà không phải dựng giao diện debug
  • bạn thử vị trí, deep link hay push và muốn việc đó lặp lại được thay vì làm tay
  • bạn muốn một AI agent điều khiển thiết bị; chính bề mặt CLI đầy đủ khiến điều đó khả thi

Điểm còn hạn chế

Không có Windows. macOS cho bạn cả iOS lẫn Android; Linux chỉ có Android. Với nhóm Flutter dùng Windows thì đây là điểm chặn, và không cấu hình nào cứu được — điều khiển iOS Simulator cần công cụ dòng lệnh của Xcode.

Yêu cầu Node 22.12 trở lên, mới hơn mức mặc định trên nhiều máy.

Repo cũng không có file giấy phép, điều đáng lưu ý với một công cụ bạn chạy trên các bản build nội bộ trước khi đưa vào quy trình chung của nhóm. Đó là thiếu sót giấy tờ hơn là kỹ thuật, nhưng lại đúng loại thiếu sót khiến khâu rà soát bảo mật phải dừng lại.

Các lựa chọn đáng so sánh

Câu hỏi thường gặp

Có cần cài simvyn không?

Không. npx simvyn khởi động server cục bộ, mở dashboard trong trình duyệt và tự phát hiện mọi simulator, emulator, thiết bị USB đang kết nối. Nếu dùng hằng ngày thì có thể cài toàn cục bằng npm install -g simvyn.

simvyn có chạy trên Windows không?

Không. Nó cần macOS để hỗ trợ đầy đủ iOS và Android, hoặc Linux thì chỉ có Android. Điều khiển iOS Simulator phụ thuộc công cụ dòng lệnh của Xcode, thứ không tồn tại ngoài macOS.

simvyn có dành riêng cho Flutter không?

Không, và đó mới là điểm hay. Nó điều khiển simulator và thiết bị chứ không phải framework, nên cùng một dashboard dùng được cho app Flutter, React Native, SwiftUI native và Jetpack Compose.

Nó xem được database cục bộ của app không?

Có. Trình xem database duyệt bảng SQLite và chạy câu truy vấn SQL, đồng thời đọc SharedPreferences trên Android và NSUserDefaults trên iOS. Với app Flutter dùng sqflite hay Drift, đó chính là toàn bộ kho dữ liệu cục bộ, không cần thêm mã debug nào.

Tài nguyên & liên kết


Thuộc FlutterCook — hướng dẫn thực hành về các thư viện, UI kit và ứng dụng Flutter mã nguồn mở tốt nhất. Xem xu hướng GitHub hoặc hướng dẫn YouTube.


Bài viết gốc đăng tại FlutterCook. Bản trên đó là bản được cập nhật mới nhất.

Nhận xét

Bài đăng phổ biến từ blog này

5 concepts every Flutter dev should know

  Phụ lục: State management architecture Testing IDE Shortcuts Platform channel Maintaining a project Tôi đã làm việc với Flagship trong một thời gian dài, và đây là những điều mà tôi phát hiện ra là điều cần phải có đối với bất kỳ nhà phát triển Flagship nào, về tổng thể nó sẽ khiến bạn trở thành một nhà phát triển Flagship giỏi trong thời gian dài. 1. State management architecture Đây là một trong những chủ đề quan trọng nhất trong cộng đồng thiết bị rung, nó khá quan trọng nếu bạn muốn duy trì một dự án rung kích thước trung bình hoặc lớn. Nó sẽ giúp tạo một dự án suôn sẻ và thêm các tính năng mới một cách hoàn hảo.  2. Testing Đây là một chủ đề duy nhất mà tôi không hiểu tại sao nó lại quan trọng trước đó trong sự nghiệp của tôi, nhưng khi tôi tiến lên trong sự nghiệp của mình và có kinh nghiệm với nhiều dự án và vấn đề xảy ra trong môi trường sản xuất. Tôi đã nhận ra một cách khó khăn, tại sao điều này lại quan trọng như vậy. Nếu bạn vẫn muốn có thêm lý do để cân nhắc thử...

Thiết kế giao diện với DotNetBar (Phần 1)

Đây là phiên bản DotNetBar hỗ trợ C# và Visual Basic https://www.dropbox.com/s/wx80jpvgnlrmtux/DotNetBar.rar  , phiên bản này hỗ trợ giao diện Metro cực kỳ “dễ thương” Các bạn load về và cài đặt, khi cài đặt xong sẽ có source code mẫu của tất cả các control. Để sử dụng được các control của DotNetBar các bạn nhớ add item vào controls box. Thiết kế giao diện với DotNetBar, giao diện sẽ rất đẹp. Link các video hướng dẫn chi tiết cách sử dụng và coding: http://www.devcomponents.com/dotnetbar/movies.aspx Hiện tại DotNetBar có rất nhiều công cụ cực mạnh, trong đó có 3 công cụ dưới đây: DotNetBar for Windows Forms Requires with Visual Studio 2003, 2005, 2008, 2010 or 2012.   DotNetBar for WPF Requires with Visual Studio 2010 or 2012 and Windows Presentation Foundation.   DotNetBar for Silverlight Requires with Visual Studio 2010 or 2012 and Silverlight. Dưới đây là một số hình ảnh về các control trong DotnetBar.   Metro User Interface  controls with Metro Tiles, toolba...

Announcing Flutter 2

  Phụ lục: Flutter on the web Flutter 2 on desktops, foldables, and embedded devices The growing Flutter ecosystem Dart: The secret sauce behind Flutter Flutter 2: Available now Hôm nay, chúng tôi sẽ công bố Flutter 2: một bản nâng cấp lớn cho Flutter cho phép các nhà phát triển tạo các ứng dụng đẹp, nhanh chóng và di động cho bất kỳ nền tảng nào. Với Flutter 2, bạn có thể sử dụng cùng một cơ sở mã để gửi các ứng dụng gốc cho năm hệ điều hành: IOS, Android, Windows, macOS và Linux; cũng như trải nghiệm web nhắm mục tiêu các trình duyệt như Chrome, Firefox, Safari hoặc Edge. Flutter thậm chí có thể được nhúng vào ô tô, TV và thiết bị gia dụng thông minh, mang đến trải nghiệm di động và lan tỏa nhất cho thế giới điện toán xung quanh. Mục tiêu của chúng tôi là thay đổi cơ bản cách các nhà phát triển nghĩ về việc xây dựng ứng dụng, bắt đầu không phải với nền tảng bạn đang nhắm mục tiêu mà là với trải nghiệm bạn muốn tạo. Flutter cho phép bạn tạo ra những trải nghiệm tuyệt đẹp trong đó ...