电影和电视节目应用
此项目是为 Leal.co 进行技术测试而创建的
本项目采用清晰的架构结构和TDD行为构建。
主要方法
- 只有登录按钮有效
- 登录数据是硬编码的,只适用于特定的输入
- API密钥和其他变量之类的东西写在代码中用于测试目的
- 我完成了6/8个页面
开始工作
- 下载基础代码?
- 安装Pub依赖 ✅
flutter pub get
- 运行测试?
flutter test - 启动项目查看效果?
此应用程序获取当日电视节目列表。
查看我的作品
文件夹结构
Lib文件夹
?lib
┣ ?core
┃ ┣ ?error
┃ ┃ ┣ ?exceptions.dart
┃ ┃ ┣ ?failures.dart
┃ ┃ ┗ ?messages.dart
┃ ┣ ?routes
┃ ┃ ┗ ?routes.dart
┃ ┣ ?theme
┃ ┃ ┗ ?theme_data.dart
┃ ┣ ?usecases
┃ ┃ ┗ ?usecase.dart
┃ ┣ ?util
┃ ┃ ┣ ?dialog_messages.dart
┃ ┃ ┣ ?failure_to_message.dart
┃ ┃ ┣ ?image_path_generator.dart
┃ ┃ ┣ ?modify_text_length.dart
┃ ┃ ┣ ?set_stars.dart
┃ ┃ ┗ ?url_path_converter.dart
┃ ┗ ?widgets
┃ ┃ ┣ ?information_container.dart
┃ ┃ ┣ ?list_separator.dart
┃ ┃ ┣ ?movie_detail_button.dart
┃ ┃ ┣ ?movies_action_button.dart
┃ ┃ ┣ ?movies_button.dart
┃ ┃ ┣ ?movies_image.dart
┃ ┃ ┣ ?movies_text_field.dart
┃ ┃ ┗ ?movies_title.dart
┣ ?features
┃ ┣ ?auth
┃ ┃ ┣ ?data
┃ ┃ ┃ ┣ ?datasources
┃ ┃ ┃ ┃ ┣ ?auth_local_data_source.dart
┃ ┃ ┃ ┃ ┗ ?auth_remote_data_source.dart
┃ ┃ ┃ ┣ ?models
┃ ┃ ┃ ┃ ┗ ?auth_model.dart
┃ ┃ ┃ ┗ ?repositories
┃ ┃ ┃ ┃ ┗ ?auth_repository_impl.dart
┃ ┃ ┣ ?domain
┃ ┃ ┃ ┣ ?entities
┃ ┃ ┃ ┃ ┗ ?auth.dart
┃ ┃ ┃ ┣ ?repositories
┃ ┃ ┃ ┃ ┗ ?auth_repository.dart
┃ ┃ ┃ ┗ ?usecases
┃ ┃ ┃ ┃ ┣ ?log_out.dart
┃ ┃ ┃ ┃ ┗ ?login.dart
┃ ┃ ┗ ?presentation
┃ ┃ ┃ ┣ ?bloc
┃ ┃ ┃ ┃ ┣ ?auth_bloc
┃ ┃ ┃ ┃ ┃ ┣ ?auth_bloc.dart
┃ ┃ ┃ ┃ ┃ ┣ ?auth_event.dart
┃ ┃ ┃ ┃ ┃ ┗ ?auth_state.dart
┃ ┃ ┃ ┃ ┗ ?blocs.dart
┃ ┃ ┃ ┣ ?pages
┃ ┃ ┃ ┃ ┣ ?loading_page.dart
┃ ┃ ┃ ┃ ┗ ?welcome_page.dart
┃ ┃ ┃ ┗ ?widgets
┃ ┃ ┃ ┃ ┗ ?background_container.dart
┃ ┗ ?tv_show
┃ ┃ ┣ ?data
┃ ┃ ┃ ┣ ?datasources
┃ ┃ ┃ ┃ ┗ ?tv_show_remote_data_source.dart
┃ ┃ ┃ ┣ ?models
┃ ┃ ┃ ┃ ┗ ?tv_show_model.dart
┃ ┃ ┃ ┗ ?repositories
┃ ┃ ┃ ┃ ┗ ?tv_show_repository_impl.dart
┃ ┃ ┣ ?domain
┃ ┃ ┃ ┣ ?entities
┃ ┃ ┃ ┃ ┗ ?tv_show.dart
┃ ┃ ┃ ┣ ?repositories
┃ ┃ ┃ ┃ ┗ ?tv_show_repository.dart
┃ ┃ ┃ ┗ ?usecases
┃ ┃ ┃ ┃ ┣ ?get_airing_today_tv_shows.dart
┃ ┃ ┃ ┃ ┣ ?get_details_tv_shows.dart
┃ ┃ ┃ ┃ ┣ ?get_popular_tv_shows.dart
┃ ┃ ┃ ┃ ┗ ?get_recommended_tv_shows.dart
┃ ┃ ┗ ?presentation
┃ ┃ ┃ ┣ ?bloc
┃ ┃ ┃ ┃ ┗ ?tv_show
┃ ┃ ┃ ┃ ┃ ┣ ?tv_show_bloc.dart
┃ ┃ ┃ ┃ ┃ ┣ ?tv_show_event.dart
┃ ┃ ┃ ┃ ┃ ┗ ?tv_show_state.dart
┃ ┃ ┃ ┣ ?pages
┃ ┃ ┃ ┃ ┣ ?details_page.dart
┃ ┃ ┃ ┃ ┣ ?favorites_page.dart
┃ ┃ ┃ ┃ ┣ ?home_page.dart
┃ ┃ ┃ ┃ ┣ ?navigator_page.dart
┃ ┃ ┃ ┃ ┣ ?poster_detail_page.dart
┃ ┃ ┃ ┃ ┣ ?recent_detail_page.dart
┃ ┃ ┃ ┃ ┗ ?recent_page.dart
┃ ┃ ┃ ┗ ?widgets
┃ ┃ ┃ ┃ ┣ ?movie_list.dart
┃ ┃ ┃ ┃ ┣ ?movie_page_layout.dart
┃ ┃ ┃ ┃ ┣ ?movie_poster.dart
┃ ┃ ┃ ┃ ┗ ?movie_view.dart
┣ ?generated_plugin_registrant.dart
┣ ?injection_dependency_container.dart
┗ ?main.dart
Test文件夹
?test
┣ ?core
┃ ┗ ?util
┃ ┃ ┣ ?failure_to_message_test.dart
┃ ┃ ┣ ?image_path_generator_test.dart
┃ ┃ ┣ ?modify_text_length_test.dart
┃ ┃ ┣ ?set_stars_test.dart
┃ ┃ ┗ ?url_path_converter_test.dart
┣ ?features
┃ ┣ ?auth
┃ ┃ ┣ ?data
┃ ┃ ┃ ┣ ?datasources
┃ ┃ ┃ ┃ ┣ ?auth_local_data_source_test.dart
┃ ┃ ┃ ┃ ┗ ?auth_remote_data_source_test.dart
┃ ┃ ┃ ┣ ?models
┃ ┃ ┃ ┃ ┗ ?auth_model_test.dart
┃ ┃ ┃ ┗ ?repository
┃ ┃ ┃ ┃ ┗ ?auth_repository_impl_test.dart
┃ ┃ ┣ ?domain
┃ ┃ ┃ ┗ ?usecases
┃ ┃ ┃ ┃ ┣ ?log_out_test.dart
┃ ┃ ┃ ┃ ┗ ?login_test.dart
┃ ┃ ┗ ?presentation
┃ ┃ ┃ ┗ ?bloc
┃ ┃ ┃ ┃ ┗ ?auth_bloc
┃ ┃ ┃ ┃ ┃ ┗ ?auth_bloc_test.dart
┃ ┗ ?tv_show
┃ ┃ ┣ ?data
┃ ┃ ┃ ┣ ?datasource
┃ ┃ ┃ ┃ ┗ ?tv_show_remote_data_source_test.dart
┃ ┃ ┃ ┣ ?models
┃ ┃ ┃ ┃ ┗ ?tv_show_model_test.dart
┃ ┃ ┃ ┗ ?repositories
┃ ┃ ┃ ┃ ┗ ?tv_show_repository_impl_test.dart
┃ ┃ ┣ ?domain
┃ ┃ ┃ ┗ ?usecases
┃ ┃ ┃ ┃ ┣ ?get_airing_today_tv_shows_test.dart
┃ ┃ ┃ ┃ ┣ ?get_details_tv_show_test.dart
┃ ┃ ┃ ┃ ┣ ?get_popular_tv_shows_test.dart
┃ ┃ ┃ ┃ ┗ ?get_recommended_tv_shows_test.dart
┃ ┃ ┗ ?presentation
┃ ┃ ┃ ┗ ?bloc
┃ ┃ ┃ ┃ ┗ ?tv_show
┃ ┃ ┃ ┃ ┃ ┗ ?tv_show_bloc_test.dart
┗ ?fixtures
┃ ┣ ?auth.json
┃ ┣ ?fixture.dart
┃ ┣ ?tests_values.dart
┃ ┣ ?tv_show.json
┃ ┗ ?tv_shows.json








