Construção de Aplicativos: Exemplos Práticos de Frontend e Backend em Múltiplas Tecnologias

Desenvolvimento de Interface (Frontend)

A criação da camada de apresentação para dispositivos móveis frequentemente utiliza frameworks modernos que permitem a compilação para plataformas nativas. Abaixo estão implementações base utilizando React Native e Flutter.

React Native (JavaScript/TypeScript)

Exemplo de um componente funcional com gerenciamento de estado local:

import React, { useState } from 'react';
import { StyleSheet, View, Text, TouchableOpacity } from 'react-native';

const MainScreen = () => {
  const [clickCount, setClickCount] = useState(0);

  const handlePress = () => {
    setClickCount(prev => prev + 1);
  };

  return (
    <View style={styles.container}>
      <Text style={styles.title}>Contador de Cliques</Text>
      <Text style={styles.counter}>{clickCount}</Text>
      <TouchableOpacity style={styles.button} onPress={handlePress}>
        <Text style={styles.buttonText}>Incrementar</Text>
      </TouchableOpacity>
    </View>
  );
};

const styles = StyleSheet.create({
  container: { flex: 1, justifyContent: 'center', alignItems: 'center' },
  title: { fontSize: 24, fontWeight: 'bold', marginBottom: 20 },
  counter: { fontSize: 48, marginBottom: 30 },
  button: { backgroundColor: '#007BFF', padding: 15, borderRadius: 8 },
  buttonText: { color: '#FFF', fontSize: 18 }
});

export default MainScreen;

Flutter (Dart)

Implementação de uma tela estática utilizando widgets do Material Design:

import 'package:flutter/material.dart';

void main() => runApp(TechApp());

class TechApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      theme: ThemeData(primarySwatch: Colors.deepPurple),
      home: WelcomeScreen(),
    );
  }
}

class WelcomeScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('Painel de Controle')),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Icon(Icons.dashboard, size: 80, color: Colors.deepPurple),
            SizedBox(height: 20),
            Text(
              'Bem-vindo ao Sistema',
              style: TextStyle(fontSize: 24, fontWeight: FontWeight.bold),
            ),
          ],
        ),
      ),
    );
  }
}

Lógica de Servidor (Backend)

O processamento de regras de negócio e exposição de dados para o aplicativo é realizado no back end. A seguir, exemplos de APIs RESTful utilizando Node.js, Python e Java.

Node.js (Express)

Configuração de um servidor HTTP simples retornando um objeto JSON:

const express = require('express');
const server = express();
const PORT = 4000;

server.get('/api/status', (request, response) => {
  response.json({
    service: 'Node Backend',
    status: 'online',
    timestamp: new Date().toISOString()
  });
});

server.listen(PORT, () => {
  console.log(`API rodando na porta ${PORT}`);
});

Python (Flask)

Criação de uma rota de verificação de saúde (health check) utilizando o microframework Flask:

from flask import Flask, jsonify

web_app = Flask(__name__)

@web_app.route('/api/health')
def check_health():
    return jsonify({
        "environment": "production",
        "uptime": "healthy"
    })

if __name__ == '__main__':
    web_app.run(host='0.0.0.0', port=5000, debug=False)

Java (Spring Boot)

Para ecossistemas corporativos, o Spring Boot oferece uma configuração robusta. Exemplo de dependência no arquivo de configuração e um controlador REST:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class StatusEndpoint {

    @RequestMapping(value = "/api/info", method = RequestMethod.GET)
    public String fetchInfo() {
        return "Spring Boot API is operational.";
    }
}

Tags: react-native Flutter nodejs express Python

Publicado em 6-28 10:37