A gif search application using the Giphy service
Flutter 3.22.2 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 761747bfc5 (7 weeks ago) • 2024-06-05 22:15:13 +0200
Engine • revision edd8546116
Tools • Dart 3.4.3 • DevTools 2.34.3
Create a .env file on project root with the contents:
GIPHY_API_KEY=_your_api_key_Run flutter pub get in terminal,
Run main.dart
- Primary platforms - iOS & Android;
- Auto search - requests to retrieve Gif information from the service are made automatically with a small delay after user stops typing;
- Pagination - loading more results when scrolling;
- Vertical & horizontal orientation support;
- Error handling;
- Unit tests - as much as you see fit;
- Responsive & matching platform guidelines;
- At least 2 views sourced by data from Giphy;
- Results are displayed in a grid;
- Clicking on a grid item should navigate to a detailed Gif view.
- Loading indicators;
- Error display;
- Using state management approaches or libraries such as BLoC (flutter_bloc), Riverpod or others;
- All state management between pages is done with the Provider package.
- Using an understandable architecture pattern;
- Trying to follow S.O.L.I.D. principles. I need more experience to understand if I've done it right.
- Page navigation is separate from page widget code (a Coordinator pattern or similar);
- (See lib\routes\routes.dart)
- Network availability handling;
- I tried adding an option to download images with flutter_downloader in the detailed gif view. Too many problems with getting permissions and making status notifications.
- There is only one unit test. It is to show how I would approach testing, not that I believe that is a decent coverage.