drawable과 drawable-v21 폴더만 생성되는 이유 언제부턴가 Android 프로젝트를 생성하면 res 폴더에 drawable과 drawable-v21 폴더만 생성됩니다. 과거에는 픽셀 밀도에 따라 drawable-mdpi, drawable-xhdpi ... 등의 폴더가 생성되었는데, 2015년 9월 Android Studio 1.4버전부터 Vector Asset Studio 도구가 추가되면서 drawable과 drawable-v21만 생성되도록 변경된 것입니다. drawable과 drawable-v21 폴더만 생성되는 이유를 간단히 설명하자면, Android Studio 1.4 부터 벡터 이미지를 중점적으로 사용하도록 변경되었지만 벡터 이미지는 안드로이드 v21 (5.0 롤리팝)부터 지원합니..
Import 종류 Dart 언어에서 import는 크게 3가지로 나누어집니다. 1. dart core library import : Dart Core Pageckage에서 제공하는 library의 경우 'dart:' 접두사를 사용하여 importimport 'dart:math'; 2. package import : 패키지명+/lib 폴더부터 시작되는 절대경로를 사용하여 import import 'package:package_name/absolute/path.dart'; 3. relative import : 현재 파일부터 시작되는 상대경로를 사용하여 import import '../models/user.dart'; Import 정렬순서 Dart Coding Standard에 따르면 import 구문들은 다..
파일, 폴더 작명규칙 Flutter에서 강제하는 작명규칙은 없습니다. 하지만 Dart 언어를 사용하기 때문에 Dart Coding Standard에 따라 작명합니다. 파일명은 소문자로만 구성합니다 운영체제에 따라 대소문자 처리 규칙이 다르기 때문에, 사전에 문제를 방지하기 위해 항상 소문자만 사용합니다. 파일명이 길어질 경우 구분자는 언더바('_')를 사용합니다 운영체제에 따라 허용되는 특수문자가 다릅니다. 운영체제에 따라 문제가 발생하지 않도록 언더바(_)만 사용하며 다른 특수문자(공백, 하이픈 등)은 사용하지 않습니다. 폴더명 정해진 규칙은 없지만 대게 아래와 같은 폴더명을 사용합니다. models : Model 성격의 Data Class providers, prov, viewmodels, vm : ..
Flutter에서는 코딩에 대한 구체적인 표준이나 규범을 정의하지 않고 있습니다. 하지만 Flutter는 Dart 언어를 사용하기에 Dart의 Coding Standard를 준수하여 작성하게 됩니다. 여기서는 Dart의 Coding Standard를 정리해 보았습니다. 식별자 (Identifiers) Dart에서는 UppderCamelCase, lowerCamelCase, lowercase_with_underscores 네이밍 규칙을 사용합니다. UppderCamelCase : 대문자로 시작하며, 각 단어의 시작 문자를 대문자로 합니다. (예: UpperCamelCase) lowerCamelCase : 소문자로 시작하며, 각 단어의 시작 문자를 대문자로 합니다. (예: lowerCamelCase) low..
CacaoPods는 Swift 혹은 Object-C 프로젝트에서 사용할 수 있는 의존성 관리도구입니다. .NET 진영의 Nuget이나 Node 진영의 NPM과 동일한 역할을 담당하게 됩니다. 애플에서 공식 개발한 것은 아니고, 2011년 Eloy Durán와 Fabio Pelosin에 의해 개발되었으며 가장 방대한 라이브러리 풀을 제공하고 있으며 가장 널리 사용되는 도구입니다. (애플에서는 Swift Package Manager라는 의존성관리도구를 제공하지만 라이브러리 규모에서 CocoaPods에 비해 밀리는 편입니다.) Flutter iOS 프로젝트에서도 CocoaPods을 통해 패키지를 관리하는 경우가 많습니다. 여기서는 Flutter 프로젝트에 CocoaPods를 설치하고 사용하는 방법에 대해서 소..
모바일 앱의 백엔드 서비스를 ASP.NET 프로젝트로 개발한다면, 안드로이드(혹은 아이폰)에서 ASP.NET 프로젝트(IIS Express)에 접속할 수 있어야 합니다. 그래야 디버깅을 손쉽게 진행할 수 있지요. 하지만 기본적으로 IIS Express는 외부에서의 접속을 차단하기 때문에, 몇가지 설정이 필요합니다. 이 포스트에서는 IIS Express를 외부에 노출시키는 방법에 대해 설명합니다. 먼저 IIS Express가 실행되는 PC의 IP를 확인해주세요. 여기서는 "192.168.0.143"이라고 가정합니다. 방화벽에 예외를 추가해주세요. 만약 ASP.NET 프로젝트에서 사용하는 포트번호가 "49393"이라면 다음과 같은 명령어로 예외를 추가할 수 있습니다. netsh advfirewall fire..
Android에서는 dp(Density-independent Pixel) 단위를 썼다면, Flutter에서는 Logical Pixel 단위를 사용합니다. 단위만 다를 뿐 실제로 안드로이드의 dp 단위와 동일합니다. 이미지의 경우에는 res/drawable-* 형태의 폴더명으로 이미지를 분류했다면, Flutter에서는 iOS와 동일하게 2.0x, 3.0x와 같은 폴더명을 사용하여 이미지를 분류합니다. Density dots per inch dots per cm Flutter Image Folder ldpi 120 47.2 0.75x mdpi 160 62.9 1.0x hdpi 240 94.5 1.5x xhdpi 320 125.9 2.0x xxhdpi 480 188.9 3.0x xxxhdpi 640 251.9..
Flutter을 통해 MaterialApp을 생성할 때 ThemeData를 통해서 전체적인 Theme을 설정할 수 있습니다. class MainApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'Flutter', theme: ThemeData( primaryColor: Color(0xFF174378) ), ); } } ThemeData를 통해 세세한 색상 값을 일일이 설정할 수 있습니다. 그러나 모든 색상을 하나하나 조절하는 것은 상당히 번거로운 작업일 수 있습니다. ThemeData({ Brightness brightness, VisualDensity visualDen..
소프트웨어 공학에서 학문적으로 말하는 TDD의 장단점과 실무에서 느끼는 장단점에는 차이가 있음. 여기에서는 현업에서 실무자들의 피드백을 바탕으로 정리함 시간과 비용을 증가시킨다 TDD는 평균적으로 1.5배의 시간과 비용을 증가시킴 잘짜여진 테스트 코드를 작성해야 하기에 당연한 결과임. 비용이 높다는 것은 변화에 굼뜨다는 것이기에, 자주 빠르게 요구사항이 변화하는 부분은 TDD에서 제외하기도 함 TDD 투자비용을 회수하는 시기는 보통 2-3년 이후 현업의 연구보고서에 따르면 평균적으로 2-3년 후 부터, 극적인 효과를 볼 수 있다고 함. 예를들어 수년 후에 팀이 개편되거나 입퇴사로 사람이 바뀌는 경우 교육이나 적응기간이 필요하기 마련인데, TDD코드를 작성해두었다면 사람과 무관하게 일관된 Quality를 ..
파일에 작성된 방대한 Class들의 전체 구조를 파악하거나, 원하는 위치로 이동 할 때 Code Folding은 매우 유용한 기능입니다. 여기서는 Android Studio에서 Code Folding을 실행하는 방법을 안내합니다. Code Folding 활성화 Android Studio 상단메뉴의 File → Settings 클릭 Editor → General → Code Folding 이동 원하는 Code Folding 체크 코드폴딩 실행 전체 폴딩 : [Ctrl + Shift + Minus] 폴딩 해제 : [Ctrl + Shift + Plus] 메서드 레벨만 Folding: [Ctrl + Shift + Minus] → [Ctrl + Shift + Plus] 순으로 연속입력 코드폴딩 결과 [CodeFo..
- WPF
- MS SQL
- Xamarin.Forms eBook
- ios
- Xamarin.iOS
- material-ui
- TypeScript
- Android
- ASP.NET Core
- React
- Xamarin.Forms
- Xamarin.Forms 요약
- linux
- Vue
- VisualStudio
- .NET Standard
- Xamarin
- flutter
- npm
- windows
- Total
- Today
- Yesterday