App Android para Criar Sites com Programação


Vou criar um aplicativo educacional que simula um ambiente de desenvolvimento web para Android. Este app permitirá que usuários criem sites básicos usando HTML, CSS e JavaScript diretamente no dispositivo móvel.


```html

<!DOCTYPE html>

<html lang="pt-BR">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>WebDev Mobile - Crie Sites no Android</title>

    <style>

        :root {

            --primary: #2c3e50;

            --secondary: #3498db;

            --accent: #e74c3c;

            --light: #ecf0f1;

            --dark: #2c3e50;

            --success: #2ecc71;

        }

        

        * {

            margin: 0;

            padding: 0;

            box-sizing: border-box;

            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;

        }

        

        body {

            background: linear-gradient(135deg, #1a2980, #26d0ce);

            color: white;

            min-height: 100vh;

            padding: 20px;

        }

        

        .container {

            max-width: 100%;

            margin: 0 auto;

            background-color: rgba(255, 255, 255, 0.1);

            border-radius: 15px;

            padding: 20px;

            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);

            backdrop-filter: blur(10px);

        }

        

        header {

            text-align: center;

            margin-bottom: 25px;

            padding-bottom: 15px;

            border-bottom: 1px solid rgba(255, 255, 255, 0.2);

        }

        

        h1 {

            font-size: 1.8rem;

            margin-bottom: 10px;

        }

        

        .subtitle {

            font-size: 1rem;

            opacity: 0.8;

        }

        

        .app-features {

            display: grid;

            grid-template-columns: 1fr 1fr;

            gap: 15px;

            margin-bottom: 25px;

        }

        

        .feature {

            background: rgba(255, 255, 255, 0.15);

            padding: 15px;

            border-radius: 10px;

            text-align: center;

        }

        

        .feature-icon {

            font-size: 2rem;

            margin-bottom: 10px;

        }

        

        .editor-container {

            background: var(--dark);

            border-radius: 10px;

            overflow: hidden;

            margin-bottom: 25px;

        }

        

        .editor-tabs {

            display: flex;

            background: var(--primary);

        }

        

        .editor-tab {

            padding: 12px 15px;

            cursor: pointer;

            flex: 1;

            text-align: center;

            transition: background 0.3s;

        }

        

        .editor-tab.active {

            background: var(--secondary);

            font-weight: bold;

        }

        

        .editor-content {

            padding: 15px;

            min-height: 200px;

            max-height: 300px;

            overflow-y: auto;

        }

        

        textarea {

            width: 100%;

            height: 100%;

            background: #1e1e1e;

            color: #d4d4d4;

            border: none;

            padding: 10px;

            border-radius: 5px;

            font-family: 'Courier New', monospace;

            resize: none;

        }

        

        .preview-container {

            background: white;

            border-radius: 10px;

            overflow: hidden;

            margin-bottom: 25px;

            min-height: 300px;

        }

        

        .preview-header {

            background: var(--primary);

            padding: 12px 15px;

            display: flex;

            justify-content: space-between;

            align-items: center;

        }

        

        .preview-content {

            padding: 15px;

            color: #333;

            min-height: 250px;

        }

        

        .controls {

            display: flex;

            gap: 10px;

            margin-bottom: 20px;

        }

        

        button {

            padding: 12px 20px;

            border: none;

            border-radius: 50px;

            background: var(--secondary);

            color: white;

            font-weight: bold;

            cursor: pointer;

            flex: 1;

            transition: all 0.3s;

            display: flex;

            align-items: center;

            justify-content: center;

            gap: 8px;

        }

        

        button:hover {

            transform: translateY(-2px);

            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);

        }

        

        button.run {

            background: var(--success);

        }

        

        button.reset {

            background: var(--accent);

        }

        

        .code-examples {

            margin-top: 25px;

        }

        

        .examples-header {

            display: flex;

            justify-content: space-between;

            align-items: center;

            margin-bottom: 15px;

        }

        

        .examples-grid {

            display: grid;

            grid-template-columns: 1fr 1fr;

            gap: 15px;

        }

        

        .example {

            background: rgba(255, 255, 255, 0.15);

            padding: 15px;

            border-radius: 10px;

            cursor: pointer;

            transition: all 0.3s;

        }

        

        .example:hover {

            transform: translateY(-3px);

            background: rgba(255, 255, 255, 0.25);

        }

        

        .example-title {

            font-weight: bold;

            margin-bottom: 8px;

        }

        

        .example-desc {

            font-size: 0.9rem;

            opacity: 0.8;

        }

        

        footer {

            margin-top: 30px;

            text-align: center;

            font-size: 0.9rem;

            opacity: 0.7;

        }

        

        @media (max-width: 600px) {

            .app-features, .examples-grid {

                grid-template-columns: 1fr;

            }

            

            h1 {

                font-size: 1.5rem;

            }

        }

    </style>

</head>

<body>

    <div class="container">

        <header>

            <h1>WebDev Mobile</h1>

            <p class="subtitle">Crie sites diretamente no seu dispositivo Android</p>

        </header>

        

        <div class="app-features">

            <div class="feature">

                <div class="feature-icon">📱</div>

                <h3>Editor Móvel</h3>

                <p>Escreva código HTML, CSS e JS em qualquer lugar</p>

            </div>

            <div class="feature">

                <div class="feature-icon">⚡</div>

                <h3>Preview Instantâneo</h3>

                <p>Veja as alterações em tempo real</p>

            </div>

            <div class="feature">

                <div class="feature-icon">💾</div>

                <h3>Salve Seus Projetos</h3>

                <p>Armazene localmente ou na nuvem</p>

            </div>

            <div class="feature">

                <div class="feature-icon">🚀</div>

                <h3>Publicação Fácil</h3>

                <p>Exporte e publique seus sites</p>

            </div>

        </div>

        

        <div class="editor-container">

            <div class="editor-tabs">

                <div class="editor-tab active" data-tab="html">HTML</div>

                <div class="editor-tab" data-tab="css">CSS</div>

                <div class="editor-tab" data-tab="js">JavaScript</div>

            </div>

            <div class="editor-content">

                <textarea id="html-code" placeholder="Digite seu código HTML aqui...">&lt;!DOCTYPE html&gt;

&lt;html&gt;

&lt;head&gt;

    &lt;title&gt;Meu Site&lt;/title&gt;

&lt;/head&gt;

&lt;body&gt;

    &lt;h1&gt;Olá, Mundo!&lt;/h1&gt;

    &lt;p&gt;Este é meu primeiro site no mobile.&lt;/p&gt;

&lt;/body&gt;

&lt;/html&gt;</textarea>

                <textarea id="css-code" placeholder="Digite seu código CSS aqui..." style="display: none;">body {

    font-family: Arial, sans-serif;

    text-align: center;

    padding: 20px;

    background: linear-gradient(135deg, #667eea, #764ba2);

    color: white;

}


h1 {

    font-size: 2.5rem;

    margin-bottom: 20px;

}


p {

    font-size: 1.2rem;

}</textarea>

                <textarea id="js-code" placeholder="Digite seu código JavaScript aqui..." style="display: none;">// Adicione interatividade ao seu site

document.addEventListener('DOMContentLoaded', function() {

    console.log('Site carregado com sucesso!');

});</textarea>

            </div>

        </div>

        

        <div class="controls">

            <button class="run" id="run-btn">

                <span>▶️</span> Executar

            </button>

            <button class="reset" id="reset-btn">

                <span>🔄</span> Redefinir

            </button>

        </div>

        

        <div class="preview-container">

            <div class="preview-header">

                <span>Preview</span>

                <small>Resultado do seu código</small>

            </div>

            <div class="preview-content" id="preview">

                <!-- O preview será gerado aqui -->

            </div>

        </div>

        

        <div class="code-examples">

            <div class="examples-header">

                <h3>Exemplos Prontos</h3>

                <small>Clique para carregar</small>

            </div>

            <div class="examples-grid">

                <div class="example" data-example="landing-page">

                    <div class="example-title">Landing Page</div>

                    <div class="example-desc">Página de apresentação simples</div>

                </div>

                <div class="example" data-example="portfolio">

                    <div class="example-title">Portfólio</div>

                    <div class="example-desc">Site pessoal para mostrar trabalhos</div>

                </div>

                <div class="example" data-example="blog">

                    <div class="example-title">Blog Simples</div>

                    <div class="example-desc">Estrutura básica para um blog</div>

                </div>

                <div class="example" data-example="calculator">

                    <div class="example-title">Calculadora</div>

                    <div class="example-desc">Calculadora funcional com JavaScript</div>

                </div>

            </div>

        </div>

        

        <footer>

            <p>WebDev Mobile - Aprenda a criar sites diretamente no seu Android</p>

            <p>Este é um protótipo educacional. Para um app completo, considere baixar aplicativos como "AWD", "Dcoder" ou "Quoda" da Play Store.</p>

        </footer>

    </div>


    <script>

        document.addEventListener('DOMContentLoaded', function() {

            const htmlCode = document.getElementById('html-code');

            const cssCode = document.getElementById('css-code');

            const jsCode = document.getElementById('js-code');

            const runBtn = document.getElementById('run-btn');

            const resetBtn = document.getElementById('reset-btn');

            const preview = document.getElementById('preview');

            const editorTabs = document.querySelectorAll('.editor-tab');

            

            // Alternar entre abas do editor

            editorTabs.forEach(tab => {

                tab.addEventListener('click', function() {

                    const targetTab = this.getAttribute('data-tab');

                    

                    // Atualizar aba ativa

                    editorTabs.forEach(t => t.classList.remove('active'));

                    this.classList.add('active');

                    

                    // Mostrar o editor correto

                    document.getElementById('html-code').style.display = 'none';

                    document.getElementById('css-code').style.display = 'none';

                    document.getElementById('js-code').style.display = 'none';

                    document.getElementById(`${targetTab}-code`).style.display = 'block';

                });

            });

            

            // Executar código

            runBtn.addEventListener('click', function() {

                const html = htmlCode.value;

                const css = cssCode.value;

                const js = jsCode.value;

                

                // Criar iframe para o preview

                preview.innerHTML = '';

                const iframe = document.createElement('iframe');

                iframe.style.width = '100%';

                iframe.style.height = '300px';

                iframe.style.border = 'none';

                preview.appendChild(iframe);

                

                // Gerar conteúdo para o iframe

                const iframeDoc = iframe.contentDocument || iframe.contentWindow.document;

                iframeDoc.open();

                iframeDoc.write(`

                    <!DOCTYPE html>

                    <html>

                    <head>

                        <style>${css}</style>

                    </head>

                    <body>

                        ${html}

                        <script>${js}<\/script>

                    </body>

                    </html>

                `);

                iframeDoc.close();

            });

            

            // Redefinir código

            resetBtn.addEventListener('click', function() {

                if (confirm('Tem certeza que deseja redefinir todo o código?')) {

                    htmlCode.value = '';

                    cssCode.value = '';

                    jsCode.value = '';

                    preview.innerHTML = '<p class="preview-placeholder">O preview aparecerá aqui após executar o código.</p>';

                }

            });

            

            // Exemplos de código

            const examples = document.querySelectorAll('.example');

            examples.forEach(example => {

                example.addEventListener('click', function() {

                    const exampleType = this.getAttribute('data-example');

                    loadExample(exampleType);

                });

            });

            

            function loadExample(type) {

                switch(type) {

                    case 'landing-page':

                        htmlCode.value = `<!DOCTYPE html>

<html>

<head>

    <title>Meu Produto Incrível</title>

</head>

<body>

    <header>

        <h1>Meu Produto Incrível</h1>

        <p>A solução que você estava esperando</p>

        <button>Saiba Mais</button>

    </header>

    <section>

        <h2>Recursos</h2>

        <div class="feature">

            <h3>Fácil de Usar</h3>

            <p>Interface intuitiva para todos</p>

        </div>

        <div class="feature">

            <h3>Econômico</h3>

            <p>Preço acessível para todos</p>

        </div>

    </section>

    <footer>

        <p>&copy; 2023 Meu Produto Incrível</p>

    </footer>

</body>

</html>`;

                        cssCode.value = `body {

    font-family: Arial, sans-serif;

    margin: 0;

    padding: 0;

    text-align: center;

}


header {

    background: linear-gradient(135deg, #667eea, #764ba2);

    color: white;

    padding: 60px 20px;

}


h1 {

    font-size: 2.5rem;

    margin-bottom: 20px;

}


button {

    background: #e74c3c;

    color: white;

    border: none;

    padding: 12px 30px;

    border-radius: 5px;

    font-size: 1.1rem;

    cursor: pointer;

}


section {

    padding: 50px 20px;

}


.feature {

    display: inline-block;

    width: 200px;

    margin: 20px;

    padding: 20px;

    border: 1px solid #ddd;

    border-radius: 5px;

}


footer {

    background: #2c3e50;

    color: white;

    padding: 20px;

}`;

                        jsCode.value = `// Adicionar interatividade ao botão

document.querySelector('button').addEventListener('click', function() {

    alert('Obrigado pelo interesse! Em breve entraremos em contato.');

});`;

                        break;

                    

                    case 'portfolio':

                        // Código para exemplo de portfólio

                        break;

                    

                    case 'blog':

                        // Código para exemplo de blog

                        break;

                    

                    case 'calculator':

                        // Código para exemplo de calculadora

                        break;

                }

                

                // Ativar a aba HTML

                editorTabs.forEach(t => t.classList.remove('active'));

                document.querySelector('[data-tab="html"]').classList.add('active');

                htmlCode.style.display = 'block';

                cssCode.style.display = 'none';

                jsCode.style.display = 'none';

                

                // Executar automaticamente

                setTimeout(() => runBtn.click(), 500);

            }

            

            // Executar código inicial

            runBtn.click();

        });

    </script>

</body>

</html>

```


Como Usar Este Protótipo:


1. Editor de Código: Alterna entre HTML, CSS e JavaScript

2. Botão Executar: Visualiza o resultado do seu código

3. Exemplos Práticos: Carrega templates prontos para modificar

4. Preview em Tempo Real: Veja as mudanças instantaneamente


Aplicativos Reais para Desenvolvimento Web no Android:


Para uma experiência completa, recomendo estes aplicativos disponíveis na Google Play Store:


· AWD (Android Web Developer) - Editor completo para HTML, CSS, JS e PHP

· Dcoder - Compilador de código móvel com suporte a múltiplas linguagens

· Quoda - Editor de código com suporte a sintaxe e temas

· Termux - Emulador de terminal com acesso a ferramentas de desenvolvimento


Este protótipo demonstra como um aplicativo de desenvolvimento web para Android poderia funcionar, permitindo criar e visualizar sites diretamente no dispositivo móvel.