티스토리 뷰

1. 가입하고 아이디 만들기(GitHub로그인 하면 편하다!)

2. pubspec.yaml에 추가하기

dependencies:
  flutter:
    sdk: flutter
  algolia: ^1.1.2  # Ensure you're using the latest version

 

3.  dart 클래스 만들기

import 'package:algolia/algolia.dart';

class AlgoliaService {
  static final Algolia _algolia = Algolia.init(
    applicationId: 'YourApplicationID', // Replace with Your Application ID
    apiKey: 'YourAdminAPIKey', // Replace with Your Admin API Key
  );

  static Algolia get algolia => _algolia;
}

 

4. 코드 짜기

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

class SearchScreen extends StatefulWidget {
  @override
  _SearchScreenState createState() => _SearchScreenState();
}

class _SearchScreenState extends State<SearchScreen> {
  String _searchTerm = '';
  List<AlgoliaObjectSnapshot> _results = [];

  _search() async {
    AlgoliaQuery query = AlgoliaService.algolia.instance.index('your_index_name').query(_searchTerm);
    AlgoliaQuerySnapshot querySnap = await query.getObjects();
    setState(() {
      _results = querySnap.hits;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Algolia Search'),
      ),
      body: Column(
        children: <Widget>[
          Padding(
            padding: const EdgeInsets.all(10.0),
            child: TextField(
              onChanged: (val) {
                setState(() {
                  _searchTerm = val;
                });
                _search();
              },
              decoration: InputDecoration(
                prefixIcon: Icon(Icons.search),
                hintText: 'Search...',
              ),
            ),
          ),
          Expanded(
            child: _results.length == 0
                ? Center(child: Text('No Results Found'))
                : ListView.builder(
                    itemCount: _results.length,
                    itemBuilder: (context, index) {
                      AlgoliaObjectSnapshot snap = _results[index];
                      return ListTile(
                        title: Text(snap.data['name']), // Adjust according to your data
                        subtitle: Text(snap.data['description']), // Adjust according to your data
                      );
                    },
                  ),
          ),
        ],
      ),
    );
  }
}
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함