This is my submission of the Qured tech task.
I started this project by using my own Flutter app template from my Github repos. My Flutter app template is a handy way of starting a new project with some basic tools and plugins that I commonly use.
I like to use stacked
architecture and state management in my apps as I find it easy to use and has less boilerplate than solutions like bloc
.
Tools used:
- Flutter
- Json Placeholder: https://jsonplaceholder.typicode.com/
- Random Users: https://xsgames.co/randomusers/
- Lorum Picsum: https://picsum.photos/
UI Design: I wanted to create a sleek, minimalist UI because I think it suits a blog app and because it is quick and easy.
Inspiration:
- https://dribbble.com/shots/14975376-Blog-UI
- https://dribbble.com/shots/18462355-Medicuy-Article-App
- https://dribbble.com/shots/17204887-Bulletin-News-Articles-and-News-Reading-App
- Medium.com
Note about performance: In a real production app you would not want to fetch a list of all Users and join them to their Posts on app launch. However, because we are using the JsonPlaceholder API I knew that there was only a maximum of 10 Users. So I made the decision to fetch all Users on app launch to reduce the number of API calls and because the Users data will not change.
Things I would like to improve on:
- Display an avatar image for each Comment in the PostDetailView
- Possibly add more colour to draw the users eye to key elements (call to action buttons, etc.)
- Add more unit tests.
- Add more widget tests.