안녕하세요. 이번 시간에는 플러터(Flutter)로 텐서플로(TensorFlow)를 활용해서 딥러닝 기반의 실시간 객체(이미지) 인식이 가능한 안드로이드 앱을 만들어볼 거예요. 카메라를 통해 비치는 실시간 영상을 분석 후 객체를 인식하고 분류하도록 할게요. 즉 사진을 찍지 않아도 실시간으로 화면에 나타나는 영상을 기반으로 객체 인식이 이루어집니다. 이미지 인식은 선행 학습된 인공지능 딥러닝 모델인 모바일넷(MobileNet v1)을 사용해서 실시간으로 사물 및 사람을 인식하고 분류합니다. 궁금하신 분들을 위해 오늘 만들어 볼 앱의 주요 화면을 먼저 보고 갈게요. TensorFlow 객체 인식 예제 딥러닝 기반의 객체 인식 모델(예: 모바일넷)은 이미지에 있는 다양한 물체를 감지하고 분류할 때 각 물체에 ..
안녕하세요. 이번 시간에는 플러터로 'flutter local notifications' 패키지를 사용해서 로컬 푸시 알림을 보내는 안드로이드 앱을 만들어 볼게요. 로컬 푸시는 앱에서 발생시키는 알림 메시지로 서버와 통신하지 않고 로컬에서 처리되는 것을 말해요. 즉, 서버에서 푸시 메시지를 발송하는 것이 아니라 앱 내부에서 직접 푸시 메시지를 생성하고 전송하는 방식이에요. 그렇기 때문에 인터넷 열결 없이도 알림을 받을 수 있어요. 이번에 사용할 flutter_local_notifications는 다양한 설정을 통해 사용자가 원하는 방식으로 푸시 알림을 구현할 수 있어요. 예를 들어 사용자가 알림을 클릭할 때 실행될 앱의 화면을 지정하거나, 알림 사운드, 진동 패턴, 이미지 또는 앱 아이콘 같은 추가 정보..
안녕하세요. 오늘은 플러터로 앱을 개발하면서 꼭 필요한 데이터 저장에 대해 알아보려고 합니다. 데이터 저장 방법은 여러 가지가 있지만, 이 글에서는 가장 많이 사용되는 세 가지 방법인 Shared_Preferences, SQLite, path_provider 패키지를 사용해서 각각 예제를 만들어볼게요! 1. Shared Preferences 간단한 데이터를 저장하기에 적합한 방법이에요. 키(Key)와 값(Value)의 쌍으로 이루어진 작은 정보들을 저장하고, 사용자 설정이나 로그인 정보 같은 간단한 데이터를 저장할 때 자주 사용된답니다. 가볍고 빠르게 데이터에 접근할 수 있는 장점이 있어요. 단점: 매우 간단한 데이터 저장 방식이기 때문에, 복잡한 데이터 구조를 저장하거나 관리하기에는 부적합해요. 또한,..
안녕하세요. 오늘은 플러터에서 로딩바를 만드는 방법에 대해 알아볼게요. 로딩바는 사용자가 데이터나 페이지를 기다리는 동안 보여주는 이미지예요. 쉽게 말해 로딩 중임을 나타내는 ui요소인데요. 구현하는 방법은 여러 가지가 있지만 이번 시간에는 쉽게 구현이 가능하고, 다양한 로딩 애니메이션이 제공되는 오픈소스 패키지 flutter spinkit을 사용할 거예요. flutter spinkit은 모양, 크기, 색상 등을 설정할 수 있고, 애니메이션 속도도 조절이 가능해요. 또한 외부 파일에 의존하지 않고 앱에서 독립적으로 애니메이션을 생성하기 때문에 움직임이 부드럽고 이미지 파일을 불러오는 것보다 빠르고 효율적이죠. 이제 실제로 플러터 앱에 적용을 해볼게요. pubspec.yaml 파일에 flutter_sp..