PPT - 앱 인벤터 2

Download Report

Transcript PPT - 앱 인벤터 2

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