india_pincode_finder 1.0.0
india_pincode_finder: ^1.0.0 copied to clipboard
Find detailed Indian address information (state, district, taluka) from a 6-digit PIN code. Offline, no API calls. Ideal for logistics, KYC, e-commerce, and mapping.
import 'package:flutter/material.dart';
import 'package:india_pincode_finder/india_pincode_finder.dart';
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await IndiaPincodeFinder.init();
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return const MaterialApp(
title: 'Pincode Finder',
home: PincodeLookupPage(),
);
}
}
class PincodeLookupPage extends StatefulWidget {
const PincodeLookupPage({super.key});
@override
State<PincodeLookupPage> createState() => _PincodeLookupPageState();
}
class _PincodeLookupPageState extends State<PincodeLookupPage> {
final _controller = TextEditingController();
PincodeData? _result;
bool _searched = false;
void _lookup() {
final pin = int.tryParse(_controller.text.trim());
setState(() {
_searched = true;
_result = pin == null ? null : IndiaPincodeFinder.pinToAddress(pin);
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('India Pincode Finder')),
body: Padding(
padding: const EdgeInsets.all(16),
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
TextField(
controller: _controller,
keyboardType: TextInputType.number,
decoration: const InputDecoration(
labelText: 'Enter 6-digit PIN code',
border: OutlineInputBorder(),
),
onSubmitted: (_) => _lookup(),
),
const SizedBox(height: 12),
FilledButton(onPressed: _lookup, child: const Text('Look up')),
const SizedBox(height: 24),
if (_searched && _result == null)
const Text('No address found for that PIN code.'),
if (_result != null) ...[
Text('State: ${_result!.state}'),
Text('District: ${_result!.district}'),
Text('Taluka/Block: ${_result!.block}'),
],
],
),
),
);
}
}