# Flutter Demo Project
Welcome to the Flutter take home assignment!
## The Project
The project is to build a simple news aggregator application using Flutter. The core requirements are:
Develop a Flutter application that displays news as aggregated by Kagi's Kite news app.
Specifically, implement category-based news feedsa using the predefined categories at https://kite.kagi.com/kite.json
Each categories articles and topics can then be found at https://kite.kagi.com/<category>.json
Display news articles in a list view with appropriate metadata (title, source, date, etc.)
Allow users to tap on articles to view a detailed summary
This project tests your ability not only to develop Flutter applications, but to deal with ambiguity and open-endedness, which is essential in a small, fast-moving company like Kagi.
The goal of the demo project is not to copy the web app, but to demonstrate your ability of using Flutter to achieve native experiences beyond what a web app could do. Achieving native look&feel, using interactions/animations/haptics that would make the app more joyful to use than a PWA version. This is the whole reason one would use Flutter vs a webview.
Please check these apps for inspiration
- Apple News app
- Quill https://apps.apple.com/us/app/1440-quill-daily-newsletter/id1669557131
## Inspiration
This project is modeled on Kite, Kagi's news application. It should be fast and intuitive, giving users a quick overview of what's going on in the world. The UX should be roughly similar, but feel free to make any tweaks that you think make sense.
## Technical Requirements
Use Flutter and Dart for implementation
Create a clean, responsive UI that works on both iOS and Android
Handle network requests and errors gracefully
Follow sensible coding conventions and patterns
Include appropriate tests (widget tests, unit tests)
Out of scope
Any sort of user settings/authentication/etc
Filtering or customization of news articles
Support for video news
Adding additional sources outside of Kite
Some Guidelines
Do the project in a way that shows off your skills as a developer
Deliverable is the completed project, in a github repo, deployed somewhere or a TestFlight / TestApp link to test it on mobile
Review and address flutter analyze and linter
Create a README file with setup instructions
Make sure to include screenshots or videos of the completed application
And don't hesitate to tell us if you have any questions!
## Deadlines
Project should be submitted within two weeks. If life happens, just let us know!
## Things We Look For
Code quality and organization
Problem-solving approach and technical choices
Adding your own personal touches
Good luck and have fun!