Group 48

Nota de Release

UNI 1.9.0
Autenticação Federada
Aai Logo 1

+ Fácil,
+ Rápida
+ Segura!

Nova face à página das cadeiras!

Agora é possível ver os professores e aceder aos dados das cadeiras de forma mais clean

Group 51

Com as capas dos livros que devias ler...

Screenshot 2024-09-25 at 22.49.07 1 1

API, API e API.
Mais APIs, por favor

A UNI é alimentada com dados exteriores prevenientes daquilo a que chamamos API (Application Programming Interface).
Estas novas APIs trazem a informação no formato JSON, um tipo de dados muito mais simples de manipular e mais resistente a
bugs.

Estas são as transições recentes para APIs nice:

> Horário do Estudante
> Ocupação da Biblioteca
> Informações de uma cadeira

Group 58
Auto-Serialização

Serialização é o processo de converter uma estrutura de dados, por exemplo JSON, para um objeto dart.

Antigamente este processo era penoso porque era necessário criar funções específicas.

Isso acabou com a adoção do
json_serializable.

Group 21

Vamos a um exemplo do nosso modelo CourseUnit
Na verdade, ele é bem maior!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

class CourseUnit {
  
int id;
  
String code;
  
String name;
  
num? ects;

  static CourseUnit? fromJson(Map<String, dynamic> data) {
    
return CourseUnit(
      id
: data['ucurr_id'] as int,
      code
: data['ucurr_codigo'] as String,
      name
: data['ucurr_nome'] as String,
      ects
: data['creditos_ects'] as num?,
    );
  }

  Map<String, dynamic> toMap() {
    
return {
      
'id': id,
      
'code': code,
      
'name': name,
      
'ects': ects,
    };
  }
}

Vector
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

@JsonSerializable()
class CourseUnit {
  
@JsonKey(name: 'ucurr_id')
  
int id;
  
@JsonKey(name: 'ucurr_codigo')
  
String code;
  
@JsonKey(name: 'ucurr_nome')
  
String name;
  
@JsonKey(name: 'creditos_ects')
  
num? ects;

  factory CourseUnit.fromJson(Map<String, dynamic> json) =>
      _$CourseUnitFromJson(json);

  Map<String, dynamic> toJson() => _$CourseUnitToJson(this);
}

Duas pastas, duas packages

A partir de agora a UNI passa a ser um projeto multi-package:
Uma
package focada exclusivamente no design e outra na lógica da aplicação.

/uni
Vector
/packages/uni_app
/packages/uni_ui  

O que será que vem aí?

Um agradecimento às
Pessoas envolvidas
IMG_4713 1
Bruno Mendes
IMG_4713 1
Diogo Goiana
IMG_4713 1
André Lima
IMG_4713 1
Vítor Pires
IMG_4713 1
Bruno Oliveira
IMG_4713 1
Clara Sousa
IMG_4713 1
Luís Duarte
IMG_4713 1
João Torre Pereira
IMG_4713 1
Rubem Neto
IMG_4713 1
Bartek Pacia
É tudo por agora!
logo_2018 (1) 2
NIAEFEUP
Projetos
Group 48

Nota de Release

UNI 1.9.0
Autenticação Federada
Aai Logo 1

+ Fácil,
+ Rápida
+ Segura!

Nova face à página das cadeiras!

Agora é possível ver os professores e aceder aos dados das cadeiras de forma mais clean

Group 51

Com as capas dos livros que devias ler...

Screenshot 2024-09-25 at 22.49.07 1 1

API, API e API.
Mais APIs, por favor

A UNI é alimentada com dados exteriores prevenientes daquilo a que chamamos API (Application Programming Interface).

Estas novas APIs trazem a informação no formato JSON, um tipo de dados muito mais simples de manipular e mais resistente a
bugs.

Estas são as transições recentes para APIs nice:

> Horário do Estudante
> Ocupação da Biblioteca
> Informações de uma cadeira

Auto-Serialização

Serialização é o processo de converter uma estrutura de dados, por exemplo JSON, para um objeto dart.

Antigamente este processo era penoso porque era necessário criar funções específicas.

Isso acabou com a adoção do
json_serializable

Rectangle 485
json_serializable

Automatically generate code for converting to and from JSON by annotating Dart classes.

Vamos a um exemplo do nosso modelo CourseUnit
Na verdade, ele é bem maior!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

class CourseUnit {
  
int id;
  
String code;
  
String name;
  
num? ects;

  static CourseUnit? fromJson(Map<String, dynamic> data) {
    
return CourseUnit(
      id
: data['ucurr_id'] as int,
      code
: data['ucurr_codigo'] as String,
      name
: data['ucurr_nome'] as String,
      ects
: data['creditos_ects'] as num?,
    );
  }

  Map<String, dynamic> toMap() {
    
return {
      
'id': id,
      
'code': code,
      
'name': name,
      
'ects': ects,
    };
  }
}

Vector
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

@JsonSerializable()
class CourseUnit {
  
@JsonKey(name: 'ucurr_id')
  
int id;
  
@JsonKey(name: 'ucurr_codigo')
  
String code;
  
@JsonKey(name: 'ucurr_nome')
  
String name;
  
@JsonKey(name: 'creditos_ects')
  
num? ects;

  factory CourseUnit.fromJson(Map<String, dynamic> json) =>
      _$CourseUnitFromJson(json);

  Map<String, dynamic> toJson() => _$CourseUnitToJson(this);
}

Duas pastas, duas packages

A partir de agora a UNI passa a ser um projeto multi-package:
Uma
package focada exclusivamente no design e outra na lógica da aplicação.

/uni
Vector
/packages/uni_app
/packages/uni_ui  

O que será que vem aí?

Um agradecimento às
Pessoas envolvidas
IMG_4713 1
Bruno Mendes
IMG_4713 1
Diogo Goiana
IMG_4713 1
André Lima
IMG_4713 1
Vítor Pires
IMG_4713 1
Bruno Oliveira
IMG_4713 1
Clara Sousa
IMG_4713 1
Luís Duarte
IMG_4713 1
João Torre Pereira
IMG_4713 1
Rubem Neto
IMG_4713 1
Bartek Pacia
É tudo por agora!
logo_2018 (1) 2
NIAEFEUP
Projetos