tilt_action 0.1.0

  • Readme
  • Changelog
  • Example
  • Installing
  • 63

tilt_action #

Flutter package that triggers action depending on the tilt position of a phone. The possible positions are tilted up, tilted down or not tilted.

Getting Started #

To use this package add tilt_action to your as a dependency to your pubsec.yaml. Testing on a physical device is highly recommended

Usage #

Tilt tilt = Tilt(
  onTiltUp: () {
    // When phone is tilted up, do this
  },
  onNormal: () {
    // When phone is neither up nor down, do this
  },
  onTiltDown: () {
    // When phone is tilted down, do this
  },
);

The above constructor starts listening for movement immediately it is declared. To choose when to start listening, use the constructor below instead.

Tilt tilt = Tilt.waitForStart(
  onTiltUp: () {
    // When phone is tilted up, do this
  },
  onNormal: () {
    // When phone is neither up nor down, do this
  },
  onTiltDown: () {
    // When phone is tilted down, do this
  },
);
....
tilt.startListening()

You can also modify the precision & the amount of time gap for listening for movements. For example:

Tilt tilt = Tilt(
      offset: 0,
      eventWaitTimeMS: 2000,
      onTiltUp: () {
        // print('Phone is perfectly horizontal');
      },
    );

In the example above, onTiltUp() will only be called when the phone is perfectly horizantal and the screen is upwards. This is because the offset is set to 0. Also, tilt will check for changes in position every 2 seconds because eventWaitTimeMS is set to 2000 ms.

Full example

[0.1.0] #

  • First stable version

[0.0.2] #

  • Added Tests

[0.0.1] #

  • Init release

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:tilt_action/tilt_action.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Splash Tap Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: TiltActionDemo(),
    );
  }
}

class TiltActionDemo extends StatefulWidget {
  @override
  _TiltActionDemoState createState() => _TiltActionDemoState();
}

class _TiltActionDemoState extends State<TiltActionDemo> {
  String text =
      "Test on a physical device. Sensors don't work accurately on emulators/simulators";
  Tilt tilt;

  @override
  void initState() {
    super.initState();

    tilt = Tilt(onTiltUp: () {
      setState(() {
        text = "I am tilted Up";
      });
    }, onTiltDown: () {
      setState(() {
        text = "I am tilted Down";
      });
    }, onNormal: () {
      setState(() {
        text = "Neither Up or Down";
      });
    });
  }

  @override
  void dispose() {
    super.dispose();
    tilt.stopListening();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Container(
          child: Text(
            text,
            textAlign: TextAlign.center,
            style: TextStyle(fontSize: 18),
          ),
        ),
      ),
    );
  }
}

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:


dependencies:
  tilt_action: ^0.1.0

2. Install it

You can install packages from the command line:

with Flutter:


$ flutter pub get

Alternatively, your editor might support flutter pub get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:


import 'package:tilt_action/tilt_action.dart';
  
Popularity:
Describes how popular the package is relative to other packages. [more]
26
Health:
Code health derived from static analysis. [more]
100
Maintenance:
Reflects how tidy and up-to-date the package is. [more]
100
Overall:
Weighted score of the above. [more]
63
Learn more about scoring.

We analyzed this package on Jul 9, 2020, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.8.4
  • pana: 0.13.14
  • Flutter: 1.17.5

Analysis suggestions

Package does not support Flutter platform linux

Because:

  • package:tilt_action/tilt_action.dart that imports:
  • package:tilt_action/src/tilt.dart that imports:
  • package:sensors/sensors.dart that declares support for platforms: android, ios

Package does not support Flutter platform macos

Because:

  • package:tilt_action/tilt_action.dart that imports:
  • package:tilt_action/src/tilt.dart that imports:
  • package:sensors/sensors.dart that declares support for platforms: android, ios

Package does not support Flutter platform web

Because:

  • package:tilt_action/tilt_action.dart that imports:
  • package:tilt_action/src/tilt.dart that imports:
  • package:sensors/sensors.dart that declares support for platforms: android, ios

Package does not support Flutter platform windows

Because:

  • package:tilt_action/tilt_action.dart that imports:
  • package:tilt_action/src/tilt.dart that imports:
  • package:sensors/sensors.dart that declares support for platforms: android, ios

Package not compatible with SDK dart

Because:

  • tilt_action that is a package requiring null.

Dependencies

Package Constraint Resolved Available
Direct dependencies
Dart SDK >=2.7.0 <3.0.0
flutter 0.0.0
sensors ^0.4.2+2 0.4.2+2
test ^1.14.4 1.15.2
Transitive dependencies
_fe_analyzer_shared 5.0.0
analyzer 0.39.12
args 1.6.0
async 2.4.2
boolean_selector 2.0.0
charcode 1.1.3
collection 1.14.12 1.14.13
convert 2.1.1
coverage 0.14.0
crypto 2.1.5
csslib 0.16.1
glob 1.2.0
html 0.14.0+3
http 0.12.1
http_multi_server 2.2.0
http_parser 3.1.4
io 0.3.4
js 0.6.2
logging 0.11.4
matcher 0.12.8
meta 1.1.8 1.2.2
mime 0.9.6+3
node_interop 1.1.1
node_io 1.1.1
node_preamble 1.4.12
package_config 1.9.3
path 1.7.0
pedantic 1.9.0 1.9.2
pool 1.4.0
pub_semver 1.4.4
shelf 0.7.7
shelf_packages_handler 2.0.0
shelf_static 0.2.8
shelf_web_socket 0.2.3
sky_engine 0.0.99
source_map_stack_trace 2.0.0
source_maps 0.10.9
source_span 1.7.0
stack_trace 1.9.5
stream_channel 2.0.0
string_scanner 1.0.5
term_glyph 1.1.0
test_api 0.2.17
test_core 0.3.10
typed_data 1.1.6 1.2.0
vector_math 2.0.8 2.1.0-nullsafety
vm_service 4.1.0
watcher 0.9.7+15
web_socket_channel 1.1.0
webkit_inspection_protocol 0.7.3
yaml 2.2.1
Dev dependencies
flutter_test