Load script on frontend from widget plugin

In general to load css or js into admin you need to use admin_enqueue_scripts hook, so it can be like this in functional style:

add_action( 'admin_enqueue_scripts', function( $hook_suffix ){
    wp_enqueue_style('i-widget', plugins_url( 'i-widget.min.css' , __FILE__), array(), null);
    wp_enqueue_script('swiper', plugins_url( 'swiper.min.js', __FILE__), array('jquery'), null);
}, 99 );
    wp_enqueue_script('i-widget', plugins_url( 'i-widget.min.js', __FILE__), array('jquery', 'swiper'), null);
}, 99 );

See more at https://developer.wordpress.org/reference/hooks/admin_enqueue_scripts/

Also in terms of architecture it’s better to split up init method of your class in parts extracting enqueue scripts\styles into separate method.

public function initScripts(){
   wp_enqueue_style('i-widget', plugins_url( 'i-widget.min.css' , __FILE__), array(), null);
   wp_enqueue_script('swiper', plugins_url( 'swiper.min.js', __FILE__), array('jquery'), null);
   wp_enqueue_script('i-widget', plugins_url( 'i-widget.min.js', __FILE__), array('jquery', 'swiper'), null);
} 

So that in constructor you can hook to it via add_action('admin_enqueue_scripts', [$this, 'initScripts']); and for frontend add_action('wp_enqueue_scripts',[$this, 'initScripts']);

And when you specify js\css dependencies you provide an array of strings like array('jquery','swiper')or ['jquery', 'swiper']

This one will not work correctlyarray('jquery, swiper').

Don’t forget to put swiper.min.js in your plugin’s directory or provide proper path to it.