Learning Flutter: github_jobs
Flutter LearningFlutterA simple GitHub Jobs client written in Flutter.
The goal of this project were:
- to use Provider v3 (especially
ProxyProvider
) for dependency injection - to render HTML text as Flutter widgets
Color scheme taken from GitHub Desktop Client.
Overview
- State management is handled using a global state
AppState
andProvider
. - An implementation of
IJobService
is injected intoAppState
. HomeScreen
displays a list of job results using a given description and location.- Description and location text fields change focus by listening to
onSubmitted
.
- Description and location text fields change focus by listening to
JobScreen
displays info about a given job, clicking on urls opens the browser.
Remarks
- The service locator get_it has its uses but these service singletons can be accessed by any class throughout the project. I would much prefer constructor injection.
- After investigating kiwi and inject, I feel that Provider is currently the best dependency injection solution, at least in my case for small projects.
- I’ve never actually used the
didChangeDependencies
callback before, definitely best place to assignappState
inHomeScreenState
. - TextField:
onEditingComplete
is called beforeonSubmitted
, however the documentation states thatonSubmitted
can be used to manually move focus to another input widget when a user finishes with the currently focused input widget - For some reason url_launcher does not seem to work with
mailto:test@test.de
.
Resources
This post was generated from a GitHub repository.