본문 바로가기

프로그램/앱인벤터

[앱인벤터2] 웹 매시업 - API를 통해 웹정보를 가져오는 웹 매시업 [앱인벤터2] 웹 매시업 - API를 통해 웹정보를 가져오는 웹 매시업 웹매시업은 "다찾아"나 "최저가"검색 처럼 한 사이트에서 내가 원하는 정보를 검색하면, 내가 접속한 하나의 맞춤웹사이트가 여러 개의 매시(연결)된 웹사이트에 접근하여 웹에 있는 정보를 휴대기기의 앱에서도 가져다 사용할 수 있도록 웹과 앱은 연결되어 있다는 것으로, 각각의 웹 API를(기계와 기계의대화) 통해 원하는 정보를 취합하여 내가 원하는 정보만 스마트폰 앱에 표시하여 보여줄 수 있게 해준다. 다시 말하면 소비자가 스마트폰 최저가앱을 통해 제일 싼 어그부츠를 검색하면 최저가부터 순서대로 나열해 보여주는 것이라 표현해도 될 것 같다. 1. WebViewer 컴포넌트 (캔버스 컨포넌트와 연계해서 사용한다) 앱 안에서 웹페이지를 보여 .. 더보기
[앱인벤터2] Sensors- OrientationSensor와 AccelerometerSensor [앱인벤터2] Sensors - OrientationSensor(오리엔테이션센서)와 AccelerometerSensor OrientationSensor(오리엔테이션센서)는 폰의 방향을 알아내는 센서로 나침반구현이 가능하다. * 롤 Roll (왼쪽 : 90 | 오른쪽 : -90 )* 피치 Pitch (위->땅 기울이면 : 90~180 | 아래 ->땅 : -90~-180 )* 아지무스 Azimuth (나침반) : 북:0 | 동:90 | 남:180 | 서:270 * 크기 magnitude (구르는 공의 속도) : 폰의 기운정도에 따라 0~1사이의 값을 가짐, 폰의 표면에 공을 놓았을 때 구르는 공의 힘을 나타냄* 각도 Angle (구르는 공의 방향) : 폰이 기운 방향을 나타내며 폰의 표면에 공을 놓았을 때 .. 더보기
[앱인벤터2] 블루투스를 이용한 LEGO MINDSTORMS NXT 원격조정 [앱인벤터2] 블루투스를 이용한 LEGO MINDSTORMS NXT 원격조정 - NXT와 연결 담당 - BluetoothClient 컴포넌트- 연결할 NXT를 고르는데 사용할 - ListPicker 컴포넌트- 로봇의 바퀴 구동 - NxtDrive 컴포넌트- 장애물을 검출해주는 초음파센서 제어 - NxtUltrasonicSenser 컴포넌트 앱인벤터로 LEGO MINDSTORMS NXT로봇을 제어하는 리모컨을 만드는 방법도 있다고한다.NXT로봇에서 가장 중요부품은 NXT 지능 브릭(brick)라고 하는데, 보일러 조절기처럼 생긴 네모난걸 그렇게 부르는 것 같다. 한번 앱인벤터2 공부하려고 사려고 인터넷검색을 해봤는데 비싸다. 아주 많이 비싸다. 국내에서 구하려면 중고도 40~50만원선 이다. 더군다나 NX.. 더보기
[문제풀이]앱인벤터2 - "11. 방송 허브" 확장하기 P225 [문제풀이]앱인벤터2 - "11. 방송 허브" 확장하기 P225 ▲ 원본파일 1. 이 앱은 메시지를 보낸 사람을 포함하여 모든 회원에게 메시지를 방송한다. 발신자를 빼고 발송하도록 수정해 보자. -> 회원목록에서 발신자번호와 같지 않은 전화번호에 발송으로 예외처리 2. "탈퇴"라는 문자를 발송하여 모임에서 빠질 수 있게 수정한다. 데이터삭제 : 기존의 리스트에서 해당데이터를 삭제할 때 remove list item list index 를 사용하려면, 삭제할데이터에 해당하는 인덱스(고유번호) 와 리스트명이 필요한 데, 데이터 값만 알고 인덱스번호를 모른다면 index in list thing list 컨퍼넌트를 사용하여 추출한다. 이때 index in list thing에 "데이터값" 대입(삭제할 대상 데.. 더보기
[앱인벤터2] TinyDB 사용법, Do it (디버깅) [앱인벤터2] TinyWebDB 사용법 그림 1. TinyDB에 저장 TinyDB에 tag인 "broadcastList"(적당한 변수명선언 : 이름표 : 폴더)를 입력하여 리스트목록인 global BroadcastList를 저장하고 있다. 그림 2. TinyDB에서 데이터 불러오기 (=로딩) 프로그램 시작과 동시에 실행하는 when Screen1.Initialize에 등록하여 (윈도우에 레지스트리(시작프로그램에 등록)등록과 같은기능) TinyDB에 이전에 저장했던 tag인 "broadcastList"란 폴더을 찾아서 그 안에 저장된 내용을 global BroadcastList(저장된내용)를 불러온다. 여기에서 call displayBroadcastList는 레이블로 화면에 뿌려주는 프로시져다. 그림 3... 더보기
[문제풀이]앱인벤터2 - "10. 퀴즈만들기와 퀴즈풀기" 확장하기 P206 앱인벤터2 문제풀이 - P200 페이지 "퀴즈만들기와 퀴즈풀기" 확장하기 1. 퀴즈를 만들 때 문제와 함께 그림도 지정할 수 있게 확장하자. TinyWebDB는 영상을 저장해 주지 않기 때문에 조금 복잡하다. 영상 파일 대신에 영상이 있는 곳의 URL을 지정해야 한다. 앱의 사용자 인터페이스에 URL을 입력하는 텍스트 박스를 추가한다. 다행히 Image 컴포넌트의 Picture 속성에 URL을 설정 할 수 있다. (영상 = 사진처럼 정지된 그림 동영상 = 연속적으로 움직이는 영상) 퀴즈 만들기 앱과 퀴즈풀기앱 모두 수정을 해야한다. 아래는 결과화면이다. 먼저 퀴즈만들기앱에서 문제, 정답, 이미지의URL주소를 입력한뒤 "제출"을 누르면 아래 추가된 리스트 목록에 방금 입력한 내용이 나온다. 그리고, 퀴즈풀.. 더보기
[앱인벤터2] TinyWebDB 사용법 TinyWebDB는 휴대폰에 저장되는 것이 아닌 웹서버에 기록되는 것이다. TinyDB가 내 휴대폰에 저장되어 나만 볼수 있는데 반해, TinyWebDB는 웹서버에 저장되어 클라우드 방식으로 저장하고 가져오기 때문에 다른 기기나 사람에서 접근가능하며 내가 올린 데이터들을 수시로 확인(남들과 공유가 가능해짐)할 수 있다. 여기서 TinyWebDB의 웹서버는 실습용으로만 제공되며, 원래는 본인이 웹서버를 구축하여 사용하는 것이 원칙이지만, 간단히 내가 만든 앱이 잘 동작되고 저장되는지 확인하기 위해 테스트할 때도 필요하므로 올려본다. TinyWebDB.StoreValue tag "지역변수(Webdb폴더개념:gaquestions)" , valueToStore (폴더 안에 저장될 리스트:get global Qu.. 더보기
[앱인벤터2] 리스트 만들기 - list와 for each 앱 만들때 자주 사용할 필요가 있을 것 같아서 리스트 만드는 법만 간단히 포스팅 해보려고 한다. 리스트를 만들면 보통 레이블에 글씨를 표현하고자 할 때 "(내용, 내용) : (내용 내용)" 이런 형태로 내가 입력한 것은 "내용" "내용"인데, 엉뚱하게 ( ) 가로들이 섞여 나온다. 이럴 때 해결방법이 위 그림과 같이 코팅하는 것이다. 먼저 리스트에 문제와 답이 들어가는 두개의 텍스트 박스가 있고, 리스트로 문제와 답이 "문제? : 답" 형태로 저장 된다고한다면, "문제?"을 나타내어줄 변수 "question3"(for each문에 인자값으로 선언됨)와 그 문제를 받아서 같은 인덱스를 갖고 있는 "답"을 나타내어 줄 변수 "answer3"를 전역변수로 밖에 선언을 하는데 빈 텍스트박스로 선언해준다. 그리고.. 더보기
[문제풀이]앱인벤터2 - "09. 실로폰" 확장하기 P184 앱인벤터2 문제풀이 - P184 페이지 "실로폰" 확장하기 1. 재생 중에 사용자가 [지우기]버튼을 누르면 어떤 일이 벌어질까? 프로그램 오류가 발생하면서 앱이 멈추어 버릴 것이다. 이를 실행해 보고, 왜 그러는지 곰곰히 생각해 보자. 이 문제를 해결하기 위해서는 음악이 재생되기 시작하면 [지우기] 버튼을 불능으로 설정하는 방법이 있다. PlayButton.Click의 적절한 곳에 [지우기] 버튼을 불능으로 만드는 블록을 추가해 보자 그렇다면 어디에서 [지우기] 버튼을 다시 살려야 할까? 연주를 눌러서 연주가 실행되는 동안 지우기 버튼의 기능을 비활성화 상태에 있도록하고, 연주가 끝남과 동시에 지우기버튼이 활성화되도록 해봤다. 블록탭에서 when PlayButton1.Click do에 if then의 t.. 더보기
[문제풀이]앱인벤터2 - "08. 대통령 알아맞히기" 확장하기 P165 앱인벤터2 문제풀이 - 165페이지 "대통령 알아맞히기" 확장하기 1. 현재 앱은 문제마다 그림만 보여준다. 짧은 소리나 동영상도 같이 보여주도록 확장한다. 디자이너탭에서 ActivityStater, Sound를 추가하여 아래와 같은 형태로 만들고, ActivityStarter의 Action속성에 "android.intent.action.VIEW" 를 추가한다. 블록탭에서 아래 그림처럼, initialize global YoutubeList to make a list "유투브주소1", "유투브주소2", "유투브주소3", "유투브주소4"를 자료화면으로 순서대로 삽입하고, HINT(자료화면버튼)는 when HINT.Click do를 꺼내어 set ActivityStarter1.DataUri to select.. 더보기