Building a simple Flutter application that demonstrates your ability to create a complete and polished mobile app. We want to see how you integrate with an open-source API and how you structure and document your code. We would also like you to provide a brief document that describes your app idea, any challenges you faced during development, and your approach to solving them.
To download click this link
Main documentation for the app
Timeline: 7 days
- The application should be built using the Flutter framework.
- The application should integrate with an open-source API.
- The application should be functional and demonstrate your ability to create a complete and polished mobile app.
- You should provide clear and concise documentation of your code.
- You should provide a brief document describing your app idea, any challenges you faced, and your approach to solving them.
- You should submit the code through a GitHub repository link.
- You should include screenshots of the application.
- You should also include an APK file for testing purposes.
This is a normal flutter app. You should follow the instructions in the official documentation. This project uses BLoC (business logic component) BLoC to separate the business logic with UI itself.
This application is using api of themoviedb, so before using it you have to create an api from themoviedb and generate an API and apply it to this application, follow the below step to connect api with this app.
First go to https://www.themoviedb.org/documentation/api, and follow the API Documentation, you will get the API Code.
.
โ
|
โโโ lib # Name of module (default from Flutter).
|โโ core # Name of module.
|โโ data # Network calls.
โโโ presentations # Activity/View layer
โ โโโ bloc # Business logic component.
โโโ theme # App styling themes.
โโโ widget # Styles for app.
- BLoC Pattern - Business logic component to separate the business logic with UI.
- Equatable - Being able to compare objects in
Dart
often involves having to override the==
operator. - Dio - A type-safe HTTP client.
- Json Serializable - Builders for handling JSON.
- Shared Preferences - Cache implementation approach.
- Modularization - Separate functionality into independent, interchangeable modules.
- Shimmer - Loading handler.
- Flutter Launcher Icons - Launcher icons handler.
- Flavor - Handling different environments for development and production.
- Codemagic - Handling DevOps CI/CD for pipeline and automatically build.
- Handle State - (Loading, No Data, Has Data, No Internet Connection, Request Timeout, Error)
- Build Release for Android - Available on the Play Store
- Youtube Player - Play Trailer Video.
- Extension Methods
- Pull To Refresh - Handle Pull to Refresh the Content
- Get It - A Dependency Injection
- Firebase - Firebase auth using email and password
- Clone this project.
- Open with your favorite tools editor.
- Run
Pub get
on each module sequentially starting fromdependencies
,core
,shared
, andyour root project
to generatedpubspec.lock
file. - Add your
API_KEY
into api_constant.dart file.
- Projects starts from the splash screen and goes to the login page
Splash screen Registartion screen Login Screen - Projects moves to the home page
Upcoming Movie screen Coming Soon Movie screen Top Rated Screen - Search and Details screen
Details Screen Search movie screen
I'd like to thank iNetAfrica, and every single individual that helped in bringing this learning experience. Thank you!