{"id":13791540,"url":"https://github.com/jeapostrophe/racket-android","last_synced_at":"2025-05-12T14:30:48.036Z","repository":{"id":85938710,"uuid":"69616929","full_name":"jeapostrophe/racket-android","owner":"jeapostrophe","description":"deploying Racket on Android","archived":true,"fork":false,"pushed_at":"2017-03-05T05:43:53.000Z","size":204,"stargazers_count":98,"open_issues_count":2,"forks_count":9,"subscribers_count":14,"default_branch":"master","last_synced_at":"2024-11-18T06:41:05.774Z","etag":null,"topics":["racket"],"latest_commit_sha":null,"homepage":"","language":"Racket","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jeapostrophe.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2016-09-29T23:47:47.000Z","updated_at":"2024-08-28T14:39:20.000Z","dependencies_parsed_at":"2023-04-23T14:00:20.537Z","dependency_job_id":null,"html_url":"https://github.com/jeapostrophe/racket-android","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/jeapostrophe%2Fracket-android","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeapostrophe%2Fracket-android/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeapostrophe%2Fracket-android/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeapostrophe%2Fracket-android/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jeapostrophe","download_url":"https://codeload.github.com/jeapostrophe/racket-android/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253754959,"owners_count":21958933,"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":["racket"],"created_at":"2024-08-03T22:01:01.552Z","updated_at":"2025-05-12T14:30:43.330Z","avatar_url":"https://github.com/jeapostrophe.png","language":"Racket","funding_links":[],"categories":["Racket"],"sub_categories":[],"readme":"racket-android - deploying Racket on Android\n\nThis project was funded by Black Swan Learning LLC.\n\n# DEPENDENCIES\n\n## If you are using an OS X development machine...\n\n- Android SDK 23 with 23.0.2 build tools installed in\n  `~/Library/Android/sdk` (the default location that Android Studio\n  puts it in.)\n\n- Android NDK for version 23, compiler version 4.9 installed in\n  `~/Library/Android/sdk/ndk-bundle` (default location) (Perhaps we\n  can generalize the build process to use a different one, but it is\n  tested with this one)\n\n## If you are using a Debian Linux development machine...\n\n - Android SDK 23 with 23.0.3 build tools installed in\n   `/usr/lib/android-sdk` (system location from `apt-get install\n   google-android-build-tools-23-installer`)\n\n - Android NDK for version 23, compiler version 4.9 installed in\n   `/usr/lib/android-ndk` (system location from `apt-get install\n   google-android-ndk-installer`)\n\n## And also, no matter your development machine...\n\n- A Java JRE/JDK of the 1.8.0-era. (We test with 1.8.0_92.)\n\n- An Android device that supports version 23, uses armeabi, and\n  support OpenGL ES 3. We test with the Google Pixel C.\n\n- A Racket version that supports `--enable-ffipoll` (6.6 and later)\n\n- The Racket packages, `lux`, `opengl`, and `mode-lambda`. (Run `raco\n  pkg install mode-lambda`, and accept the installation of the\n  dependencies.)\n\n# USAGE\n\nPut the program that you want to run in `rkt/app.rkt`. It will use\n`rkt/app-csd.rkt` for the compiled sprite database.\n\nRun `make build_all` in the main directory. This will download the\ncurrent Racket master repository and build a cross-compiled version of\nit for use on Android. It is essential that this version and the\nversion that `racket` runs are the same version, because they will\nshare compiled bytecode, so you may want to build this version as\nsecond time and put it in your `$PATH` when working with\n`racket-android`.\n\nIt will place the appropriate C code into the `project` directory for\nuse by the Android app. If you run `make app`, then it will build the\nAndroid app and install it to the attached device.\n\nThe Android app can be customized in the usual ways by, for instance,\nmodifying `project/app/src/main/AndroidManifest.xml` (for name and\npermissions) or `project/app/src/main/res` (for icons.)\n\n# EXAMPLES\n\nLook at `rkt/basic.rkt` for an example application.\n\nUse `make simulate` to use the simulator, which provides an interface\ncompatible with the tablet and can be run locally directly from\nDrRacket/etc. This requires a OpenGL driver that supports most of the\nfeatures of OpenGL ES 3. (You need to adjust the Racket file, too.)\n\n# TODO\n- Make 'raco ctool' use gzip for the bytecode to decrease app size.\n- Implement some sort of tree-shaking of bytecode to decrease app size.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeapostrophe%2Fracket-android","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjeapostrophe%2Fracket-android","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeapostrophe%2Fracket-android/lists"}