{"id":27966656,"url":"https://github.com/michiel-jfx/nop","last_synced_at":"2026-03-07T12:03:41.687Z","repository":{"id":290057701,"uuid":"973084196","full_name":"michiel-jfx/nop","owner":"michiel-jfx","description":"The mobile app that does nothing (alomost nothing)","archived":false,"fork":false,"pushed_at":"2026-01-25T11:17:02.000Z","size":1230,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-01-26T00:41:57.098Z","etag":null,"topics":["gluon","java","javafx"],"latest_commit_sha":null,"homepage":"https://www.dotjava.nl/nop/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/michiel-jfx.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,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-04-26T08:11:45.000Z","updated_at":"2026-01-25T11:17:05.000Z","dependencies_parsed_at":"2025-05-07T21:05:45.347Z","dependency_job_id":null,"html_url":"https://github.com/michiel-jfx/nop","commit_stats":null,"previous_names":["michiel-jfx/nop"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/michiel-jfx/nop","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michiel-jfx%2Fnop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michiel-jfx%2Fnop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michiel-jfx%2Fnop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michiel-jfx%2Fnop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/michiel-jfx","download_url":"https://codeload.github.com/michiel-jfx/nop/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michiel-jfx%2Fnop/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30212491,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-07T09:02:10.694Z","status":"ssl_error","status_checked_at":"2026-03-07T09:02:08.429Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["gluon","java","javafx"],"created_at":"2025-05-07T20:55:43.081Z","updated_at":"2026-03-07T12:03:41.665Z","avatar_url":"https://github.com/michiel-jfx.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# The NOP android app\nNOP is the assembly instruction that does nothing; it is the no operation.\n\nActually, it is close to nothing since the CPU cycles through it, so a tiny very tiny amount of time passes. And it also\nuses one bit of space.\n\nBack in the days we used to make demos in assembly and put some NOPs on places in the code which later where altered\n(self-modifying code).\n\nThis is the app that does nothing, dark-mode version it is ; ) Entirely nothing? Well, it is a skeleton to use for new\nmobile applications and all those apps should have a proper exit function, so this Nop app does nothing but exit\nnicely. It has a function for it to allow the user to tap three times on the screen and when the same amount of interval\ntime is between them (with some margin), it will exit the application.\n\nSee www.dotjava.nl/nop for background.\n\n## Versions\nThe mobile app is build with the following versions:\n\n| What                   | Version                                             | See                                                                                            |\n|------------------------|-----------------------------------------------------|------------------------------------------------------------------------------------------------|\n| Nop mobile application | 0.1                                                 | https://www.dotjava.nl/nop                                                                     |\n| GraalVM 23 with Gluon  | native-image 23 2024-09-17 (23+25.1-dev-2409082136) | https://github.com/gluonhq/graal/releases                                                      |\n| JavaFX controls        | 24-headless+0-2024-12-02-101029                     | https://mvnrepository.com/artifact/org.openjfx/javafx-controls                                 |\n| gluon charm glisten    | 6.2.3                                               | https://nexus.gluonhq.com/nexus/content/repositories/releases/com/gluonhq/charm-glisten/6.2.3/ |\n| gluon attach           | 4.0.21                                              | https://nexus.gluonhq.com/nexus/content/repositories/releases/com/gluonhq/attach/              |\n| gluonfx maven plugin   | 1.0.25                                              | https://github.com/gluonhq/gluonfx-maven-plugin/                                               |\n\nWhy is this important? Before upgrading any artifacts in your project, be sure to make a release of a working version for your various targets (e.g., iOS and Android) and then upgrade the artifacts. Experience tells it's a delicate balance of getting it all together and deploying it on your phone.\n\n## Build and run on your phone (android)\n```\nmvn clean\nrm -rf ~/.gluon/substrate/*\nmvn gluonfx:build gluonfx:package -Pandroid\nmvn -Pandroid gluonfx:install\nmvn -Pandroid -X gluonfx:nativerun\n```\nThis should do the trick.\n\n## Build and run on your iPhone\nwork in progress\n\n## Information\nWhen you run the application from your laptop, you will see various information on your console. The project has all `System.out` statements on purpose to provide information on what's happening. For example:\u003cbr/\u003e\n![Image](https://github.com/user-attachments/assets/d9f28f9d-c879-483c-94d1-cdef291a9009)\n\nAlso kept in the code on purpose are some unused import statements. These are left for your courtesy and useful when adding a popup or an image.\n\n## Manifest file\nIn this first version, there only is an android folder with an AndroidManifest file present amongst the famous Nop image art created by my daughter. The manifest file is based on the Gluon helloandroid project, see [GluonHello](https://github.com/gluonhq/gluon-samples/tree/master/HelloGluon). By using Gluon, it is possible to have great interactions with your phone and will also have a popup screen when you start your app when using the commercial free version. \n\nSee the other project [IceConverter](https://github.com/michiel-jfx/iceconverter), which is also a JavaFX mobile phone application but without the Gluon popup. This version uses @FXML only and has fewer possibilities to interact with the mobile phone. It does not have the commercial popup, though.\n\n## Exiting\nSo as mentioned, the app has the ability to exit. This was done by implementing a motion listener (clicks, touch and motion) in the main application. The MainBoxPanel notifies whichever needs to be informed. In the mobile Nop application, besides the exit signal, also the swipe left and right are already ready to use.\n\nStill, the goal is to keep this repository as clean as possible to function as a base for new mobile projects but also to give an idea of what's possible with some interactions.\n\n# License\n\nThe Nop mobile application is released under version 2.0 of the [Apache License](https://www.apache.org/licenses/LICENSE-2.0).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmichiel-jfx%2Fnop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmichiel-jfx%2Fnop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmichiel-jfx%2Fnop/lists"}