[flutter] 플러터(expandable)을 이용한 클라우드 서비스 개발

플러터는 Google에서 개발한 UI 프레임워크로, 다양한 플랫폼을 대상으로 네이티브 UI를 만들 수 있는 프레임워크입니다. 이번에는 플러터의 expandable 패키지를 이용하여 클라우드 서비스를 개발하는 방법에 대해 알아보겠습니다.

expandable 패키지 적용하기

expandable 패키지는 플러터에서 확장 가능한 위젯을 구현할 수 있는 패키지입니다. 이를 이용하여 클라우드 서비스에서 폴더와 파일을 펼칠 수 있는 UI를 개발해보겠습니다.

먼저, pubspec.yaml 파일에서 expandable 패키지를 추가해줍니다.

dependencies:
  expandable: ^4.1.4

이제 main.dart 파일에서 expandable 패키지를 import하고, ExpandablePanel 위젯을 사용하여 폴더와 파일을 표시해보겠습니다.

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Cloud Services'),
        ),
        body: ListView(
          children: [
            // 폴더
            ExpandablePanel(
              header: ListTile(
                title: Text('Folder 1'),
              ),
              expanded: Column(
                children: [
                  ListTile(
                    title: Text('File 1'),
                  ),
                  ListTile(
                    title: Text('File 2'),
                  ),
                ],
              ),
            ),
            
            // 폴더
            ExpandablePanel(
              header: ListTile(
                title: Text('Folder 2'),
              ),
              expanded: Column(
                children: [
                  ListTile(
                    title: Text('File 3'),
                  ),
                  ListTile(
                    title: Text('File 4'),
                  ),
                ],
              ),
            ),
          ],
        ),
      ),
    );
  }
}

위 코드에서는 expandable 패키지의 ExpandablePanel 위젯을 ListView 안에서 사용하였습니다. 각각의 ExpandablePanel은 하나의 폴더를 나타내고, 헤더 부분을 터치하면 해당 폴더의 파일들이 펼쳐집니다.

추가 기능 구현하기

이제 기본적인 폴더와 파일 펼침 기능이 동작하는 클라우드 서비스를 완성했습니다. 다만, 아직 폴더와 파일에 대한 추가 기능을 구현하지 않았습니다. 기능을 추가하여 클라우드 서비스를 더욱 유용하게 만들어보겠습니다.

  1. 파일 업로드 기능 추가: 각각의 폴더에 파일을 업로드할 수 있는 기능을 추가합니다. 파일 업로드 버튼을 클릭하면 파일을 선택하는 다이얼로그가 표시되고, 선택한 파일을 해당 폴더에 업로드합니다.

  2. 파일 삭제 기능 추가: 각각의 파일에 대해 삭제 버튼을 추가하고, 해당 파일을 삭제할 수 있는 기능을 구현합니다. 삭제 버튼을 누르면 해당 파일을 삭제합니다.

위의 추가 기능은 플러터에서 제공하는 다양한 패키지를 이용하여 구현할 수 있습니다. 예를 들어, 파일 업로드 기능은 file_picker 패키지를 이용하여 파일 선택 다이얼로그를 구현하고, 파일 삭제 기능은 파일 시스템 패키지를 이용하여 파일을 삭제하는 방식으로 구현할 수 있습니다.

결론

위에서는 플러터의 expandable 패키지를 이용하여 클라우드 서비스를 개발하는 방법에 대해 알아보았습니다. 추가적으로 파일 업로드와 삭제 기능을 구현하여 더욱 유용한 클라우드 서비스를 만들어볼 수 있습니다. 플러터의 다양한 패키지를 활용하면 더욱 다양한 기능을 개발할 수 있으니, 관심 있는 기능을 추가로 개발해보시기 바랍니다.

참고 문서: