waqiapi 0.1.1

  • Readme
  • Changelog
  • Example
  • Installing
  • 50

waqiapi #

WAQIAPI is a Flutter package that can be used to access the World Air Quality Index (WAQI) public JSON API. To access the API you will need to register and obtain a token, more details can be found here.

Using the API #

Just add the package to your project then import into you code, see below.

import 'package:waqiapi/waqiapi.dart' as WaqiApi

You will then have access to the API along with a helper GpsCoord class. To use the API just define the following (using a valid token):

WaqiApi.Api api = WaqiApi.Api(token: "{Put a Valid Token In Here or It Will Error}");

You can define sets of Gps coords using the helper class:

WaqiApi.GpsCoord gpsa = WaqiApi.GpsCoord(lat: 39.379436, long: 116.091230);
WaqiApi.GpsCoord gpsb = WaqiApi.GpsCoord(lat: 40.235643,long: 116.784382);

These can then be used to pass into the API. The following are valid calls available in the API (all are async) and all return a JSON object:

var feedResult = await api.cityFeed("London");
var ipResult = await api.locationFeedIPAddress();
var gpsResult = await api.locationFeedLatLng(gpsa);
var queryResult = await api.mapQuery(gpsa, gpsb);
var nameResult = await api.searchByName("Bloomsbury");

See the example project for more details.

Getting Started #

For help getting started with Flutter, view our online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.

[0.1.1] - 07 Sep 2019 #

  • Tidy up pubspec and format dart source.

[0.1.0] - 07 Sep 2019 #

  • Initial release.

example/lib/main.dart

import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:waqiapi/waqiapi.dart' as WaqiApi;

/// This is DEMO app put togther to show the use of the Waqi API only
void main() => runApp(MyApp());

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

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);
  final String title;
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {

  // define the API access here - provide a valid TOKEN!
  WaqiApi.Api api = WaqiApi.Api(token: "{Put a Valid Token In Here or It Will Error}");

  // Some test GPS Coords from the WAQI API docs
  WaqiApi.GpsCoord gpsa = WaqiApi.GpsCoord(lat: 39.379436, long: 116.091230);
  WaqiApi.GpsCoord gpsb = WaqiApi.GpsCoord(lat: 40.235643,long: 116.784382);

  // Var for holding result of API call
  String resultData;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              'Result of API Call:',
            ),
            Text(
              '$resultData'
            ),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: () async {

          // The available API's
          //var result = await api.cityFeed("London");
          //var result = await api.locationFeedIPAddress();
          //var result = await api.locationFeedLatLng(gpsa);
          //var result = await api.mapQuery(gpsa, gpsb);
          var result = await api.searchByName("Bloomsbury");

          // display any result
          print(result);
          setState(() {
            resultData = jsonEncode(result);
          });

        },
        tooltip: 'CallAPI',
        child: Icon(Icons.refresh),
      ), 
    );
  }
}

Use this package as a library

1. Depend on it

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


dependencies:
  waqiapi: ^0.1.1

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:waqiapi/waqiapi.dart';
  
Popularity:
Describes how popular the package is relative to other packages. [more]
0
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]
50
Learn more about scoring.

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

  • Dart: 2.7.1
  • pana: 0.13.6
  • Flutter: 1.12.13+hotfix.8

Dependencies

Package Constraint Resolved Available
Direct dependencies
Dart SDK >=2.1.0 <3.0.0
flutter 0.0.0
http ^0.12.0+2 0.12.0+4
Transitive dependencies
async 2.4.1
charcode 1.1.3
collection 1.14.11 1.14.12
http_parser 3.1.4
meta 1.1.8
path 1.6.4
pedantic 1.9.0
sky_engine 0.0.99
source_span 1.7.0
string_scanner 1.0.5
term_glyph 1.1.0
typed_data 1.1.6
vector_math 2.0.8
Dev dependencies
flutter_test