분류 전체보기

· APP/Flutter
▲ 앱들 보면 하단버튼누르면 페이지를 이동시켜줍니다. 이런걸 만들어볼건데 페이지로 나누고 싶으면 여러가지 초이스가 있습니다. 페이지가 많으면 Router를 써도 되고 Navigator를 써서 새로운 페이지를 위에 덮어씌워도 되고 탭을 써도 됩니다. 탭을 만들어봅시다. 왜냐면 웹 페이지는 페이지가 파일 단위로 명확히 존재합니다. home.html shop.html 이런 식으로 html 파일을 여러개 만들어놓고 유저가 shop페이지 원하면 shop.html 보여주면 되는 것이지만 앱은 페이지가 1개입니다. 그니까 하나의 main.dart 파일 안에서 여러분들이 home() 도 보여주고 shop() 도 보여줘야하는 것입니다. 그래서 앱은 웹처럼 별도의 페이지 개념이 아니라 "유저가 shop보고 싶다그러면 ho..
· APP/Flutter
ThemeData() 같은 경우 매우 길어질 수 있습니다. 그럴 땐 다른 파일로 빼든가 하면 됩니다. 1. lib 폴더 안에 style.dart 이런 파일을 만들어서 거기다가 변수 만들어서 축약할 내용 다 집어넣고 2. main.dart로 불러오면 됩니다. 그럼 main.dart 파일이 깔끔해지겠군요 (style.dart 파일) import 'package:flutter/material.dart'; var theme = ThemeData( ThemeData안에 들어있던 모든 내용 ) (main.dart 파일) import 'style.dart' as style; class MyApp extends StatelessWidget { MyApp({Key? key}) : super(key: key); @over..
· APP/Flutter
프로젝트 시작은 main.dart 켜서 import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home : MyApp() ) ); } class MyApp extends StatelessWidget { MyApp({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return Scaffold(); } } 이렇게 채우고 시작할겁니다. 왜냐면 MaterialApp() 이건 밖으로 빼야 덜 불편하니까요. 그리고 analysis_options.yaml 파일 열어서 rules: prefer_typing_uninitialized_variables: f..
· APP/Flutter
TextField() 위젯에 스타일줄 때가 있을 텐데 뭔가 복잡한 요소들이 많을테니 그림으로 정리해드립니다. 일단 TextField() 위젯 안에 decoration: InputDecoration() 여시고 거기 안에 여러가지 스타일 넣으면 됩니다. TextField 양옆에 아이콘 넣고 싶으면 icon: 파라미터 TextField( decoration: InputDecoration( icon: Icon(Icons.star), ), ), icon: 파라미터 대신 prefixIcon: suffixIcon: 이런 파라미터도 있습니다. (참고) ThemeData파일에다가 넣고 싶으면 ThemeData( inputDecorationTheme: InputDecorationTheme( icon: Icon(Icons...
· APP/Flutter
개발할 때 제 폰에선 되는데 왜 유저폰에선 안되는 것이죠? 라는 질문을 초보들이 맨날 합니다. 대부분 발행하기 전에 null check를 안해서 그렇습니다. 일단 변수에 타입지정을 잘해야 Dart 언어는 타입을 엄격하게 지키는걸 좋아하는 언어입니다. 타입이 이상하면 에러가 자주 발생하기 때문에 미리 타입을 엄격하게 잡아주는 것입니다. var total = 3; var person = 'john'; var name = ['김영숙', '피자집']; var like = [0, 0, 0]; 여태까지 변수만들 때 이렇게 만들었는데 변수만들 때 타입을 한번 달아보십시오. 타입은 자료의 종류를 뜻합니다. 실은 함수도 return 하는 자료의 타입을 미리 지정 가능합니다. 함수 이름 왼쪽에 쓰면 됩니다. int tot..
완료버튼누르면 실제 연락처에 추가되게? 저번시간에 유저 허락을 받았으면 이제 연락처 맘대로 꺼내쓸 수 있습니다. 사용자 연락처 가져오는 패키지 그냥 가져올 순 없고 이것도 외부 패키지 도움을 받아야합니다. 저번 시간에 설치한건 그냥 허락만 쉽게 요청하는 간단한 패키지였습니다. contacts_service 라는 패키지를 설치합시다. dependencies: flutter: sdk: flutter permission_handler: ^8.2.6 contacts_service: ^0.6.3 pubspec.yaml 파일에 contacts_service를 추가합니다. 그리고 전구버튼에서 pub get 눌러서 패키지 설치하면 됩니다. import 'package:contacts_service/contacts_se..
· APP/Flutter
휴대폰에 있는 연락처, 파일을 사용해서 기능개발하고 싶으면 유저의 허락을 받아야합니다. 안그러면 못씀 그래서 예시로 유저 연락처를 가져와서 변수에 저장해서 쓰고 싶으면 어떻게 할지 알아봅시다. (참고) 테스트 개발시엔 이런거 설치 안하고도 가상기기에서 앱권한을 전부 줄 수 있습니다. 가상 안드로이드 기기에서 설정 - Apps - 님앱누르고 - Permissions - 허용을 켜주면 됩니다. 패키지설치 필요 남들이 만들어놓은 "유저에게 앱권한 쉽게 요청할 수 있는 외부 패키지"를 설치해야합니다. 이름은 permission_handler입니다. 플러터에서의 패키지 설치법은 쉬운데 1. pubspec.yaml 파일에 버전 기록하고 2. pub get 실행하면 끝임 dependencies: flutter: sd..
· APP/Flutter
TextField() 위젯으로 만듭니다. 근데 여기 유저가 TextField()에 입력한 내용을 가져오고 싶다면 class DialogUI extends StatelessWidget { DialogUI({Key? key, this.addOne }) : super(key: key); final addOne; var inputData = TextEditingController(); 1. TextEditingController() 이걸 담는 변수를 하나 만드십시오 class안에 아무데나 만들어주면 되고 작명 자유롭게 하면 됩니다. TextField( controller: inputData, ), 2. TextField() 위젯에 controller: 파라미터가 있습니다. 거기에 방금 만든 변수 넣으셈 그럼 이..
개발자 aloe
'분류 전체보기' 카테고리의 글 목록 (18 Page)