share_plus
share_plus 라이브러리
share_plus란 무엇인가
앱에서 공유 버튼 눌렀을 때 뜨는 공유 메뉴 기능
예:
•
뉴스 앱 → 기사 공유
•
갤러리 앱 → 사진 공유
•
메모 앱 → 텍스트 공유
•
파일 앱 → 파일 공유
설치 방법
dependencies:
share_plus: ^7.0.0
YAML
복사
flutter pub get
Bash
복사
import 'package:share_plus/share_plus.dart';
Dart
복사
기본 텍스트 공유
Share.share('안녕하세요 Flutter 공유 테스트입니다.');
Dart
복사
버튼 예제:
ElevatedButton(
onPressed: () {
Share.share('Flutter 앱 공유하기');
},
child: Text("공유하기"),
)
Dart
복사
링크 공유
Share.share('https://flutter.dev');
Dart
복사
제목 + 텍스트 공유
Share.share(
'Flutter 공유 내용입니다',
subject: '공유 제목',
);
Dart
복사
이메일 공유 시 제목으로 들어감
이미지 공유 (중요
)
final box = context.findRenderObject() as RenderBox;
Share.shareXFiles(
[XFile('/storage/emulated/0/Download/image.png')],
text: '이미지 공유합니다',
sharePositionOrigin: box.localToGlobal(Offset.zero) & box.size,
);
Dart
복사
여러 파일 공유
Share.shareXFiles([
XFile(path1),
XFile(path2),
]);
Dart
복사
파일 + 텍스트 같이 공유
Share.shareXFiles(
[XFile(filePath)],
text: '파일 공유합니다',
);
Dart
복사
전체 예제
class ShareExample extends StatelessWidget {
const ShareExample({super.key});
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text("Share Plus 예제")),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
ElevatedButton(
onPressed: () {
Share.share("텍스트 공유 테스트");
},
child: Text("텍스트 공유"),
),
ElevatedButton(
onPressed: () {
Share.share("https://flutter.dev");
},
child: Text("링크 공유"),
),
],
),
),
);
}
}
Dart
복사
자주 사용하는 앱 기능 예시
앱 | 공유 내용 |
갤러리 앱 | 이미지 |
메모 앱 | 텍스트 |
뉴스 앱 | 기사 링크 |
쇼핑 앱 | 상품 링크 |
파일 앱 | 파일 |
일정 앱 | 일정 정보 |
다른 Flutter 저장/공유 라이브러리와 조합
기능 | 라이브러리 |
이미지 선택 | image_picker |
파일 선택 | file_picker |
파일 저장 | path_provider |
DB 저장 | sqflite |
공유 | share_plus |
예시 앱 구조
사진 선택 → 파일 저장 → DB 저장 → 목록 표시 → 공유 버튼 → share_plus
Plain Text
복사
실무 팁
공유 버튼 위치
보통 여기 위치에 있음
•
AppBar 오른쪽 아이콘
•
상세 페이지 상단
•
이미지 보기 화면
•
리스트 아이템 메뉴
IconButton(
icon: Icon(Icons.share),
onPressed: () {
Share.share("공유 내용");
},
)
Dart
복사
한줄 정리
원하면 Flutter에서 많이 쓰는 라이브러리 강의노트 시리즈도 정리해줄게:
•
image_picker
•
file_picker
•
path_provider
•
sqflite
•
hive
•
shared_preferences
•
flutter_slidable
•
table_calendar








