Download presentation
Presentation is loading. Please wait.
Published byKelly Lester Modified 5년 전
2
PART 1 앱 인벤터 프로젝트 04 운전 중 문자 금지
3
자동으로 응답 문자 보내기 운전 중에 문자 보내다 교통사고 <운전 중 문자 금지> 앱 미국 20만 건 이상
많은 나라가 운전 중에 휴대폰 사용을 법으로 금지 <운전 중 문자 금지> 앱 샌프란시스코 대학 학생인 대니얼 피네건의 아이디어 이후 스테이트 팜 보험회사가 <On the Move>라는 비슷한 앱 출시 비전공자에게 프로그래밍 진입 장벽을 낮추어주었다 는 확실한 증거 대중이 창의력 발휘할 기회 확대
4
<와이어드> 지의 평가 클리브 톰슨 기자가 진단한 새로운 조류
5
무엇을 배우는가? <운전 중 문자 금지> 앱을 만들며 배우는 것들
받은 문자를 처리하거나 문자를 보낼 때 쓰는 Texting 컴포넌트 맞춤 응답 메시지를 입력할 양식 메시지를 영구 저장하는데 쓰는 TinyDB 컴포넌트 앱 시작할 때 실행하는 Screen.Initialize 이벤트 문자를 소리로 들려주는 TextToSpeech 컴포넌트 현재 위치를 알아내는데 쓰는 LocationSensor 컴 포넌트
6
프로젝트 생성 프로젝트 만들고, 라이브 테스팅 연결 프로젝트 이름은 “NoTextingWhileDriving”
Screen1의 Title 속성은 “운전 중 문자 금지”
7
컴포넌트 설계
8
컴포넌트 설계 <운전 중 문자 금지> 앱이 사용하는 컴포넌트
앱의 용도를 알려주는 레이블과 자동 응답할 메시지를 보여주는 레이블 맞춤 메시지를 작성하는 데 쓰는 TextBox 메시지 변경을 알리는 버튼 보이지 않는 컴포넌트: Texting, TinyDB, TextToSpeech, LocationSensor
9
컴포넌트 동작 프로그래밍 할 일들 문자가 왔을 때 자동 응답 사용자가 맞춤 메시지 입력 맞춤 메시지 영구 저장
받은 문자를 음성으로 들려줌 응답 문자에 위치 정보 실어 보내기
10
자동 응답하기 Texting 컴포넌트 자동 응답에 쓸 블록 목록
문자가 오면 발생하는 Texting.MessageReceived 이벤트 처리기 블록을 이용 자동 응답에 쓸 블록 목록
11
자동 응답하기 프로그램은 어떻게 작동하나? 폰에 문자가 오면 Texting1.MessageReceived 이벤트가 발생
보내온 사람의 전화번호는 number, 문자 내용은 messageText 매개변수에 저장됨 보내온 전화번호를 PhoneNumber, ResponseLabel을 Message에 입력한 후, call Texting1.SendMessage를 호출하여 문자를 보냄
12
자동 응답하기
13
맞춤 응답 만들기 맞춤 응답 만들기에 쓸 블록 목록
14
맞춤 응답 만들기 프로그램은 어떻게 작동하는가?
사용자가 NewResponseTextBox라는 텍스트박스에 메시지를 입력하고 버튼을 누르면 이벤트 발생 메시지를 ResponseLabel에 대입하고, 텍스트박스를 깨끗이 지움
15
맞춤 응답을 영구히 저장하기 앱을 종료한 후 다시 실행시키면? 데이터베이스를 활용하는 보편적인 방식
레이블의 Text 속성 또는 변수는 단기 메모리 앱을 종료하면 데이터 잃어버림 영구히 저장하려면 데이터베이스 또는 파일에 저장해야 함 앱 인벤터는 TinyDB라는 데이터베이스 컴포넌트를 제공함 StoreValue를 호출하여 저장하고, GetValue로 검색해옴 데이터베이스를 활용하는 보편적인 방식 사용자가 새로운 값을 입력할 때마다 데이터베이스에 저장 앱이 시작될 때, 데이터베이스에서 값을 검색하여 변수 또는 속성에 설정
16
맞춤 응답을 영구히 저장하기 블록 목록
17
맞춤 응답을 영구히 저장하기 프로그램은 어떻게 작동하는가? TinyDB에 태그와 값을 쌍으로 하여 저장
태그는 데이터를 식별하는 이름
18
앱 시작 시 맞춤 메시지 가져오기 블록 목록
19
앱 시작 시 맞춤 메시지 가져오기 프로그램은 어떻게 작동하는가?
앱이 시작될 때 발생하는 Screen1.Initilaize 이벤트 처리기 블록 사용 저장할 때 사용했던 태그로 GetValue 호출 두 가지 상황 검색 성공 검색되어온 값 사용 검색 실패(사용자가 맞춤 메시지 입력한 적 없음) valueIfTagNotThere 값 사용
20
앱 시작 시 맞춤 메시지 가져오기
21
받은 문자 읽어주기 TextToSpeech 컴포넌트 TTS 기능을 해주는 컴포넌트 받은 문자 읽어주는데 쓸 블록 목록
22
받은 문자 읽어주기 프로그램은 어떻게 작동하는가? [그림 4-3] 프로그램의 확장
call TextToSpeech1.Speak 블록 추가함 join 블록으로 문자열 결합
23
받은 문자 읽어주기
24
위치 정보 읽기 LocationSensor 컴포넌트 위치 센서를 프로그래밍하는데 쓸 블록 목록
GPS로부터 위도, 경도, 고도 정보 읽어옴 구글 지도를 참조하여 주소 정보 가져옴 처음 위치 감지했을 때와 폰이 이동하여 새로운 위치 감지했을 때 이벤트 발생 위치 센서를 프로그래밍하는데 쓸 블록 목록
25
위치 정보 읽기 프로그램은 어떻게 작동하는가? GPS가 처음 위치를 감지하면 LocationSensor1.LocationChanged 이벤트 발생 LocationSensor1.CurrentAddress에 주소 정보가 들어있음 주소 정보를 lastKnownLocation 변수에 대입 폰이 이동하여 GPS가 새로운 위치를 감지할 때마다 이벤트 발생하여 주소 변경됨
26
위치 정보 실어 보내기 블록 목록
27
위치 정보 실어 보내기 프로그램은 어떻게 작동하는가? [그림 4-8] 프로그램의 확장
set Texting1.Message 블록에서, join 블록으로 주소 정보를 결합
28
위치 정보 실어 보내기
29
전체 앱 프로그램
30
확장해 보기
Similar presentations