{"id":4431,"date":"2026-11-02T22:05:55","date_gmt":"2026-11-02T22:05:55","guid":{"rendered":"https:\/\/nmi.cool\/appdev\/?page_id=4431"},"modified":"2026-11-02T22:05:55","modified_gmt":"2026-11-02T22:05:55","slug":"from-ridiculous-to-remarkable-an-ai-powered-ios-playground","status":"publish","type":"page","link":"https:\/\/nmi.cool\/appdev\/from-ridiculous-to-remarkable-an-ai-powered-ios-playground\/","title":{"rendered":"From Ridiculous to Remarkable: An AI-Powered iOS Playground"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Let\u2019s make something ridiculous. Then make it work better.<\/p>\n\n\n<p class=\"wp-block-paragraph\">For this AI Playground, you\u2019ll use AI to help build a native iOS app for iPhone from a very questionable idea. You\u2019ll try an iPhone hardware capability you haven\u2019t used before, turn one feature into something compelling, and get into the code yourself. Think of this as one app with two versions: the ridiculous original and its surprisingly useful evolution.<\/p>\n\n\n<h2 class=\"wp-block-heading\">1. Choose your AI sidekick<\/h2>\n\n\n<p class=\"wp-block-paragraph\">You may use <strong>AI directly in Xcode OR the Codex app<\/strong>. Choose whichever works best for you. If you want help getting started with Codex, check out the optional <a href=\"https:\/\/nmi.cool\/ai\">Codex lesson at nmi.cool\/ai<\/a>.<\/p>\n\n\n<p class=\"wp-block-paragraph\">Create a new iOS project in Xcode and get the starter app running. Aim for a cohesive, working app with a thoughtful interface and features that make the idea fun to use. Give yourself room to experiment while keeping the scope manageable for this playground. &#8220;Cool, but what are we building?!&#8221; I&#8217;m glad you asked&#8230;<\/p>\n\n\n<h2 class=\"wp-block-heading\">2. Let the Mad Lib decide your fate<\/h2>\n\n\n<p class=\"wp-block-paragraph\">To determine our app direction, we will turn to the Mad Lib! Fill in the blanks to proceed.<\/p>\n\n\n<p class=\"wp-block-paragraph\"><strong>Note:<\/strong> The examples are here to get your brain moving. Try to come up with your own answers instead of borrowing mine. And don\u2019t spend forever making the pieces fit\u2014the weird combinations are the point.<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li><strong>An adjective:<\/strong> __________ (overcaffeinated, suspiciously cheerful, wildly competitive)<\/li>\n\n\n<li><strong>A type of person, profession, or hobby group:<\/strong> __________ (substitute teachers, amateur birdwatchers, weekend bakers)<\/li>\n\n\n<li><strong>An everyday task:<\/strong> __________ (choose lunch, organize a to-do list, remember what to pack)<\/li>\n\n\n<li><strong>An unusual situation:<\/strong> __________ (waiting for a delayed flight, hosting a family reunion, hiding from a surprise party)<\/li>\n\n\n<li><strong>An over-the-top app name:<\/strong> __________ (Lunchpocalypse, Captain Checklist, Operation Sockstorm)<\/li>\n<\/ul>\n\n\n<p class=\"wp-block-paragraph\">Now put them together. In each prompt below, replace the <strong>bold bracketed text<\/strong> with your own words and remove the brackets.<\/p>\n\n\n<div class=\"wp-block-group has-text-color has-background\" style=\"color:#ffffff;background-color:#3f29dd;padding-top:24px;padding-right:24px;padding-bottom:24px;padding-left:24px\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<p class=\"has-text-color wp-block-paragraph\" style=\"color:#ffffff;margin-top:0px;margin-bottom:0px\">Build a native iOS app for iPhone called <strong style=\"color:#ffffff\">[app name]<\/strong> for <strong style=\"color:#ffffff\">[adjective]<\/strong> <strong style=\"color:#ffffff\">[type of people]<\/strong> who need to <strong style=\"color:#ffffff\">[everyday task]<\/strong> while <strong style=\"color:#ffffff\">[unusual situation]<\/strong>.<\/p>\n<\/div><\/div>\n\n\n<p class=\"wp-block-paragraph\"><strong>Now add some personality.<\/strong> Read your completed premise. Now that you know what your app does, pick something the user might do in it\u2014finish a task, make a choice, save something, or reach a goal. How should the app dramatically respond?<\/p>\n\n\n<p class=\"wp-block-paragraph\">Maybe it displays an official proclamation, awards a ridiculous title, or presents a theatrical objection. Choose a response that actually happens in the app, then add this sentence to your premise:<\/p>\n\n\n<div class=\"wp-block-group has-text-color has-background\" style=\"color:#ffffff;background-color:#3f29dd;padding-top:24px;padding-right:24px;padding-bottom:24px;padding-left:24px\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<p class=\"has-text-color wp-block-paragraph\" style=\"color:#ffffff;margin-top:0px;margin-bottom:0px\">When the user <strong style=\"color:#ffffff\">[does something in the app]<\/strong>, the app <strong style=\"color:#ffffff\">[responds in an unnecessarily dramatic way]<\/strong>.<\/p>\n<\/div><\/div>\n\n\n<p class=\"wp-block-paragraph\">For example: \u201cWhen the user completes a task, the app awards them an absurd promotion.\u201d Hang on to your premise and personality sentence. We\u2019re about to add one more ingredient.<\/p>\n\n\n<h2 class=\"wp-block-heading\">3. Give your iPhone something new to do<\/h2>\n\n\n<p class=\"wp-block-paragraph\">Choose at least <strong>one iPhone hardware capability you haven\u2019t used in an app before<\/strong>. Give it a meaningful job in your app. Some possibilities:<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Motion:<\/strong> use tilt, movement, or orientation to control something.<\/li>\n\n\n<li><strong>Camera:<\/strong> capture a photo that becomes part of the app\u2019s workflow.<\/li>\n\n\n<li><strong>Microphone:<\/strong> respond to sound or record a short audio input.<\/li>\n\n\n<li><strong>Location:<\/strong> make an interaction depend on where the user is.<\/li>\n\n\n<li><strong>Haptics:<\/strong> use tactile feedback to communicate an action, state, or result.<\/li>\n<\/ul>\n\n\n<p class=\"wp-block-paragraph\">Pick something your available device supports. Try hardware behavior on a physical iPhone when possible; a simulator may not reproduce it. If you don\u2019t have access to a device, check in before committing to your idea. For features that request permission, explain why the app needs access and handle a \u201cno\u201d gracefully.<\/p>\n\n\n<p class=\"wp-block-paragraph\"><strong>Now tack this sentence onto your Mad Lib:<\/strong><\/p>\n\n\n<div class=\"wp-block-group has-text-color has-background\" style=\"color:#ffffff;background-color:#3f29dd;padding-top:24px;padding-right:24px;padding-bottom:24px;padding-left:24px\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<p class=\"has-text-color wp-block-paragraph\" style=\"color:#ffffff;margin-top:0px;margin-bottom:0px\">The app must use <strong style=\"color:#ffffff\">[unfamiliar iPhone hardware capability]<\/strong> to <strong style=\"color:#ffffff\">[describe what it will let the user do or experience]<\/strong>.<\/p>\n<\/div><\/div>\n\n\n<p class=\"wp-block-paragraph\"><strong>Checkpoint:<\/strong> You have a complete three-sentence app directive: the premise, the dramatic response, and the hardware sentence. You can explain how the unfamiliar hardware capability fits your idea.<\/p>\n\n\n<h2 class=\"wp-block-heading\">One ridiculous possibility<\/h2>\n\n\n<p class=\"wp-block-paragraph\">Here\u2019s what the completed Mad Lib could look like. Yours should head in its own wonderfully questionable direction.<\/p>\n\n\n<div class=\"wp-block-group has-text-color has-background\" style=\"color:#ffffff;background-color:#3f29dd;padding-top:24px;padding-right:24px;padding-bottom:24px;padding-left:24px\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<p class=\"has-text-color wp-block-paragraph\" style=\"color:#ffffff;margin-top:0px;margin-bottom:16px\">Build a native iOS app for iPhone called <strong style=\"color:#ffffff\">The Department of Minor Accomplishments<\/strong> for <strong style=\"color:#ffffff\">overwhelmed college students<\/strong> who need to <strong style=\"color:#ffffff\">finish everyday tasks<\/strong> while <strong style=\"color:#ffffff\">serving as the sole employee of an imaginary government agency<\/strong>.<\/p>\n\n\n<p class=\"has-text-color wp-block-paragraph\" style=\"color:#ffffff;margin-top:0px;margin-bottom:16px\">When the user <strong style=\"color:#ffffff\">completes a task<\/strong>, the app <strong style=\"color:#ffffff\">awards them an absurd promotion, such as \u201cDeputy Commissioner of Finally Replying to That Email.\u201d<\/strong><\/p>\n\n\n<p class=\"has-text-color wp-block-paragraph\" style=\"color:#ffffff;margin-top:0px;margin-bottom:0px\">The app must use <strong style=\"color:#ffffff\">haptics<\/strong> to <strong style=\"color:#ffffff\">deliver a celebratory feedback pattern when users complete a task<\/strong>.<\/p>\n<\/div><\/div>\n\n\n<h2 class=\"wp-block-heading\">4. Build the ridiculous version<\/h2>\n\n\n<p class=\"wp-block-paragraph\">Give your AI assistant the complete three-sentence directive. Ask for a plan, choose the features worth building, and work through them in stages. Save 1\u20132 useful prompts or short exchanges from each version for its README.md. Aim for an app that feels intentional: a clear flow, useful feedback, and enough functionality to explore the premise. Run it as you go and ask about code you don\u2019t understand.<\/p>\n\n\n<div class=\"wp-block-group has-text-color has-background\" style=\"color:#ffffff;background-color:#3f29dd;padding-top:24px;padding-right:24px;padding-bottom:24px;padding-left:24px\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<p class=\"has-text-color wp-block-paragraph\" style=\"color:#ffffff;margin-top:0px;margin-bottom:16px\">Help me build this native iOS app for iPhone in SwiftUI with the prompt below. Propose a cohesive experience with thoughtful design and a manageable set of features that bring the idea to life. Explain the plan, files we\u2019ll change, and any permissions or device limitations. Let me review the plan, then help me implement and test it in stages.<\/p>\n\n\n<p class=\"has-text-color wp-block-paragraph\" style=\"color:#ffffff;margin-top:0px;margin-bottom:0px\"><strong style=\"color:#ffffff\">[Insert all three sentences: premise, dramatic response, and hardware]<\/strong><\/p>\n<\/div><\/div>\n\n\n<p class=\"wp-block-paragraph\">When something breaks, give your assistant something specific to work with:<\/p>\n\n\n<div class=\"wp-block-group has-text-color has-background\" style=\"color:#ffffff;background-color:#3f29dd;padding-top:24px;padding-right:24px;padding-bottom:24px;padding-left:24px\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<p class=\"has-text-color wp-block-paragraph\" style=\"color:#ffffff;margin-top:0px;margin-bottom:0px\">I expected <strong style=\"color:#ffffff\">[behavior]<\/strong>, but <strong style=\"color:#ffffff\">[actual result]<\/strong> happened. Here is the error and relevant code: <strong style=\"color:#ffffff\">[details]<\/strong>. Help me understand the cause, suggest a focused fix, and explain how to check it.<\/p>\n<\/div><\/div>\n\n\n<p class=\"wp-block-paragraph\"><strong>Checkpoint:<\/strong> V1 runs, its main features work together, the dramatic response happens in the app, and the hardware capability does something meaningful.<\/p>\n\n\n<h2 class=\"wp-block-heading\">5. Save V1. Find the useful feature.<\/h2>\n\n\n<p class=\"wp-block-paragraph\"><strong>Preserve your ridiculous V1 before making changes.<\/strong> Keep its working source in a clearly named project copy or a Git commit\/tag you can return to. Include V1\u2019s README.md before preserving that version. Then continue in your V2 copy or working version so V1 remains available.<\/p>\n\n\n<p class=\"wp-block-paragraph\">Now choose <strong>one existing feature, interaction, or function<\/strong> and pivot it to solve a real problem for a specific audience. Continue developing the same app, reusing what you\u2019ve already built. One well-chosen change can give the app a compelling reason to exist. The silly name and personality can stay.<\/p>\n\n\n<p class=\"wp-block-paragraph\">For example, The Department of Minor Accomplishments already celebrates completed tasks. Adapt its task feature so students can break an overwhelming assignment into manageable steps, with a promotion and celebratory haptics for each step completed. The same app now helps students make progress on work they might otherwise put off. The imaginary government agency can stay.<\/p>\n\n\n<div class=\"wp-block-group has-text-color has-background\" style=\"color:#ffffff;background-color:#3f29dd;padding-top:24px;padding-right:24px;padding-bottom:24px;padding-left:24px\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<p class=\"has-text-color wp-block-paragraph\" style=\"color:#ffffff;margin-top:0px;margin-bottom:0px\">Here is what my app currently does: <strong style=\"color:#ffffff\">[features]<\/strong>. It uses <strong style=\"color:#ffffff\">[hardware capability and its role]<\/strong>. Help me identify three options for adapting one existing feature to meet a real need while keeping the hardware meaningfully involved. For each, explain who benefits, what changes, and what code or interface we can reuse. Keep this within the current project. I\u2019ll choose a direction before we make changes.<\/p>\n<\/div><\/div>\n\n\n<p class=\"wp-block-paragraph\">Choose a direction and implement it in V2. Keep the hardware capability meaningfully involved. Your change should improve what someone can accomplish; a new name or color scheme alone won\u2019t do that.<\/p>\n\n\n<p class=\"wp-block-paragraph\"><strong>Checkpoint:<\/strong> \u201cI\u2019m adapting _____ so _____ can _____. I\u2019m keeping _____ and changing _____.\u201d Run the updated feature and see whether it delivers on that promise.<\/p>\n\n\n<h2 class=\"wp-block-heading\">6. Make V2 your own<\/h2>\n\n\n<p class=\"wp-block-paragraph\">After your pivot is working, make <strong>2\u20133 meaningful manual code edits in V2<\/strong> to improve its design or functionality. Personally type and adjust these changes in the source code. AI can explain the code or help you find the right place, but accepting its edits or pasting an entire generated replacement does not count.<\/p>\n\n\n<p class=\"wp-block-paragraph\">You have plenty of flexibility. Improve the layout or readability, adjust interaction logic, tune a motion threshold, add a useful validation rule, or make feedback clearer. Choose changes you can explain and that make a noticeable difference to the experience.<\/p>\n\n\n<div class=\"wp-block-group has-text-color has-background\" style=\"color:#ffffff;background-color:#3f29dd;padding-top:24px;padding-right:24px;padding-bottom:24px;padding-left:24px\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<p class=\"has-text-color wp-block-paragraph\" style=\"color:#ffffff;margin-top:0px;margin-bottom:0px\">Explain how <strong style=\"color:#ffffff\">[this part of the code]<\/strong> works and point me to where I could improve <strong style=\"color:#ffffff\">[behavior or design]<\/strong>. Don\u2019t edit it for me. I want to make the change myself.<\/p>\n<\/div><\/div>\n\n\n<p class=\"wp-block-paragraph\">Run the app after each change. Check the updated feature from start to finish, including an awkward case such as missing input or denied permission. Keep before-and-after code snippets and the file names for your 2\u20133 manual edits so you can explain them in V2\u2019s README.md.<\/p>\n\n\n<p class=\"wp-block-paragraph\"><strong>Checkpoint:<\/strong> Your useful feature works, your 2\u20133 manual edits are in the final V2 build, and you can explain what each edit does.<\/p>\n\n\n<h2 class=\"wp-block-heading\">What to turn in<\/h2>\n\n\n<p class=\"wp-block-paragraph\">Submit <strong>both app versions<\/strong>, clearly labeled V1 and V2, each with its own <strong>README.md<\/strong> file. A Markdown file is a plain-text document with simple headings, lists, and code snippets. Keep the writing brief and specific.<\/p>\n\n\n<h2 class=\"wp-block-heading\">V1: The ridiculous original<\/h2>\n\n\n<p class=\"wp-block-paragraph\">Include the V1 app source and a README.md containing:<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li><strong>The idea:<\/strong> your complete three-sentence directive (premise, dramatic response, and hardware) and a brief description of what V1 does.<\/li>\n\n\n<li><strong>The hardware:<\/strong> what capability you chose, why it was new to you, and how the app uses it.<\/li>\n\n\n<li><strong>Your AI collaboration:<\/strong> which tool(s) you used and 1\u20132 prompts or short exchanges that helped shape V1.<\/li>\n\n\n<li><strong>How to run it:<\/strong> any setup steps or device requirements someone needs to use this version.<\/li>\n<\/ul>\n\n\n<h2 class=\"wp-block-heading\">V2: The useful evolution<\/h2>\n\n\n<p class=\"wp-block-paragraph\">Include the final V2 app source and a README.md containing:<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li><strong>The pivot:<\/strong> the one feature you adapted, who it helps, the problem it solves, and what you reused from V1. Explain why someone would want to use it and how the hardware remains involved.<\/li>\n\n\n<li><strong>Your 2\u20133 manual edits:<\/strong> for each, identify the file, include a before-and-after code snippet, and explain what you changed and how it improves the app.<\/li>\n\n\n<li><strong>Your AI collaboration and reflection:<\/strong> name the tool(s) you used for V2 and include 1\u20132 prompts or short exchanges from V2. Briefly explain what AI helped with, something you corrected or rethought, and something you now understand better.<\/li>\n\n\n<li><strong>How to run it:<\/strong> any setup steps or device requirements for the final version.<\/li>\n<\/ul>\n\n\n<p class=\"wp-block-paragraph\"><strong>Final checkpoint:<\/strong> Both versions are preserved, both README.md files are included, and V2 has a useful feature plus your own meaningful code changes.<\/p>\n\n\n<p class=\"wp-block-paragraph\">Have fun with V1. Be thoughtful with V2. See how far one ridiculous idea can take you.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Let\u2019s make something ridiculous. Then make it work better. For this AI Playground, you\u2019ll use AI to help build a native iOS app for iPhone from a very questionable idea. You\u2019ll try an iPhone hardware capability you haven\u2019t used before, turn one feature into something compelling, and get into the code yourself. Think of this &hellip; <a href=\"https:\/\/nmi.cool\/appdev\/from-ridiculous-to-remarkable-an-ai-powered-ios-playground\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">From Ridiculous to Remarkable: An AI-Powered iOS Playground<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-4431","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/nmi.cool\/appdev\/wp-json\/wp\/v2\/pages\/4431","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nmi.cool\/appdev\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/nmi.cool\/appdev\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/nmi.cool\/appdev\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nmi.cool\/appdev\/wp-json\/wp\/v2\/comments?post=4431"}],"version-history":[{"count":11,"href":"https:\/\/nmi.cool\/appdev\/wp-json\/wp\/v2\/pages\/4431\/revisions"}],"predecessor-version":[{"id":4442,"href":"https:\/\/nmi.cool\/appdev\/wp-json\/wp\/v2\/pages\/4431\/revisions\/4442"}],"wp:attachment":[{"href":"https:\/\/nmi.cool\/appdev\/wp-json\/wp\/v2\/media?parent=4431"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}