Første forsøg med ROOM

ROOM er androids persistence library som bygger på SQLite, det har jeg arbejdet med idag til registrerings delen af login systemet i min produkt applikation “TrendLog”. Jeg har fulgt en del guides fra google men har kun kunnet bruge små dele af deres tutorials. Hvilket resulterede i at det tog lidt længere tid at få alt til at virke som det skulle.

Jeg løb ind i en del problemer med at få min viewmodel til at blive oprettet som den skulle med det factory som android studio anbefalede, deres dokumentation var ikke særlig specific og i mange af videoerne brugte de deprecated classes som eksempler, så jeg måtte selv ind og grave i deres dokumentation for at finde frem til den rigtige brug med de nye classes og så prøve lidt frem og tilbage for ikke at få errors. Jeg endte også med at måtte lave mit eget factory til min viewmodel for at få sendt min application context ned igennem til min database instans fordi at rooms database builder skal bruge den for at kunne oprette en ny database hvis den endnu ikke er oprettet. Jeg kommer til at vedhæfte billeder i bunden af mit factory og mit database check.

Jeg blev også nød til at bruge threading til at registrere mine brugere for at mit UI ikke fryser når du klikker på registrer knappen, dette kommer der også et screenshot af i bunden. Dog mangler jeg en del checks på input da den godtager alt den får spyttet ind ligenu. Jeg mangler også en form for validering til brugeren om at han er oprettet i systemet. Disse ting fik jeg ikke nået idag, da jeg simpelthen brugte meget tid og energi på at få min viewmodel til at opføre sig som den skulle.

Jeg fik også brugt view binding til mine registrerings input felter, dette hjælper på type safety og null safety som gør at fejlen opstår ved compile time og ikke runtime.
Her er billeder af koden fra de forskellige områder jeg har arbejder med idag:

Code-Behind på mit registrerings view:

Min viewmodel factory:

Min abstract class som opretter singleton instans af min DB:

Written on March 25, 2020