학과 샘플강의

App Inventor - 총 15시간 33분 / 강의당평균 : 46분38초

알지오 2016. 10. 28. 09:12



App Inventor
전체 : 15시간 33분 / 강의당평균 : 46분38초

01 어플리케이션 개발 시작하기
앱 인벤터를 사용해서 간단한 안드로이드 어플리케이션 개발하면서 속성, 이벤트, 메소드 개념을 이해하고 안드로이드 에뮬레이터를 통해 개발한 어플리케이션의 동작을 확인하도록 합니다.
44분
책갈피 : [00:08] 앱 인벤터를 사용한 애플리케이션 만들기 / [00:25] 새 프로젝트 생성 / [00:50] Palette 화면 / [01:03] User Interface / [01:18] Media / [01:26] Drawing and Animation / [01:38] sensors / [01:57] Viewer 화면 / [02:07] Components 화면 / [02:30] Properties 화면 / [02:52] 동물 버튼을 클릭했을 때 동물 울음소리가 나는 애플리케이션 만들기 / [03:12] User Interface-Label을 드래그해서 Viewer로 이동 / [04:00] Components 이름 변경 / [04:26] Label의 세부 항목 확인 / [04:30] BackgroundColor변경 / [04:53] Label에 해당하는 텍스트의 속성 정의 / [05:53] Label상자를 수동으로 사이즈 변경 / [06:23] TextAlignment-center / [06:43] 동물 이름 버튼 만들기 / [07:15] Button 속성의 Image / [07:38] pc에 있는 그림을 앱 인벤터로 upload / [08:01] Components아래 Media upload / [08:22] 사자그림 삽입 / [08:50] 버튼 그림 크기 변경 / [09:15] 개와 돼지 버튼 추가 / [09:48] 버튼 이름 변경 / [10:33] 동물 울음소리 음성파일 업로드 / [11:11] 음성에 해당하는 구성요소 Viewer에 삽입 / [11:28] Media-Sound 삽입 / [12:07] 각각의 사운드컴포넌트에 실제 음성파일 연결 / [12:22] 사운드컴포넌트에서 사운드선택-세부속성에 Source / [13:03] 각종 컴포넌트들의 동작 설정 실습 / [13:20] Blocks버튼 클릭 / [13:43] Blocks의 구성 / [13:56] Built-in항목 / [14:13] Screen1항목 / [14:37] Any component항목 / [15:18] Viewer화면 / [15:52] 앱 인벤터에서 컴포넌트들의 동작을 지정하기 위한 개념 / [16:07] 속성 / [17:03] 이벤트 / [17:17] 메소드 / [17:48] Built-in의 Control / [18:30] Screen1의 Label / [19:22] 블록의 색이 다른 속성, 이벤트, 메소드 / [20:56] Any component / [21:25] 특정 컴포넌트를 블록 지정과 동작 만들기 방법 / [21:56] 사자버튼을 클릭했을 때의 동작 만들기 / [22:40] 버튼을 클릭했을 때의 이벤트 블록 생성 / [23:03] 해당 음성이 출력되도록 만들기 / [23:18] Designer로 가서 사운드 컴포넌트 이름 변경 / [24:00] 음성 컴포넌트에서 지원되는 블록 나열 / [24:15] 음성을 출력하겠다는 메소드 선택 / [24:48] 블록을 제대로 배치하지 않았을 경우 / [25:26] 텍스트 변경 작업 / [26:11] set Label1 Text블록 선택 / [27:07] 변경할 텍스트 블록 삽입 / [27:48] 해당 텍스트 입력 / [28:15] 블록 전체 복사 / [28:37] 개 버튼으로 변경 / [29:30] 블록 복사해서 돼지버튼으로 변경 / [30:07] 프로그램 확인을 위해 에뮬레이터 동작시켜 애플리케이션 실행 / [30:37] aiStarter / [30:48] Connect-Emulator / [31:37] 만든 애플리케이션 확인 / [32:07] 앱 인벤터와 에뮬레이터가 연결된 상태에서 프로그램 내용을 변경할 경우 / [32:37] 에뮬레이터에서 확인 / [33:06] Designer에서도 변경사항 적용 / [33:15] 각 버튼의 크기 변경 / [33:30] 에뮬레이터에서 확인 / [33:59] 속성 블록에 해당하는 두가지 개념 / [34:45] setter와 getter / [35:36] getter를 이용해서 특정 컴포넌트의 속성값 넣기 / [36:00] Designer에서 Label2추가 / [36:37] Label2의 글자색을 바꿀 수 있는 setter선택 / [37:14] Label1의 글자색에 해당하는 getter선택 / [37:34] 에뮬레이터에서 확인 / [38:00] 스크린 컴포넌트 설명 / [38:37] Designer-Screen1의 세부 속성 / [39:52] 변경된 속성 에뮬레이터로 확인 / [40:13] 변경사항이 반영되지 않은 경우 / [40:45] 주의사항 / [41:00] 에뮬레이터를 강제로 종료할 경우 / [41:22] 재부팅을 하지않고 에뮬레이터를 실행시키는 방법 / [42:07] 삭제 방법

02 그래픽 유저 인터페이스
앱 인벤터에서 제공하는 그래픽 유저 인터페이스 관련 기능을 익히도록 합니다.
50분
책갈피 : [00:05] 인적사항을 입력하고 결과를 출력하는 안드로이드 애플리케이션 개발 / [00:42] CheckBox사용법에 대해 실습 / [01:03] 체크박스와 버튼 속성의 다른점 / [01:26] checked속성 / [01:53] 인적사항여부인 결혼 유무 관련의 체크박스 만들기 / [02:20] 체크박스 컴포넌트의 동작 설정 방법 / [03:12] 속성값을 변경할 수 있는 setter블록 / [03:50] 체크박스는 체크를 했을 때와 안했을 때 이벤트 발생 / [04:26] 많이 사용되는 checked라는 getter블록 / [04:41] 체크박스의 상태를 확인할 수 있는 기능 만들기 / [05:00] 라벨입력 후 텍스트 입력 / [05:30] checked라는 getter블록 사용 / [06:00] 체크박스의 속성값을 언제 이룰지 설정 / [06:15] 이벤트블록 중 changed블록 선택 / [06:40] 미리 만든 블록 이벤트 블록에 삽입 / [06:59] 에뮬레이터를 통해 동작 확인 / [08:07] TextBox컴포넌트를 사용하는 실습 / [08:33] 텍스트박스의 속성 / [08:58] hint속성에 문구 입력 / [09:24] multiline속성 / [09:50] 텍스트박스에 이름을 입력하고 이름을 라벨로 만드는 동작 / [10:33] 라벨 컴포넌트 하나 더 생성 / [10:58] 라벨2의 문구를 변경하기위한 속성블록 선택 / [11:16] 텍스트를 읽을 수 있는 getter블록 선택 / [12:03] 버튼 컴포넌트 추가 / [12:28] 버튼 클릭 이벤트 블록 선택 / [12:54] 에뮬레이터를 통해 확인 / [13:50] 텍스트박스를 통해 입력한 값을 지우는 버튼 만들기 / [14:31] 텍스트 속성을 변경할 수 있는 setter블록 선택 / [14:50] 텍스트를 생성할 수 있는 블록 / [15:43] 에뮬레이터 확인 / [16:25] 패스워드 텍스트박스 컴포넌트 만들기 / [17:03] 라벨과 버튼 추가 / [17:14] 동작 설정 / [18:07] hint속성 입력 / [18:18] 에뮬레이터 확인 / [19:00] 취소버튼을 눌렀을 때 입력된 내용 삭제하게 만들기 / [20:03] 복사와 붙여넣기로 손쉽게 블록 추가 / [20:44] 취소버튼처럼 확인버튼도 두가지 동작을 하도록 변경 / [21:00] 에뮬레이터를 통해 동작 확인 / [21:45] 만든 그래픽 유저 인터페이스 배치하기 / [22:18] 레이아웃 컴포넌트 기능 활용 / [23:11] 수평으로 레이아웃을 설정하는 방법 실습 / [23:40] fill parent선택 / [24:00] 배치할 컴포넌트 넣기 / [25:56] 수직 레이아웃 컴포넌트 활용 / [26:29] 레이아웃 컴포넌트의 그룹화 / [27:14] 일정한 크기의 빈공간 만들기 / [28:21] 테이블 레이아웃 컴포넌트 / [29:48] 미리 정해진 공간에만 배치 / [30:15] 애플리케이션 만들기 / [30:52] Title속성 변경 / [31:21] 라벨과 텍스트 컴포넌트 수평으로 배치 / [32:42] 라벨 문구 입력과 텍스트 박스의 hint속성 입력 / [33:37] 주민번호 뒷자리 패스워드 입력방식 사용 / [34:50] 체크박스와 버튼 삽입 / [36:29] 인적사항 결과부분 추가 / [37:37] 구분선 생성 / [38:21] 각각의 컴포넌트 동작 만들기 / [38:50] 각각의 컴포넌트 이름 변경 / [40:07] 확인버튼의 이벤트블록 생성 / [41:37] 라벨에 표시할 텍스트 내용 입력 / [43:00] 두 종류의 텍스트 입력방법 / [44:22] 텍스트를 하나로 연결하는 블록 / [45:36] checked라는 getter블록 / [45:52] 취소버튼을 눌렀을 때의 이벤트 / [47:22] 각각의 컴포넌트 값을 지우는 기능 / [48:13] Logic에서 false블록 사용 / [48:27] 에뮬레이터 확인

03 멀티미디어
앱 인벤터에서 제공하는 멀티미디어 관련 컴포넌트 사용 방법을 익히도록 합니다.
47분
책갈피 : [00:07] 멀티미디어 컴포넌트 사용 / [00:19] 이미지관련 컴포넌트 / [00:41] 이미지 삽입 컴포넌트 / [01:03] ImagePicker 컴포넌트 / [01:44] 표시된 이미지는 블록을 통해 변경과 삭제 / [02:07] ImagePicker버튼을 눌렀을 때 이미지가 표시되는 실습 / [02:38] 버튼과 ImagePicker 컴포넌트 블록의 차이 / [03:07] AfterPicking이벤트블록 / [03:38] setter블록을 이벤트블록과 결합 / [04:10] selection블록 사용 / [04:30] 에뮬레이터 실행 / [05:00] 이미지 다운로드 / [05:46] 애뮬레이터 재실행 / [06:44] 인터넷 주소를 통해 특정사진 표시 / [07:09] 텍스트 블록 사용 / [07:46] 에뮬레이터 확인 / [08:11] 이미지 컴포넌트의 보이는속성 변경 / [08:26] 버튼 2개 추가 / [08:48] 버튼을 클릭했을 때 동작 / [09:26] 에뮬레이터 확인 / [09:43] 음성 재생에 관련된 컴포넌트 사용 / [10:01] player컴포넌트 / [10:39] 각 기능을 위한 버튼 입력 / [11:18] play버튼의 동작 / [11:46] stop버튼의 동작 / [12:01] 볼륨조절 버튼의 동작 / [12:37] Math에서 숫자를 입력할 수 있는 블록 / [13:16] 에뮬레이터 확인 / [14:13] 버튼의 활성화와 비활성화 / [15:33] 에뮬레이터 확인 / [16:07] 활성화 기능을 이용해서 mute버튼을 스위치처럼 만들기 / [16:52] Enabled 세터블록 활용 / [17:21] 에뮬레이터 확인 / [17:44] 스위치처럼 동작할 때의 장점 / [18:07] 영상재생 컴포넌트 사용 / [18:22] videoPlayer컴포넌트 / [19:15] 버튼을 이용해 영상을 재생하고 멈추는 동작 만들기 / [19:48] 영상 재생과 멈춤 이벤트 / [20:21] 에뮬레이터 확인 / [20:56] 영상이 재생될 때 화면에 표시 / [21:11] visible속성값을 hidden으로 변경 / [21:36] visible을 설정할 수 있는 세터블록 연결 / [22:00] 에뮬레이터 재실행 / [22:30] 영상재생 컴포넌트에 관련된 다른 기능 / [23:00] tts재생관련 컴포넌트 / [23:22] TextToSpeech컴포넌트 / [23:47] tts기능 만들기 / [24:25] 버튼을 클릭했을 때 tts기능 입력 / [25:07] tts에서 제공하는 두가지의 이벤트 블록 / [25:30] AfterSpeaking이벤트 / [26:03] 에뮬레이터 확인 / [26:33] 실습한 내용을 바탕으로 멀티미디어 애플리케이션 만들기 실습 / [26:56] 그림으로된 버튼 만들기 / [27:44] 버튼 텍스트 제거와 크기 조절 / [28:29] title변경 / [29:07] 라벨 추가 / [29:48] 사진버튼을 눌렀을 때 나오는 화면 만들기 / [30:21] ImagePicker컴포넌트 / [30:48] 텍스트박스 추가 / [31:56] 레이아웃 컴포넌트를 이용해 그룹화해서 처리 / [33:05] 음악버튼을 눌렀을 때 나오는 화면 구성 / [33:22] 각 기능의 버튼 그림으로 만들기 / [34:14] 수평레이아웃 컴포넌트 삽입 / [34:52] 비디오버튼을 눌렀을 때 나오는 화면 구성 / [35:44] 정렬 / [36:21] 각각의 영역 이름 변경 / [37:07] tts기능의 UI만들기 / [37:45] 텍스트박스와 버튼 배치 / [39:28] 각각의 버튼에서 이벤트블록 생성 / [41:15] subscreen동작 / [41:45] 에뮬레이터 확인 / [42:30] subscreen의 세부동작 추가 / [46:36] 에뮬레이터 실행 확인

04 데이터 타입 처리 블록 그룹
앱 인벤터에서 제공하는 여러 데이터 타입을 처리하는 블록 그룹을 알아봅니다.
44분
책갈피 : [00:10] 데이터 타입을 처리하는 블록 그룹 / [00:39] Built-in 블록 집합 / [00:56] 4가지의 데이터 타입 / [01:30] Colors데이터 그룹 / [02:07] 실습을 통해 색상 데이터 타입 사용 / [02:28] 색상을 변경할 라벨과 버튼 삽입 / [03:22] 버튼을 눌렀을 때 라벨의 색이 변경되는 동작 / [04:00] text 게터블록 / [04:30] 3개의 게터블록을 합쳐 하나의 색으로 바꿀 수 있는 블록 추가 / [05:27] 텍스트 데이터 연결 / [05:54] 에뮬레이터 확인 / [06:46] 배경색 바꾸기 / [07:15] 텍스트 색상과 동일하게 설정 / [07:30] 에뮬레이터 확인 / [08:03] 색상값 추출 실습 / [08:09] split color블록 / [08:39] 동작 만들기 / [09:37] 에뮬레이터 확인 / [10:18] 숫자 데이터 타입 블록그룹 실습 / [10:37] Math의 블록 기능 설명 / [11:52] 연산하는 숫자 늘리기 / [12:39] 무작위로 발생하는 난수값 / [13:41] 숫자를 변환하거나 최소, 최대 범위를 찾는 기능 / [14:20] 숫자인지 판단하는 기능 / [15:05] 간단한 계산기능 실습 / [15:43] 버튼에 해당하는 사칙연산기능 추가 / [16:26] 각각의 텍스트 속성을 입력받을 게터블록 / [17:17] 에뮬레이터 확인 / [17:41] 관계 연산 블록기능 추가 / [18:22] 값을 참인지 거짓인지로 표시 / [18:45] 관계 연산 블록 연결 / [19:18] 비교연산을 할 수 있도록 만들기 / [19:30] 에뮬레이터 확인 / [19:52] 논리 데이터 타입 블록 / [20:07] Logic집합의 블록 기능 설명 / [21:15] 체크박스 두종류를 동시에 선택할 수 없게하는 실습 / [22:07] 체크박스1의 상태가 변경됐을 때 체크박스2의 활성화 상태 결정 / [23:07] 관계 블록의 not블록 / [23:33] 체크박스2 반대로 생성 / [24:21] 에뮬레이터 확인 / [25:07] 문자열 데이터 블록 설명 / [25:48] 문자열을 비교하는 기능 / [26:33] 문자열을 자르거나 합치는 기능 / [27:07] 문자를 비교하고 합치는 기능 실습 / [27:37] 문자열을 비교하는 블록 / [27:56] 라벨로 비교한 결과 표시 / [28:15] 에뮬레이터 확인 / [28:44] 문자열 비교중 크거나 작을 경우 / [29:41] 숫자 비교를 할 때와 다른점 / [30:32] 에뮬레이터 확인 / [31:14] 문자열 합치는 기능 실습 / [31:33] join블록 연결 / [31:52] 에뮬레이터 확인 / [32:15] trim블록의 기능 / [33:07] 문자열의 상태를 확인하고 문자를 변환시키는 기능 / [33:45] upcase블록 / [35:04] 특정 조건에 따라 문자열을 나누는 기능 / [35:59] 문자열을 검색하는 기능 / [37:22] 검색버튼의 동작 / [38:37] 에뮬레이터 확인 / [39:14] 문자열 추출 기능 / [40:07] segment블록 활용 / [41:12] 추출한 문자 라벨로 표시 / [41:58] 문자열에서 특정 단어를 다른 단어로 바꾸는 기능 / [42:51] replace블록 연결 / [43:15] 해당 텍스트 게터블록 연결 / [43:39] 에뮬레이터 확인

05 데이터 및 함수 선언 블록 그룹
앱 인벤터에서 제공하는 여러 데이터 구조 및 함수를 다루는 블록 그룹을 알아봅니다.
47분
책갈피 : [00:10] 변수 및 함수 사용법 실습 / [01:06] 변수 및 함수 사용을 위한 블록 / [01:23] Variables블록 / [02:07] 변수를 초기화하는 블록으로 변수 만들기 / [02:38] 변수 선언 후 초기값 설정 / [03:22] 카운터값이 증가하는 버튼 / [04:11] 변수값을 변경할 수 있는 세터블록을 이벤트블록에 연결 / [05:00] 카운터 변수값 / [06:39] 카운터값 감소 기능 / [07:00] 카운터값을 라벨로 표시 / [07:58] 리셋버튼 기능 / [08:39] 에뮬레이터 확인 / [09:11] 두 종류의 변수 / [09:22] 전역변수 / [09:48] 지역변수 / [11:35] 지역변수를 선언할 수 있는 블록 삽입 / [12:11] 지역변수 초기값 / [12:48] 감소버튼에도 지역변수 선언 / [14:48] 초기화한 값 변경 / [15:48] 사용자 입력을 받아 변경 / [16:37] 에뮬레이터 확인 / [18:00] 함수 사용법 실습 / [18:26] 함수 블록 / [18:56] 함수를 만들수 있는 Procedures블록 / [19:40] 카운터값을 저장할 전역변수 생성 / [20:29] 동일한 해당 블록 / [20:55] 함수 만들기 / [21:41] 함수에 입력받을 수 있는 변수 추가 / [23:15] 함수 이름 변경 / [23:45] 새로 추가된 함수 블록 / [24:17] call 다음에있는 함수 이름에 따라 함수 호출 / [24:55] number에 해당하는 숫자값 연결 / [25:56] 함수를 호출할 수 있는 블록 삽입 / [26:21] 에뮬레이터 확인 / [26:37] 비슷한 기능을 함수로 만들었을 때의 장점 / [28:06] 함수 반복해서 사용 / [28:26] 함수 결과값을 넘겨주기 위한 함수 / [28:48] 사칙연산을 통해 나온 결과값을 내보내는 함수 만들기 / [29:21] 함수를 호출할 함수 자동으로 생성 / [31:03] 지역변수를 사용한 함수 / [31:22] 리스트 관리 실습 / [32:15] 리스트 관리를 위한 블록 제공 / [33:30] Lists블록의 기능 / [33:52] 리스트 이름 선언 / [34:30] 색상으로된 리스트 만들기 / [34:59] 버튼을 눌렀을 때 리스트 추가 / [35:42] add items to list블록 사용 / [36:43] 완성된 블록 이벤트 블록과 연결 / [37:05] 리스트 삭제 기능 / [37:22] remove list item블록 사용 / [38:28] 리스트 검색 기능 / [38:36] select list item블록 사용 / [39:07] 특정 위치에 있는 자료를 리스트 결과 라벨로 표시 / [40:15] 에뮬레이터 확인 / [41:57] 확장된 리스트 관리 기능 실습 / [42:12] 리스트 삽입 기능 / [42:30] 리스트 변경 기능 / [43:22] 삽입 기능을 위한 insert list item블록 / [44:15] 삽입된 결과 라벨로 표시 / [45:07] 변경 기능을 위한 replace list item블록 / [45:57] 버튼을 눌렀을 때의 동작 / [46:07] 에뮬레이터 확인

06 프로그램 제어 블록 그룹
앱 인벤터에서 제공하는 프로그램 순서를 제어하는 블록 그룹을 알아봅니다.
50분
책갈피 : [00:04] 프로그램 제어와 반복문 사용 실습 / [01:03] UI구성 및 컴포넌트 이름 변경 / [01:36] text블록의 split블록 / [02:23] split at spaces블록 사용 / [03:00] create empty list블록을 사용해 리스트 생성 / [03:37] 리스트를 수정하거나 입력받을 수 있는 게터와 세터블록 / [04:12] 버튼을 눌렀을 때의 이벤트 블록과 연결 / [04:28] 결과버튼을 눌렀을 때 리스트를 차례료 표시 / [04:42] 결과를 표시하는 라벨 변경 / [05:15] 문자열을 합치는 join블록 / [05:43] 리스트를 읽어서 라벨에 표시했을 때의 결과 / [05:57] 에뮬레이터 확인 / [07:15] select list item블록 사용 / [07:41] 리스트 전역변수 연결 / [08:18] 각각의 단어별로 다른줄에 표시 / [08:58] 문자열을 합치는 join블록 사용 / [09:24] 엔터 기능을 수행하는 문자 입력 / [10:09] 각각의 index에 숫자 삽입 / [10:41] 합쳐진 문자열 라벨로 표시하도록 연결 / [10:50] 에뮬레이터 확인 / [11:20] 리스트의 개수가 많을 경우 생기는 문제점 해결방법 / [11:52] 여러가지 프로그램을 제어하는 Control블록의 기능 / [12:07] 반복문 블록 / [13:01] 반복문 블록을 사용해 프로그램 변경 / [14:01] 전역변수를 설정한 블록과 연결 / [14:54] 결과 라벨 표시 / [15:11] 최종 리스트끼리 연결해서 완성된 문자열에 해당하는 지역변수 만들기 / [16:15] result라는 지역변수를 활용해서 임시로 저장공간 만들기 / [16:44] 리스트 연결 동작 만들기 / [18:41] 리스트 안에 3개의 아이템이 있을 경우 / [19:18] 4개의 아이템이 있다고 가정할 경우 / [21:03] 해당 결과를 라벨로 표시 / [22:00] 버튼을 클릭했을 때의 동작을 수행하도록 연결 / [22:36] 에뮬레이터 확인 / [23:17] 단어 검색을 해서 결과를 표시하는 기능 / [23:37] Lists블록 중 상태확인 블록 이용 / [24:07] 아이템이 있는지의 여부를 확인하는 블록 사용 / [24:44] word_list에서 읽을 수 있는 게터블록 연결 / [25:03] text 게터블록 연결 / [25:22] 검색 결과를 표시할 라벨의 텍스트 속성 변경 / [25:44] 버튼을 클릭했을 때의 동작을 수행하도록 연결 / [25:56] 에뮬레이터 확인 / [26:33] 정해진 값을 사용자가 원하는 문구로 표시할 수 있는 방법 / [26:48] 조건문 / [27:07] if then블록 / [28:07] 조건을 만들 수 있는 블록 가져오기 / [28:47] 세터블록을 가져와 텍스트 문구 변경 / [29:17] 에뮬레이터 확인 / [29:51] 있는 단어를 검색했을 때 없음으로 결과가 나오는 원인 / [30:51] if then else블록 / [31:48] else추가 / [32:15] 에뮬레이터 확인 / [32:37] 반복문 블록을 활용해서 구구단 출력 애플리케이션 만들기 / [33:13] 몇 단을 입력받을지 텍스트박스통해 받기 / [33:30] 전역변수 선언 / [33:50] 버튼을 클릭했을 때 구구단 출력 / [34:27] 해당하는 구구단 라벨로 표시 / [34:52] 동일한 동작은 반복문 사용 / [36:00] 카운팅되는 값 / [37:34] 각각을 곱했을 때 나오는 결과값을 저장할 지역변수 추가 / [38:22] 결과를 표시하는 방법 / [39:00] 문자열을 합치는 기능 / [39:58] result지역변수의 범위 / [40:45] 곱셈기능 추가 / [42:35] 에뮬레이터 확인 / [43:04] 조건을 설정해 조건에 맞지 않을 경우 경고표시 설정 / [43:20] 조건문 블록 사용 / [43:58] Notifier컴포넌트 사용 / [44:30] 메시지를 팝업으로 표시하는 ShowAlert블록 사용 / [45:20] 숫자인지 확인하는 is a number?블록 사용 / [47:13] 참 거짓을 반대로 바꿔주는 not블록 사용 / [48:00] 조건이 하나 이상일 경우 else if블록 사용 / [48:58] and블록 사용 / [49:51] 에뮬레이터 확인

07 계산기 어플리케이션 개발
앱 인벤터를 사용해서 계산기 어플리케이션을 개발합니다.
38분
책갈피 : [00:03] 조건 반복문 만드는 실습 / [00:09] 조건 반복문 설명 / [00:48] 결과를 표시하는 버튼을 클릭했을 때의 이벤트 / [01:02] 숫자값과 지수값을 읽을 게터블록 / [01:23] 조건 반복문에 사용하는 while블록 사용 / [02:04] 지역변수 만들기 / [02:23] counter지역변수를 초기화하고 초기값 설정 / [02:49] 숫자를 비교하는 블록 / [03:21] 지수값을 읽기위한 지역변수 추가 / [04:11] 반복문을 실행할 때마다 카운터값 증가 / [05:15] 지수 승을 할 숫자 지역변수 만들기 / [05:54] 지수 승을한 값을 저장하는 지역변수 추가 / [06:12] 지수 승을 곱하는 동작 / [07:28] 결과를 표시하기위한 라벨 / [07:42] 버튼을 눌렀을 때 동작하도록 설정 / [08:09] 에뮬레이터 확인 / [09:22] 계산기 어플리케이션 만들기 / [09:48] 테이블 레이아웃 컴포넌트 사용 / [10:28] 3개의 전역변수 생성 / [11:15] 버튼을 눌러서 계산할 숫자를 만들어 라벨로 표시하는 동작 / [12:33] 일반 계산기처럼 숫자 입력 기능 만들기 / [14:24] 다른 숫자 버튼 동일한 동작 만들기 / [14:54] 반복되는 기능 함수로 만들기 / [15:33] 버튼을 클릭할 때 만들어둔 함수 호출 / [16:10] 특정 부분이 바뀔 경우 변수 추가 / [16:22] 매게 변수를 사용하기 위한 input블록 / [17:52] 에뮬레이터 확인 / [18:33] 연산 기능 만들기 / [19:03] 각각의 블록 정렬하기 / [20:15] 덧셈 버튼의 기능 / [21:03] 어떤 연산을 수행할 것인지 operation변수에 저장 / [22:07] 더하기라는 문자값을 operation변수에 연결 / [22:48] 해당 숫자의 저장된 변수값을 0으로 초기화 / [23:33] 하나의 함수로 만들어 동작 / [23:56] 다른 연산의 동작 만들기 / [24:26] 함수를 만들어 해당 동작 입력 / [24:37] 매게변수 추가 / [25:06] 각각의 버튼에 함수를 동작할 수 있도록 설정 / [26:00] 해당 블록의 내용을 메모 때 Add Comment명령 사용 / [27:00] 계산 결과 확인버튼과 계산 결과 초기화버튼 동작 / [27:25] 결과값 라벨로 표시 / [28:21] 조건문 사용 / [28:51] 문자열 비교 compare texts블록 사용 / [29:25] 블록을 복사해서 각각의 값만 변경 / [30:30] 결과를 표시하는 버튼 설정 / [31:45] 필요한 세터블록과 게터블록으로 덧셈연산 완성 / [32:45] 결과를 표시하는 라벨에 해당 변수값 입력 / [33:00] 에뮬레이터 확인 / [33:28] 결과가 초기화되는 기능 추가 / [34:00] result, number, operation변수 초기화 / [34:34] 라벨에 표시된 숫자값도 초기화 / [34:49] 에뮬레이터 확인 / [35:22] 수정버튼 기능 만들기 / [36:21] modulo블록 사용 / [36:45] 몫의 값이 필요하기 때문에 quotient사용 / [37:43] 에뮬레이터 확인

08 숫자 야구 게임 어플리케이션 개발
앱 인벤터를 사용해서 숫자 야구 게임 어플리케이션을 개발합니다.
44분
책갈피 : [00:05] 야구게임 어플리케이션 만들기 / [00:52] 어플리케이션 UI설명 / [01:53] 여러 블록에서 공통으로 사용하기위한 전역변수 선언 / [02:49] 정답에 해당하는 세자리 숫자 생성 / [03:00] 난수 생성 기능 / [03:30] 난수값 생성을 하는 random integer from to블록 사용 / [04:14] 정답을 생성하는 기능이 필요한 경우 / [04:59] 어플리 케이션 처음 실행할 때의 동작 Initialize라는 이벤트블록 사용 / [05:30] 리셋 버튼을 클릭했을 때의 동작 / [06:00] 힌트버튼을 눌렀을 때 생성된 정답값 표시 / [06:29] 문자열을 합치는 기능의 join블록 사용 / [07:25] 에뮬레이터 확인 / [08:22] 힌트버튼의 동작 변경 / [09:03] if then의 조건문 사용 / [09:46] 참일 경우 힌트값 라벨로 표시 / [10:03] visible을 설정할 수 있는 세터블록 연결 / [10:33] if조건이 거짓일 경우의 도작 / [12:03] 에뮬레이터 확인 / [13:00] input버튼을 눌렀을 경우 정답과 비교한 결과를 표시한 부분 / [13:22] 예외부분 만들기 / [14:03] 경고 팝업창 / [14:48] 조건 입력 / [15:13] 숫자인지 확인하는 블록 사용 / [15:41] 문자열의 길이를 확인하는 length블록 사용 / [17:03] and연산 사용 / [17:48] 해당 조건이 거짓일 경우에 경고창을 띄우도록 설정 / [18:15] 에뮬레이터 확인 / [18:55] 입력한 숫자와 정답과 비교하는 부분 / [19:37] 문자열을 입력받아 각각의 자리수에 맞도록 분리하는 부분 만들기 / [19:55] 문자열 분리를 위해 segment블록 사용 / [20:47] 첫번째 숫자 추출 / [21:06] 지역변수 생성 / [21:37] 저장된 digit변수값과 첫번째 숫자의 정답과 비교 / [22:11] Logic이 아닌 Math의 비교블록 사용 / [22:56] 조건문 만들기 / [23:48] 조건이 맞았을 때의 동작 / [24:41] 증가를 위해 Math의 더하기블록 사용 / [25:51] 볼과 아웃 조건 입력 / [26:15] 볼인 경우의 조건을 만들기위해 else if사용 / [27:55] 세번째 정답과 비교하는 부분 / [28:22] else if를 사용해 조건 추가 생성 / [29:40] 아웃인 경우의 조건을 만들기위해 else사용 / [30:18] 블록을 복사해 변수를 아웃으로 변경 / [31:11] 전체 블록을 복사하여 값만 변경하여 조건 만들기 / [32:37] 전역변수의 경우 변수 이름이 달라야 사용 / [34:06] 스트라이크, 볼, 아웃값을 라벨로 표시 / [34:52] 3개의 전역변수 0으로 초기화 / [36:15] 에뮬레이터를 통해 야구게임 실행 / [37:30] 프로그램의 오류 살펴보기 / [38:50] 조건문의 순서 변경 / [39:59] 에뮬레이터 확인 / [40:22] 자리수별로 비교한 부분 함수로 만들기 / [41:07] Procedures블록을 사용해 함수 만들기 / [42:22] 함수를 차례대로 호출 / [43:42] 블록 배열

09 영단어 학습 어플리케이션 개발
앱 인벤터를 사용해서 영단어 학습 어플리케이션을 개발합니다.
42분
책갈피 : [00:06] 영단어 학습 어플리케이션 만들기 / [00:33] 각각의 기능의 세부 UI는 해당 버튼을 눌렀을 경우에 표시 / [00:49] 레이아웃 컴포넌트 활용 / [01:26] 레이아웃 컴포넌트의 초기 상태는 hidden으로 설정 / [02:00] 영단어 추가 기능 블록으로 만들기 / [02:45] 2개의 리스트에 해당하는 전역변수 생성 / [03:05] create empty list블록 사용해서 리스트 생성 / [03:23] 영단어 추가 버튼을 눌렀을 때 기능 / [03:42] visible속성을 참값으로 설정 / [04:15] 단어와 뜻을 입력하고 단어를 리스트에 추가하는 기능 / [04:46] add items to list블록 사용 / [05:45] 단어 검색 버튼을 눌렀을 때 기능 / [06:10] 해당하는 아이템값을 라벨로 표시 / [06:46] select list item과 index in list블록 조합해서 사용 / [07:46] 텍스트박스를 통해 찾을 단어 입력 / [08:11] 결과를 보여주는 라벨에 뜻 표시 / [08:28] 찾고자 하는 단어가 없을 경우 처리의 조건문 / [09:05] 리스트안에 특정 값이 있는지 확인하는 블록 사용 / [09:56] 단어가 없을 경우 경고창 띄우기 / [10:39] 에뮬레이터 확인 / [11:58] 영단어 출력 버튼의 기능 / [13:00] 단어 리스트를 출력할 수 있는 UI만 보이도록 설정 / [13:41] 리스트의 값 라벨로 표시 / [13:54] word와 meaning의 텍스트값 / [14:20] 리스트를 하나씩 확인하는 for each item in list블록 사용 / [14:35] 단어리스트 확인 / [15:00] 문자열을 합치기위해 join블록 사용 / [15:16] 지역변수 생성 / [16:18] 줄을 바꿀 수 있는 문자 추가 / [17:41] 에뮬레이터 확인 / [18:55] 단어 리스트와 동일한 방법으로 뜻 리스트 동작 설정 / [19:36] 에뮬레이터 확인 / [19:52] 영단어 퀴즈 버튼의 기능 / [21:02] 퀴즈에 관련된 레이아웃만 보이게 설정 / [21:26] 퀴즈의 기능 만들기 / [21:56] 내부에서 사용하는 지역변수 선언 / [22:41] 빈 리스트로 초기화 / [23:22] 문제와 정답을 저장할 변수 만들기 / [23:56] 랜덤으로 정답의 위치를 정하기 위해 지역변수 선언 / [25:07] pick a random item블록 사용 / [26:11] index in list thing블록 사용 / [26:44] 문제와 보기를 표시하는 기능을 위해 함수 생성 / [28:29] 정답에 해당하는 아이템 후보리스트에서 제외 / [28:41] remove블록 사용 / [29:15] 함수 내에서 변수 사용 / [30:30] 3개의 보기 임의로 생성 / [30:41] 반복문 사용 / [31:44] 랜덤으로 선택된 보기를 저장할 지역변수 만들기 / [32:13] 리스트에 아이템 추가 / [33:52] 정답 보기리스트에 입력 / [34:52] 특정 위치에 아이템 삽입 / [36:15] 문제를 화면에 표시하는 함수 생성 / [37:04] 문자열 라벨로 표시 / [38:52] select list item블록 연결 / [40:23] 보기 사이의 간격을 띄우기 위한 문자열 추가 / [41:00] 에뮬레이터 확인

10 저장 공간과 데이터 베이스
앱 인벤터에서 로컬 및 온라인으로 데이터를 저장하는 방법을 익힙니다.
38분
책갈피 : [00:06] 영단어 학습 어플리케이션 완성 / [00:31] 정답 확인, 다음 문제, 학습 통계의 버튼 동작 기능 / [01:19] 추가한 3개의 전역변수 / [01:37] 정답 확인을 위한 버튼기능 만들기 / [02:15] 맞았는지 틀렸는지 확인하는 기능을 위해 조건문 추가 / [02:45] 정답일 경우 팝업창 띄우기 / [03:07] Notifier추가 후 ShowAlert블록 사용 / [03:46] 정답이 아닌 경우를 위한 else문 추가 / [04:30] 임의로 생성한 정답보기를 정답 변수에 입력 / [05:15] 다음 문제 버튼의 기능 / [06:00] 학습 통계 버튼의 기능 / [06:30] 문자열 하나로 연결해서 라벨로 입력 / [07:11] 에뮬레이터 확인 / [08:24] 입력한 자료를 영구적으로 저장하는 방법 / [09:31] Storage항목의 컴포넌트 / [09:46] File / [10:11] 블록으로만 기능 제공 / [10:22] 파일에 데이터를 저장하고 불러오는 버튼 추가 / [11:05] 파일 저장, 파일 읽기의 버튼 생성 / [11:31] File컴포넌트의 지원 블록 / [12:01] 저장하는 기능을 위한 블록 삽입 / [12:37] file컴포넌트는 문자열만 저장 가능 / [12:56] 프린트 블록 확인 / [13:58] 전역변수 생성 / [14:24] 화면 출력을 위해 저장되었던 문자열이 파일로 저장 / [14:41] 파일을 읽을 수 있는 기능을 위해 ReadFrom블록 사용 / [15:22] file컴포넌트의 GotText이벤트블록 사용 / [16:14] 단어를 표시하는 라벨과 텍스트 문자열 값과 연결 / [16:25] 에뮬레이터 확인 / [17:03] 에뮬레이터 재실행 확인 / [18:02] 리스트 저장 방법 실습 / [18:11] TinyDB 컴포넌트 / [18:37] 여러 기능의 블록 / [18:48] tag의 개념 / [19:41] GetTags블록 / [20:32] 저장된 데이터를 TinyDB로 읽어 리스트로 저장하는 기능 추가 / [21:06] DB 저장 버튼의 기능 / [21:32] 저장할 데이터의 tag지정 / [22:33] DB 읽기 버튼의 기능 / [22:55] tag이름 동일하게 지정 / [24:26] DB에서 리스트로 읽기 위해 각각의 리스트 비우기 / [24:52] 에뮬레이터 확인 / [25:56] 프로그램이 초기화될 때 이벤트 블록 사용 / [26:26] 애뮬레이터 재실행 / [27:26] 외부에 인터넷을 통해 저장하는 방법 / [27:52] TinyWebDB 컴포넌트 / [28:48] upload버튼의 기능 / [29:11] TinyWebDB 컴포넌트에서 제공하는 블록 / [30:48] 자료를 저장할 수 있는 블록 사용 / [31:26] 네트워크 전송상태 확인을 위해 라벨 추가 / [31:56] 업로드가 완료될 경우 발생하는 이벤트블록 / [32:21] 다운로드기능 추가 / [32:43] TinyDB와 다른점 / [33:12] tagFromWebDB변수 / [33:52] 하나 이상의 tag를 가지고있는 데이터를 동시에 받을 경우 / [34:21] 리스트를 담고있는 2개의 변수에 각각 따로 저장 / [34:49] 문자열을 비교하는 compare블록 사용 / [35:51] 데이터는 tag를 통해 확인 / [36:50] 에뮬레이터 확인

11 그래픽 도구
앱 인벤터에서 캔버스 컴포넌트를 사용해서 점과 선을 그리는 방법을 익힙니다.
46분
책갈피 : [00:05] 캔버스 컴포넌트 실습 / [00:36] Drawing and Animation / [00:53] 캔버스 컴포넌트의 속성 / [01:19] 레이아웃 컴포넌트를 이용해서 캔버스 컴포넌트 위치 변경 / [02:12] 점을 찍을 수 있는 기능 / [02:53] Canvas컴포넌트의 블록 / [03:20] Touched 이벤트블록 사용 / [03:51] DrawPoint 메소드블록 사용 / [04:27] x, y의 좌표 영역 / [05:24] 좌표값을 읽기위한 라벨 추가 / [06:00] 에뮬레이터 확인 / [06:28] 캔버스 배경색 변경 / [06:46] 좌표값 표시와 점찍기 버튼의 기능 / [07:14] 문자열을 합치는 join블록 사용 / [07:39] 전역변수 생성 / [08:22] 조건문을 추가해 해당 값이 1일 때만 점을 찍도록 설정 / [08:52] 에뮬레이터 확인 / [09:26] 점의 색상을 바꾸는 기능 / [09:43] 색상 각각의 버튼 추가 / [10:26] 각각의 버튼을 클릭했을 때의 기능 / [11:09] 동일한 기능의 작업은 복사해서 사용 / [11:39] 에뮬레이터 확인 / [12:03] 배경색도 원하는 색상으로 변경 / [12:22] 점의 크기를 바꾸는 기능 / [12:39] DrawCircle 메소드블록 사용 / [13:11] r값은 사용자 입력값 사용 / [14:03] Slider컴포넌트 사용 / [14:35] 속성값 설정 / [15:35] slider 실제값을 사용자가 확인할 수 있게 라벨 추가 / [16:02] 에뮬레이터 확인 / [16:37] 캔버스에 글자를 표시할 수 있도록 설정 / [17:26] 수직 레이아웃 컴포넌트에 점찍기에 관련된 UI 하나로 묶기 / [17:45] 텍스트 컴포넌트도 레이아웃을 이용해 그룹화 / [18:11] 해당 버튼을 누를 때 해당 레이아웃 표시 / [19:11] function전역변수 값 2로 변경 / [19:36] 조건문을 추가해 텍스트기능 설정 / [19:56] DrawText 메소드블록 사용 / [20:32] 에뮬레이터 확인 / [21:36] 되돌리기 기능 / [21:52] 점을 찍을 때에만 되돌리기 기능 수행 / [22:22] 2개의 리스트변수 초기화 / [23:33] 점을 찍었을 때 동작에 리스트를 추가하기 위한 블록 추가 / [24:00] x리스트와 y리스트값 입력 / [24:48] 되돌리기 버튼을 눌렀을 때의 동작 / [25:18] select블록 사용 / [26:15] 점의 색을 배경색으로 설정하는 이유 / [27:25] 되돌리기 기능 후 점의 색을 원래 색으로 복구하는 기능 / [28:51] remove블록 사용 / [29:33] 해당 인덱스 값을 빼주는 기능 / [30:00] 에뮬레이터 확인 / [31:02] 되돌리기를 했을 때 에러가 발생하는 이유 / [31:26] 오류를 막기위한 조건문 / [32:00] 선그리기 기능 추가 / [32:22] DrawLine 메소드블록 사용 / [33:13] Dragged 이벤트블록 사용 / [33:50] 방사형으로 선그리기 / [35:36] 해당값 조건문을 통해 확인 / [36:21] 에뮬레이터 확인 / [37:06] 연속형으로 선그리기 / [37:45] 에뮬레이터 확인 / [38:19] 캔버스에 그린 점,선,글자를 한번에 지우는 기능 / [38:43] Clear 메소드블록 사용 / [39:22] 캔버스에 그린 그림을 저장하고 불러오는 기능 / [40:12] 경로를 표시할 수 있는 라벨 추가 / [40:30] 저장버튼을 눌렀을 때의 동작 / [40:52] SaveAs 메소드블록 사용 / [41:22] 파일 불러오기 버튼을 눌렀을 때의 동작 / [42:15] file버튼을 클릭했을 때 해당 레이아웃 보여주기 / [43:12] 에뮬레이터 확인 / [44:38] 문자열 합치기 블록 사용

12 애니메이션 도구
앱 인벤터에서 제공하는 애니메이션 컴포넌트를 사용해서 블록 격파 게임을 만들어 봅니다.
43분
책갈피 : [00:05] 애니메이션 관련 컴포넌트 사용 / [00:23] Canvas컴포넌트 내에서 사용 / [01:19] Ball컴포넌트 사용 / [01:38] 속성값 변경 / [02:12] interval과 speed속성 / [03:00] Heading속성값 / [03:35] 에뮬레이터 실행 / [04:15] 볼 컴포넌트가 캔버스 영역 끝에 도달했을 때의 동작 / [04:42] EdgeReached 이벤트블록 사용 / [05:30] Bounce 메소드블록 사용 / [06:00] 에뮬레이터 실행 / [06:54] ImageSprite컴포넌트 사용 / [07:55] 속도 지정 / [08:11] ImageSprite컴포넌트를 마우스 드래그 방향으로 움직이도록 만들기 / [08:28] Dragged 이벤트블록 사용 / [08:52] MoveTo 메소드블록 사용 / [09:09] 에뮬레이터 확인 / [10:11] 2개의 애니메이션 객체가 부딪쳤을 때의 동작 / [10:39] CollidedWith블록 사용 / [11:01] 볼 컴포넌트가 부딪쳤을 때의 동작 / [11:56] Bounce 메소드블록 추가 / [12:39] 에뮬레이터 확인 / [13:09] 볼 컴포넌트가 캔버스 바닥에 부딪쳤을 때의 동작 / [13:37] edge값을 확인할 조건문 / [14:46] 볼이 멈췄을 때 마우스로 클릭해서 움직이게 만드는 기능 / [15:37] 에뮬레이터 확인 / [16:07] 버튼을 만들어 버튼에 움직이는 기능 추가 / [16:59] 버튼을 눌렀을 때의 기능 / [17:21] ImageSprite의 위치를 읽기위해 x, y 게터블록 사용 / [17:56] MoveTo 메소드블록 사용 / [19:52] 예외처리 / [21:11] 크기를 비교하는 블록 사용 / [22:37] 에뮬레이터 확인 / [23:07] bar모양의 이미지를 추가해서 기능 추가 / [24:02] 컴포넌트를 구분하기 위해 이름 변경 / [24:37] 어떤 객체와 부딪쳤는지 확인을 위한 조건문 추가 / [25:25] 비교를 위해 비교블록 사용 / [26:11] enermy컴포넌트를 새로운 위치로 옮기기 위해 MoveTo블록 사용 / [26:33] 랜덤함수 사용 / [27:03] 에뮬레이터 확인 / [27:37] 점수 계산 추가 / [28:07] 라벨을 2개 추가해 score와 life표시 / [28:30] 점수가 증가하고 life값이 줄어드는 기능 / [28:44] 2개의 전역변수 추가 / [29:07] score증가 기능 / [29:56] life값 줄이는 기능 / [30:36] 에뮬레이터 확인 / [31:11] 게임오버 팝업창으로 띄우기 / [31:22] Notifier컴포넌트 추가 / [31:55] 플레이어 개수가 0보다 작거나 같으면 팝업창 띄우기 / [32:50] 점수가 늘어나면 난이도를 위해 볼의 속도 증가시키기 / [33:20] 속도를 높이는 조건 만들기 / [33:52] modulo연산 사용 / [35:00] 에뮬레이터 확인 / [35:49] 게임오버가 됐을 때 속도 다시 초기화 / [36:15] 에뮬레이터 확인 / [36:52] 하이스코어 저장하는 기능 / [37:19] 변수 선언 / [37:58] 스코어가 증가하면 조건문 추가 / [38:30] 바뀐 하이스코어값 라벨로 표시 / [39:15] 하이스코어값을 영구적으로 보관하고 어플리케이션 실행 때마다 표시 / [39:34] TinyDB컴포넌트 사용 / [40:05] tag값 추가 / [40:27] 초기화를 했을 때의 이벤트블록 사용 / [41:14] 에뮬레이터 실행 / [41:42] 초기화 하기위한 0값으로 표시 / [42:05] 에뮬레이터 확인 / [42:44] 어플리케이션을 재실행 시켰을 경우

13 타이머 이벤트 part1
앱 인벤터에서 제공하는 클럭 컴포넌트를 사용해서 타이머 이벤트를 발생시킵니다.
47분
책갈피 : [00:00] Timer 컴포넌트를 활용한 애니메이션 / [00:34] Ball 컴포넌트 / [00:57] Clock 삽입 / [01:27] Clock 컴포넌트 속성 설정 / [01:40] TimerEnabled / [01:47] TimerInterval / [02:03] Ball 컴포넌트 동작 설정 / [02:23] Ball 컴포넌트 위치 설정 / [02:56] 좌표값 설정 / [03:13] Timer 속성 블럭 삽입 / [03:23] Timer 속도 설정 / [03:57] Timer 이벤트 블록 / [04:23] MoveTo / [04:30] 좌표값 설정 / [05:42] Stop 버튼 눌렀을때 동작 멈추기 / [06:06] TimerEnabled / [06:18] 에뮬레이터 확인 / [07:23] Ball이 점으로 된 경로를 따라가는 애니메이션 만들기 / [08:29] Clock 컴포넌트 속성 설정 / [08:44] 좌표값 저장 리스트 초기화 / [09:09] Index 변수 선언 / [09:30] Touched 이벤트 블록을 이용한 점 색상 설정 / [09:49] DrawCircle / [10:08] 죄표값 리스트에 넣기 / [10:33] Index 값 증가 / [10:50] 점 색깔 설정 / [10:59] 되돌리기 버튼 기능 구현 / [11:08] 조건문 (if) / [11:59] Canvas 배경색 변경 / [12:24] 좌표값 제거(Remove) / [12:42] Path index 변수 감소 / [13:08] Timer를 이용한 점 연결하기 / [13:44] Move index 변수 추가 / [14:16] start 버튼을 눌렀을때 타이머 동작 설정 / [14:56] Clock 컴포넌트에 타이머가 동작 설정 / [15:18] Ball 컴포넌트 위치 설정 / [16:10] Move index 값 증가 / [16:43] Move index 조건 추가 / [17:25] else문 추가 후 Timer 비활성화 / [17:41] 에뮬레이터 확인 / [18:48] Ball 위치값 수정 / [19:16] 뺄셈 블록 추가 / [19:43] 에뮬레이터 확인 / [19:55] Undo 기능 / [20:15] 교통 시뮬레이션 어플리케이션 제작 / [20:56] Media 추가 / [21:14] ImageSprite 컴포넌트 지정 / [21:32] 컴포넌트 이름 변경 / [21:39] 자동차의 크기와 시작 위치 설정 / [22:47] ImageSprite 컴포넌트 추가 / [22:58] 횡단보도의 크기와 시작 위치 설정 / [22:28] 선그리기 블록을 이용한 도로 그리기 / [23:58] Initialize 블록 삽입 / [24:12] 에뮬레이터 확인 / [24:33] ImageSprite 컴포넌트 이동 설정 / [24:52] 자동차 속도 각각 지정하기 / [25:33] 에뮬레이터 확인 / [25:53] 연속적으로 자동차가 움직이도록 만들기 / [26:11] EdgeReached 블록을 이용해 도달한 위치 확인 / [26:32] 조건문 추가 / [27:33] 에뮬레이터 학인 / [27:52] 신호등 만들기 / [28:22] DrawCircle 블록으로 원 그리기 / [29:22] 좌표값과 원의 반지름 지정 / [29:42] PaintColor 블록으로 신호등 색상 지정 / [30:02] 에뮬레이터 확인 / [30:11] 시작 버튼을 누르면 신호등 동작시키기 / [30:40] 신호등에 빨간 램프 동작시키기 / [31:58] 노란 램프, 녹색 램프로 변경 / [34:15] 함수 생성 후 모듈화 / [35:05] 함수 내부 추가 / [38:52] 에뮬레이터 확인 / [39:30] 신호등이 노란색, 녹색불일때 자동차 정지 설정 / [40:24] CollidedWith 블록으로 충돌 감지 / [46:18] 에뮬레이터 확인

14 타이머 이벤트 part2
앱 인벤터에서 제공하는 클럭 컴포넌트를 사용해서 스탑워치 어플리케이션을 만듭니다.
49분
책갈피 : [00:00] 스탑워치 어플리케이션 만들기 / [00:08] UI 구성 살펴보기 / [01:23] Colck 컴포넌트 추가 / [01:38] Colck 컴포넌트 동작 설정 / [02:13] 시작 버튼을 눌렀을때 스탑워치 동작 시작 / [02:40] 멈춤 버튼을 눌렀을때 스탑워치 동작 중지 / [03:01] 타이머가 동작될때 세부동작 설정 / [03:23] 전역변수 선언 / [04:01] msec 설정하는 이유 / [05:05] msec 증가시키기 / [05:40] 조건 추가하기 / [06:45] sec 증가시키기 / [07:14] 조건이 거짓인 경우 라벨로 표시하기 / [07:57] msec 초기화 될 경우 라벨로 표시하기 / [08:24] sec 초기화 될 경우 라벨로 표시하기 / [10:11] 한자리 숫자일 경우 두자리로 표시되도록 설정 / [11:40] 문자열을 합쳐주는 join 블록 / [12:08] 60분이 되면 시간을 증가시켜주기 / [13:49] 0으로 초기화될때 라벨로 표시하기 / [14:50] 조건문 추가 / [17:19] 리셋 버튼을 눌렀을때 스탑워치 초기화 / [17:45] 라벨값을 0으로 표시하기 / [18:25] 에뮬레이터 확인 / [19:32] LAP 버튼을 눌렀을때 LAP time 표시하기 / [20:23] 시간과 시간 사이의 차이값 구하기 / [20:43] 함수 추가 / [21:33] 하나의 시간 단위로 환산하기 / [22:38] 전체 시간 계산 시 주의해야할 점 / [25:22] 범용적 사용할 수 있는 함수 생성 / [25:48] 변수 추가 / [26:58] LAP 버튼을 눌렀을때 / [27:29] 전역변수 추가 / [28:05] 블록 내에서 사용할 지역변수 추가 / [28:37] 현재 시간 저장하기 / [28:51] Procedure 블록 / [30:02] delta time 블록 / [30:48] 현재 시간을 last time에 저장 / [33:15] 구한 시간을 라벨로 표시하기 / [34:00] 결과를 내보낼 수 있는 블록 / [34:44] 입력받은 값을 시간으로 변경하기 / [35:08] remainder 블록 사용 / [36:24] 몇분인지 확인할 수 있는 함수 추가 / [37:06] remainder 블록 사용 / [37:41] quotient 블록 사용 / [38:12] 몇초인지 확인할 수 있는 함수 추가 / [38:42] remainder 블록 사용 / [39:14] quotient 블록 사용 / [40:24] 밀리초를 확인할 수 있는 함수 추가 / [40:47] remainder 블록 사용 / [41:50] 쪼갠 시간을 라벨로 표시하는데 사용하기 / [42:25] laptime 표시할 함수 추가 / [43:00] 문자열을 합치는 블록 사용 (join) / [43:44] 해당하는 함수의 입력변수 추가 / [44:23] 문자열 변수를 라벨로 표시하기 / [44:38] LAP 버튼을 눌렀을때 확인 / [45:22] 변환함수 연결하기 / [45:42] delta time 값 입력 / [46:10] 에뮬레이터 확인 / [46:58] split 버튼을 눌렀을때 현재시간 표시하기 / [47:33] 표시되는 라벨 변경하기 / [47:52] 입력받은 값을 현재시간으로 넣어주기 / [48:25] 에뮬레이터 확인

15 타이머 이벤트 part3
앱 인벤터에서 제공하는 클럭 컴포넌트를 사용해서 시계 어플리케이션을 만듭니다.
47분
책갈피 : [00:00] 시계 및 알람 어플리케이션 만들기 / [00:10] 전체적인 구성 살펴보기 / [00:20] 라벨 속성 / [00:44] 시계 구성 살펴보기 / [01:30] TimePicker 컴포넌트 / [02:15] 전역변수 선언 / [02:51] AfterTimeSet 블록으로 시간과 분 입력받기 / [04:03] 고친 시간을 라벨로 표시하기 / [05:15] 콜론 입력하기 / [06:07] AM, PM 표시 구분하기 / [07:09] 12시간제로 표시하기 / [08:33] 시계를 움직이게 설정하기 / [09:27] 타이머가 동작될때 시계가 움직이는 기능 / [10:27] 시간을 변경하는 블록 / [11:28] 시계를 라벨로 표시하기 / [12:00] 에뮬레이터 확인 / [13:06] 현재 시간을 바로 표시하기 / [13:23] Colck 컴포넌트 추가 / [14:33] 시간을 출력하는 함수 / [15:24] Now 블록 / [15:42] 변경된 시간으로 계속 동작시키기 / [16:25] 에뮬레이터 확인 / [16:55] 알람 기능 추가하기 / [17:49] 설정된 알람 시간을 저장하는 변수 추가 / [18:13] 알람시간을 라벨로 표시하기 / [19:45] 현재 시간과 비교해서 알람 동작 여부 파악 / [20:26] 시간을 비교하는 기능 구현 / [21:28] And 블록을 이용한 모두가 참인 블록 설정 / [22:49] on일 경우에만 동작하도록 기능 구현하기 / [23:44] 알람이 켜진것을 확인하기 위해 깜빡거리는 효과주기 / [24:28] 캔버스 색상 변경하기 / [25:32] 조건문 추가 / [25:41] modulo 연산 / [26:26] 캔버스 배경색 설정 / [28:04] 알람 타이머 동작 설정 / [28:41] 0보다 클 경우에만 동작하도록 설정 / [29:41] 알람 타이머 동작 중지 / [30:19] 알람 시간을 나타내는 라벨 표시 / [31:04] 에뮬레이터 확인 / [32:05] 타이머 기능 추가하기 / [33:05] 타이머 스타트 버튼을 눌렀을때 설정 / [33:22] 전역변수 선언 / [34:11] Clock 컴포넌트 추가 / [34:51] 타이머 동작 만들기 / [37:04] 타이머 완료 조건 추가 / [37:45] And 블록을 이용한 모두가 참인 블록 설정 / [38:26] 타이머 완료 표시 (Notifier 컴포넌트) / [39:14] 타이머 동작 중지 / [39:39] 타이머 라벨로 표시하기 / [41:12] 에뮬레이터 확인 / [42:50] Clock 컴포넌트 부가기능1 / [43:25] 일정한 형식을 갖춘 현재시간 표시 / [44:37] 일정한 형식을 갖춘 현재날짜 표시 / [45:11] 에뮬레이터 확인 / [45:36] Clock 컴포넌트 부가기능2

16 연락처 관리
앱 인벤터에서 제공하는 전화 관련 컴포넌트를 사용해서 연락처 어플리케이션을 만듭니다.
47분
책갈피 : [00:00] 전화관련 컴포넌트 / [00:36] UI 구성 살펴보기 / [00:53] 컴포넌트 이름 변경 / [01:11] PhoneNumberPicker 컴포넌트 / [02:01] ListPicker 컴포넌트 / [02:33] 즐겨찾기 추가 버튼 기능 구현 / [02:45] 전역변수 선언 / [03:00] Lists 블록 추가 / [03:30] PhoneNumberPicker 컴포넌트 추가된 기능 / [03:50] PhoneNumberPicker 컴포넌트 속성 블록 / [04:05] AfterPicking 이벤트 블록 추가 / [04:27] 리스트에 아이템 추가하기 / [04:50] ContactName과 PhoneNumber 블록 / [05:28] 조건 블록 추가 / [05:37] 리스트에 연락처 정보가 있는지 확인 / [06:12] 리스트에 이름이 있는지 확인 / [06:32] Notifier 컴포넌트 경고 메세지 넣기 / [06:59] 에뮬레이터 확인 / [08:45] 주소록에 연락처 추가하는 방법 / [09:55] 에뮬레이터 재실행하기 / [10:20] 즐겨찾기 삭제 버튼 기능 구현 / [11:07] 리스트에 표시될 내용 정의 / [11:16] BeforePicking 이벤트 블록 추가 / [11:25] 이름을 리스트로 표시할 수 있도록 정의 / [12:15] 에뮬레이터 확인 / [13:16] 즐겨찾기 리스트에서 삭제하는 기능 / [13:30] AfterPicking 이벤트 블록 추가 / [13:38] Remove 블록 추가 / [14:10] SelectionIndex 블록으로 특정 위치 지정 / [15:22] 에뮬레이터 확인 / [16:21] 즐겨찾기 버튼 추가 / [16:46] AfterPicking 이벤트 블록 추가 / [17:10] 이름을 리스트로 표시할 수 있도록 정의 / [17:29] ShowFilterBar 블록으로 이름 검색 / [17:55] 특정 연락처를 선택했을때 전화걸기 기능 / [18:15] PhoneCall 컴포넌트 / [18:59] 전화번호 정보를 담고 있는 변수 추가 / [19:30] 즐겨찾기에서 전화번호 추출하기 / [21:02] Make PhoneCall 블록 추가 / [21:15] 전화번호 속성 변경 / [21:40] 에뮬레이터 확인 / [22:27] 최근 통화 버튼 기능 구현 / [22:49] 전화통화 정보를 저장할 변수 추가 / [23:06] 최근통화 버튼을 눌렀을때 통화목록 표시하기 / [23:37] 최근 통화목록을 저장하고 있는 리스트를 엘리먼트로 저장 / [23:51] 전화번호 정보를 이용한 전화걸기 / [25:03] 전화를 걸때마다 최근통화 리스트에 전화번호 추가하기 / [26:40] 에뮬레이터 확인 / [28:11] 전화 통계 버튼 기능 구현 / [28:29] 전역변수 선언 / [29:12] 전화번호 통화 횟수 증가 함수 추가 / [30:53] 리스트에 통화한 번호 추가 / [31:50] 지역 변수 추가해서 통화 횟수 증가 / [32:25] Select list item 블록 / [33:07] index in list 블록으로 해당하는 위치 찾기 / [34:50] replace list item 블록으로 통화 횟수 값 바꾸기 / [36:40] 함수 호출하는 부분 생성 / [37:10] 전화통계 버튼을 눌렀을때 통화 횟수 라벨로 표시하기 / [38:04] for each item in list 블록 / [39:10] join 블록 / [40:18] Select list item 블록 / [42:42] 줄바꿈 기능 블록 / [43:00] 라벨 텍스트 연결

17 네트워크 도구 part1
앱 인벤터에서 제공하는 WebViewer 컴포넌트를 사용해서 웹 브라우저 어플리케이션을 만들고 ActivityStarter 컴포넌트를 사용해서 다른 어플리케이션들과 데이터를 교환하도록 합니다.
50분
책갈피 : [00:00] WebViewer 컴포넌트 / [00:46] WebViewer 컴포넌트 속성 / [00:57] UI 구성 살펴보기 / [03:03] WebViewer 컴포넌트 기능 살펴보기 / [03:35] 속성 블록 살펴보기 / [03:59] 인터넷 브라우저 만들기 / [04:07] 주소 입력하기 / [04:40] 버튼을 눌렀을때 이전페이지로 갈 수 있는 메소드 블록 / [04:52] 버튼을 눌렀을때 다음페이지로 갈 수 있는 메소드 블록 / [05:09] 버튼을 눌렀을때 시작페이지로 갈 수 있는 메소드 블록 / [05:23] 어플리케이션이 시작됐을때 시작페이지 설정 / [06:15] 이전페이지 이동이 불가능할때 경고 메세지 띄우기 / [06:44] CanGoBack 블록 / [07:05] 조건문 추가 / [07:37] 다음페이지 이동이 불가능할때 경고 메세지 띄우기 / [07:59] 북마크 버튼을 눌렀을때 저장된 내용을 리스트로 표시하기 / [08:29] BeforePicking 이벤트 블록 추가 / [08:41] 변수 생성 / [09:11] 표시될 아이템으로 설정하기 / [09:38] 특정 북마크를 선택했을때 다음 동작 설정하기 / [10:10] Select list item 블록 / [10:52] 북마크에 저장될 페이지 설정 / [11:14] 현재 페이지의 주소값과 해당 페이지의 이름 확인 / [11:52] add item to list / [12:20] 중복되었는지 확인 후 경고 메세지 띄우기 / [13:15] 조건문 추가 / [13:27] 참을 거짓으로, 거짓을 참으로 변경하기 (not 블록) / [14:02] 홈페이지가 추가됐을 경우 메세지 표시하기 / [14:26] 에뮬레이터 확인 / [16:21] 검색 기능 구현 / [16:40] Spinner 컴포넌트 / [17:20] Spinner 컴포넌트 기능 살펴보기 / [17:52] 속성 블록 살펴보기 / [18:50] 검색 엔진 리스트 저장 및 변수 선언 / [19:02] 검색 버튼을 눌렀을때의 동작 설정 / [19:20] 홈페이지로 이동할 주소 만들기 / [19:46] join 블록 / [20:18] 변수 선언 / [20:47] 검색 엔진 리스트 초기화 / [22:01] 리스트 값 추가 (make a list 블록) / [23:04] 문자열 변수 입력 / [23:22] 선택한 검색엔진에 따른 검색 주소 만들기 / [24:01] 조건문 추가 / [24:21] 문자열 비교(compare texts 블록) / [25:23] 검색엔진 주소값 확인 / [26:15] 에뮬레이터 확인 / [27:12] ActivityStarter 컴포넌트 / [28:05] UI 구성 살펴보기 / [29:49] ActivityStarterCALL 컴포넌트 / [29:59] ActivityStarterCALL 속성 / [31:26] Action 값 설정 / [32:08] DataUri / [32:39] ActivityStarterCALL 기능 살펴보기 / [33:12] 속성 블록 살펴보기 / [33:30] 전화번호와 미리 약속된 문구 입력 / [34:22] StartActivity / [34:40] 에뮬레이터 확인 / [35:05] 약속된 문구 / [35:21] WebViewer를 눌렀을때 DataURI 값 설정 / [37:24] ActivityStarterBrowser 속성 / [38:02] Action 값 설정 / [38:38] 에뮬레이터 확인 / [38:59] 구글맵 어플리케이션 실행 / [39:22] ActivityStarter_MAP 속성 / [39:50] Action 값 설정 / [40:04] Class 정보와 Package 정보 / [41:45] DataUri / [42:02] 검색버튼을 눌렀을때 동작 설정 / [42:25] 미리 약속된 문구 입력 / [42:53] join 블록으로 문자열 합치기 / [44:25] 에뮬레이터 확인 / [44:57] ActivityStarterEmail / [45:15] ActivityStarterEmail 속성 / [45:39] EmailPicker / [46:18] DataUri / [46:49] join 블록으로 문자열 합치기 / [48:32] 에뮬레이터 확인

18 네트워크 도구 part2
앱 인벤터에서 제공하는 Web 컴포넌트를 사용해서 인터넷에서 주식 정보 및 뉴스 정보를 받아 표시하도록 합니다.
49분
책갈피 : [00:00] 안드로이드 개발자 페이지 / [01:10] 예제 확인 / [01:57] Library / [02:16] 컴포넌트 속성 설명 / [03:32] Web 컴포넌트를 사용해서 인터넷에서 주식 정보 표시하기 / [03:45] UI 구성 살펴보기 / [04:38] 라벨 속성 / [05:00] Web 컴포넌트와 Clock 컴포넌트 삽입 / [05:33] 갱신 버튼을 클릭했을때, 어플리케이션이 처음 시작됐을때, 타이머가 동작됐을때 구현 / [06:03] 함수 생성 / [06:23] 타이머 초기화 / [07:02] 시간 단위 변환 / [07:29] 타이머 켜기 / [08:06] 갱신버튼을 누를때 갱신 주기 변경하기 / [08:23] 주식정보가 갱신됐을때 동작 설정 / [08:30] 갱신된 시간 라벨로 표시하기 / [08:46] 현재 시간 표시하기 / [09:16] Web 컴포넌트를 활용해 특정 서비스 신청하기 / [10:17] Url 값 만들기 / [10:22] 문자열 합치기(Join 블록) / [11:01] 주식 품목 값 받기 / [11:39] 변수 선언 / [12:00] 특정 문자 일괄적으로 변경하기 (replace all 블록) / [12:38] 주식을 표시하는 포맷 입력 / [13:50] 웹서비스 요청하기 (Get 블록) / [14:11] 요청된 결과 텍스트로 받기(GetText 블록) / [15:18] 조건문 추가 / [15:31] 라벨로 주식정보 표시하기 / [15:54] 에러 메세지 출력하기 / [16:34] 갱신시간 변경하기 / [16:46] 에뮬레이터 확인 / [17:23] Web 컴포넌트를 사용해서 인터넷에서 뉴스 정보 표시하기 / [18:15] Web 컴포넌트와 Clock 컴포넌트 삽입 / [18:28] 함수 생성 / [18:53] 타이머 설정 / [19:21] 타이머 주기 변경 및 타이머 활성화 / [19:30] 뉴스 정보 가져오기 / [19:50] 문자열 합치기(join 블록) / [20:22] 카테고리 값 합치기 / [20:50] 요청 url 만들기 / [21:18] 해당 서비스 요청하기(Get 블록) / [21:31] 뉴스기사 정보 라벨로 표시하기 / [21:46] 요청된 결과 텍스트로 받기(GetText 블록) / [22:00] 조건문 추가 / [22:38] 에뮬레이터 확인 / [23:33] 버튼에 텍스트로 넣어주기 / [24:07] 특정 키워드를 기준으로 문자 분류하기 / [24:43] 함수 선언 / [25:21] 변수 입력값 받기 / [25:39] 문자열 변수 선언 / [26:05] 결과 변수값 저장하기 / [26:11] 문자 분리하기(split 블럭) / [27:54] 분리된 문자를 해당 문자열로 저장하기 / [28:25] 조건문을 추가해서 리스트 갯수 확인하기 / [28:40] length of list 블록 / [29:10] 예외조건 추가 / [30:26] 두번째 아이템만 추출하기(select list item 블록) / [31:09] 에뮬레이터 확인 / [31:28] 제목만 추출하기 / [32:10] 변수 수정하기 / [32:56] select list item 블록 / [33:28] 문자 분리하기(split 블록) / [34:45] 뉴스에 대한 정보 분리하기 / [36:15] 뉴스제목을 버튼에 텍스트 값으로 변경하기 / [36:56] 함수의 입력 / [38:17] 추출 결과를 버튼 라벨로 넣어주기 / [38:45] 함수의 결과를 받는 블록(result 블록) / [40:02] 두번째 분리하기 / [40:47] 주소를 저장하는 문자열 변수 선언 / [42:15] 주소 내용 추출하기 / [42:36] 특정 문자를 일괄적으로 변경하기 / [43:33] replace all 블록 / [44:53] 주소 저장 / [45:30] 두번째 뉴스의 제목과 주소 추출하기 / [46:06] 세번째 뉴스의 제목과 주소 추출하기 / [46:24] 에뮬레이터 확인 / [46:50] 카테고리 변경 / [47:10] 실제 버튼을 눌렀을때 웹페이지 내용 표시 / [47:32] WebViewer 컴포넌트 삽입 / [48:33] 에뮬레이터 확인

19 도서 대여 어플리케이션 part1
앱 인벤터의 여러 컴포넌트를 종합적으로 사용해서 도서 대여 어플리케이션을 만들도록 합니다.
52분
책갈피 : [00:00] 도서 대여 어플리케이션 제작 / [00:20] UI 구성 살펴보기 / [00:55] 메인 메뉴 / [01:11] 회원관리 버튼 UI 구성 / [01:37] 레이아웃 컴포넌트로 구분해놓은 이유 / [02:40] 회원추가 UI 설명 / [03:52] 레이아웃 그룹화 / [04:09] 회원정보 입력 / [04:45] DatePinker 컴포넌트 / [04:58] Spinner 컴포넌트 / [05:11] ListPicker 컴포넌트 / [05:48] 회원삭제 UI 설명 / [06:07] 라벨 생성 / [06:18] 수평 레이아웃 배치 / [07:02] 레이아웃 숨김 여부 / [07:42] Designer 화면 / [08:06] 회원관리 버튼을 눌렀을때 동작 설정 / [08:34] UI 레이아웃 컴포넌트의 숨김, 표시 설정 / [09:45] 회원추가, 삭제 버튼의 숨김, 표시 설정 / [09:55] 회원추가 버튼을 눌렀을때 숨김, 표시 설정 / [10:15] 회원삭제 버튼을 눌렀을때 숨김, 표시 설정 / [10:29] 회원추가 버튼을 눌렀을때의 세부 속성 / [10:47] Spinner 컴포넌트로 성별 고르기 / [11:29] 주소 정보 읽어오기 / [11:51] 회원정보 입력 후 회원 추가하기 / [12:17] 회원정보를 올바르게 입력했는지 확인하기 위한 함수 선언 / [12:32] 회원정보와 관련된 리스트 입력 / [13:07] 메세지창 출력 / [13:21] 회원의 도여대서 횟수 초기화 / [13:57] 회원정보가 잘못되었을때 오류 메세지 출력 / [14:40] 전체를 체크하는 함수와 세부사항을 체크하는 함수 생성 / [15:07] 세부회원정보 변수 확인 / [16:12] 함수를 통해서 나온 결과 변수 / [17:00] 이름을 확인하는 함수 / [17:56] 라벨의 색깔 변경 / [18:40] 패스워드를 확인하는 함수 / [19:18] 라벨의 색깔 변경 / [19:25] 이메일을 확인하는 함수 / [19:53] 아이디를 확인하는 함수 / [21:18] 중복확인 버튼 기능 / [21:48] 아이디가 중복 되지 않을 경우 / [22:29] 아이디가 중복 될 경우 / [24:31] 생일을 확인하는 함수 / [25:17] DatePinker 컴포넌트 / [26:20] 성별을 확인하는 함수 / [26:29] Spinner 컴포넌트 / [27:00] 주소를 확인하는 함수 / [28:32] 회원정보를 리스트로 추가하는 함수 / [30:14] 주소와 성별을 선택할 수 있는 기능 추가 / [30:37] DatePinker 컴포넌트 / [31:59] Spinner 컴포넌트 / [32:17] ListPicker 컴포넌트 / [33:54] File 컴포넌트 / [36:08] 입력받는 텍스트 정보 사용방법 / [36:57] Media 파일 업로드 / [38:20] 입력받은 회원정보를 영구적으로 저장 / [38:45] TinyDB 컴포넌트 / [39:34] 태그값 입력 / [39:53] 어플리케이션이 처음 실행됐을때 데이터베이스 불러오기 / [40:39] 저장된 DB 정보가 없을때를 처리하기 위해 빈 리스트 생성하기 / [41:13] initialize / [41:48] 에뮬레이터 확인 / [42:30] 회원정보 입력하기 / [45:29] 회원정보 삭제 버튼 기능 구현하기 / [45:47] 회원을 검색 버튼을 구현하고 세부정보 표시하기 / [48:19] 에뮬레이터 확인 / [49:15] 삭제 버튼 기능 구현 / [50:59] TinyDB 컴포넌트

20 도서 대여 어플리케이션 part2
앱 인벤터의 여러 컴포넌트를 종합적으로 사용해서 도서 대여 어플리케이션을 만들도록 합니다.
59분
책갈피 : [00:07] 대여관리 버튼 기능 구현 / [00:39] UI 구성 살펴보기 / [01:38] 대여 버튼 / [01:50] ListPicker 컴포넌트 / [02:01] 반납 버튼 / [02:30] 회원관리 버튼에 관련된 내용 숨기기 / [03:20] ShowFilterBar / [03:33] 도서 정보를 리스트로 표시하기 / [04:21] File 컴포넌트 삽입 / [04:54] 텍스트 파일을 리스트로 변환하기 / [05:08] 책리스트를 담고 있는 변수 생성 / [05:30] LiseView 컴포넌트 / [06:00] 특정 도서를 선택했을때 다음 동작 설정 / [06:38] 선택한 도서에 대한 정보를 담은 변수 생성 / [07:40] 선택한 도서명을 라벨로 표시하기 / [08:11] 이미 대여중인 도서를 선택했을때 정보 표시 / [09:34] 저장한 정보를 라벨로 표시하기 / [09:45] 대여된 정보가 없는 도서를 선택했을때 / [10:15] 대여 버튼 구현하기(BeforePicking) / [11:20] AfterPicking / [12:00] 도서를 대여하기 위한 동작 수행 / [12:34] 현재 시간을 대여 시작일로 저장 / [13:08] 현재 시간을 기준으로 특정 시간이 지난 후를 반납일로 지정 / [14:28] Notifier 컴포넌트를 이용해서 선택 메세지창 띄우기 / [15:44] 선택한 결과를 담고 있는 Choice / [16:23] 선택한 도서에 대한 정보를 담고 있는 변수 넣기 / [16:56] 대여자, 대여일자, 반납일자를 라벨로 표시하기 / [17:25] 대여정보를 TinyDB 컴포넌트에 저장하기 / [18:11] 어플리케이션이 처음 실행됐을때 데이터베이스 불러오기 / [18:46] 대여자에 대한 도서 대여 횟수에 관련된 정보 관리 / [19:11] 반납 버튼 구현하기 / [19:44] Notifier 컴포넌트를 이용해서 선택 메세지창 띄우기 / [20:20] 반납 버튼 클릭시 '예'를 선택했을때 구현 / [21:20] 라벨의 텍스트 속성값 초기화 / [21:32] 반납정보를 TinyDB 컴포넌트에 저장하기 / [22:02] 어플리케이션이 처음 실행됐을때 데이터베이스 불러오기 / [22:47] 에뮬레이터 확인 / [25:22] 대여이력 버튼 기능 구현 / [25:44] UI 구성 살펴보기 / [26:17] 대여이력에 관련된 내용만 표시하기 / [26:50] 대여정보를 라벨로 표시하는 함수 / [27:40] 반복문 추가하기 / [28:30] 하나의 라벨에 계속해서 저장하기 위해 문자열 합치기(Join) / [29:56] 에뮬레이터 확인 / [30:40] 대여통계 버튼 구현하기 / [31:06] UI 구성 살펴보기 / [31:52] Canvas 컴포넌트 / [32:05] 대여통계에 관련된 내용만 표시하기 / [32:30] 그래프를 그리는 함수 불러오기 / [33:24] 도여대여 횟수를 추가하는 리스트 / [34:35] 회원삭제 버튼 클릭시 도서대여정보 삭제 / [35:52] 리스트 변수 업데이트 / [36:19] 도서 대여자 위치와 도서대여횟수를 지역변수에 저장하기 / [37:04] Relpace 블록으로 도서대여횟수 정보 증가시키기 / [37:45] 도서대여횟수 정보를 TinyDB 컴포넌트에 저장하기 / [38:48] 도서대여횟수를 그래프로 그리기 / [39:18] 도서대여횟수 정보 정렬하기 / [39:59] 오름차순 정렬 / [40:41] 리스트 변수 복사하기 / [41:46] 반복문 추가하기 / [42:11] 오름차순 기능 (삽입, 정렬 기능) / [45:24] 반복을 할때마다 임시값 저장 / [46:25] 조건이 맞을때까지 반복하는 반복문 / [48:08] insert 블록 / [48:48] 오름차순과 내림차순의 차이 / [49:40] 그래프 그리기 / [49:58] 그래프를 그리기 위한 함수 / [50:23] x, y 선 그리기 / [51:38] 그래프의 축척을 담고 있는 정보에 대한 변수 저장 / [53:15] 그래프 배율 구하기 / [53:47] y 축 옆에 최대값 표시하기 / [54:11] 반복문 추가해서 그래프 그리기 / [55:03] 좌표값을 지정해서 막대그래프 그리기 / [56:23] 에뮬레이터 확인하기 / [58:50] 정렬


샘플확인 : 알지오 검색후 -> 강의검색란 -> App Inventor