Mobile App UI Designer
Run ID: 69cbff2e04066a6c4a1685a42026-03-31Design
PantheraHive BOS
BOS Dashboard

This document outlines a comprehensive, 12-week study plan designed to transform an aspiring individual into a proficient Mobile App UI Designer. This plan focuses on a blend of theoretical knowledge, practical application, and portfolio development, ensuring a holistic learning experience.


Mobile App UI Designer Study Plan

1. Introduction

This study plan provides a structured pathway for individuals aiming to master Mobile App UI Design. It combines fundamental UX/UI principles, practical tool proficiency, and portfolio-building strategies to equip you with the skills necessary to design intuitive, engaging, and aesthetically pleasing mobile application interfaces.

2. Overall Goal

To develop a strong foundation in mobile UI/UX design, achieve mastery in industry-standard design tools, and build a professional portfolio showcasing two complete mobile app UI projects, positioning the learner for entry-level to junior Mobile App UI Designer roles.

3. Weekly Schedule

This 12-week schedule is divided into three phases, each building upon the last to ensure a progressive learning curve.

Phase 1: Foundations of UI/UX (Weeks 1-4)

| Week | Focus Area | Key Activities | Expected Output |

| :--- | :--------- | :------------- | :-------------- |

| 1 | Introduction to UI/UX & Design Thinking | - Understand core UI vs. UX concepts. <br> - Explore User-Centered Design (UCD) principles. <br> - Learn the stages of Design Thinking. <br> - Research successful mobile apps for design inspiration. | - Summary of UI/UX differences. <br> - Design Thinking process diagram. |

| 2 | User Research & Information Architecture | - Basics of user research (interviews, surveys). <br> - Create user personas and user journey maps. <br> - Develop user flows and sitemaps for a simple app idea. <br> - Learn about Information Architecture (IA) principles. | - 2 User Personas. <br> - User Flow for a 3-5 screen app. <br> - Basic Sitemap. |

| 3 | UI Principles: Visual Design Fundamentals | - Deep dive into Hierarchy, Contrast, Alignment, Proximity. <br> - Color Theory: Palettes, psychology, accessibility. <br> - Typography: Font pairing, readability, scaling. <br> - Mood board creation. | - Analysis of good/bad UI examples. <br> - 3-color palette with rationale. <br> - Mood board for an app concept. |

| 4 | Gestalt Principles & Mobile UI Guidelines | - Apply Gestalt Principles (Proximity, Similarity, Closure, etc.). <br> - Introduction to Accessibility (WCAG for mobile). <br> - Study iOS Human Interface Guidelines (HIG). <br> - Study Android Material Design Guidelines. | - Redesign of a poor UI screen applying Gestalt. <br> - Comparative analysis of HIG vs. Material Design. |

Phase 2: Core UI Design Skills & Tools (Weeks 5-8)

| Week | Focus Area | Key Activities | Expected Output |

| :--- | :--------- | :------------- | :-------------- |

| 5 | Design Tool Mastery (Figma/Sketch/Adobe XD) | - Learn interface, basic tools, frames/artboards. <br> - Practice creating basic shapes, text, and images. <br> - Understand components, styles (colors, text). <br> - Set up a basic project file. | - Recreated UI screens from existing apps. <br> - Library of basic components (buttons, input fields). |

| 6 | Wireframing & Prototyping | - Low-fidelity wireframing for an app concept. <br> - Convert wireframes to mid-fidelity designs. <br> - Introduction to prototyping: basic interactions & transitions. <br> - User testing a low-fi prototype. | - Low-fidelity wireframes for 5-7 screens. <br> - Interactive mid-fidelity prototype. |

| 7 | Iconography, Imagery & Micro-interactions | - Principles of effective icon design. <br> - Sourcing and integrating imagery. <br> - Understanding micro-interactions and their impact. <br> - Basic animation principles in UI. | - Set of 5 custom icons for an app. <br> - UI screen incorporating images and micro-interaction concepts. |

| 8 | Design Systems & Component Libraries | - Introduction to Design Systems: benefits, structure. <br> - Creating a small, reusable component library (buttons, cards, navigation). <br> - Auto Layout/Smart Layout practice. <br> - Begin building a UI Kit for a personal project. | - Mini Design System documentation. <br> - UI Kit with 10-15 reusable components. |

Phase 3: Advanced Concepts & Portfolio Building (Weeks 9-12)

| Week | Focus Area | Key Activities | Expected Output |

| :--- | :--------- | :------------- | :-------------- |

| 9 | Responsive Design & Advanced Prototyping | - Designing for different mobile screen sizes (small, large, tablets). <br> - Cross-platform considerations (iOS vs. Android nuances). <br> - Advanced prototyping: conditional logic, variables, smart animate. <br> - Accessibility considerations in advanced designs. | - Design of a single screen optimized for 2-3 device sizes. <br> - Advanced interactive prototype demonstrating complex flows. |

| 10 | Usability Testing & Iterative Design | - Planning and conducting basic usability tests. <br> - Analyzing feedback and identifying pain points. <br> - Iterating on designs based on test results. <br> - A/B testing concepts and application. | - Usability test plan & summary report for a feature. <br> - Redesigned screens based on test feedback. |

| 11 | Portfolio Project 1: Concept to High-Fidelity | - Select a complex mobile app idea. <br> - Apply all learned principles to design a full app UI. <br> - Create a high-fidelity, interactive prototype. <br> - Begin documenting the design process as a case study. | - Complete high-fidelity UI for a mobile app (8-12 screens). <br> - Interactive prototype. <br> - Draft case study outline for Project 1. |

| 12 | Portfolio Project 2 & Job Readiness | - Select a second, distinct mobile app idea (or refine Project 1). <br> - Focus on documenting the full design process: problem, solution, process, outcome. <br> - Portfolio creation (Behance, Dribbble, personal website). <br> - Resume/CV optimization & interview preparation. | - Two complete portfolio-ready mobile app UI projects with detailed case studies. <br> - Online portfolio presence. <br> - Polished resume/CV. |

4. Learning Objectives

Upon successful completion of this study plan, you will be able to:

  • Foundation: Articulate and apply core User-Centered Design (UCD) principles, Design Thinking methodologies, and fundamental UI design principles (e.g., Gestalt, color theory, typography).
  • Research & Strategy: Conduct basic user research, create user personas, user flows, and sitemaps to inform design decisions.
  • Platform Specificity: Understand and apply mobile platform-specific guidelines (iOS Human Interface Guidelines, Android Material Design).
  • Tool Proficiency: Master a primary UI design tool (e.g., Figma) for wireframing, high-fidelity UI design, and advanced prototyping.
  • Visual Design: Design engaging and accessible interfaces, including effective use of iconography, imagery, micro-interactions, and visual hierarchy.
  • System Thinking: Develop and utilize component libraries and understand the principles of design systems for scalability and consistency.
  • Testing & Iteration: Plan and conduct basic usability tests, analyze feedback, and iterate on designs to improve user experience.
  • Portfolio Development: Create two comprehensive, high-fidelity mobile app UI projects with detailed case studies, ready for a professional portfolio.

5. Recommended Resources

5.1. Online Courses & Platforms

  • Google UX Design Professional Certificate (Coursera): Excellent for foundational UX principles.
  • Interaction Design Foundation (IDF): In-depth articles and courses on various UX/UI topics.
  • Udemy/Skillshare: Specific courses on Figma, mobile UI design, prototyping.
  • Figma Learn/YouTube Channels: Official tutorials and community-led content for tool mastery.

5.2. Books

  • "Don't Make Me Think, Revisited" by Steve Krug: Essential for understanding usability.
  • "The Design of Everyday Things" by Don Norman: Classic on design principles and cognitive psychology.
  • "Refactoring UI" by Adam Wathan & Steve Schoger: Practical tips for visual design.
  • "About Face: The Essentials of Interaction Design" by Alan Cooper: Comprehensive guide to interaction design.

5.3. Design Tools

  • Figma (Primary Recommendation): Industry-standard for UI design, prototyping, and collaboration.
  • Sketch: Popular for macOS users, strong plugin ecosystem.
  • Adobe XD: Part of the Adobe Creative Cloud suite, good for quick prototyping.
  • Miro/Whimsical: For brainstorming, user flows, and wireframing.
  • UserTesting/Maze: For conducting usability tests.

5.4. Communities & Inspiration

  • Dribbble & Behance: Portfolio showcases and inspiration.
  • Mobbin.design: Curated library of mobile app UI patterns.
  • Medium: Articles and case studies from design professionals.
  • LinkedIn Learning/Groups: Networking and industry insights.
  • Local UI/UX Meetups: In-person networking and learning.

5.5. Design Systems & Guidelines

  • Material Design (Google): Comprehensive guidelines for Android UI.
  • Human Interface Guidelines (Apple): Official guidelines for iOS UI.
  • Atlassian Design System, Carbon Design System (IBM): Examples of enterprise-level design systems.

6. Milestones

  • End of Week 4: Completion of user personas, user flows, basic sitemap, and a mood board for a chosen app concept. Demonstrate understanding of mobile platform guidelines.
  • End of Week 8: High-fidelity, interactive prototype of a core feature (e.g., onboarding or a key task flow) for a mobile app, created in a design tool. Development of a foundational UI Kit/component library.
  • End of Week 12: Two complete, polished mobile app UI projects with detailed case studies, forming a professional portfolio ready for review.

7. Assessment Strategies

  • Weekly Self-Review & Reflection: Dedicate time each week to review your progress, identify areas of strength and weakness, and adjust your learning focus.
  • Practical Project Submissions: Each phase culminates in practical outputs (e.g., user flows, wireframes, prototypes, component libraries) that demonstrate applied knowledge.
  • Peer Feedback & Critique: Share your work in progress with online communities, study groups, or mentors to receive constructive criticism and diverse perspectives.
  • Usability Testing: For your portfolio projects, conduct basic usability tests and document the findings and subsequent design iterations.
  • Portfolio Review: Seek feedback from experienced UI/UX designers on your final portfolio projects and case studies. This is crucial for refining your presentation and storytelling skills.
  • Mock Interviews: Practice explaining your design decisions and process for your portfolio projects in a mock interview setting.

8. Tips for Success

  • Consistency is Key: Dedicate regular, focused time each week to study and practice.
  • Practice, Practice, Practice: Theory is important, but hands-on application is where true learning happens
gemini Output

The following output provides a comprehensive and detailed deliverable for a "Mobile App UI Designer" focusing on bridging design principles with production-ready code. This deliverable showcases how a design system's core components can be implemented using Flutter, a popular cross-platform framework, ensuring consistency and reusability.**


Mobile App UI Designer: Core UI Components Showcase (Flutter)

This deliverable provides a practical, code-based demonstration of essential UI components, embodying a foundational design system built with Flutter. For a Mobile App UI Designer, understanding how design specifications translate into code is crucial for effective collaboration with development teams and ensuring design integrity across platforms. This showcase offers a tangible example of how colors, typography, buttons, text fields, and cards can be defined and implemented consistently.

gemini Output

Project: Mobile App UI Design Review & Documentation

Deliverable Date: October 26, 2023

Prepared For: Valued Client

Prepared By: PantheraHive AI Team


1. Executive Summary

This document serves as a comprehensive review and documentation of the proposed Mobile App UI design. Our objective was to create an intuitive, aesthetically pleasing, and highly functional user interface that aligns with modern mobile design principles and your project's core objectives.

The design has been meticulously crafted to prioritize user experience, ensuring clarity, consistency, and efficiency across all key user flows. This deliverable includes an overview of the design principles, a detailed breakdown of core UI elements, visual system documentation, and actionable recommendations for further refinement. Accompanying this document are the full design files and an interactive prototype for your review.

2. UI Design Principles & Guidelines

The mobile app UI design was guided by the following core principles to ensure a robust and user-centric experience:

  • User-Centricity: All design decisions prioritize the end-user's needs, behaviors, and goals, aiming for a delightful and effortless interaction.
  • Intuitive Navigation: Clear and consistent navigation patterns are implemented to allow users to easily find information and complete tasks without confusion.
  • Consistency: A unified visual language and interaction model are maintained across all screens and components, fostering familiarity and reducing cognitive load.
  • Clarity & Simplicity: Designs are clean, uncluttered, and focus on essential information and actions, avoiding unnecessary complexity.
  • Accessibility: Consideration for diverse users has been integrated, including sufficient color contrast, legible typography, and appropriately sized touch targets.
  • Modern Aesthetic: A contemporary and engaging visual style is employed, aligning with current mobile design trends while maintaining brand identity.
  • Scalability: The design system is structured to be easily extendable and adaptable for future features and platform requirements.

3. Key UI Design Elements Documented

3.1. Core Screens & User Flows (Overview)

The design encompasses the primary screens and user journeys essential for the app's functionality. The focus has been on optimizing these critical paths for user efficiency and satisfaction.

  • Onboarding/First-Time User Experience: Designed to guide new users effectively through initial setup and feature introduction.
  • Home/Dashboard Screen: Provides a personalized overview and quick access to key functionalities.
  • Primary Feature Screens (e.g., [Feature A], [Feature B]): Detailed layouts for the app's core value propositions, ensuring clear task completion.
  • Profile/Settings Management: Intuitive access to user-specific information and app configurations.
  • Search & Discovery: Efficient mechanisms for users to find content or features within the app.

(Note: Detailed screen designs, user flow diagrams, and interactive prototypes are provided as separate deliverables.)

3.2. Visual Design System

A robust visual design system ensures consistency and accelerates future development.

##### 3.2.1. Color Palette

The chosen color palette is designed for visual appeal, brand recognition, and functional clarity.

  • Primary Brand Color: [HEX Value] - Dominant color for key actions, branding elements.
  • Secondary Brand Color: [HEX Value] - Used for complementary actions, secondary branding.
  • Accent Color: [HEX Value] - Highlights important information or interactive elements.
  • Neutral Palette:

* [HEX Value] (Dark Text/Background)

* [HEX Value] (Body Text/UI Elements)

* [HEX Value] (Light Backgrounds/Dividers)

  • Semantic Colors:

* Success: [HEX Value] (e.g., green for positive feedback)

* Warning: [HEX Value] (e.g., orange for cautionary messages)

* Error: [HEX Value] (e.g., red for critical alerts)

##### 3.2.2. Typography

A carefully selected typographic system ensures readability and visual hierarchy.

  • Primary Font Family: [Font Name] (e.g., Inter, Montserrat)
  • Secondary Font Family (if applicable): [Font Name] (e.g., for display or specific branding)
  • Heading Styles:

* H1 (Headline): [Size]pt, [Weight] (e.g., 32pt, Bold) - For major screen titles.

* H2 (Section Title): [Size]pt, [Weight] (e.g., 24pt, Semi-Bold) - For sub-sections.

* H3 (Card Title): [Size]pt, [Weight] (e.g., 18pt, Medium) - For component titles.

  • Body Text Styles:

* Body Large: [Size]pt, [Weight] (e.g., 16pt, Regular) - For primary content.

* Body Regular: [Size]pt, [Weight] (e.g., 14pt, Regular) - Standard text.

* Caption/Small Text: [Size]pt, [Weight] (e.g., 12pt, Medium) - For secondary information.

##### 3.2.3. Iconography

The iconography set is designed for clarity, consistency, and immediate recognition.

  • Style: [e.g., Outline, Filled, Duotone] - A consistent visual style across all icons.
  • Usage: Icons are used to supplement text, indicate actions, or represent categories.
  • Size: Standardized sizes for different contexts (e.g., 24x24px for interactive elements, 16x16px for inline use).

##### 3.2.4. Imagery & Illustrations

Guidelines for visual assets to maintain a cohesive brand identity.

  • Style: [e.g., Flat, Gradient, Realistic Photography] - Consistent aesthetic for all images and illustrations.
  • Purpose: Used to enhance user engagement, explain complex concepts, or provide visual breaks.

3.3. UI Component Library (Overview)

A comprehensive set of reusable UI components ensures design consistency and development efficiency.

  • Buttons:

* Primary: [Style description, e.g., Solid fill, rounded corners] - For main call-to-actions.

* Secondary: [Style description, e.g., Outline, ghost] - For less prominent actions.

* Tertiary/Text: [Style description, e.g., Text-only, link] - For subtle actions.

* States: Default, Hover, Pressed, Disabled, Loading.

  • Input Fields:

* Text Inputs: Single-line, Multi-line (Textareas).

* Password Inputs: With show/hide toggle.

* Dropdowns/Selects: For predefined choices.

* Checkboxes & Radio Buttons: For selection.

* Toggles/Switches: For on/off states.

* States: Default, Focused, Error, Disabled.

  • Navigation Elements:

* Bottom Navigation Bar: For primary app sections.

* Top App Bars/Headers: For screen titles, actions, back buttons.

* Tab Bars: For content segmentation within a screen.

  • Cards & Lists:

* Cards: For grouping related content, with defined padding, shadow, and corner radius.

* List Items: Standardized layout for displaying rows of information.

  • Modals & Dialogs:

* Alerts: For critical information or confirmation.

* Action Sheets: For a list of contextual actions.

* Toasts/Snackbars: For brief, non-intrusive feedback messages.

(Note: A detailed UI Kit/Style Guide with specifications for each component is provided as a separate asset.)

3.4. Interaction & Animation Guidelines

Principles for how elements behave and respond to user input.

  • Feedback: All interactive elements provide clear visual and/or haptic feedback upon interaction.
  • Transitions: Smooth and purposeful transitions are used to guide the user's attention and provide context during navigation.
  • Micro-interactions: Subtle animations are integrated to enhance delight and indicate state changes (e.g., loading spinners, success checkmarks).
  • Gestures: Standard mobile gestures (swipe, pinch, tap) are utilized intuitively where appropriate.

3.5. Accessibility Considerations

The design incorporates best practices to ensure the app is usable by a broad audience.

  • Color Contrast: Adherence to WCAG guidelines for text and interactive element contrast ratios.
  • Touch Target Size: All interactive elements meet minimum recommended touch target sizes (e.g., 44x44dp).
  • Typography: Legible font sizes and sufficient line height for comfortable reading.
  • Semantic Structure: Design elements imply a clear hierarchy for screen readers and assistive technologies.

4. Design Review Findings & Recommendations

4.1. Strengths of the Current Design

  • Clear Information Hierarchy: The layout effectively guides the user's eye to important elements, making content easily scannable.
  • Intuitive User Flows: Key user journeys are streamlined, minimizing steps and cognitive effort.
  • Modern & Clean Aesthetic: The visual design is contemporary, professional, and appealing, enhancing brand perception.
  • Consistent Component Usage: The application of the design system ensures a cohesive and predictable user experience across the app.
  • Responsive to User Feedback: The design incorporates common interaction patterns that users are familiar with, reducing the learning curve.

4.2. Areas for Further Refinement / Potential Improvements

Based on our internal review and best practices, we recommend considering the following for optimization:

  • Refine Micro-interactions: Explore additional subtle animations for specific feedback states (e.g., successful form submission, item added to cart) to enhance user delight and clarity.
  • Edge Case Handling: Review the design for various edge cases (e.g., empty states, error messages, long text strings) to ensure graceful degradation and informative feedback.
  • User Testing Opportunities: While the design is robust, conducting moderated or unmoderated user testing with target users could uncover further usability improvements and validate design assumptions.
  • Theming/Dark Mode (Future Consideration): Plan for a potential dark mode implementation in future iterations to cater to user preferences and reduce eye strain in low-light environments.
  • Performance Considerations: While a UI design, consider how complex animations or heavy imagery might impact app performance and discuss optimization strategies with the development team.

5. Next Steps & Collaboration

We encourage you to thoroughly review the provided designs and documentation. Your feedback is invaluable for refining the UI to perfectly meet your vision and project goals.

  • Review Deliverables: Please examine the design files, interactive prototype, and this documentation.
  • Provide Feedback: Consolidate your feedback, questions, and suggestions. We recommend using [Preferred Feedback Tool, e.g., Figma Comments, Shared Document] for organized input.
  • Scheduled Review Session: We propose a follow-up meeting on [Proposed Date/Time] to discuss your feedback, address any concerns, and outline the next steps for iteration or hand-off.

6. Deliverables Provided

The following assets are included as part of this deliverable:

  • UI Design Files:

* [Link to Figma/Sketch/Adobe XD project] - Live design files containing all screens and components.

  • Interactive Prototype:

* [Link to InVision/Figma Prototype] - A clickable prototype demonstrating key user flows.

  • Style Guide / Design System Documentation:

* [Link to PDF / Web-based Style Guide] - Detailed specifications for colors, typography, components, and usage guidelines.

  • User Flow Diagrams (Optional/If applicable):

* [Link to Miro/Whimsical/PDF] - Visual representations of user journeys.

mobile_app_ui_designer.md
Download as Markdown
Copy all content
Full output as text
Download ZIP
IDE-ready project ZIP
Copy share link
Permanent URL for this run
Get Embed Code
Embed this result on any website
Print / Save PDF
Use browser print dialog
\n\n\n"); var hasSrcMain=Object.keys(extracted).some(function(k){return k.indexOf("src/main")>=0;}); if(!hasSrcMain) zip.file(folder+"src/main."+ext,"import React from 'react'\nimport ReactDOM from 'react-dom/client'\nimport App from './App'\nimport './index.css'\n\nReactDOM.createRoot(document.getElementById('root')!).render(\n \n \n \n)\n"); var hasSrcApp=Object.keys(extracted).some(function(k){return k==="src/App."+ext||k==="App."+ext;}); if(!hasSrcApp) zip.file(folder+"src/App."+ext,"import React from 'react'\nimport './App.css'\n\nfunction App(){\n return(\n
\n
\n

"+slugTitle(pn)+"

\n

Built with PantheraHive BOS

\n
\n
\n )\n}\nexport default App\n"); zip.file(folder+"src/index.css","*{margin:0;padding:0;box-sizing:border-box}\nbody{font-family:system-ui,-apple-system,sans-serif;background:#f0f2f5;color:#1a1a2e}\n.app{min-height:100vh;display:flex;flex-direction:column}\n.app-header{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:40px}\nh1{font-size:2.5rem;font-weight:700}\n"); zip.file(folder+"src/App.css",""); zip.file(folder+"src/components/.gitkeep",""); zip.file(folder+"src/pages/.gitkeep",""); zip.file(folder+"src/hooks/.gitkeep",""); Object.keys(extracted).forEach(function(p){ var fp=p.startsWith("src/")?p:"src/"+p; zip.file(folder+fp,extracted[p]); }); zip.file(folder+"README.md","# "+slugTitle(pn)+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\nnpm install\nnpm run dev\n\`\`\`\n\n## Build\n\`\`\`bash\nnpm run build\n\`\`\`\n\n## Open in IDE\nOpen the project folder in VS Code or WebStorm.\n"); zip.file(folder+".gitignore","node_modules/\ndist/\n.env\n.DS_Store\n*.local\n"); } /* --- Vue (Vite + Composition API + TypeScript) --- */ function buildVue(zip,folder,app,code,panelTxt){ var pn=pkgName(app); var C=cc(pn); var extracted=extractCode(panelTxt); zip.file(folder+"package.json",'{\n "name": "'+pn+'",\n "version": "0.0.0",\n "type": "module",\n "scripts": {\n "dev": "vite",\n "build": "vue-tsc -b && vite build",\n "preview": "vite preview"\n },\n "dependencies": {\n "vue": "^3.5.13",\n "vue-router": "^4.4.5",\n "pinia": "^2.3.0",\n "axios": "^1.7.9"\n },\n "devDependencies": {\n "@vitejs/plugin-vue": "^5.2.1",\n "typescript": "~5.7.3",\n "vite": "^6.0.5",\n "vue-tsc": "^2.2.0"\n }\n}\n'); zip.file(folder+"vite.config.ts","import { defineConfig } from 'vite'\nimport vue from '@vitejs/plugin-vue'\nimport { resolve } from 'path'\n\nexport default defineConfig({\n plugins: [vue()],\n resolve: { alias: { '@': resolve(__dirname,'src') } }\n})\n"); zip.file(folder+"tsconfig.json",'{"files":[],"references":[{"path":"./tsconfig.app.json"},{"path":"./tsconfig.node.json"}]}\n'); zip.file(folder+"tsconfig.app.json",'{\n "compilerOptions":{\n "target":"ES2020","useDefineForClassFields":true,"module":"ESNext","lib":["ES2020","DOM","DOM.Iterable"],\n "skipLibCheck":true,"moduleResolution":"bundler","allowImportingTsExtensions":true,\n "isolatedModules":true,"moduleDetection":"force","noEmit":true,"jsxImportSource":"vue",\n "strict":true,"paths":{"@/*":["./src/*"]}\n },\n "include":["src/**/*.ts","src/**/*.d.ts","src/**/*.tsx","src/**/*.vue"]\n}\n'); zip.file(folder+"env.d.ts","/// \n"); zip.file(folder+"index.html","\n\n\n \n \n "+slugTitle(pn)+"\n\n\n
\n \n\n\n"); var hasMain=Object.keys(extracted).some(function(k){return k==="src/main.ts"||k==="main.ts";}); if(!hasMain) zip.file(folder+"src/main.ts","import { createApp } from 'vue'\nimport { createPinia } from 'pinia'\nimport App from './App.vue'\nimport './assets/main.css'\n\nconst app = createApp(App)\napp.use(createPinia())\napp.mount('#app')\n"); var hasApp=Object.keys(extracted).some(function(k){return k.indexOf("App.vue")>=0;}); if(!hasApp) zip.file(folder+"src/App.vue","\n\n\n\n\n"); zip.file(folder+"src/assets/main.css","*{margin:0;padding:0;box-sizing:border-box}body{font-family:system-ui,sans-serif;background:#fff;color:#213547}\n"); zip.file(folder+"src/components/.gitkeep",""); zip.file(folder+"src/views/.gitkeep",""); zip.file(folder+"src/stores/.gitkeep",""); Object.keys(extracted).forEach(function(p){ var fp=p.startsWith("src/")?p:"src/"+p; zip.file(folder+fp,extracted[p]); }); zip.file(folder+"README.md","# "+slugTitle(pn)+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\nnpm install\nnpm run dev\n\`\`\`\n\n## Build\n\`\`\`bash\nnpm run build\n\`\`\`\n\nOpen in VS Code or WebStorm.\n"); zip.file(folder+".gitignore","node_modules/\ndist/\n.env\n.DS_Store\n*.local\n"); } /* --- Angular (v19 standalone) --- */ function buildAngular(zip,folder,app,code,panelTxt){ var pn=pkgName(app); var C=cc(pn); var sel=pn.replace(/_/g,"-"); var extracted=extractCode(panelTxt); zip.file(folder+"package.json",'{\n "name": "'+pn+'",\n "version": "0.0.0",\n "scripts": {\n "ng": "ng",\n "start": "ng serve",\n "build": "ng build",\n "test": "ng test"\n },\n "dependencies": {\n "@angular/animations": "^19.0.0",\n "@angular/common": "^19.0.0",\n "@angular/compiler": "^19.0.0",\n "@angular/core": "^19.0.0",\n "@angular/forms": "^19.0.0",\n "@angular/platform-browser": "^19.0.0",\n "@angular/platform-browser-dynamic": "^19.0.0",\n "@angular/router": "^19.0.0",\n "rxjs": "~7.8.0",\n "tslib": "^2.3.0",\n "zone.js": "~0.15.0"\n },\n "devDependencies": {\n "@angular-devkit/build-angular": "^19.0.0",\n "@angular/cli": "^19.0.0",\n "@angular/compiler-cli": "^19.0.0",\n "typescript": "~5.6.0"\n }\n}\n'); zip.file(folder+"angular.json",'{\n "$schema": "./node_modules/@angular/cli/lib/config/schema.json",\n "version": 1,\n "newProjectRoot": "projects",\n "projects": {\n "'+pn+'": {\n "projectType": "application",\n "root": "",\n "sourceRoot": "src",\n "prefix": "app",\n "architect": {\n "build": {\n "builder": "@angular-devkit/build-angular:application",\n "options": {\n "outputPath": "dist/'+pn+'",\n "index": "src/index.html",\n "browser": "src/main.ts",\n "tsConfig": "tsconfig.app.json",\n "styles": ["src/styles.css"],\n "scripts": []\n }\n },\n "serve": {"builder":"@angular-devkit/build-angular:dev-server","configurations":{"production":{"buildTarget":"'+pn+':build:production"},"development":{"buildTarget":"'+pn+':build:development"}},"defaultConfiguration":"development"}\n }\n }\n }\n}\n'); zip.file(folder+"tsconfig.json",'{\n "compileOnSave": false,\n "compilerOptions": {"baseUrl":"./","outDir":"./dist/out-tsc","forceConsistentCasingInFileNames":true,"strict":true,"noImplicitOverride":true,"noPropertyAccessFromIndexSignature":true,"noImplicitReturns":true,"noFallthroughCasesInSwitch":true,"paths":{"@/*":["src/*"]},"skipLibCheck":true,"esModuleInterop":true,"sourceMap":true,"declaration":false,"experimentalDecorators":true,"moduleResolution":"bundler","importHelpers":true,"target":"ES2022","module":"ES2022","useDefineForClassFields":false,"lib":["ES2022","dom"]},\n "references":[{"path":"./tsconfig.app.json"}]\n}\n'); zip.file(folder+"tsconfig.app.json",'{\n "extends":"./tsconfig.json",\n "compilerOptions":{"outDir":"./dist/out-tsc","types":[]},\n "files":["src/main.ts"],\n "include":["src/**/*.d.ts"]\n}\n'); zip.file(folder+"src/index.html","\n\n\n \n "+slugTitle(pn)+"\n \n \n \n\n\n \n\n\n"); zip.file(folder+"src/main.ts","import { bootstrapApplication } from '@angular/platform-browser';\nimport { appConfig } from './app/app.config';\nimport { AppComponent } from './app/app.component';\n\nbootstrapApplication(AppComponent, appConfig)\n .catch(err => console.error(err));\n"); zip.file(folder+"src/styles.css","* { margin: 0; padding: 0; box-sizing: border-box; }\nbody { font-family: system-ui, -apple-system, sans-serif; background: #f9fafb; color: #111827; }\n"); var hasComp=Object.keys(extracted).some(function(k){return k.indexOf("app.component")>=0;}); if(!hasComp){ zip.file(folder+"src/app/app.component.ts","import { Component } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\n\n@Component({\n selector: 'app-root',\n standalone: true,\n imports: [RouterOutlet],\n templateUrl: './app.component.html',\n styleUrl: './app.component.css'\n})\nexport class AppComponent {\n title = '"+pn+"';\n}\n"); zip.file(folder+"src/app/app.component.html","
\n
\n

"+slugTitle(pn)+"

\n

Built with PantheraHive BOS

\n
\n \n
\n"); zip.file(folder+"src/app/app.component.css",".app-header{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:16px}h1{font-size:2.5rem;font-weight:700;color:#6366f1}\n"); } zip.file(folder+"src/app/app.config.ts","import { ApplicationConfig, provideZoneChangeDetection } from '@angular/core';\nimport { provideRouter } from '@angular/router';\nimport { routes } from './app.routes';\n\nexport const appConfig: ApplicationConfig = {\n providers: [\n provideZoneChangeDetection({ eventCoalescing: true }),\n provideRouter(routes)\n ]\n};\n"); zip.file(folder+"src/app/app.routes.ts","import { Routes } from '@angular/router';\n\nexport const routes: Routes = [];\n"); Object.keys(extracted).forEach(function(p){ var fp=p.startsWith("src/")?p:"src/"+p; zip.file(folder+fp,extracted[p]); }); zip.file(folder+"README.md","# "+slugTitle(pn)+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\nnpm install\nng serve\n# or: npm start\n\`\`\`\n\n## Build\n\`\`\`bash\nng build\n\`\`\`\n\nOpen in VS Code with Angular Language Service extension.\n"); zip.file(folder+".gitignore","node_modules/\ndist/\n.env\n.DS_Store\n*.local\n.angular/\n"); } /* --- Python --- */ function buildPython(zip,folder,app,code){ var title=slugTitle(app); var pn=pkgName(app); var src=code.replace(/^\`\`\`[\w]*\n?/m,"").replace(/\n?\`\`\`$/m,"").trim(); var reqMap={"numpy":"numpy","pandas":"pandas","sklearn":"scikit-learn","tensorflow":"tensorflow","torch":"torch","flask":"flask","fastapi":"fastapi","uvicorn":"uvicorn","requests":"requests","sqlalchemy":"sqlalchemy","pydantic":"pydantic","dotenv":"python-dotenv","PIL":"Pillow","cv2":"opencv-python","matplotlib":"matplotlib","seaborn":"seaborn","scipy":"scipy"}; var reqs=[]; Object.keys(reqMap).forEach(function(k){if(src.indexOf("import "+k)>=0||src.indexOf("from "+k)>=0)reqs.push(reqMap[k]);}); var reqsTxt=reqs.length?reqs.join("\n"):"# add dependencies here\n"; zip.file(folder+"main.py",src||"# "+title+"\n# Generated by PantheraHive BOS\n\nprint(title+\" loaded\")\n"); zip.file(folder+"requirements.txt",reqsTxt); zip.file(folder+".env.example","# Environment variables\n"); zip.file(folder+"README.md","# "+title+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\npython3 -m venv .venv\nsource .venv/bin/activate\npip install -r requirements.txt\n\`\`\`\n\n## Run\n\`\`\`bash\npython main.py\n\`\`\`\n"); zip.file(folder+".gitignore",".venv/\n__pycache__/\n*.pyc\n.env\n.DS_Store\n"); } /* --- Node.js --- */ function buildNode(zip,folder,app,code){ var title=slugTitle(app); var pn=pkgName(app); var src=code.replace(/^\`\`\`[\w]*\n?/m,"").replace(/\n?\`\`\`$/m,"").trim(); var depMap={"mongoose":"^8.0.0","dotenv":"^16.4.5","axios":"^1.7.9","cors":"^2.8.5","bcryptjs":"^2.4.3","jsonwebtoken":"^9.0.2","socket.io":"^4.7.4","uuid":"^9.0.1","zod":"^3.22.4","express":"^4.18.2"}; var deps={}; Object.keys(depMap).forEach(function(k){if(src.indexOf(k)>=0)deps[k]=depMap[k];}); if(!deps["express"])deps["express"]="^4.18.2"; var pkgJson=JSON.stringify({"name":pn,"version":"1.0.0","main":"src/index.js","scripts":{"start":"node src/index.js","dev":"nodemon src/index.js"},"dependencies":deps,"devDependencies":{"nodemon":"^3.0.3"}},null,2)+"\n"; zip.file(folder+"package.json",pkgJson); var fallback="const express=require(\"express\");\nconst app=express();\napp.use(express.json());\n\napp.get(\"/\",(req,res)=>{\n res.json({message:\""+title+" API\"});\n});\n\nconst PORT=process.env.PORT||3000;\napp.listen(PORT,()=>console.log(\"Server on port \"+PORT));\n"; zip.file(folder+"src/index.js",src||fallback); zip.file(folder+".env.example","PORT=3000\n"); zip.file(folder+".gitignore","node_modules/\n.env\n.DS_Store\n"); zip.file(folder+"README.md","# "+title+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\nnpm install\n\`\`\`\n\n## Run\n\`\`\`bash\nnpm run dev\n\`\`\`\n"); } /* --- Vanilla HTML --- */ function buildVanillaHtml(zip,folder,app,code){ var title=slugTitle(app); var isFullDoc=code.trim().toLowerCase().indexOf("=0||code.trim().toLowerCase().indexOf("=0; var indexHtml=isFullDoc?code:"\n\n\n\n\n"+title+"\n\n\n\n"+code+"\n\n\n\n"; zip.file(folder+"index.html",indexHtml); zip.file(folder+"style.css","/* "+title+" — styles */\n*{margin:0;padding:0;box-sizing:border-box}\nbody{font-family:system-ui,-apple-system,sans-serif;background:#fff;color:#1a1a2e}\n"); zip.file(folder+"script.js","/* "+title+" — scripts */\n"); zip.file(folder+"assets/.gitkeep",""); zip.file(folder+"README.md","# "+title+"\n\nGenerated by PantheraHive BOS.\n\n## Open\nDouble-click \`index.html\` in your browser.\n\nOr serve locally:\n\`\`\`bash\nnpx serve .\n# or\npython3 -m http.server 3000\n\`\`\`\n"); zip.file(folder+".gitignore",".DS_Store\nnode_modules/\n.env\n"); } /* ===== MAIN ===== */ var sc=document.createElement("script"); sc.src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js"; sc.onerror=function(){ if(lbl)lbl.textContent="Download ZIP"; alert("JSZip load failed — check connection."); }; sc.onload=function(){ var zip=new JSZip(); var base=(_phFname||"output").replace(/\.[^.]+$/,""); var app=base.toLowerCase().replace(/[^a-z0-9]+/g,"_").replace(/^_+|_+$/g,"")||"my_app"; var folder=app+"/"; var vc=document.getElementById("panel-content"); var panelTxt=vc?(vc.innerText||vc.textContent||""):""; var lang=detectLang(_phCode,panelTxt); if(_phIsHtml){ buildVanillaHtml(zip,folder,app,_phCode); } else if(lang==="flutter"){ buildFlutter(zip,folder,app,_phCode,panelTxt); } else if(lang==="react-native"){ buildReactNative(zip,folder,app,_phCode,panelTxt); } else if(lang==="swift"){ buildSwift(zip,folder,app,_phCode,panelTxt); } else if(lang==="kotlin"){ buildKotlin(zip,folder,app,_phCode,panelTxt); } else if(lang==="react"){ buildReact(zip,folder,app,_phCode,panelTxt); } else if(lang==="vue"){ buildVue(zip,folder,app,_phCode,panelTxt); } else if(lang==="angular"){ buildAngular(zip,folder,app,_phCode,panelTxt); } else if(lang==="python"){ buildPython(zip,folder,app,_phCode); } else if(lang==="node"){ buildNode(zip,folder,app,_phCode); } else { /* Document/content workflow */ var title=app.replace(/_/g," "); var md=_phAll||_phCode||panelTxt||"No content"; zip.file(folder+app+".md",md); var h=""+title+""; h+="

"+title+"

"; var hc=md.replace(/&/g,"&").replace(//g,">"); hc=hc.replace(/^### (.+)$/gm,"

$1

"); hc=hc.replace(/^## (.+)$/gm,"

$1

"); hc=hc.replace(/^# (.+)$/gm,"

$1

"); hc=hc.replace(/\*\*(.+?)\*\*/g,"$1"); hc=hc.replace(/\n{2,}/g,"

"); h+="

"+hc+"

Generated by PantheraHive BOS
"; zip.file(folder+app+".html",h); zip.file(folder+"README.md","# "+title+"\n\nGenerated by PantheraHive BOS.\n\nFiles:\n- "+app+".md (Markdown)\n- "+app+".html (styled HTML)\n"); } zip.generateAsync({type:"blob"}).then(function(blob){ var a=document.createElement("a"); a.href=URL.createObjectURL(blob); a.download=app+".zip"; a.click(); URL.revokeObjectURL(a.href); if(lbl)lbl.textContent="Download ZIP"; }); }; document.head.appendChild(sc); } function phShare(){navigator.clipboard.writeText(window.location.href).then(function(){var el=document.getElementById("ph-share-lbl");if(el){el.textContent="Link copied!";setTimeout(function(){el.textContent="Copy share link";},2500);}});}function phEmbed(){var runId=window.location.pathname.split("/").pop().replace(".html","");var embedUrl="https://pantherahive.com/embed/"+runId;var code='';navigator.clipboard.writeText(code).then(function(){var el=document.getElementById("ph-embed-lbl");if(el){el.textContent="Embed code copied!";setTimeout(function(){el.textContent="Get Embed Code";},2500);}});}