My Project/Samsung Wallet(Flutter)

Samsung Wallet Flutter Plugin 개발기 [1부]

코딩 잘 할거얌:) 2023. 8. 29. 10:30
반응형

Samsung Wallet을 Flutter Plugin으로 개발하여 Pub.dev에다가 Publish까지 끝냈다. 

 

원래는 끝낸 후 곧바로 어떻게 개발하게 되었는지, 그리고 한국어 Readme를 작성하려했는데 항상 그렇듯 시간이 잘 따라주지 못해서(...) 이제라도 작성하게 되었다.

 

https://pub.dev/packages/samsung_wallet

 

samsung_wallet | Flutter Package

Samsung Wallet Example Flutter plugin project. This plugin based Samsung Wallet Android java package file.

pub.dev


우선 1부에선 어떻게 개발을 했는지 전체적인 내용 흐름을 작성하고 2부에서는 코드들을 어떻게 작성한지 자세히 적도록 하겠다.

 

 

Flutter Plugin의 시작

 

솔직히 요즘은 ChatGpt에게 물어보면 어떻게 하는지 다 알려주기도 한다.

개발순서도 맞고 쉽게 느껴지지만... 사실 굉장히 많이 함축이 되어있다.

그래서 내가 작성하며 느껴봤던걸 기준으로 포스팅을 해보도록 하겠다.

 

1부, Flutter Plugin 생성
2부, Flutter Plugin - Android (Java)

3부, Pub.dev를 위한 계정생성

4부, 버전관리.

5부, 개선점.

 

로 진행해보겠다.


1부

Flutter Plugin

 

우선 Pub.dev에 올리기 위해서는 내가 만들고 올리기 위한 Flutter Plugin을 만들어야 한다.

어떻게 만드냐 하면 일반적으로 Visual Studio Code로 개발기준 다음과 같은 창에서 간단하게 만들 수 있다.

 

여기서 보면 Package가 아니라 Plugin으로 만들었는 이유가 궁금한 분들을 위해 이걸 보도록 하자.

https://www.youtube.com/watch?v=Y9WifT8aN6o 

 

즉 요약하자면,

pub.dev에 검색해서 pubspec.yaml에 적어 사용하는걸 Package라고 생각하면 좋다.

Plugin은 Package중에서 다른 언어들을 포함하고 있는걸 Plugin이라고 한다.

 

따라서 Samsung Wallet이 Andorid java로 되어있어서 Plugin으로 만들었다.

 

그래서 위에서 언급한 Visual studio code에서 Plugin을 만드는 방법으로 만들면 각각 Native에 맞는 언어를 설정하기가 힘들다. 따라서 필자는 아래와 같은 명령어를 자주 사용한다.

 

flutter create --template=plugin --platforms=android,ios -a java -i swift plugin_name

이렇게 작성하면, 현재경로에 plugin_name이라는 Flutter Plugin이 생성되며, android파일에는 Java로 생성이 되며, iOS에서는 Swift로 생성이 된다.

 

만약, android를 kotlin으로 생성하고싶다면 명령어를 이렇게 바꾸면 된다.

flutter create --template=plugin --platforms=android,ios -a kotlin -i swift plugin_name

더 자세한 내용은 아래 링크를 보자.

 

https://docs.flutter.dev/packages-and-plugins/developing-packages

 

Developing packages & plugins

How to write packages and plugins for Flutter.

docs.flutter.dev

이렇게 Plugin을 생성하고 Native와 연결해서 뚝딱뚝딱하면 된다.

 

어떻게 뚝딱뚝딱하냐. 이건 다음 3부에서 작성하고, 2부에서는 폴더와 파일들에 대해서 뜯어보도록 하자.

728x90

'My Project > Samsung Wallet(Flutter)' 카테고리의 다른 글

Samsung Wallet Flutter Plugin 개발기 [2부]  (0) 2023.08.31