Skip to content

Commit

Permalink
up files aplicando correções
Browse files Browse the repository at this point in the history
  • Loading branch information
marco0antonio0 committed Jan 17, 2024
1 parent f9d554c commit cc16559
Show file tree
Hide file tree
Showing 13 changed files with 255 additions and 112 deletions.
64 changes: 62 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
![img](imageReadme/walpaperLogo.png)

O **Box Gerenciamento** é um aplicativo desenvolvido em Flutter para facilitar o gerenciamento de estoque de produtos. Com funcionalidades intuitivas e uma interface amigável, o aplicativo oferece uma solução completa para o controle de produtos, desde a adição até a alteração e exclusão.

## Informações Gerais
Expand All @@ -7,12 +8,63 @@ O **Box Gerenciamento** é um aplicativo desenvolvido em Flutter para facilitar
- **Desenvolvido em:** Flutter
- **Persistência de Dados:** SQLite (Sqflite)

<table>
<tr>
<th>Versão do Android</th>
<th>v1 - estavel </th>
<th>v1.2 - Feature camera - instavel</th>
<th>responsivo</th>
</tr>
<tr>
<td>Android 7 (Nougat)</td>
<td>✅</td>
<td>em andamento</td>
<td>✅</td>
</tr>
<tr>
<td>Android 8 (Oreo)</td>
<td>✅</td>
<td>em andamento</td>
<td>✅</td>
</tr>
<tr>
<td>Android 9 (Pie)</td>
<td>✅</td>
<td>em andamento</td>
<td>✅</td>
</tr>
<tr>
<td>Android 10</td>
<td>✅</td>
<td>em andamento</td>
<td>✅</td>
</tr>
<tr>
<td>Android 11</td>
<td>✅</td>
<td>em andamento</td>
<td>✅</td>
</tr>
<tr>
<td>Android 12</td>
<td>✅</td>
<td>em andamento</td>
<td>✅</td>
</tr>
<tr>
<td>Android 13 </td>
<td>✅</td>
<td>em andamento</td>
<td>✅</td>
</tr>
</table>

## Permissões Necessárias

Para garantir o pleno funcionamento do aplicativo, são necessárias as seguintes permissões:

- **Câmera:** Para utilização de funcionalidades relacionadas à câmera.
- **Armazenamento:** Para acesso e armazenamento de dados no dispositivo.
- **Armazenamento:** Para acesso e armazenamento de dados no dispositivo para salvamento dos dados relacionais a _feature camera_.

## Dependências

Expand All @@ -23,7 +75,7 @@ O projeto utiliza diversas dependências para aprimorar a experiência do usuár
- **sqflite:** Responsável pela persistência de dados no SQLite.
- **url_launcher:** Utilizada para navegação para rotas no navegador.
- **get:** Utilizada para o controle de estado do aplicativo.
- **image_picker:** Implementa a funcionalidade de câmera e gerencia permissões relacionadas.
- **camera_camera:** Implementa a funcionalidade de câmera e gerencia permissões relacionadas.
- **flutter_launcher_icons:** Utilizada para implementar o design de ícones do aplicativo.

## Arquitetura
Expand All @@ -36,24 +88,32 @@ O aplicativo segue a arquitetura em MVC (Model-View-Controller), proporcionando

### Página Home

![img](imageReadme/walpaper_home.png)

- Lista de produtos com informações detalhadas (foto, título, descrição, valor, quantidade disponível).
- Navegação para a página do produto ao clicar em um item da lista.
- Adição de novos produtos ao estoque.
- Visualização da quantidade total de produtos em estoque.

### Página Produto

![img](imageReadme/walpaper_prod.png)

- Detalhes do produto, incluindo nome, descrição, data de alteração, data de criação, quantidade disponível em estoque e valor total.
- Botão para acessar a página de alteração do produto.

### Página de Alteração

![img](imageReadme/walpaper_edit.png)

- Alteração das informações do produto (exceto data de criação e data de atualização).
- Possibilidade de incrementar e decrementar a quantidade em estoque.
- Exclusão do produto.

### Página de Configuração

![img](imageReadme/walpaper_config.png)

- Alteração de dados cadastrais do usuário.
- Exclusão de todos os produtos.
- Visualização de informações sobre o aplicativo.
Expand Down
14 changes: 11 additions & 3 deletions android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@ if (flutterVersionName == null) {

android {
namespace "com.example.box_estoque"
compileSdkVersion flutter.compileSdkVersion
// compileSdkVersion flutter.compileSdkVersion
compileSdkVersion 33 // alternativa a linha acima
ndkVersion flutter.ndkVersion

compileOptions {
Expand All @@ -45,8 +46,15 @@ android {
applicationId "com.example.box_estoque"
// You can update the following values to match your application needs.
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
minSdkVersion flutter.minSdkVersion
targetSdkVersion flutter.targetSdkVersion
//
// codigo origem - não deletar
// vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
// minSdkVersion flutter.minSdkVersion
// targetSdkVersion flutter.targetSdkVersion

minSdkVersion 22 // alternativa a linha acima
targetSdkVersion 33 // alternativa a linha acima

versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
}
Expand Down
6 changes: 4 additions & 2 deletions android/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,10 @@
android:theme="@style/LaunchTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
android:hardwareAccelerated="true"
android:windowSoftInputMode="adjustResize"
android:screenOrientation="portrait">
android:windowSoftInputMode="adjustResize">
<!-- -->
<!-- android:screenOrientation="portrait"> -->
<!-- -->
<!-- Specifies an Android theme to apply to this Activity as soon as
the Android process has started. This theme is visible to the user
while the Flutter UI initializes. After that, this theme continues
Expand Down
Binary file added imageReadme/walpaper_config.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added imageReadme/walpaper_edit.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added imageReadme/walpaper_home.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added imageReadme/walpaper_prod.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
9 changes: 8 additions & 1 deletion lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,18 @@ import 'package:device_preview/device_preview.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';

//=======================================
// Função nova
// camera acessos a fotos
final FetueareCamera = true;
//=======================================
// debugMode:
// refere-se a adaptação da tela em
// diversos cenarios
const debugMode = false;
final debugMode = false;
//
//
//=======================================
void main() {
runApp(
debugMode
Expand Down
2 changes: 0 additions & 2 deletions lib/model/ImageModel.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
// ignore_for_file: file_names, unnecessary_getters_setters

import 'dart:io';

import 'package:get/get.dart';

class ImageModel extends GetxController {
Expand Down
107 changes: 55 additions & 52 deletions lib/pages/cadastro.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,16 @@

import 'dart:io';

import 'package:box_estoque/animations/Navigation.dart';
import 'package:box_estoque/components/InputTexts.dart';
import 'package:box_estoque/components/buttom.dart';
import 'package:box_estoque/components/topbar.dart';
import 'package:box_estoque/components/viewImage.dart';
import 'package:box_estoque/main.dart';
import 'package:box_estoque/model/EstoqueDatabase.dart';
import 'package:box_estoque/pages/home.dart';
import 'package:flutter/material.dart';
import 'package:image_picker/image_picker.dart';
import 'package:camera_camera/camera_camera.dart';

class PageCadastro extends StatefulWidget {
const PageCadastro({super.key});
Expand All @@ -35,30 +37,11 @@ class _PageCadastroState extends State<PageCadastro> {
// Instancia database
EstoqueDatabase estoqueDB = EstoqueDatabase.instance;
// =============================================================
// instancia da funcionalidade
final imagePicker = ImagePicker();
// inciar o objeto imagem
File? imageFile;
// inciar o caminho do path objeto imagem
String imageFilePath = '';

pick(ImageSource source) async {
// executa a operação de abrir camera
final pickedFile = await imagePicker.pickImage(source: source);

// se o retorno da operação acima for valido
// então sete os valores adequados resolvidos
if (pickedFile != null) {
setState(() {
imageFile = File(pickedFile.path);
imageFilePath = pickedFile.path;
print('esse é o caminho');
print(imageFilePath);
});
}
}
// =============================================================

@override
Widget build(BuildContext context) {
double larguraTela = MediaQuery.of(context).size.width;
Expand Down Expand Up @@ -97,43 +80,63 @@ class _PageCadastroState extends State<PageCadastro> {
),
// =======================================================================================
// BTNS - alterar imagem:adiciona imagem -- remover imagem
Container(
padding: EdgeInsets.symmetric(horizontal: 30),
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
SizedBox(
width: (larguraRelativa / 2) - 35,
child: buttomForms(
resize: true,
titulo: imageFile != null
? 'alterar imagem'
: 'adiciona imagem',
fn: () {
// Navigator.of(context).pop();
// Buscar imagem da galeria
pick(ImageSource.camera);
}),
),
SizedBox(width: 10),
imageFile != null
? SizedBox(
//
// enable:disable <== feature camera
FetueareCamera
? Container(
padding: EdgeInsets.symmetric(horizontal: 30),
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
SizedBox(
width: (larguraRelativa / 2) - 35,
child: buttomForms(
color: Colors.red[300],
color: imageFile != null
? Colors.red[300]?.withOpacity(0.7)
: null,
resize: true,
titulo: 'remover imagem',
titulo: imageFile != null
? 'remover imagem'
: 'adiciona imagem',
fn: () {
// remove imagem da memoria
setState(() {
imageFile = null;
imageFilePath = '';
});
//
//======================================
// remover imagem
//
if (imageFile != null) {
setState(() {
imageFile = null;
imageFilePath = '';
});
} else {
//
//======================================
// adiciona imagem
//
navigateToPageWithReverseSlideAnimation(
context,
CameraCamera(
onFile: (file) => {
setState(() {
imageFile = file;
}),
if (imageFile != null)
{
setState(() {
imageFilePath =
file.path;
}),
Navigator.pop(
context)
}
}));
//======================================
}
}),
)
: Container(),
]),
),
),
]),
)
: Container(),
// =======================================================================================
// Margem
const SizedBox(height: 10),
Expand Down
Loading

0 comments on commit cc16559

Please sign in to comment.