okwasniewski / minisim Goto Github PK
View Code? Open in Web Editor NEWMacOS menu bar app for launching iOS and Android 🤖 emulators
Home Page: https://www.minisim.app/
License: MIT License
MacOS menu bar app for launching iOS and Android 🤖 emulators
Home Page: https://www.minisim.app/
License: MIT License
The goal of this PR is to enable no_magic_numbers
SwiftLint rule and refactor pieces of the app to make SwiftLint happy.
The goal of this issue is to make users update their app more often. Adding a new button - above "Preferences" will make it easier to update the app.
Goal of this task would be to create a NSMenuItem with a custom view that displays Search input to filter out emulators.
It should be focused by default when opening menu.
Currently Device
struct looks like this:
struct Device: Hashable {
var name: String
var version: String?
var ID: String?
var booted: Bool = false
var isAndroid: Bool = false
}
However it would be great to align the isAndroid
with newly introduced Platform
enum:
enum Platform: Codable {
case ios, android
}
Goal of this issue is to replace all instances of isAndroid
with this enum
Hello,
This issue is happening when we force close apps on Apple M1 Pro - macOS 13.2.1 (22D68)
then I have to restart machine, it means I could not close the warning message as below.
MiniSim - ShellOut encountered an error
Status code: 143
Message: "2023-03-13 12:28:28.084 Simulator[12018:156231] -[IOBluetoothDeviceInquiry initWithDelegate:] - 0x600002000ca0
2023-03-13 12:28:44.460 Simulator[12018:156231] Simulator: Terminating capture support for coordinator '<DeviceCoordinator: 0x60000156d440>'
2023-03-13 12:28:58.787 Simulator[12018:156231] Simulator: Terminating capture support for coordinator '<DeviceCoordinator: 0x60000156d440>'
2023-03-13 12:29:15.335 Simulator[12018:156231] Simulator: Terminating capture support for coordinator '<DeviceCoordinator: 0x600001550a80>'
2023-03-13 12:29:46.859 Simulator[12018:156231] -[IOBluetoothDeviceInquiry dealloc] - 0x600002000ca0
2023-03-13 12:30:24.137 Simulator[12018:156231] Simulator: Terminating capture support for coordinator '<DeviceCoordinator: 0x600001550a80>'
2023-03-13 12:33:21.711 Simulator[12018:156231] Simulator: Terminating capture support for coordinator '<DeviceCoordinator: 0x600001550a80>'
2023-03-13 12:35:36.380 Simulator[12018:156231] Simulator: Terminating capture support for coordinator '<DeviceCoordinator: 0x600001550a80>'
2023-03-13 12:36:14.614 Simulator[12018:156231] Simulator: Terminating capture support for coordinator '<DeviceCoordinator: 0x600001550a80>'
2023-03-13 12:38:16.138 Simulator[12018:156231] Simulator: Terminating capture support for coordinator '<DeviceCoordinator: 0x600001550a80>'
2023-03-13 12:38:20.939 Simulator[12018:156231] Simulator: Terminating capture support for coordinator '<DeviceCoordinator: 0x600001550a80>'
2023-03-13 12:39:34.736 Simulator[12018:156231] Simulator: Terminating capture support for coordinator '<DeviceCoordinator: 0x600001550a80>'
2023-03-13 12:40:02.352 Simulator[12018:156231] Simulator: Terminating capture support for coordinator '<DeviceCoordinator: 0x600001550a80>'
2023-03-13 12:40:16.568 Simulator[12018:156231] Simulator: Terminating capture support for coordinator '<DeviceCoordinator: 0x600001550a80>'
2023-03-13 12:40:42.745 Simulator[12018:156231] Simulator: Terminating capture support for coordinator '<DeviceCoordinator: 0x600001550a80>'
2023-03-13 12:40:59.011 Simulator[12018:156231] Simulator: Terminating capture support for coordinator '<DeviceCoordinator: 0x600001550a80>'
2023-03-13 12:41:33.743 Simulator[12018:156231] Simulator: Terminating capture support for coordinator '<DeviceCoordinator: 0x600001550a80>'
2023-03-13 12:47:58.068 Simulator[12018:156231] Simulator: Terminating capture support for coordinator '<DeviceCoordinator: 0x600001550a80>'
2023-03-13 12:48:37.932 Simulator[12018:156231] Simulator: Terminating capture support for coordinator '<DeviceCoordinator: 0x600001550a80>'
2023-03-13 12:48:46.653 Simulator[12018:156231] Simulator: Terminating capture support for coordinator '<DeviceCoordinator: 0x600001550a80>'
2023-03-13 12:49:00.391 Simulator[12018:156231] Simulator: Terminating capture support for coordinator '<DeviceCoordinator: 0x600001550a80>'
2023-03-13 12:49:30.028 Simulator[12018:156231]
The goal of this PR is to enable implicitly_unwrapped_optional
SwiftLint rule and refactor pieces of the app to make SwiftLint happy.
The command getDevices
that can be used with AppleScript and that is used by the Raycast extension make MiniSim crash.
I use the version 0.8.3, and I am on a MacBook Pro M1 Pro.
The AppleScript:
tell application "MiniSim"
getDevices platform "android"
end tell
There's a erroneous entry in the android emulator list
For reference:
$ANDROID_HOME/cmdline-tools/latest/bin/avdmanager list avd
Available Android Virtual Devices:
Name: Pixel_7_Pro_API_34
Device: pixel_7_pro (Google)
Path: /Users/rigor789/.android/avd/Pixel_7_Pro_API_34.avd
Target: Google Play (Google Inc.)
Based on: Android 14.0 ("UpsideDownCake") Tag/ABI: google_apis_playstore/arm64-v8a
Skin: 1440x3120
Sdcard: 512M
---------
Name: ZTelevision_API_34
Device: tv_1080p (Google)
Path: /Users/rigor789/.android/avd/ZTelevision_720p_API_34.avd
Target: Android TV
Based on: Android 14.0 ("UpsideDownCake") Tag/ABI: android-tv/arm64-v8a
Skin: 1920x1080
Sdcard: 512 MB
$ANDROID_HOME/emulator/emulator -list-avds
INFO | Storing crashdata in: /tmp/android-rigor789/emu-crash-34.1.20.db, detection is enabled for process: 58515
Pixel_7_Pro_API_34
ZTelevision_API_34
$ANDROID_HOME/emulator/emulator -version
INFO | Storing crashdata in: /tmp/android-rigor789/emu-crash-34.1.20.db, detection is enabled for process: 58580
INFO | Android emulator version 34.1.20.0 (build_id 11610631) (CL:N/A)
INFO | Storing crashdata in: /tmp/android-rigor789/emu-crash-34.1.20.db, detection is enabled for process: 58580
INFO | Duplicate loglines will be removed, if you wish to see each individual line launch with the -log-nofilter flag.
Android emulator version 34.1.20.0 (build_id 11610631) (CL:N/A)
Copyright (C) 2006-2017 The Android Open Source Project and many others.
This program is a derivative of the QEMU CPU emulator (www.qemu.org).
This software is licensed under the terms of the GNU General Public
License version 2, as published by the Free Software Foundation, and
may be copied, distributed, and modified under those terms.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
This likely needs to be filtered here:
MiniSim/MiniSim/Service/DeviceService.swift
Lines 379 to 391 in 0dffe44
Perhaps a simple && !$0.contains(" |")
in the filter would be sufficient, as I don't think emulator names could/would contain |
in their name.
Currently ParametersTable
uses "custom" implementation of Table due to MacOS 11 as a target. However, with 0.6.0 release MiniSim will support only MacOS 12+ so this component can be refactored.
The goal is to add a way for users to easily hide Android / iOS sections inside the menubar.
This would require a new checkbox in the preferences panel. Together with some additional checks during rendering. Ideally, the user would be asked during onboarding which platform he wants to use.
This will allow MiniSim to target native developers that are interested in only one platform.
The goal of this PR is to enable force_unwrapping
SwiftLint rule and refactor pieces of the app to make SwiftLint happy.
Hey there, thanks for this great project! I'm a React Native developer as well, and before stumbling upon this tool, I've been using a Raycast Simulator Control extension for booting up simulators. Sadly it didn't support emulators, so this is a really nice tool to have.
I like the feature of copying ID/names too so i can install RN apps directly for those simulators 😊
It will be nice if there's a Raycast extension for MiniSim! I do have experience building a Raycast extension so I could help with that, but let me know your thoughts about this idea.
When running MiniSim, I get an error saying it could not locate my Android SDK (in ~/Library/Android/...
)
I am using google's sdkmanager
cli tool to manage the SDK. It was downloaded from Homebrew, the formulae name is android-commandlinetools
Default Android SDK root is /opt/homebrew/share/android-commandlinetools
However, the locaiton of all executables, including emulators is ~/.android
Full path to .avd
files is ~/.android/avd
Although the MiniSim.app is probably looking for /opt/homebrew/share/android-commandlinetools/emulator/emulator
Please, enable support for this type of installation, since it is inconvenient to create symlinks.
The goal of this issue is to create a good documentation on how to use MiniSim custom commands. The docs can be placed inside the docs
folder in the repo (create one if it doesn't exist).
The guide should cover:
Then add a help button inside of Custom Commands interface.
The goal of this issue is to create GitHub actions pipeline checking if SwiftLint passes all the checks
The goal of this issue is to add a new feature that would allow users to "pin" simulators / emulators to the top of its corresponding sections (iOS/Android).
This would require adding a new field in the Device
struct and then filtering the list when populating NSMenu
so that favorite items are pinned to the top.
MiniSim - Custom Command Error
ShellOut encountered an error
Status code: 149
Message: "An error was encountered processing the command (domain=com.apple.CoreSimulator.SimError, code=405):
Unable to boot device in current state: Booted"
Output: ""
my custom command is : xcrun simctl boot $uuid --arch=x86_64
The goal of this issue is to indicate if there is available update that the user didn't download / install.
It could work / look simillarly to Cleanshot
Clicking the Minisim menu item shows an error on the screen.
MiniSim - ShellOut encountered an error
Status code: 72
Message: "xcrun: error: unable to find utility "simctl", not a developer tool or in PATH"
Output: ""
MacOS 12.7
When the app is launched and there are too many apps in the menu bar it doesn't get attached. We can inform the user by displaying an Alert that the app is running but there is no place in the menubar.
Goal of this PR would be to create a Release CI pipeline automatically publishing to Github Releases and notarizing the app
I just installed it via Homebrew and wanted to launch the app, but I got an error only. Similar to #39 (comment)
MiniSim - ShellOut encountered an error Status code: 127
Message: "/bin/bash: /Users/xyz/Library/Android/sdk/emulator/emulator:
No such file or directory"
Output: ""
Haven't done anything else.
macOS 12.6.3
iMac intel
Never done anything with Android, so I don't know if there is more software needed before using MiniSim.
The goal of this issue is to add new picker to options which would allow users to pick a new menubar icon.
Similar to the https://maccy.app/
The available icons would be:
iphone
)ipad.landscape
)archivebox
)Names in backticks are the names from SF Symbols.
Those assets should be placed inside of Assets folder.
Goal of this issue is to add new option to android submenu which allows users to quickly delete selected emulator and all of it's data.
The goal of this issue is to add SwiftLint
to the codebase to make code more consistent.
There was a tweet https://twitter.com/hirbod_dev/status/1725510792248774689 saying that there are issues with Pixel 7 emulator. Goal of this issue is to check whats wrong with it and create a fix (if reproducible)
The goal is to add a new feature in Android subsection with an option to view emulator on disk (open in finder).
All the AVD images are placed under: ~/.android/avd
. Each one has its own .ini
file with the path
key that will allow opening it using finder.
When developing this, pay close attention to a case when the user renames the emulator in Android Studio.
The goal of this issue is to add option to launch logcat for each device separately.
Logcat should launch with -v color
flag. This feature should also take into account user's preferred terminal (iTerm, Terminal.app etc.)
This was currently achievable through custom commands but native support would increase the use of this feature
I'm using M2 and xcode Version 14.2 (14C18), the ios simulator doesn't scroll smoothly. also there no rosetta
any more.
I have to run this command to make it work:
xcrun simctl boot [deviceID] --arch=x86_64
is there any way that I can do that by using this app?
First of all, thanks for this utility is very useful!
But when I launch Emulator with it, emulator freeze few minutes / hours after, I don't have this issue when I launch emu with Android Studio.
I need to quit force, and I got this error
MiniSim - ShellOut encountered an error
Status code: 137
Message: "WARNING | cannot add library /Users/user/Library/Android/sdk/emulator/qemu/darwin-aarch64/lib64/vulkan/libvulkan.dylib: failed
WARNING | *** No gRPC protection active, consider launching with the -grpc-use-jwt flag.***
/bin/bash: line
Do you have an idea maybe?
It would be great if you could connect an Android v11+ device over WiFi by scanning the a QR Code just like Android Studio has it.
In this issue I want to track future feature ideas and gather some feedback around what you want to see next!
What an exceptional great idea! I would love to see this packaged via Github Releases (and later on the App Store + In App Purchase), is this something that's possible?
This is an extension of #106
The goal of it is to implement Picker UI to choose user's default terminal
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.