31.01.2019 — день четырнадцатый

Igor Kravchenko
It_challenge
Published in
1 min readJan 31, 2019

Итоги 14-го дня: Занимался стабилизацией работы приложения и упрощением кода — так как перед написанием новых частей(альбомы, рекомендации, кураторы и т.д.) нужно максимально правильно и просто написать текущий код, чтобы потом сэкономить время.

Теперь код в BLoC примерно такой

@override
Stream<AudioState> mapEventToState(
currentState,
event,
) async* {
if (event is PlayPlaylistAudio) {
yield await event.apply();
}
if (event is InitSongsAudio) {
yield await event.apply();
}
....

Внутри Event написан так:

@override
Future<AudioState> apply({AudioState currentState}) async {
try {
var songs = this.songs;
var ids = sortAudio(songs, null);
var current = songs.indexWhere((c) => c.id == ids.first);
var newState = AudioPlayState(
songs: songs,
current: current,
errorMessage: null,
playerStateType: PlayerStateType.play);
await this.audioService.playAsync(ids);
return newState;
} catch (_) {
print(_);
return AudioError();
}
}

Таким образом становится проще понять логику работы самого Bloc и сделать apply для Event более простым и увидеть все зависимости.

--

--