목록분류 전체보기 (58)
아무나 빌려가세요

푸쉬알림은 파이어베이스에 제공하는 방법도 있지만 oneSignal이 훨씬 적용하기 쉬운것같아 글을 쓴다. 1. 먼저 https://app.onesignal.com/apps 에 접속해 회원가입을하고 푸쉬알림을 적용하고자 하는 앱을 만든다. 2. 상단 Settings 클릭후 NATIVE APP Platform 에서 구글과 애플 항목을 활성화 한다. (애플은 p.12파일 필요, 구글은 파이어베이스의 serverkey가 필요하다. 3. https://pub.dev/packages/onesignal_flutter [onesignal_flutter | Flutter Package OneSignal is a free push notification service for mobile apps. This plugin m..
Navigator.push에서 then을 추가하고 setState를 적용한다. setState가 실행됨에 따라 새로고침이 되는 방식이다. 이동된 페이지에선 Navigator.pop을 해주면 된다. Navigator.push(context, MaterialPageRoute(builder: (context) => moveToPage())) .then((value) { setState(() {}); }); 첫번째 위젯에서 두번째 위젯을 return하고 세번째 위젯에서 Navigator.pop을 하는 경우 첫번째 위젯을 새로고침 하기 위해선 다른 방법이 있다. 첫번째 위젯에 위의 push를 함수의 형태로 두번째 위젯에 전달한다. firstWidget ... Container( child : secondWidge..
흔히 앱에서 볼 수 있는 처음 켰을때 뜨는 팝업창을 구현했다. 시작하자마자 창이 떠야하기 때문에 initState에 함수를 넣었다. @override void initState() { SchedulerBinding.instance!.addPostFrameCallback((_) { //위젯을 바로실행시키기 위해 이 함수가 필요하다. showBannerDialog(); }); super.initState(); } showDialog를 이용해 AlertDialog를 실행시키고 content안에 내용을 넣을 수 있다. showDialog( context: context, builder: (context) => StatefulBuilder(builder: (context, setState) { //Dialog안에..
사용 패키지 https://pub.dev/packages/http/install import 'dart:convert'; api를 받아오기 위해선 future 클래스를 만들어야 한다 class API { static Future function() async { //비동기 함수 var uri = Uri.parse("api의 주소를 이곳에 입력한다."); var res = await http.get(uri, headers: { "Client-Id": "ID", "Client-Secret": "Secret key" }); //api에서 제공하는 header주소를 입력한다. if (res.statusCode == 200) { //통신이 성공했을때 var responseBody = utf8.dec..
사용 패키지 https://pub.dev/packages/carousel_slider https://pub.dev/packages/youtube_player_flutter 유튜브 주소를 list에 담는다 List youtubePaths = ['videoId', 'videoId', 'videoId']; carouselSlider를 적용한다 CarouselSlider.builder( itemCount: youtubePaths.length, //슬라이더의 길이를 정함 options: CarouselOptions( viewportFraction: 1.0, // 화면을 꽉 채움 autoPlay: false, onPageChanged: (index, reason) { se..
스크롤을 조절하기 위해 변수를 선언한다. final _scrollController = ScrollController(); 투명도를 조절하기 위한 함수를 선언한다. double scrollOpacity = 1.0; // 첫시작은 전부 보이게 설정한다. onScroll() { setState(() { double offset = _scrollController.offset; if (offset 100) { offset = 100; } scrollOpacity = 1 - offset / 100; // 스크롤을 올릴때마다 0으로 수렴한다. 1을 빼지 않으면 반대로 적용 }); } 함수를 스크롤에 리스너로 등록한다 @override void ..
필수 dart 패키지 import 'package:http_parser/http_parser.dart'; import 'package:image_picker/image_picker.dart'; import 'package:dio/dio.dart'; 촬영한 단일사진을 선택하는 함수 File? imageFile; ... onPressed: () => getImage(source: ImageSource.camera) //imageSource에서 camera로 할경우 촬영가능 gallary로 할 경우 이미지 갤러리로 이동 ... void getImage({required ImageSource source}) async { final file = await ImagePi..
Map phoneBook = { 'Kyle' : 79797, 'sdfsf' : 23424, 'asfsdf' : 234234, 'asdfsf':234234, }; void main(){ phoneBook\['james'\] = 01030111234; print(phoneBook\['Kyle'\]); // 79797 print(phoneBook.keys); // (Kyle, sdfsf, asfsdf, asdfsf, james) print(phoneBook.values); // (79797, 23424, 234234, 234234, 1030111234) print(phoneBook.length); //5 }