배운것들을 정리합니다.
三昧境

Flutter 19

[플러터 Flutter] 초기화란?

초기화 (Initialization) 변수 초기화변수를 사용할 수 있도록 처음 값을 설정하는 과정입니다.변수나 함수를 호출하는 것과는 다릅니다.변수를 초기화하지 않으면 변수에 어떤 값이 들어 있는지 알 수 없으며, 초기화된 값은 변수의 기본 상태가 됩니다.int number; // 변수 선언, 초기화되지 않음number = 10; // 변수 초기화이렇듯 해당 변수나 함수에 값을 지정해 주는 순간을 '초기화'라고 합니다.int number = 10; // 변수 선언과 동시에 초기화  함수 초기화함수는 함수 자체를 초기화한다기보다는 함수를 정의하고, 그 함수를 호출하는 과정이 있습니다.함수를 정의하는 것은 함수를 사용할 준비를 하는 것이고, 호출하는 것은 실제로 함수를 실행하..

[플러터 Flutter] Const, Final의 차이 그리고 컴파일타임과 런타임, Static

const와 final은 둘 다 Dart에서 변경할 수 없는 변수를 선언할 때 사용되지만사용 용도와 동작 방식에서 차이가 있습니다.컴파일 타임과 런타임은 프로그래밍에서 코드가 실행되는 두 가지 주요 단계입니다. 이 두 개념은 코드가 언제 검증되고, 언제 실제로 실행되는지를 정의합니다.들어가기 앞서 중요한 개념을 짚고 넘어가야 합니다. 저급(저수준) 프로그래밍 언어 (Low-Level Programing Language) 컴퓨터가 이해하기 쉽게 작성된 프로그래밍 언어로 컴퓨터 위주의 코드입니다.수준이 낮다가 다른 뜻이 아닌, 더 하드웨어에 근간을 두고 있다는 뜻입니다. 실행속도가 매우 빠르지만 배우기가 어려우며 유지보수가 힘든 것이 단점입니다.일반적으로 기계어와 어셈블리어를 말합니다.  기계어 (Machi..

[플러터 Flutter] Null-Safety와 late키워드

NullSafety는 Dart에서 도입된 개념입니다.코드에서 null 참조에 대한 안정성을 높이기 위한 기능이며이를 통해 null 참조로 인한 예기치 않은 오류를 방지하고 안전한 코드를 작성할 수 있습니다.똑같이 ?(Question mark)를 사용해도 삼항연산자와는 다른 개념입니다.Null-Safety의 주요 개념 Nullable 타입변수가 null을 포함할 수 있는 타입입니다.변수를 선언할 때 String이 아닌 String? 으로 작성합니다.String? nullableName;String nullavleName; // 오류  Non-nullable 타입변수가 null을 포함할 수 없는 타입입니다.이는 변수를 선언할 때 String? 이 아닌 String 으로 작성합니다.String name = '..

[플러터 Flutter] Private, getter/setter가 무엇인가? 어떻게 사용하는가?

프라이빗 (Private) Dart에서는 _name처럼 변수나 메서드의 이름 앞에 _언더스코어를 붙이면 이 변수나 메서드를 프라이빗 취급합니다.프라이빗은 (같은 파일 내) 클래스 내부에서만 접근 가능하며외부로부터의 직접 접근을 막아 데이터의 무결성을 유지하고객체지향 원칙 중 하나인 캡슐화의 원칙을 지킵니다.하지만 Dart의 프라이빗 접근 제어는 파일 수준의 접근 제한입니다.이는 같은 파일 내에 있는 모든 코드가 프라이빗 변수와 메서드에 접근할 수 있다는 의미입니다.그래서 같은 파일 내에서는 _로 시작하는 프라이빗 변수나 메서드에도 접근할 수 있습니다.프라이빗 변수를 완전히 숨기려면 프라이빗 변수와 메서드를 다른 파일로 분리(리팩토링)하여 사용하는 것이 좋습니다. 기능 및 역할데이터 캡슐화 (Encapsu..

[플러터 Flutter] 인자(Parameter)와 인수(Argument)의 차이

인자 = 매개변수 = parameter입니다.왜 인자인지 모르겠습니다.애초에 parameter는 매개변수로 불립니다. 한국으로 들어오면서 그런 건진 몰라도 파라미터와 아규먼트 또는 매개변수와 인수로 불러도 됩니다.  인자 매개변수 (Parameter)void player(String name) { // (String name)이 매개변수(Parameter). print(name);}함수가 호출될 때 외부로부터 입력받는 값을 담기 위해 선언됩니다.  인수 (Argument)void player(String name) { // (String name)이 매개변수(Parameter). print(name);}void main() { // 함수 호출 시 인수(Argument)를 전달 player("A..

[플러터 Flutter] 매개변수(Parameter), 인스턴스변수(InstanceVariable), 전역변수(GlobalVariable), 지역변수(LocalVariable)

매개변수 (Parameter) // ()소괄호 안이 비어있음. player함수는 parameter가 없음.void player() { String name = "name";}// ()소괄호 내부가 parameter.void player(String name) { print(name);}매개변수는 함수나 생성자에서 사용되며, 호출 시 전달된 값을 받기 위한 변수입니다.말 그대로 함수 내에서 변수가 바뀔 시 값이 바뀐다 생각하면 됩니다.ex) y = 1000x  인스턴스 변수 (Instance Variable) 인스턴스 변수는 클래스의 속성입니다. 이 변수들은 클래스의 인스턴스(객체)에 속하며, 각 인스턴스마다 별도로 유지됩니다.인스턴스 변수를 통해 객체의 상태를 저장하고 관리할 수 있습니다.class ..

[플러터 Flutter] 소셜로그인 카카오톡 1 social login with Kakao 1

Flutter 3.22.2Dart 3.4.3DevTools 2.34.3AndroidStudio 17.0.10 koalamac 기준으로 작성되었습니다.들어가기 앞서 카카오톡 플러터 공식문서도 있음 참고 부탁드립니다.https://developers.kakao.com/docs/latest/ko/flutter/getting-started Kakao Developers카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.developers.kakao.com  1. Kakao Developers 설정 https://developers.kakao.com/ 로 접속합니다. Kakao Developers카카오 API를 활용하여 다양한..

[플러터 Flutter] 안드로이드 패키지명, iOS 번들아이디 찾기 Find Android Package Name, iOS BundleID

Flutter 3.22.2Dart 3.4.3DevToos 2.34.3AndroidStudio 17.0.6  Androidandroid/app/build.gradle에 들어가시면namespace ="패키지명"으로 찾으실 수 있습니다.최근 Android Gradle Plugin 7.0 버전에서부터는 AndroidManifest.xml 파일에 package 속성이 명시적으로 나타나지 않는 경우가 있습니다. 이는 새로운 Gradle 플러그인 설정 방식과 관련이 있습니다. 대신, build.gradle 파일의 namespace 속성이 사용됩니다.프로젝트 구조를 명확하고 코드관리를 쉽게 하는 차원에서 진행됐다고 합니다.AndroidManifest.xml에 패키지명이 없다 하더라도 namespace에서 동일한 효과를..

Flutter/tip 2024.06.16

[플러터 Flutter] 맥에서 안드로이드 키해시 구하기 디버그/릴리즈 Obtain Android KeyHash from Mac

첫 번째 디버그 키해시(추천)keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore -storepass android -keypass android | openssl sha1 -binary | openssl base64 위 명령어를 터미널에 입력하게 되면이러한 형태로 경고문과 디버그용 키해시값을 받게 됩니다.명령어 가운데에 보시면 파일의 위치가 표기되어있는데Command + Shift + .을 누르시게 되면 숨겨진 파일을 볼 수 있습니다.그리하여 이 경로를 추적해 보면이렇게 Users/사용자맥이름/.android/에 있는 debug.keystore 파일의 값을 받게 됩니다.두 번째 디버그 키해시(비추천)keytool -..

Flutter/tip 2024.06.16

[플러터 Flutter] 약관 동의 페이지 만들기2 (접히는 TextBox "ExpansionTile")

위 GIF처럼 터치했을 때 TextBox가 펼쳐지며 내부의 내용을 볼 수 있고 다시 터치하면 접히는 걸 구현해 보겠습니다.Flutter v3.22.2Dart v 3.4.3DevTools 2.34.3우선 저기 있는 이용약관 자체는 굉장히 길기 때문에 파일을 하나 따로 만들어두도록 하겠습니다.제 생각에는 지금만 이렇게 주저리주저리 글을 적어놓지 나중에 제대로 된 앱을 만들려면 서버든 DB든 JSON형태로 파싱 해서 텍스트를 쓰지 않으려나.. 하는 추측이 있습니다..왜냐하면 저는 아직 초보기 때문에 모릅니다..String agreeConditionText = '이용약관 동의 내용\n...'; String personalAgreeText = '개인정보수집이용 동의 내용\n...';String t..