NewsDaily
所属分类:Flutter开发
开发工具:Dart
文件大小:123801KB
下载次数:0
上传日期:2020-04-12 15:31:37
上 传 者:
sh-1993
说明: Flutter中的BLOC模式新闻应用程序
(News app in Flutter with BLOC pattern)
文件列表:
LICENSE (1075, 2019-02-06)
assetss (0, 2019-02-06)
assetss\NewsAppFlutterAsset_1.gif (32440918, 2019-02-06)
assetss\NewsAppFlutterAsset_2.jpeg (127384, 2019-02-06)
assetss\NewsAppFlutterAsset_3.jpeg (137466, 2019-02-06)
assetss\NewsAppFlutterAsset_4.jpeg (153380, 2019-02-06)
assetss\NewsAppFlutterAsset_5.gif (94293627, 2019-02-06)
news_app (0, 2019-02-06)
news_app\.metadata (303, 2019-02-06)
news_app\android (0, 2019-02-06)
news_app\android\app (0, 2019-02-06)
news_app\android\app\build.gradle (2513, 2019-02-06)
news_app\android\app\google-services.json (1021, 2019-02-06)
news_app\android\app\proguard-rules.pro (249, 2019-02-06)
news_app\android\app\src (0, 2019-02-06)
news_app\android\app\src\main (0, 2019-02-06)
news_app\android\app\src\main\AndroidManifest.xml (1987, 2019-02-06)
news_app\android\app\src\main\ic_launcher-web.png (26875, 2019-02-06)
news_app\android\app\src\main\java (0, 2019-02-06)
news_app\android\app\src\main\java\com (0, 2019-02-06)
news_app\android\app\src\main\java\com\kaparray (0, 2019-02-06)
news_app\android\app\src\main\java\com\kaparray\newsapp (0, 2019-02-06)
news_app\android\app\src\main\java\com\kaparray\newsapp\MainActivity.java (365, 2019-02-06)
news_app\android\app\src\main\res (0, 2019-02-06)
news_app\android\app\src\main\res\drawable (0, 2019-02-06)
news_app\android\app\src\main\res\drawable\launch_background.xml (434, 2019-02-06)
news_app\android\app\src\main\res\mipmap-anydpi-v26 (0, 2019-02-06)
news_app\android\app\src\main\res\mipmap-anydpi-v26\ic_launcher.xml (265, 2019-02-06)
news_app\android\app\src\main\res\mipmap-anydpi-v26\ic_launcher_round.xml (265, 2019-02-06)
news_app\android\app\src\main\res\mipmap-hdpi (0, 2019-02-06)
news_app\android\app\src\main\res\mipmap-hdpi\ic_launcher.png (3048, 2019-02-06)
news_app\android\app\src\main\res\mipmap-hdpi\ic_launcher_foreground.png (806, 2019-02-06)
news_app\android\app\src\main\res\mipmap-hdpi\ic_launcher_round.png (3048, 2019-02-06)
news_app\android\app\src\main\res\mipmap-mdpi (0, 2019-02-06)
news_app\android\app\src\main\res\mipmap-mdpi\ic_launcher.png (2037, 2019-02-06)
news_app\android\app\src\main\res\mipmap-mdpi\ic_launcher_foreground.png (618, 2019-02-06)
... ...
# NewsApp
News app in Flutter with BLOC pattern
This example uses a CustomScrollView, JSON Rest API, BottonNavigationBar,SliverList, ClipRRect, Card, Progress Indicator, NetworkImage, Card, Column, Row, Container, InkWell, BoxDecoration.
### Library
* [*__rxdart__*](https://pub.dartlang.org/packages/rxdart)
* [*__http__*](https://pub.dartlang.org/packages/http)
* [*__webview_flutter__*](https://pub.dartlang.org/packages/webview_flutter)
* [*__shared_preferences__*](https://pub.dartlang.org/packages/shared_preferences)
* [*__share__*](https://pub.dartlang.org/packages/share)
* [*__cloud_firestore__*](https://pub.dartlang.org/packages/cloud_firestore)
* [*__uuid__*](https://pub.dartlang.org/packages/uuid)
* [*__dynamic_theme__*](https://pub.dartlang.org/packages/dynamic_theme)
* [*__flutter_picker__*](https://pub.dartlang.org/packages/flutter_picker)
* [*__flutter_material_color_picker__*](https://pub.dartlang.org/packages/flutter_material_color_picker)
### Bloc pattern
*I used this pattern to design this application.*
```dart
class NewsBloc {
final _repository = Repository();
final _newsFetcher = PublishSubject
();
final _newsSearchFetcher = PublishSubject();
final _newsLikeFetcher = PublishSubject();
Observable get allNews => _newsFetcher.stream;
Observable get searchNews => _newsSearchFetcher.stream;
Observable get likeNews => _newsLikeFetcher.stream;
fetchLikedNews() async {
NewsModel newsModel = await _repository.fetchLikedNews();
_newsLikeFetcher.sink.add(newsModel);
}
fetchAllNews() async {
NewsModel newsModel = await _repository.fetchAllNews();
_newsFetcher.sink.add(newsModel);
}
fetchSearchNews() async {
NewsModel newsModel = await _repository.fetchSearchNews();
_newsSearchFetcher.sink.add(newsModel);
}
// Set and delete from Firestore liked
addFavorit(val) async => _repository.addFavorit(val);
deliteFavorit(val) async => _repository.deliteFavorit(val);
dispose() {
_newsLikeFetcher.close();
_newsFetcher.close();
_newsSearchFetcher.close();
}
}
final bloc = NewsBloc();
```
### Screenshots
## Built With
* [Flutter](https://flutter.io) - Crossplatform App Development Framework
### License
Released under the [MIT license](https://github.com/kaparray/NewsApp/blob/master/LICENSE)
### Author
Adeshchenko Kirill (Cyrill) ([@kaparray](https://www.linkedin.com/in/kirill-adeshchenko-b86362161/))
近期下载者:
相关文件:
收藏者: