flutter_bluesky 0.3.5 copy "flutter_bluesky: ^0.3.5" to clipboard
flutter_bluesky: ^0.3.5 copied to clipboard

flutter bluesky plugin project. This plugin provides a client for bluesky or other PDS of atproto.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:flutter_bluesky/flutter_bluesky.dart';
import 'package:flutter_bluesky/login.dart';
import 'package:flutter_bluesky/screen.dart';
import 'package:flutter_bluesky/screen/home.dart';
import 'package:flutter_bluesky/screen/me.dart';
import 'package:flutter_bluesky/screen/notfifications.dart';
import 'package:flutter_bluesky/screen/parts/button/button_manager.dart';
import 'package:flutter_bluesky/screen/parts/timeline.dart';
import 'package:flutter_bluesky/screen/post.dart';
import 'package:flutter_bluesky/screen/profile/edit_profile.dart';
import 'package:flutter_bluesky/screen/provider.dart';
import 'package:flutter_bluesky/screen/base.dart';
import 'package:flutter_bluesky/screen/search.dart';
import 'package:flutter_bluesky/screen/profile.dart';
import 'package:flutter_bluesky/screen/thread.dart';
import 'package:flutter_bluesky/transition_route_observer.dart';
import 'package:flutter_bluesky_example/sample_timeline.dart';
// ignore: depend_on_referenced_packages
import 'package:timeago/timeago.dart' as timeago;
import 'package:easy_localization/easy_localization.dart';

const _appName = "flutter_blusky";

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  initApp(_appName, const MainApp());
}

class MainApp extends StatelessWidget {
  const MainApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      // https://zenn.dev/kafumi/scraps/d7aeed260985cc
      // title: tr('title'),
      localizationsDelegates: context.localizationDelegates,
      supportedLocales: context.supportedLocales,
      locale: context.locale,
      theme: ThemeData(
          useMaterial3: true,
          primarySwatch: ThemeColors.material,
          canvasColor: ThemeColors.secondary),
      navigatorObservers: [TransitionRouteObserver()],
      initialRoute: initialRoute,
      routes: {
        Provider.screen.route: (context) => const Provider(),
        LoginScreen.route: (context) => const LoginScreen(),
        Base.route: (context) => Base(),
        Post.screen.route: (context) => const Post(),
        Thread.screen.route: (context) => const Thread(),
        Profile.screen.route: (context) => const Profile(),
        EditProfile.screen.route: (context) => const EditProfile(),
      },
    );
  }
}

Future<void> init() async {
  PluggableWidget me = Me();
  pluggables.add(Home());
  pluggables.add(Search());
  pluggables.add(Notifications());
  pluggables.add(me);
  meIndex = pluggables.indexOf(me);
  customPostTL = SamplePostTimeline();
  buttonManager = DefaultButtonManager();

  // TODO add other languages.
  timeago.setLocaleMessages('ja', timeago.JaMessages());
  setPlugin(FlutterBluesky(provider: 'https://bsky.social'));
  await plugin.connect();
  await plugin.login('tac@sotai.co', 'Mariko19#');
}

Future<void> initApp(String name, StatelessWidget appWidget) async {
  await init();
  await EasyLocalization.ensureInitialized();
  runApp(
    EasyLocalization(
        supportedLocales: const [Locale('en', 'US'), Locale('ja', 'JP')],
        path: 'assets/langs', // <-- change the path of the translation files
        fallbackLocale: const Locale('ja', 'JP'),
        child: appWidget),
  );
}

class ThemeColors {
  static const MaterialColor material = MaterialColor(
    _primaryValue,
    <int, Color>{
      50: Color(0xFFE3F2FD),
      100: Color(0xFFBBDEFB),
      200: Color(0xFF90CAF9),
      300: Color(0xFF64B5F6),
      400: Color(0xFF42A5F5), // login use it as background color.
      500: Color(_primaryValue),
      600: Color(0xFF1E88E5),
      700: Color(0xFF1976D2),
      800: Color(0xFF1565C0),
      900: Color(0xFF0D47A1),
    },
  );
  static const int _primaryValue = 0xFF2196F3;
  static const Color primary = Color(_primaryValue);

  static Color secondary = Colors.white;
}
1
likes
0
pub points
0%
popularity

Publisher

unverified uploader

flutter bluesky plugin project. This plugin provides a client for bluesky or other PDS of atproto.

Homepage
Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

acceptable, badges, easy_localization, file_picker, flutter, flutter_login, flutter_typeahead, http, intl, path, plugin_platform_interface, provider, timeago, tuple, url_launcher

More

Packages that depend on flutter_bluesky