{"id":13800223,"url":"https://github.com/adafruit/glider","last_synced_at":"2025-10-03T05:31:49.674Z","repository":{"id":53403058,"uuid":"209667952","full_name":"adafruit/glider","owner":"adafruit","description":"App for editing Python on mobile devices wirelessly","archived":true,"fork":false,"pushed_at":"2021-03-31T00:59:53.000Z","size":1914,"stargazers_count":42,"open_issues_count":2,"forks_count":7,"subscribers_count":15,"default_branch":"master","last_synced_at":"2025-01-19T18:55:23.699Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/adafruit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-09-19T23:52:48.000Z","updated_at":"2024-11-15T00:46:06.000Z","dependencies_parsed_at":"2022-08-23T16:10:24.953Z","dependency_job_id":null,"html_url":"https://github.com/adafruit/glider","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adafruit%2Fglider","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adafruit%2Fglider/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adafruit%2Fglider/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adafruit%2Fglider/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/adafruit","download_url":"https://codeload.github.com/adafruit/glider/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235079280,"owners_count":18932498,"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","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-08-04T00:01:10.614Z","updated_at":"2025-10-03T05:31:44.310Z","avatar_url":"https://github.com/adafruit.png","language":"JavaScript","readme":"![Glider word logo](logo.png)\n\nGlider is a portable mobile app aimed at making wireless editing of Python code really easy and fun.\n\n## Installation\n```\ngit clone --recursive https://github.com/adafruit/glider.git\n```\nIf pyright fails to install, run:\n```\ncd glider\nrm -rf pyright\ngit clone https://github.com/adafruit/pyright\n```\n\nIn the glider folder, run:\n```\nnpm install\n```\n\n**NOTE:** Android requires manual installation/ linking of the libraries: \n - [react-native-fs](https://www.npmjs.com/package/react-native-fs#usage-android)\n - [react-native-local-resource](https://www.npmjs.com/package/react-native-local-resource)\n\n\n### iOS\nFrom the /ios folder, run:\n```\npod install\n```\nOpen XCode and run on your device, it should ask for bluetooth permissions once loaded. Additionaly, the bundle identifiers may need to be changed for the code signing to work.\n\n### Android\n1) Build the gradle project by opening `glider/android` folder in Android Studio. Gradle should automatically start building and notify you when project is built via logs or Build tab. \n2) If the `debug.keystore` file does not exist already in `glider/android/app`, then copy it from `glider/node_modules/react-native/template/android/app` or search for where this file exists in your glider folder and paste it to `glider/android/app`.\n3) Connect your android device to your computer. **NOTE:** app must be run on physical device (not an Android Simulator) due to bluetooth limitations. \n4) In VS Code, run:\n```\nnpx react-native run-android\n```\n\n### Adafruit board\nEnsure your board is running a BLE-allowed version of Circuit Python to allow your board to connect to glider.\n\nTo revert back to version of Circuit Python with BLE enabled: \n```\ngit clone https://github.com/adafruit/circuitpython.git\ncd circuitpython\ngit checkout aca53aa1a2c21ff46b609cfc270134ee6ee024f2\n```\n\nThen rebuild Circuit Python onto your board following [these directions](https://learn.adafruit.com/building-circuitpython/build-circuitpython#build-circuitpython-2986723-5), replacing the last step with BLE flag:\n```\ncd ports/{insert_board_type_folder}\nmake BOARD={insert_board_name} CIRCUITPY_BLE_FILE_SERVICE = 1\n``` \n\nThen run your build following [these directions](https://learn.adafruit.com/building-circuitpython/build-circuitpython#run-your-build-2987858-9) and ensure `code.py` is actively running code to allow BLE detection. (Eg, [this](https://learn.adafruit.com/welcome-to-circuitpython/creating-and-editing-code#exploring-your-first-circuitpython-program-2977748-20) led sample code). \n\n*Optional:* To check whether BLE-allowed version of Circuit Python was installed correctly or not, download the [Adafruit Bluefruit LE Connect app](https://learn.adafruit.com/bluefruit-le-connect/ios-setup) and check that your board is detected. \n\nUpon refresh of glider app, your board should be automatically detected and connected. **NOTE:** may need to refresh glider more than once or may need to click reset button on board\n\n\n\n## Usage\nGlider can run using code from either your BLE enabled CircuitPython device, or from a local file.\n\nTo allow it to run on your CircuitPython device, you must first build CircuitPython using this commit (run git checkout followed by this hash): ```aca53aa1a2c21ff46b609cfc270134ee6ee024f2```\nUse the instructions from [here](https://learn.adafruit.com/building-circuitpython) to build the code and upload it to your device.\n\nTo test code from your local machine, put your code in stubbed.py and change the false value to true from this line in index.js:\n```\nconst readFromFile = false;\n```\n\n## :bookmark: License\n\nThis project is [MIT](LICENSE) licensed.\n","funding_links":[],"categories":["Frameworks"],"sub_categories":["Educational"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadafruit%2Fglider","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadafruit%2Fglider","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadafruit%2Fglider/lists"}