Languages

Languages/Dart(Flutter)

[Flutter] 앱 서명 키 생성과 Debug Key, Release Key 생성 및 Google Firebase 키 등록 - Android

소셜 로그인 기능을 구현하거나 Firebase를 사용하는 경우 키를 생성해야 하는 경우가 있다. 또한 앱을 제작하고 구글 플레이 콘솔이나 애플 앱스토어에 등록하기 위해서는 앱 서명이 필수적이다. ios 같은 경우 맥에서 프로젝트를 진행하면 xcode가 일정 부분 해결해주지만 Android는 직접 앱 서명을 제작하고 등록해주어야 한다. 처음 앱 제작을 하면 갖가지 키들이 나오고 서명이 어쩌고 하는 말들이 막연하게 느껴져 공포스러울 수 있다. 아래 과정들을 천천히 따라 해 보면 조금 해소될 수 있기를 바란다. 순서는 아래와 같다. 자바 설치 키를 저장할 폴더로 이동 키 생성 KEY 확인 KEY 등록 google-services.json 1. 자바 설치 우선 java가 설치되어 있어야 한다. java11 버전..

Languages/Dart(Flutter)

[Dart] const와 final

프로그래밍 언어에는 컴파일(Compile) 언어와 인터프리터(Interpreter) 언어가 있다. 컴파일 언어는 전체 소스코드를 한 번에 번역하여 컴퓨터에게 전달하고, Python과 같은 인터프리터 언어는 각 라인을 실행하며 순차적으로 명령 줄들을 실행한다. 이 두 가지 타입의 언어 중 Dart는 컴파일 언어에 해당하며, 일반적으로 Dart는 Flutter를 이용해 모바일 앱을 구현할 때 주로 사용되고 있다. 컴파일 언어는 한 번에 번역하여 컴퓨터에게 명령을 전달하는 특성이 있고, 이에 따라 명령어를 실행하는 타이밍을 컴파일 타임(Compile Time)과 런타임(Run Time)으로 나눌 수 있다. 즉, 특정한 라인의 명령은 각각의 할당되어야 하는 실행 시간에 명령이 수행된다. 간략하게 말하면 컴파일 ..

Languages/Python

[Python] Anaconda 이용 중 Pyinstaller를 사용해 패키징 시 exe파일 용량이 커지는 이유

Pyinstaller는 Python으로 실행파일을 생성해 배포하기 위해 사용되는 패키지이다. cx_Freeze나 py2exe 등의 패키지도 있지만 개인적으로 가장 사용이 간편하다고 느껴진다.하지만 고객이 실행파일만 메일로 받고싶어하는 경우도 있고, 실행시 프로그램 부팅 속도를 빠르게 하기위하거나 등 여러가지 이유로 용량이 작은 것이 더 선호된다.이 때 Anaconda를 사용하여 패키지를 import하고 Pyinstaller를 이용해 마지막으로 패키징을 위해 실행파일을 생성하면 예상보다 훨씬 큰 용량이 되는 것을 볼 수 있다. 거기다 onefile을 사용하지 않으면 훨씬 더 큰 용량으로 패키징이 된다. Anaconda를 사용해 패키지를 설치하면 mkl 계열 dll 파일들이 함께 패키징되기 때문이다. MKL..

Languages/Dart(Flutter)

[Flutter] Navigator.of(context).pop vs Navigator.pop(context)

스크린 이동 후 뒤로가기를 수행할 때 또는 Drawer와 Dialog등이 클릭 후 자동으로 숨겨지기 원할 때 pop을 사용한다. 이 때 Navigator.of(context).pop()과 Navigator.pop(context)를 사용하는 두 가지 방식이 있어 차이를 짚고 넘어가려 한다. 사실 두 함수 기능에 큰 차이는 없으며 Navigator.pop(context)이 내부적으로 Navigator.of(context).pop()을 호출하는 구조이다. Navigator.of(context).pop()을 사용하면 가장 타이트하게 떨어져있는 context를 불러올 수 있다. 그러므로 특정 예외상황을 제외하고는 범용적으로 사용될 수 있는 Navigator.pop(context)를 쓰는 것이 낫다. 이 예외 상황..

Languages/Dart(Flutter)

[Flutter] 화면 가로 너비(width)와 세로 높이(height) 알아내기(MaterialApp, Getx)

Flutter 앱 개발할 때 padding 또는 width, height 등을 고정으로 잡아놓으면 결국 다른 해상도의 디바이스에서 실행할 때 화면이 다 깨져버린다. 프로토타입 만들 때는 고정으로 해도 되지만 실제로 배포하기 전에 각기 다른 해상도에서도 문제가 생기지 않도록 비율로 지정해놓는 것이 정신건강에 이롭다. MaterialApp 내부에서 해당 screen의 높이와 너비는 MediaQuery를 이용해 알아낼 수 있다. double width = MediaQuery.of(context).size.width double height = MediaQuery.of(context).size.height import 'package:flutter/material.dart'; void main() { runAp..

Languages/JavaScript

[React] import할 때 {}(중괄호)의 의미

react-native를 하며 라이브러리에서 특정 메소드 또는 함수를 import 할 때 {}(중괄호) 안에 적어줄 때도 있고 그냥 메소드명만 표기할 때가 있는데, 예를 들어 아래와 같은 경우가 있다. import React, { useState, useEffect } from 'react'; React는 중괄호 없이 적었고, 상태 관리를 위한 Hook인 useState와 컴포넌트 랜더링 시 원하는 작업을 실행시키도록 도와주는 Hook인 useEffect는 중괄호 안에 메소드를 적었다. 이는 'react'라는 패키지 내부에서 어떻게 해당 메소드를 export 하는지에 따라 import시 표기하는 방법이 달라진다. 만약 아래와 같은 contextAPI가 있다고 가정한다. import React, { cre..

AlienCoder
'Languages' 카테고리의 글 목록 (3 Page)
loading