핸드폰 번호를 입력하면 자동으로 '-'를 입력해 주는 TextField Formatter를 만들어 보려구 해요. 회원가입이나 여러가지 이벤트 페이지 정보 작성 시 핸드폰 번호를 입력할 일이 있으면 쉽게 사용 가능해요. 물론 라이브러리를 사용해도 되긴 하지만 이정도는 그냥 코드로 만들어보아요. 아래코드로 얼마든지 다른 형식도 응용이 가능하니 유용하게 사용해 주세요. PhoneNumberTextInputFormatter.dart import 'package:flutter/services.dart'; class PhoneNumberTextInputFormatter extends TextInputFormatter { ///전체 번호 010-1234-5678 기준 final firstLength = 3; ///첫..
Flutter web으로 만든 웹 페이지를 Flutter App webview에 띄우고 웹 페이지에서 버튼을 눌렀을 때 네이티브 App에 특정 이벤트를 발생 시키려고 하는데 생각보다 잘 되지 않네요..... 여기저기 자료를 찾아보다가 살짝 방식이 다르다는걸 깨닫고 혹시 삽질 하는 사람이 있을까 봐 글을 남겨 놓아요 ㅎㅎ 먼저 Flutter web 프로젝트의 web 폴더에 script.js 파일을 생성해요. (이름은 뭐로 하든 상관없어요.) script.js function showAlert() { channelName.postMessage("Hello from JS"); } channelName 부분은 Flutter App에서 JavascriptChannel name 부분에 들어갈 이름을 적어주시면 돼요..
Flutter로 웹 페이지 추가 작업이 웹으로 프로젝트를 만들다가 혹시 몰라서 정리를 해두려 해요. 실행 명령어 Html 랜더링 모드로 실행 해요. flutter run --web-renderer html CanvasKit 랜더링 모드로 실행 해요 flutter run --web-renderer canvaskit 빌드 명령어 html 랜더링 모드로 빌드해요 flutter build web --web-renderer html canvaskit 랜더링 모드로 빌드해요 flutter build web --web-renderer canvaskit 응용 방법 canvaskit 랜더링 모드로 빌드 하고 base href를 /web/ 디렉터리로 설정해요. flutter build web --web-renderer ..
그려진 모든 원들은 서로 연결 될수 있게 만들어진 코드이다. 가작 작은원을 child Node라 할때 바로 위의 부모가 가지는 child node 의 개수에 따라 다양한 모양이 나온다. chil node 노드 개수에 따른 모양은 아래와 같다. 1. child node = 1 2. child node = 2 3. child node = 3 4. child node = 4 5. child node = 5 6. child node = 6 7. child node = 7 8. child node = 8 9. child node = 9 10. child node = 10 11. child node = 11 11. child node = 15 11. child node = 30 child node의 개수가 늘어날수..
그냥 아무 이유 없이 도형 그리기 구현 코드 import 'package:flutter/material.dart'; class CirclePyramidPainter extends CustomPainter { final int pyramidSize; final double baseRadius; CirclePyramidPainter({required this.pyramidSize, required this.baseRadius}); @override void paint(Canvas canvas, Size size) { final paint = Paint()..color = Colors.blue; for (int level = 0; level < pyramidSize; level++) { final levelO..
https://docs.openzeppelin.com/contracts/4.x/api/token/erc20#ERC20FlashMint ERC 20 - OpenZeppelin Docs For an overview of ERC20 tokens and a walk through on how to create a token contract read our ERC20 guide. There are a few core contracts that implement the behavior specified in the EIP: IERC20: the interface all ERC20 implementations should conform to. I docs.openzeppelin.com transfer (토큰 전송) ..
변수 : 값을 지속적으로 변경 가능 상수 : 한번 지정된 값은 변경 불가. //변수 uint public type1 = 1; type1 = 2; //상수 uint public constant type2 = 1; type2 = 2; // 에러 자료형 타입 값 타입 vs 참조 타입 값 타입 uint, int, bool, address (고정 길이), bytes1...bytes3 (고정 길이) 참조 타입 bytes(동적 길이), string (동적 길이), array(배열), mapping(매핑) , struct(구조체) int : 기호 있는 integer ex ) int8 : -2^7 ~ 2^7-1 uint: 기호 없는 Integer ex) uint8 : 0~ 2^8-1 산술연산자 : + - * / 논리 연..
이번에는 웹에서 스마트 컨트랙트의 함수를 실행 시켜 볼거에요. 실행에 대한 결과를 말하면 test.sol 의 renderTest함수를 실행해서 String 값을 가져오고 http://127.0.0.1:8080/test 접속시 해당 함수 실행 값을 가져올거에요. 시작해 볼게요. 아래의 코드들을 프로젝트에 옮겨 주세요. 1. test.sol // SPDX-License-Identifier: MIT pragma solidity 0.8.7; contract Test { function renderTest () public pure returns (string memory greeting) { greeting = "Hello World!"; } } 2. index.js const express = require(..
가나슈는 이더리움 개발을 위한 개인 블록체인으로 계약을 배포하고, 앱을 개발해 실행 테스트를 할 수 있는 개인 블록체인이다 1. 가나슈 설치 https://trufflesuite.com/ganache/ Ganache - Truffle Suite Features VISUAL MNEMONIC & ACCOUNT INFO Quickly see the current status of all accounts, including their addresses, private keys, transactions and balances. trufflesuite.com 2. 가나슈 url 확인 RPC SERVER 항목에 HTTP://127.0.0.1:7545 해당값을 기억하자 3. Remix 로 돌아와서 Deploy & ru..
1. Infura 회원가입 및 로그인 https://app.infura.io/ 2. 프로젝트 생성 - NETWORK 는 web3 API 선택 - NAME은 자유롭게 3. 본인 테스트 네트워크 선택 후 링크 복사 (소스코드 rpcURL 에 사용예정) 4. 적당한 위치에 프로젝트 디렉터리 생성 후 해당 폴더에서 아래 명령어 입력 npm init npm install web3 5. 해당 프로젝트에 디렉터리에 test.js 파일 하나 생성후 아래 코드 복붙 const Web3 = require("web3"); const url = "여기에 infura 사이트에서 복사한 URL 추가"; const web3 = new Web3(url); const account = "여기에 지갑 주소 입력"; web3.eth.ge..