{"id":18000768,"url":"https://github.com/norbert515/flutter_experiment_phone_ide","last_synced_at":"2025-08-09T23:08:31.033Z","repository":{"id":97227924,"uuid":"163321307","full_name":"Norbert515/flutter_experiment_phone_ide","owner":"Norbert515","description":"An experimental way to change Flutter source-code in Flutter itself.","archived":false,"fork":false,"pushed_at":"2019-01-05T14:05:38.000Z","size":3253,"stargazers_count":110,"open_issues_count":2,"forks_count":10,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-07-07T00:40:25.150Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Norbert515.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-12-27T17:39:40.000Z","updated_at":"2025-05-14T03:27:09.000Z","dependencies_parsed_at":null,"dependency_job_id":"09652c43-a7eb-4e37-834b-ceb67d5de69d","html_url":"https://github.com/Norbert515/flutter_experiment_phone_ide","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Norbert515/flutter_experiment_phone_ide","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Norbert515%2Fflutter_experiment_phone_ide","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Norbert515%2Fflutter_experiment_phone_ide/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Norbert515%2Fflutter_experiment_phone_ide/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Norbert515%2Fflutter_experiment_phone_ide/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Norbert515","download_url":"https://codeload.github.com/Norbert515/flutter_experiment_phone_ide/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Norbert515%2Fflutter_experiment_phone_ide/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269649848,"owners_count":24453541,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-09T02:00:10.424Z","response_time":111,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-29T23:13:57.408Z","updated_at":"2025-08-09T23:08:31.011Z","avatar_url":"https://github.com/Norbert515.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# flutter_experiment_phone_ide\n\n![phone_ide](https://github.com/Norbert515/flutter_experiment_phone_ide/blob/master/phone.gif)\n![live_reloads](https://github.com/Norbert515/flutter_experiment_phone_ide/blob/master/gifs/material_color_cut_gif.gif)\n\nMore gifs in the \"gifs\" folder.\n\n## Set up\n\nHas only been tested on Windows + Android (other platforms should work with little code adjustments)\n\nThe PC and the device must be in the same private network.\n\nNo root, what so ever required.\n\n*Estimated set up time: 8 minutes*\n\n#### 1. Download Dart (Flutter has dart, but it is not a full version of it)\n```\nhttps://www.dartlang.org/tools/sdk#install\n```\n#### 2. Make sure dart is in your path. Type `dart` into the command line and see if it is there. \n\nIf it is not, put it into the path (https://docs.alfresco.com/4.2/tasks/fot-addpath.html)\n\n#### 3. Clone this repositry \n```git\ngit clone https://github.com/Norbert515/flutter_experiment_phone_ide.git\n```\n#### 4. Include the code into your Flutter project\nCopy the \"ide\" folder under \"https://github.com/Norbert515/flutter_experiment_phone_ide/tree/master/flutter_experiment_phone_ide/lib\" into your project\n\n#### 5. Add dependecies to your project\nAdd these three dependencies into your pubspec.yaml and run `packages get`\n```\n  rpc: ^0.6.0\n  http: ^0.11.0\n  path: ^1.6.2\n```\n\n#### 6. Wrap the app\nWrap your home page with the `IdeApp` widget:\n```\nclass MyApp extends StatelessWidget {\n  @override\n  Widget build(BuildContext context) {\n    return new MaterialApp(\n      title: 'Flutter Demo',\n      theme: new ThemeData(\n        primarySwatch: Colors.red,\n      ),\n      home: IdeApp(child: new MyHomePage()),\n    );\n  }\n}\n```\n\n\n#### 7. Open the command line at this place\n```\nflutter_experiment_phone_ide/flutter_experiment_phone_ide_server/bin/\n```\n\n#### 8. Get the packages\n```\npub get\n```\n\n#### 9. Get the deviceId of the device you want to run it on\n\nIf you want to test it on your phone without a cable :\nIt still goes through adb, but wirelessly. Here is a very quick set up for that https://futurestud.io/tutorials/how-to-debug-your-android-app-over-wifi-without-root\n\nThen run\n\n```\nflutter devices\n```\n![device-ids](https://github.com/Norbert515/flutter_experiment_phone_ide/blob/master/device-ids.png)\n\nThe device ids are 192.168.0.101:5555, Desktop, Small respectively. \n\n\n#### 10. Start the server\nIt takes 2 arguments\n```\n--projectPath=\u003cpath_to_the_project_you_want_to_develop_on_your_phone\u003e\n--deviceId=\u003cadb_device_id_to_run_this_on\u003e\n```\nThis is how it could look like:\n```\ndart server.dart --projectPath=\"C:\\Users\\Norbert\\workspace\\flutter_experiment_phone_ide\\flutter_experiment_phone_ide\" --deviceId=\"172.23.218.234:5555\"\n```\n#### 11. Change to IP inside the client\nNavigate to the folder \"ide\" you copied to your project. Open the `ide.dart` file.\nOn line 8, change the `rootUrl` to the server IP.\nHere is an example:\n```\nTestApi testApi = TestApi(http.Client(), rootUrl: \"http://192.168.0.179:8080/\");\n```\n\n#### 12. Open the link which the server prints out to the console on your phone.\nThe link is: \n```\n\u003cserver_local_ip\u003e:\u003cport\u003e/test/v1/coldStart\n```\n\n#### 13. VPN (Not tested) \nIf you want to develop apps anywhere you go, you will have to set up a VPN to connect the phone and the PC.\n\n#### 14. Edit the code\nWhen the App opens, swipe to the right (there is a hidden drawer to the \nleft) to open the IDE settings. There you can enable the IDE and select a file\nto edit.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnorbert515%2Fflutter_experiment_phone_ide","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnorbert515%2Fflutter_experiment_phone_ide","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnorbert515%2Fflutter_experiment_phone_ide/lists"}