postal_jp 1.0.5 copy "postal_jp: ^1.0.5" to clipboard
postal_jp: ^1.0.5 copied to clipboard

A Dart package for retrieving Japanese postal address information from a postal code.

example/lib/main.dart

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

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Postal JP Example',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const MyHomePage(title: 'Postal JP Example'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});

  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  String _address = 'Enter postal code';
  final TextEditingController _controller = TextEditingController();

  Future<void> _getAddress(String postalCode) async {
    final service = PostalJP();
    final result = await service.getAddress(postalCode: postalCode);
    switch (result) {
      case ApiSuccess(data: final addressInfoList):
        if (addressInfoList.isNotEmpty) {
          setState(() {
            _address = addressInfoList
                .map((address) =>
                    '${address.address1} ${address.address2} ${address.address3}(${address.kana1} ${address.kana2} ${address.kana3})')
                .join('\n');
          });
        } else {
          setState(() {
            _address = 'No address found';
          });
        }
      case ApiFailure():
        setState(() {
          _address = 'Error: ${result.error}';
        });
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: Padding(
          padding: const EdgeInsets.all(20.0),
          child: Column(
            mainAxisAlignment: MainAxisAlignment.start,
            children: <Widget>[
              TextField(
                controller: _controller,
                keyboardType: TextInputType.number,
                decoration: const InputDecoration(
                  hintText: 'Enter 7-digit postal code',
                ),
              ),
              ElevatedButton(
                onPressed: () {
                  _getAddress(_controller.text);
                },
                child: const Text('Get Address'),
              ),
              const SizedBox(height: 20),
              Text(
                _address,
                style: Theme.of(context).textTheme.headlineSmall,
              ),
            ],
          ),
        ),
      ),
    );
  }
}
0
likes
160
points
3
downloads

Publisher

verified publishersatoyan.net

Weekly Downloads

A Dart package for retrieving Japanese postal address information from a postal code.

Homepage

Documentation

API reference

License

MIT (license)

Dependencies

flutter

More

Packages that depend on postal_jp