본문 바로가기

전체 글65

[flutter 플러터] 44강 강의리뷰_CircleAvatar Widgets (프로필 이미지) 보통의 앱에서 프로필 사진은 원형의 이미지로 표현된다. 플러터에도 이러한 원형 이미지를 생성해주는 위젯이 존재한다. 바로 CircleAvatar 이다. CircleAvatar 를 처음 생성하면 일반 도형 원이 생성된다. 이제 다양한 property 를 통해 해당 원의 색을 변경하거나 배경 이미지를 변경하면 된다. 다만 외부이미지를 사용하려면 당연히 프로젝트의 image 폴더에 해당 이미지를 저장하고, pubspec.yaml 파일에도 이를 반영해주어야겠지? 아래는 증명사진을 활용하여 내 프로필 화면을 직접 구현한 것이다. *공식문서: https://api.flutter.dev/flutter/material/CircleAvatar-class.html CircleAvatar class - material li.. 2023. 3. 14.
[flutter 플러터] 42강 강의리뷰_Column & Row Widgets for Layout (세로&가로 레이아웃) 이미지, 텍스트 등의 다양한 요소들을 화면에 배치할 때, 우리는 보통 이것들을 일정한 방향(가로 혹은 세로 혹은 대각선?)으로 배치한다. 이때 Column와 Row 위젯은 그 요소들을 배치하는데 사용한다. Column은 세로 방향, Row는 가로 방향으로 배치할 때 사용한다. 다만 Center 위젯처럼 단순히 괄호로 감싸면 되는 것이 아니라, 괄호 안에 children: Widget [] 을 먼저 작성한 후 그 대괄호 [] 안에 넣고자 하는 요소들을 작성한다. 아래는 예시 코드이다. Row( children: [ Icon( Icons.call, color: Colors.teal.shade900,), SizedBox( width: 10.0, ), Text( '+82 010-0000-0000', style:.. 2023. 3. 14.
[flutter 플러터] 41강 강의리뷰_Container Widgets 컨테이너 위젯 컨테이너 위젯은 화면에 특정 이미지, 텍스트 등의 내용을 삽입하고 싶을 때 사용한다. 혹은 사각형 도형을 삽입하고 싶을 때에도 사용할 수 있다. 컨테이너(도형) 자체에 대한 설정은 괄호 내에서 padding, color 등의 값을 직접 지정해줌으로써 변경할 수 있으며, 구체적인 내용을 컨테이너 내에 넣고자 하는 경우 child 를 사용한다. 아래는 예시 코드이다. Container( color: Colors.white, padding: EdgeInsets.all(10.0), margin: EdgeInsets.symmetric(vertical: 10.0, horizontal: 25.0), child: Row( // 가로로 나열 children: [ Icon( Icons.email, color: Colors.. 2023. 3. 14.
[flutter 플러터] 40강 강의 리뷰_Hot Reload and Hot Restart *주의: Stateless Widget 으로 코드를 작성한 경우에만 사용 가능 Hot Reload 와 Hot Restart 는 코드 실행을 빠르게하는 도구이다. RUN은 코드의 가장 첫줄부터 실행되는 반면, Hot Reload (Restart)는 코드에서 가장 최근에 변경된 부분을 탐지해 해당 부분만 다시 실행시켜 가장 최신화된 동작 결과를 보여준다. 이 기능을 이용하면, 코드를 변경함에 따라 변경된 화면을 바로 에뮬레이터를 통해 확인할 수 있다. 에뮬레이터를 한번씩 재동작(Run)할 때마다 너무 오래걸려서 답답했는데, Hot Reload 를 이용하면 체감상 1초면 결과물을 볼 수 있는 것 같아 좋았다. Hot Reload 와 Hot Restart 버튼은 Console 창에 위치해있는데, 아래 이미지에서.. 2023. 3. 6.
[flutter 플러터] 28강 강의 리뷰_앱 아이콘 변경 *아이콘 이미지 생성 사이트(App Icon Generator): https://www.appicon.co/ 1. 위 웹사이트를 통해 아이콘 이미지를 앱 아이콘 파일 형식으로 변환합니다. [Android] 2. Android는 아래와 같은 순서로 실행합니다. 1) (Project view) android > app > src > main > res 폴더 선택 2) res 폴더 우클릭 후 'Open In Explorer' 선택 3) res 창의 기존 mipmap 폴더 (총 5개) 삭제 후, 적용하고자 하는 이미지의 mipmap 폴더를 해당 창으로 이동 [iOS] 3. iOS는 아래와 같은 순서로 실행합니다. 1) (Project view) ios > Runner 폴더 선택 2) Runner 폴더 우클릭 후.. 2023. 3. 3.
하고싶은 것 앞에는 해야하는 것이 있다. 어느 분야든지, 어떤 일이든지, 자신이 하고 싶은 일을 하기 위해서는, 그에 앞서 해야하는 일이 있는 듯 합니다. 저는 창업을 하고 싶었습니다. 좋은 서비스를 만들고 싶었습니다. 그러나 패기와 욕심만 가득했던 저에게 '제잘제잘'과 함께했던 지난 몇 달 간의 시간은 제 부족함을 많이 깨닫게 해 주었습니다. 그리고 지금 당장 제가 해야할 일을 알려주었습니다. 그것은 바로 공부와 배움이었습니다. 솔직히 말해, 지난 저는 정말 오만 덩어리였던 것습니다. 동아리에서 얼렁뚱땅 앱 한번 출시해봤다고, 창업 공모전에서 MVP 몇 번해서 수상 좀 해봤다고, 창업에 대해서는, 서비스 개발에 대해서는 전부 다 아는 것 마냥 실행에만 열중해 있었습니다. 그런데 사실 저는 아무것도 모릅니다. 제대로 된 서비스 기획 문서 작성법.. 2023. 3. 2.
[ C++ ] 1. C++ 프로그램의 구성 - main() 함수 모든 C++프로그램은 반드시 하나의 main() 함수를가지고 있어야 한다. - 명령문 C++의 모든 명령문은 반드시 세미콜론으로 끝나야 한다. - 반환(return)문 main()함수가 반환되면 프로그램 전체가 종료된다. - 선행처리문(preprocess)문 #include 문과 #define 문 모두 선행처리기에 의해 처리되는 선행처리문이다. C언어에서는 헤더 파일에 .h 확장자를 사용했지만, C++에서는 헤더파일의 확장자를 사용하지 않는다. C언어에서는 #include 으로 프로그램 코드를 시작하는 반면 C++에서는 #include 으로 시작한다. - 네임스페이스 이름이 기억되는 영역을 뜻하며 이름이 소속된 공간을 의미한다. 네임스페이스는 C++프로그램을 작성할 때 발생하는 이름.. 2023. 2. 2.
[flutter 플러터] Android Emulator 연결 오류 해결 방법 Android Studio의 Device Manager 에서 Android Emulator 를 생성하였음에도 불구하고, 해당 device 가 disconnect 되어 있는 경우 해결하는 방법입니다. ("No applicable for "main.dart" configuration" 또는 "Emulator is disconnected..." 관련 에러) 저는 아래 두 가지를 모두 순차적으로 수행하고 나니, 그제서야 에뮬레이터가 정상적으로 작동하였습니다. *컴퓨터 저장공간 확보 필수 (에뮬레이터도 일종의 가상머신이기 때문에 해당 머신을 설치할 저장공간이 최소 10GB 이상 필요합니다. ) 1. 프로젝트의 캐시 삭제 1- 1. 좌측 메뉴바(혹은 프로젝트명 좌클릭)의 .idea 폴더 우클릭 후 Delete 클릭.. 2023. 1. 27.
모두 중단했습니다. 최근 1-2주간 서비스 개발과 관련된 일이 모두 중단됐습니다. 시작은 다른 팀원의 개인 사정으로 인한 것이었는데, 그 기간 중 몇몇의 사건들로 인해 저 개인적으로 이 프로젝트와 이 팀에 상당한 회의감을 느끼며 중단했습니다. 회의의 원인은 아래 네 가지였습니다. 첫째, 팀원 간 핏이 맞지 않는다. 한 팀으로서 지냈던 지난 몇 개월을 돌아보면, 혹은 지난 일년을 돌아보면, 저희 팀은 늘 핏이 맞지 않았던 것 같습니다. 개인의 일정, 프로젝트에 대한 열정, 그에 대해 투자하는 시간 등등 ... 이 부분에서 큰 회의감을 느껴 제가 참 바보같았다는 생각이 많이 들었습니다. 특히 저와 다른 팀원의 열정이 서로 다르다는 걸 인식하게 된 그 순간, 많은 허무함이 몰려왔습니다. 둘째, 나는 리더(대표)로서의 자질이 부족.. 2023. 1. 27.