Interactor, Presenter, Entity and Router. It’s basically an approach that implements the Single Responsibility Principle to create a cleaner and more modular structure for your iOS project. The ideia behind this pattern is to isolate your app’s dependencies, balancing the delegation of responsibilities among the entities. • VIPERͱɺViewɺInteractorɺPresenterɺEntityɺRouterͷ಄จࣈΛͱͬͨͷ Ͱ͢ɻجຊతʹɺSingle Responsibility Principleʢ୯ҰݪଇʣΛ࣮͠ɺ iOSϓϩδΣΫτʹΫϦʔϯͰΑΓϞδϡʔϧԽ͞ΕͨߏΛ࡞Γग़ͨ͢ΊͷΞϓ ϩʔνͰ͋Δɻ͜ͷύλʔϯͷഎޙʹ͋Δߟ͑ํɺΞϓϦͷґଘؔΛ ͠ɺΤϯςΟςΟؒͷҕৡͷόϥϯεΛͱΔ͜ͱͰ͢ɻ
properies var playSpeed: AudioPlaySpeed { get set } var audioSpeaker: AudioSpeaker { get set } var bgm: AudioBGM { get set } var voiceVolume: Float { get set } var bgmVolume: Float { get set } var soundEffectVolume: Float { get set } var isSoundEffectEnabled: Bool { get set } /// Playing info properies var audioStatus: AudioStatus { get } var isPlayingOrLoading: Bool { get } var isVoiceOrBGMPlaying: Bool { get } var elapsedPlaytime: TimeInterval { get set } /// Playlist info properies var audioListStyle: AudioListStyle { get set } var playingChannel: Channel? { get } ϥଆ Ի࠶ੜʹؔ͢Δ͜ͱΛ͜͜Ͱશ͍ͯͬͯ·͢ όοΫάϥϯυ࠶ੜ/࿈ଓ࠶ੜ/ϓϨϛΞϜ ࠓޙػೳՃͨ͠Βઈର૿͑Δ…