How to change Flutter DevTools default browser? - android

Can I change the default browser that is used for Flutter DevTools? Is it compatible with Firefox or other browser? In my case, I don't like Chrome very much, i's a little slow and heavy compared to firefox and others. I haven't found any solution so far, even changing the settings through VS Code. Thanks!

Use flutter run -d web-server
open app with browser other than Chrome

I don't think that anyone has properly answers this question yet so I'll give it a go.
In my case, my computers default browser is set to Safari but Safari doesn't work well with Flutters Dev Tools at the moment. So.. how can you keep your computers default browser and specify a browser you want to use when starting dev tools?
In Android Studio open up your Preferences and in the top left there is a search bar.
Type in "Web Browsers".
You will see a list of web browsers and you can click and drag.
Place the one you want to use by default on top. For example I have chrome on the top of my list.
Now just set this from "System default" to "First listed" and apply your changes
When you press this button to open dev tools it will now, in my case, open chrome instead of safari even though Safari is my computers default browser.

The other answers here pointed out solutions in Android Studio and starting a local server separately. But I wanted to start the whole debugging session in one command. So this is what I came up with in Linux:
I wanted to use Brave as the default browser. First run which brave-browser. Copy the outputted path (in my case, it was /usr/bin/brave-browser). Then open your bashrc or zshrc and paste the following line:
export CHROME_EXECUTABLE=THE_COPIED_PATH_FROM_PREVIOUS_STEP
# for me it became, CHROME_EXECUTABLE=/usr/bin/brave-browser
Lastly restart the shell:
source ~/.zshrc
# or source ~/.bashrc
Now, simply running flutter run -d chrome would open up the debugging session in Brave instead of Chrome(though in the console output, the messages will still be referring to Chrome).

its actually depends on code editor / ide
for vs-code
open setting
search dart.devToolsBrowser
change to default or any other browser

Related

How do I setup shadow-cljs for code reload with Cordova + Clojurescript?

I am currently working on a sample app on Cordova with Clojurescript. I am using shadow-cljs to build the project but somehow I could not find a way to make the code reload to work.
Instead, I have to use the browser build when developing since it allows for a shorter feedback loop with the code reload. And then after that, I deploy the app to a device/emulator using the cordova command line.
Is there a way in shadow-cljs to make the code reload to work while using the device/emulator directly when developing ?
I created a simple example using shadow-cljs with Cordova. I only tested the windows runtime but I'd assume that the others work as well.
It is all regular shadow-cljs the only special tweak in the config file is the :use-document-host false since by default it will try to use document.location and figure out where to connect from there. On Windows at least that is some ms-appx:// URL which cannot be used to connect the shadow-cljs websocket. So we disable the default which will make it use localhost instead. This works fine for Windows but other platforms might require tweaking the :devtools-url config option in case the generated "app" does not run on the same machine (eg. mobile device or emulator).

React native Ctrl M or dev tool not showing in my emulator

He thanks in advance,
In react native am not able to right click or open dev mode in emulator.
adb shell input keyevent 82
Use this in your windows command line, It works for me.
If the above solutions did not help, here is what worked for me.
Use an emulator that has Play Store installed. When creating a virtual device in Android Studio, it will have the Play Store icon.
Download Expo from the play store. For some reason, the Expo app that vscode pushes to my emulator won't work properly for me.
Run expo start and open the Expo Developer Tools page on your browser (by typing 'd' if it does not open automatically), and copy the url at the bottom left. Will look like exp://127.0.0.1:19000 if you started with --localhost
On the emulator, run the expo app and on the top select Open from Clipboard and it will show the url you copied.
For me, this did a better job at starting the Building Javascript bundle, and once the app was loaded, I was able to use Ctrl M to mimic shaking the device and open the developer menu!
Other troubleshooting tips I learned while figuring this out:
Like the comments above state, don't be in production mode
Make sure to have paths set up correctly to be able to reach your Android sdk, nodejs, and your local project node_modules/bin if you are not doing global npm installs.
If you are having issues with remote debugging, make sure the Chrome debugger is not open. Close it if it is open, have your debugger listening on the correct port (for me 19001) and reload the project on the device.
I hope this helps someone.
FOR WINDOWS 10 YOU NEED TO ADD THIS SO THAT YOU CAN USE CRTL+M to open debug and reload
Add environment variables
Open a File Explorer, copy and paste the following into the address bar.
Control Panel\System and Security\System
Click on Advanced system settings on the left menu.
Click on Environmental Variables at the bottom.
Click on New to add a user variable (the top section).
Youโ€™ll be adding two:
Variable Value
ANDROID_HOME C:\Users\username\AppData\Local\Android\Sdk
JAVA_HOME C:\Program Files\Android\Android Studio\jre\jre
Then under System variables (the bottom section), click on the Path variable and click on Edit.
On the pop-up window, click on New to add another variable:
C:\Users\username\AppData\Local\Android\Sdk\platform-tools
C:\Program Files\nodejs\
Click OK, OK
Then try your emulator
see this link: https://medium.com/#lpault29/react-native-environment-for-windows-e25806df867c
Turning off production mode solved my problem.
There is post which says turn off production mode -> it took me time to find in which settings -> I was looking in emulator settings, it was in expo-cli. This post is it clarify it.
Production mode off
In the expo-cli http://localhost:19002/, there is Production Mode (left side bar) -> turn it off
Open AVD Emulator and your application, press ctrl+M
It should work.
*Make sure we installed all of these SDK files,I tried all of the above solutions but no one solved my problem but everything is working now after doing this, hope it will solve your problem also

Ionic CSS changes are not persistent when after ionic serve / cordova run android commands

I am developping an app on Ionic version 3.9.2, for android tablets. I am working under windows 10 with Visual Studio Code.
In my plaform folder, I have only one device : my physical Android device.
The way I process to fix some CSS details is that I simply launch a
ionic serve command, find my HTML element, and update the main.css file located in the www/build folder (I am not using SCSS).
This works okay until I decide to check if everything looks good on my android tablet : I will launch a cordova run android, and then all the CSS changes are lost - even if I go back on my browser, and launch a new ionic serve.
Please note that I am talking about very basic styles, like colors and font size, not platform-specific styles.
I am not sure this behavior is because of the target device itself; it's looks like the changes will be included successfully on my testing platform until I decide to change the platform, and then the new platform will erase my changes because it's taking over the building process.
Is that possible ?
Maybe should I stop switching between those 2 commands ?
Or maybe should I edit both CSS files (www/build/main.css and platforms/android/assets/www/build/main.css) at the same time, which require a lot more work ?
Any help appreciated.
Oh of course, I shouldn't edit this CSS file.
Instead, edit the right SCSS file inside the SRC folder.
Thanks for your answer.

How do you debug React Native?

How does one debug their React code with React Native while the app is running in app simulator?
Mac: Cmd+M
Windows and Linux: Ctrl+M
Use the appropriate hotkey above from within the Simulator. It'll popup Chrome and from there you can use the Developer Tools.
Edit:
This is now linked in the help docs.
Debugging React Native Apps
To debug the javascript code of your react app do the following:
Run your application in the iOS simulator.
Press Command + D and a webpage should open up at http://localhost:8081/debugger-ui. (Chrome only for now) or use the Shake Gesture
Enable Pause On Caught Exceptions for a better debugging experience.
Press Command + Option + I to open the Chrome Developer tools, or open it via View -> Developer -> Developer Tools.
You should now be able to debug as you normally would.
Optional
Install the React Developer Tools extension for Google Chrome. This will allow you to navigate the view hierarchy if you select the React tab when the developer tools are open.
Live Reload
To activate Live Reload do the following:
Run your application in the iOS simulator.
Press Control + Command + Z.
You will now see the Enable/Disable Live Reload, Reload and Enable/Disable Debugging options.
For an Android App, if you're using Genymotion you can toggle the menu by pressing CMD + m, but you may have to enable it in the menu by doing this.
Untick widget
Enable it by CMD + m click on debug in chrome
if you want to debug using android device on Windows just open a command prompt then type ( make sure your adb working properly)
adb shell input keyevent 82
it will prompt a screen like the image
then select
debug JS Remotely
it will automatically open a new window.then open inspect element or press F12 for console.
In addition to the other answers. You can debug react-native using the debugger statement
example:
debugger; //breaks execution
Your chrome dev tools must be open for this to work
cmd โŒ˜ + D oddly didn't work for me. Pressing ctrl + cmd โŒ˜ + Z in the iOS simulator did kick off the debugging browser window for me.
This is the screen that pops up:
More details here.
Try this program: https://github.com/jhen0409/react-native-debugger
Works on: windows, osx and linux.
It supports: react native and redux
You can also inspect the virtual component tree and modify styles that are reflected in the app.
Debugging react-native 0.40.0 on Debian 8 (Jessie) can be done by navigating to http://localhost:8081/debugger-ui in Chromium or Firebug while your app is running in the android simulator. To access the in-app developer menu, run the following command in another terminal window, as pointed out here:
adb shell input keyevent 82
I don't have enough reputation to comment on the previous answers which are great. :)
Here are some of the ways how I am debugging when developing react-native app.
Live reloading
react-native makes it super easy to see your changes with the โŒ˜ + R keys or even just enable live reload and watchman will "refresh" the simulator with the latest changes. If you get an error, you can get a clue from the line number from that red screen. A couple of undo will get you back to working state and start again.
console.log('yeah, seriously.')
I find myself prefer letting the program run and logging some informations than adding a debugger break point. (tough debugger is useful when trying to work with external packages/libraries and it comes with autocompletion, so you know what other methods you can utilise.)
Enable Chrome Debugging with debugger; break point in your program.
Well it depends on the type of errors you encountered and your preferences of how to debug. For most of the undefined is not an object (evaluating 'something.something'), method 1 and 2 will be good enough for me.
Whereas dealing with external libraries or packages written by other developers will require more effort to debug hence a good tool like Chrome Debugging
Sometimes it is coming from the react-native platform itself so googling for react-native issues will definitely helps.
hope this helps someone out there.
React Native 0.62 Released - The Official solution is Flipper ๐Ÿš€
Flipper is Android & iOS Mobile debugging tools without using debug mode in react native.
Since RN 0.62 (See this link), Flipper is initialized with default project.
Flipper has a few of plugins for debugging. The plugins include Layout, Network, Shared preferences
The greatest benefit of Flipper is not also many plugins but you can see Android / iOS device console debugging easily too.
The Flipper alert you about crash or network rejection too.
Layout plugin includes accessibility mode and target mode.
You can also see raw network request / response in your Application.
Instead of Cmd+M, for Android Emulator Press F10 in Windows. The emulator starts to show all the react-native debug options.
For Android: Ctrl + M (emulator) or Shake the phone (In Device) to reveal menu.
For iOS: Cmd + D or Shake the Phone to reveal menu
Make sure you have chrome.
On the revealed menu select Debug JS Remotely Option.
Chrome will be opened automatically at localhost:8081/debugger-ui. You can also manually go to debugger with this link.
There reveal console and you can see logs being noted.
adb logcat *:S ReactNative:V ReactNativeJS:V
run this in terminal for android log.
If you are using Microsoft Visual Code , then install React Native Tools extension. Then you can add break points simply by clicking on the desired line number.
Follow these steps to setup and debug app :
Dont forget to enable Debug JS Remotely in emulator if you using it.
To me the best way to debug on React-Native is by using "Reactotron".
Install Reactotron then add these to your package.json:
"reactotron-apisauce": "^1.1.2",
"reactotron-react-native-under-37": "^1.1.2",
"reactotron-redux": "^1.1.2",
now, it just the matter of logging in your code.
e.g.: console.tron.log('debug')
Run your app in simulator - react-native run-ios
Press ctrl + d and click on Debug JS Remotely
webpage should open up at http://localhost:8081/debugger-ui , if not type the URL and go to this link in Chrome
Right click on the page and click Inspect and it should open the developer tools for chrome
Go to the sources in the top menu and find your js class file in the right hand side file explorer
You can put breakpoints to the view and debug the code in there as you can see in the image.
If you want to enable debugging by default:
import { NativeModules } from 'react-native';
if (__DEV__) {
NativeModules.DevSettings.setIsDebuggingRemotely(true)
}
To get this working on Android:
npm install --save react-native-devsettings-android
react-native link react-native-devsettings-android
Reference: Launch a React Native app with โ€œDebug JS Remotelyโ€ enabled by default
First in your ios simulator, if you press [command + D] key then you can see this screen.
Then click Debug JS remotely button.
After you might see React Native Debugger page like this.
And then open your inspector[f12], and go to console tab debug it! :)
By default, my ios simulator wasn't picking up the keystrokes which is why cmd-D didn't work. I had to turn on the settings for the keyboard using simulator's menu:
Hardware > Keyboard > Connect Keyboard
Now cmd-D launches chrome debugging.
For android app .Press Ctrl+M select debug js remotely it will open a new window in chrome with url http://localhost:8081/debugger-ui. You can now debug the app in chrome browser
Having a space in the file path prevents the Cmd+D from working. I moved my project to a location without a space and I finally got the Chrome debugger to work. Seems like a bug.
You can use Safari to debug the iOS version of your app without having to enable "Debug JS Remotely", Just follow the following steps:
1. Enable Develop menu in Safari: Preferences โ†’ Advanced โ†’ Select "Show Develop menu in menu bar"
2. Select your app's JSContext: Develop โ†’ {Your Simulator} โ†’ Automatically Show Web Inspector for JS JSContext
3. Safari's Web Inspector should open which has a Console and a Debugger
Very simple just two commands
For IOS $ react-native log-ios
For Android $ react-native log-android
If you are using emulator use Ctrl+M & simulator Cmd+D
Click on the - Debug js remotely
Google Chrome go to console
Assuming you want to show this menu on Android emulator
Then, try โŒ˜+m to pop up this dev settings dialog on Android emulator on a Mac.
If it doesn't show then go to AVD > (click the pen to edit your emulator configuration) > advanced settings > check the enable keyboard input box.
And then retry โŒ˜+m.
If it doesn't show still then go to the running emulator settings and on the Send keyboard shortcuts to combobox/dropdown then select the Emulator controls (default) option.
And then retry โŒ˜+m.
I hope this helps, it worked for me.
If you're using Redux, I highly recommend React Native Debugger. It includes Chrome devtools, but also has Redux devtools and React devtools.
Redux Devtools: This allows you to view your actions, and step back and forth through them. It also allows you to view your redux store and has a feature to automatically diff the previous state with the updated state for each action, so you can see that as you step back and forth through a series of actions.
React Devtools: This allows you to inspect a certain component, namely all of it's props as well as it's component state. If you have a piece of the component state which is a boolean, it lets you click it to toggle it and see how your app reacts when it changes. Great feature.
Chrome Devtools Allows you to see all your console outputs, use breakpoints, pause on debugger; etc. Standard debugging features. If you right click the area where your actions are listed in Redux Devtools and select 'Allow Network Inspect', you can then inspect your API calls in the network tab of Chrome Devtools which is sweet.
In conclusion having these all in one place is fantastic! If you don't need one of them you can toggle it on/off. Get React Native Debugger and enjoy life.
In React-Native debugging is much easier.
To debug in IOS use
cmd + d
ctrl + cmd + z ( For simulator )
To debug in android
Shake device with touch ( Make sure your developer option is enable )
This is the alternate way to use react native debugger application.
you can download application using below link it's very good application for managing redux store along with the source code.
react-native-debugger
as well now a days you may directly use below link for help you out.
chrome-developer-tools
Step 1:
Place debugger where ever you want to stop script, like:
async saveItem(item, selectedValue) {
debugger
try {
await AsyncStorage.setItem(item, selectedValue);
}
catch (error) {
console.error('AsyncStorage error: ' + error.message);
}
}
This will pause the debugger when ever control comes to this block of code.
Step 2:
Press Cmd+D on ios emulator and Cmd+M on Android simulator.
If you are having real device, shake the device to open dev menu, if you don't want to shake device follow this blog
Step 3:
Select Enable Remote JS Debugging, this will open Chrome
Step 4:
Select Developer Tools.
Step 5:
Your debugger is paused in Sources tab wherever you have written debugger within your code . Go to console and type any parameters you want to debug (that are present in the code block) like:
To move to next debugger point again move to Sources -> click on Resume script execution button (Right corner blue button)
Place the debugger, wherever you wanna pause the script.
Enjoy debugging!!
There is also a very good debuger name Reactotron.
https://github.com/infinitered/reactotron
You don't have to be in debug mode to see some data value and there is a lot of option.
go have a look that is really usefull. ;)

How to Inspect an Element in Android Browser

I am trying to inspect an element in android browser but unable to find any software for that.
Can someone help me in this?
It is possible through Chrome (not sure about the default android browser). The Chrome app can be used with the Chrome developer tools on the desktop to inspect HTML (etc) shown on your Android device.
This is documented here
You can do this in two different ways -
1)
You can use Firefox desktop browser and set the useragent to behave like Android browser, and inspect the element using Firebug & Firepath
For this, You can install User Agent Switcher Add-on or follow below steps-
a) Navigate to Firefox browser on your desktop
b) On address bar, type about:config
c) Then add String Value with the name "general.useragent.override" and provide the String value the useragent value of the Android browser you are targeting,
you can get Useragent value from - http://www.useragentstring.com/
Restart the browser, navigate to page on which you want to inspect the element
2)
Get the page source of the web page that you want to inspect on the Android device(Create Android Emulator), you get page source using below selenium code-
WebDriver driver=new AndroidDriver();
driver.get("http://yourwebpage.com");
System.out.println(driver.getPageSource());
a) Save the page source from the console to notepad and save it with extension .html
b) Open the page using Firefox browser and inspect the element using Firebug & Firepath
On Linux, you can install adb package (Android Debug Bridge), and the same version of Firefox on both desktop and mobile.
I am using version 68.11.0, but it's also supposed to work with later versions.
Here is the doc, it works really well for me:
https://developer.mozilla.org/docs/Tools/about:debugging
It will look something like this:
Steps:
Go To Home Page > Press Three Dot Menu > Press Star icon (Add Bookmark)
Now Press Edit down below
Now Add the below code in URL section and change name of bookmark to Inspect Element or whatever you want.
Code:
javascript:(function () { var script = document.createElement('script'); script.src="//cdn.jsdelivr.net/npm/eruda"; document.body.appendChild(script); script.onload = function () { eruda.init() } })();
Now go back and open any site where you want to inspect, example: https://google.com > press the search bar at top > Search that Bookmark which you just saved > Press that bookmark
Now you will see a new floating button at below right corner
Just press that button and done ๐Ÿ˜Ž
Note:
Don't forget to enable JavaScript and Pop-ups from Site Settings !

Categories

Resources