[flutter] 플러터에서 sticky 헤더를 사용한 사진 편집 앱 구현하기

플러터(Flutter)는 Google에서 개발한 UI 프레임워크로, 하나의 코드베이스로 iOS와 안드로이드 앱을 동시에 개발할 수 있습니다. 이번에는 플러터를 사용하여 sticky 헤더를 가진 사진 편집 앱을 구현하는 방법에 대해 알아보겠습니다.

1. sticky 헤더 라이브러리 추가하기

플러터에서 sticky 헤더를 구현하기 위해 sticky_headers라이브러리를 사용할 것입니다. 다음과 같이 pubspec.yaml파일에서 의존성을 추가하고 패키지를 가져옵니다.

dependencies:
  flutter:
    sdk: flutter
  sticky_headers: ^0.2.0

2. 헤더 위젯과 리스트 아이템 위젯 생성하기

이제 헤더와 리스트 아이템 위젯을 생성합니다. 헤더 위젯은 sticky header를 구현하고, 리스트 아이템 위젯은 각각의 사진을 표시합니다.

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

class PhotoEditorApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Photo Editor',
      home: Scaffold(
        appBar: AppBar(
          title: Text('Photo Editor'),
        ),
        body: ListView.builder(
          itemCount: 20,
          itemBuilder: (context, index) {
            if (index % 5 == 0) {
              return StickyHeader(
                header: Container(
                  height: 50.0,
                  color: Colors.blue,
                  alignment: Alignment.center,
                  child: Text(
                    'Header ${index ~/ 5 + 1}',
                    style: TextStyle(color: Colors.white),
                  ),
                ),
                content: ListTile(
                  title: Text('Photo ${index + 1}'),
                ),
              );
            } else {
              return ListTile(
                title: Text('Photo ${index + 1}'),
              );
            }
          },
        ),
      ),
    );
  }
}

3. 앱 실행해보기

이제 main.dart파일에서 PhotoEditorApp위젯을 실행해보세요. 앱이 실행되면, sticky 헤더가 있는 사진 목록이 표시됩니다.

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

4. 추가 기능 구현하기

이 앱에서는 각각의 사진을 터치하면 해당 사진에 대한 편집 기능을 구현할 수 있습니다. 사진 터치 이벤트를 감지하여 편집 기능을 수행하는 코드를 추가할 수 있습니다.

// PhotoEditorApp 위젯에서 ListTile 위젯 수정
return ListTile(
  title: Text('Photo ${index + 1}'),
  onTap: () {
    // 사진 편집 기능 구현
    editPhoto(index + 1);
  },
);

// 사진 편집 기능을 수행하는 함수 추가
void editPhoto(int photoIndex) {
  // 사진 편집 로직 구현
}

이제 각각의 사진을 터치할 때마다 editPhoto함수가 호출되어 해당 사진에 대한 편집 기능을 수행합니다. 사진 편집 로직을 구현하기 위해서는 editPhoto함수를 채우면 됩니다.

결론

위에서 설명한 방법을 따라가면 플러터에서 sticky 헤더를 사용한 사진 편집 앱을 구현할 수 있습니다. sticky_headers라이브러리를 사용하여 헤더와 리스트 아이템 위젯을 생성하고, 추가 기능을 구현하는 방법을 알아보았습니다. 플러터를 사용하는데에는 많은 가능성이 있으니 창의력을 발휘해서 다양한 앱을 개발해보세요!


참고