Skip to content

Full Stack projektin katselmointi #2

@Kaltsoon

Description

@Kaltsoon

Katselmointi

Terve @deinal! Tässä lyhyt katselmointi Full Stack kurssin projektistasi.

Käytettävyys

Mitä tein?

  • Selasin sovelluksen näkymät läpi
  • Testasin eri ulkoasuteemoja

Kokemus

  • Sovelluksella on todella tyylikäs ja helppokäyttöinen käyttöliittymä, hyvää työtä! 🥇
  • Ulkoasuteemojen vaihto on loistava toiminallisuus

Koodi

  • Koodi on organisoitu selkeästi, loistavaa!
  • Ulkoisille API:lle on toteutettu siistit abstraktiot
  • Ulkoasuteeman vaihto on toteutettu näppärästi. Toinen vaihtoehto olisi käyttää styled-components-kirjastoa
  • Komponenttien datan hakeminen kannttaa abstraktoita omilla hookseilla. Esim. tästä saisi melko vaivattomasti toteutettua uudelleenkäytettävän useUrls-hookin. Tämän kaltaiset abstraktoinnit tekevät komponenttien koodista huomattavasti selkeämpää ja ylläpidettävämpää
  • React-native-paper-kirjaston kompontenteista löytyy aika paljon toisteellisuutta, jotka liittyvät pääosin ulkoasuteeman propseihin. Esim. RadioButton-komponentin color ja uncheckedColor propseille asetetaan aina sama arvo. Sen sijaan, että importtaisit suoraan nämä komponentit kirjastoista, kuten React-Native-paper, kannattaa niille tehdä kevyet "wrapper"-komponentit. Nämä "wrapper"-komponentit asettaisivat komponenttien propseille sovelluskohtaiset oletusarvot:
import React, { useState } from 'react';
import { RadioButton as PaperRadioButton } from 'react-native-paper';
// ...

const RadioButton = ({ theme, ...props }) => {
  <RadioButton
    color={theme.primary}
    uncheckedColor={theme.idle}
    {...props}
  />;
};

export default withTheme(RadioButton);

Kokonaisuus

Hienoa, että olet löytänyt idean sovellukselle, jolle on varmasti oikeaa käyttöä. Itse sovellus on helppokäyttöinen ja siinä on tyylikäs käyttöliittymä. Sen koodi on organisoitu selkeästi ja sen sisäinen laatu on pääosin korkea. Pienellä refaktoroinnilla koodistaa saisi vielä ylläpidettävämpää ja helppolukuisempaa.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions