본문 바로가기

프로그램/앱인벤터

[문제풀이]앱인벤터2 - "11. 방송 허브" 확장하기 P225

[문제풀이]앱인벤터2 - "11. 방송 허브" 확장하기 P225 


▲ 원본파일



1. 이 앱은 메시지를 보낸 사람을 포함하여 모든 회원에게 메시지를 방송한다. 발신자를 빼고 발송하도록 수해 보자. 


-> 회원목록에서 발신자번호와 같지 않은 전화번호에 발송으로 예외처리



2. "탈퇴"라는 문자를 발송하여 모임에서 빠질 수 있게 수정한다.



데이터삭제 : 기존의 리스트에서 해당데이터를 삭제할 때 remove list item list index 를 사용하려면, 삭제할데이터에 해당하는 인덱스(고유번호) 와 리스트명이 필요한 데, 데이터 값만 알고 인덱스번호를 모른다면 index in list thing list 컨퍼넌트를 사용하여 추출한다. 이때 index in list thing에 "데이터값" 대입(삭제할 대상 데이터), list에 "리스트목록명"을 대입하면 index를 몰라도 데이터값을 찾아서 인덱스를 추출한다. (인덱스추출)




3. 관리자가 특정 전화번호삭제하거나 추가할 수 있게 사용자 인터페이스를 다시 설계하고 기능을 구현한다.


▲ 디자인파일


▲ 블록파일 

추가버튼 이벤트처리와 삭제버튼 이벤트처리로 각각 추가와 삭제 작업후 TextBox를 비우는 작업까지 한다. 




4. 관리자가 특정 전화번호를 지정하면 그 번호는 가입이 안되도록 앱을 확장한다.


▲ 디자인파일

밑에 안보이지만 "차단 : 010-xxxx-xxxx" 형태로 나타나게 레이블을 달아놨다.


▲ 블록파일 1-1

스팸리스트변수를 선언하고, dispalySpamList 프로시져를 만들어서 스팸리스트에 등록한 번호를 "차단 : 010-xxxx-xxxx" 형태로 뿌려주는 기능을 한다.

여기에 버튼 클릭이벤트(SpamButton1.Click)에 텍스트로 입력한 전화번호를 스팸으로 추가등록하고, TinyDB에 spamList폴더를 만들어 스팸리스트를 저장한다.

그리고, 이전에 만들어둔 diplaySpamList프로시져를 호출하여 화면에 뿌려주고, SpamText필드란은 비워둔다.




▲ 블록파일 1-2

예외처리문인 if then else문을 가져와서 가입신청한 전화번호가 스팸번호에 등록되어 있는지 확인하고, 만약 차단번호등록 되어 있다면, 발신자 폰넘버로 "당신은 회원가입을 할 수 없습니다"라고 문자전송 한다. 



5. 회원 가입과 메시지 수신은 누구나 할 수 있지만, 메시지 발송은 관리자만 할 수 있게 수정한다.


6. 회원 가입과 메시지 수신은 누구나 할 수 있지만, 메시지 발송은 관리자가 지정한 전화번호에서만 할 수 있게 수정한다.














<출처 :  David Wolber, Hal Abelson, Ellen Spertus, Liz Looney(2015), 

앱인벤터2(초판)(오일석, 이진선 번역, 서울:한빛아카데미. (원서는 2014년에 출판)>