shortkit_flutter 0.2.22
shortkit_flutter: ^0.2.22 copied to clipboard
ShortKit Flutter SDK — short-form video feed, player, and widget components.
example/lib/main.dart
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:shortkit_flutter/shortkit_flutter.dart';
import 'screens/main_screen.dart';
import 'screens/search_screen.dart';
import 'screens/detail_feed_screen.dart';
import 'overlays/news_overlay.dart';
import 'overlays/news_video_carousel_overlay.dart';
// ---------------------------------------------------------------------------
// App entry point
// ---------------------------------------------------------------------------
void main() {
WidgetsFlutterBinding.ensureInitialized();
runApp(
ShortKitProvider.apiKey(
apiKey: const String.fromEnvironment(
'SHORTKIT_API_KEY',
defaultValue: 'pk_live_cjbysZbRpPdpGKTaQQdJi1RBGlbqruDG-x6hcrRGv5k',
),
debugPanel: true,
child: MaterialApp(
title: 'ShortKit Demo',
theme: ThemeData.dark(useMaterial3: true),
initialRoute: '/',
onGenerateRoute: (settings) {
switch (settings.name) {
case '/':
return MaterialPageRoute(
builder: (_) => const MainScreen(),
);
case '/search':
return MaterialPageRoute(
builder: (_) => const SearchScreen(),
);
case '/detail-feed':
final item = settings.arguments as ContentItem;
return MaterialPageRoute(
builder: (_) => DetailFeedScreen(startAtItem: item),
);
default:
return MaterialPageRoute(
builder: (_) => const MainScreen(),
);
}
},
),
),
);
}
@pragma('vm:entry-point')
void shortKitOverlayMain() {
ShortKitOverlayEngine.initialize(
overlays: {
'news': (context, item, state) => NewsOverlay(item: item, state: state),
},
videoCarouselOverlays: {
'newsVideoCarousel': (context, state) =>
NewsVideoCarouselOverlay(state: state),
},
);
}