{"id":7549,"date":"2025-11-23T21:31:16","date_gmt":"2025-11-23T21:31:16","guid":{"rendered":"https:\/\/robertjwallace.com\/?p=7549"},"modified":"2025-11-30T14:54:04","modified_gmt":"2025-11-30T14:54:04","slug":"new-android-trick-app","status":"publish","type":"post","link":"https:\/\/robertjwallace.com\/es\/new-android-trick-app\/","title":{"rendered":"New Android Trick App"},"content":{"rendered":"<p class=\"\"><strong>The Future of Card Magic is Digital<\/strong><\/p>\n\n\n\n<p class=\"\">You&#8217;ve just performed the perfect classic card trick: a spectator selects a card, keeps it secret, and you&#8217;re ready for the big reveal. But instead of fumbling through your deck, you pull out your phone, launch your QR code app, and hand it to them. &#8220;Scan this,&#8221; you say. &#8220;Yesterday, I had a strange feeling&#8230; that <em>your<\/em> card would be chosen.&#8221; They scan the code, open the dedicated webpage that pops up, and there it is: <strong>their chosen card<\/strong>, staring back at them from the screen. Forget the deck\u2014the future of impossible prediction is now woven into the digital world.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p class=\"\">As readers of my posts will know, I have been exploring creating my own Android apps using AI and <strong>Cordova<\/strong>.<\/p>\n\n\n\n<p class=\"\"><strong>Apache Cordova<\/strong> is a genius system that lets me build full mobile apps for any platform\u2014whether it&#8217;s Android or iOS\u2014without having to learn complex native languages. It simply wraps up basic web files (<strong>HTML, CSS, and JavaScript<\/strong>) and turns them into an installable app that can access the phone\u2019s native features like the camera or GPS using special bridges called <strong>plugins<\/strong>.<\/p>\n\n\n\n<p class=\"\">The best part? I don&#8217;t need to know HTML, CSS, or JavaScript at a deep level. The AI does all the heavy lifting. My process is now simplified to just a few steps: first, I install the Cordova tools. Then, I give a conversational prompt to the AI, such as: &#8220;<strong>Create the code for a simple one-page app with a blue background and a button that, when clicked, opens the camera.<\/strong>&#8221; The AI generates the required web files, I drop them into the Cordova project folder, and then I use a single command like <code>cordova build android<\/code>. The AI does the coding; I just handle the assembly and deployment. It\u2019s app creation without the coding headache.<\/p>\n\n\n\n<p class=\"\">For this app I wanted a QR code that would open a page on my website and reveal the card they selected.  I wanted it to work with any card selected.  Otherwise it is trivial. Have a web page that says &#8220;Queen of Diamonds&#8221; and force the &#8220;Queen of Diamonds&#8221;.  I wanted more flexibility.  <\/p>\n\n\n\n<p class=\"\">I started with just an app to generate a QR code that opens a browser to a web page.  I told the AI that I wanted a setup page that let me change the web page address to anything I needed.    Here is the actual prompt I entered in:<br><strong><em>Using cordova, can you create an android app that has a setup page that takes a url, and then displays the qr code for that address.<\/em><\/strong><\/p>\n\n\n\n<p class=\"\">The AI system I use then created all of the files and gave me detailed instructions on how to take them and build the project on my desktop and once built how to deploy it to my phone.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" width=\"477\" height=\"943\" data-src=\"https:\/\/robertjwallace-images.s3.us-east-2.amazonaws.com\/wp-content\/uploads\/2025\/11\/image-4.png\" alt=\"\" class=\"wp-image-7550 lazyload\" style=\"--smush-placeholder-width: 477px; --smush-placeholder-aspect-ratio: 477\/943;width:412px;height:auto\" data-srcset=\"https:\/\/robertjwallace-images.s3.us-east-2.amazonaws.com\/wp-content\/uploads\/2025\/11\/image-4-477x600.png 477w, https:\/\/robertjwallace-images.s3.us-east-2.amazonaws.com\/wp-content\/uploads\/2025\/11\/image-4-152x300.png 152w, https:\/\/robertjwallace-images.s3.us-east-2.amazonaws.com\/wp-content\/uploads\/2025\/11\/image-4-6x12.png 6w\" data-sizes=\"(max-width: 477px) 100vw, 477px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\"><\/figure>\n\n\n\n<p class=\"\">Above is the app that the AI created.  The gear icon opens the setup:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" width=\"758\" height=\"582\" data-src=\"https:\/\/robertjwallace-images.s3.us-east-2.amazonaws.com\/wp-content\/uploads\/2025\/11\/image-5.png\" alt=\"\" class=\"wp-image-7551 lazyload\" style=\"--smush-placeholder-width: 758px; --smush-placeholder-aspect-ratio: 758\/582;width:418px;height:auto\" data-srcset=\"https:\/\/robertjwallace-images.s3.us-east-2.amazonaws.com\/wp-content\/uploads\/2025\/11\/image-5.png 758w, https:\/\/robertjwallace-images.s3.us-east-2.amazonaws.com\/wp-content\/uploads\/2025\/11\/image-5-300x230.png 300w, https:\/\/robertjwallace-images.s3.us-east-2.amazonaws.com\/wp-content\/uploads\/2025\/11\/image-5-16x12.png 16w\" data-sizes=\"(max-width: 706px) 89vw, (max-width: 767px) 82vw, 740px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\"><\/figure>\n\n\n\n<p class=\"\">Now I do have my own web site and understand how to create web pages and server-side code.  So next I asked for three things.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"\">A card reveal page that read a file on my site that had the card information<\/li>\n\n\n\n<li class=\"\">A server side program that the QR page could send the name of the selected card to<\/li>\n\n\n\n<li class=\"\">To modify the QR code app so that I could secretly and easily code the selected card to send.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">The reveal page: reveal.html<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" width=\"424\" height=\"777\" data-src=\"https:\/\/robertjwallace-images.s3.us-east-2.amazonaws.com\/wp-content\/uploads\/2025\/11\/image-6.png\" alt=\"\" class=\"wp-image-7552 lazyload\" style=\"--smush-placeholder-width: 424px; --smush-placeholder-aspect-ratio: 424\/777;width:282px;height:auto\" data-srcset=\"https:\/\/robertjwallace-images.s3.us-east-2.amazonaws.com\/wp-content\/uploads\/2025\/11\/image-6-424x600.png 424w, https:\/\/robertjwallace-images.s3.us-east-2.amazonaws.com\/wp-content\/uploads\/2025\/11\/image-6-164x300.png 164w, https:\/\/robertjwallace-images.s3.us-east-2.amazonaws.com\/wp-content\/uploads\/2025\/11\/image-6-7x12.png 7w\" data-sizes=\"(max-width: 424px) 100vw, 424px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\"><\/figure>\n\n\n\n<p class=\"\">This was entirely created by the AI. I just had to save the file and upload it to my server.  When it opens it reads a file on my server that has the card name.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The server-side code: upload.php<\/h2>\n\n\n\n<p class=\"\">This is behind the scenes.  The QR code app simply calls this url passing the name of the selected card.  This page then writes the name of the card into the file that reveal.html reads.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">QR code:  where it all happens<\/h2>\n\n\n\n<p class=\"\">I asked the AI to modify the QR code by adding an invisible grid on top of the QR code.  If visible it would look like:<br><\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" width=\"357\" height=\"430\" data-src=\"https:\/\/robertjwallace-images.s3.us-east-2.amazonaws.com\/wp-content\/uploads\/2025\/11\/image-7.png\" alt=\"\" class=\"wp-image-7553 lazyload\" style=\"--smush-placeholder-width: 357px; --smush-placeholder-aspect-ratio: 357\/430;width:320px;height:auto\" data-srcset=\"https:\/\/robertjwallace-images.s3.us-east-2.amazonaws.com\/wp-content\/uploads\/2025\/11\/image-7-357x400.png 357w, https:\/\/robertjwallace-images.s3.us-east-2.amazonaws.com\/wp-content\/uploads\/2025\/11\/image-7-249x300.png 249w, https:\/\/robertjwallace-images.s3.us-east-2.amazonaws.com\/wp-content\/uploads\/2025\/11\/image-7-10x12.png 10w\" data-sizes=\"(max-width: 357px) 100vw, 357px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\"><\/figure>\n\n\n\n<p class=\"\">There are two steps to encoding a card, first encode the suit by touching one of the four corners of the QR code.  Then encode the value by touching the correct value.  When the value is encoded the app sends the information to the web server and voila the spectator can scan the code to see the web page.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusi\u00f3n<\/h2>\n\n\n\n<p class=\"\">What I like about developing these for my own use is that I can tweak them over time.  As I use an App, I can quickly make changes to make the app more useful.  In this case I actually reused some features from another app I had AI develop.  This app reveals a chosen card in a Sketchpad app.  I plan on write a post on that app soon.<\/p>\n\n\n\n<p class=\"\">If you are interested in writing your own personal apps feel free to reach out to me.  <\/p>","protected":false},"excerpt":{"rendered":"<p>The Future of Card Magic is Digital You&#8217;ve just performed the perfect classic card trick: a spectator selects a card, keeps it secret, and you&#8217;re ready for the big reveal. But instead of fumbling through your deck, you pull out your phone, launch your QR code app, and hand it to them. &#8220;Scan this,&#8221; you &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/robertjwallace.com\/es\/new-android-trick-app\/\" class=\"more-link\">Continuar leyendo<span class=\"screen-reader-text\"> &#8220;New Android Trick App&#8221;<\/span><\/a><\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"nf_dc_page":"","_eb_attr":"","footnotes":""},"categories":[192,7,142],"tags":[],"class_list":["post-7549","post","type-post","status-publish","format-standard","hentry","category-android-app","category-magic","category-tricks"],"featured_image_src":null,"featured_image_src_square":null,"author_info":{"display_name":"Bob","author_link":"https:\/\/robertjwallace.com\/es\/author\/admin\/"},"_links":{"self":[{"href":"https:\/\/robertjwallace.com\/es\/wp-json\/wp\/v2\/posts\/7549","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/robertjwallace.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/robertjwallace.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/robertjwallace.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/robertjwallace.com\/es\/wp-json\/wp\/v2\/comments?post=7549"}],"version-history":[{"count":1,"href":"https:\/\/robertjwallace.com\/es\/wp-json\/wp\/v2\/posts\/7549\/revisions"}],"predecessor-version":[{"id":7554,"href":"https:\/\/robertjwallace.com\/es\/wp-json\/wp\/v2\/posts\/7549\/revisions\/7554"}],"wp:attachment":[{"href":"https:\/\/robertjwallace.com\/es\/wp-json\/wp\/v2\/media?parent=7549"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/robertjwallace.com\/es\/wp-json\/wp\/v2\/categories?post=7549"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/robertjwallace.com\/es\/wp-json\/wp\/v2\/tags?post=7549"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}