(주) 다함에듀 - 꿈을 현실로 만들어갑니다

💡 앱 인벤터 강의 커리큘럼: '슬기로운 분리배출' 앱 개발 본문

강의/IT,SW,코딩

💡 앱 인벤터 강의 커리큘럼: '슬기로운 분리배출' 앱 개발

VisionAchiever 2025. 11. 14. 13:21
반응형

🎯 강의 목표

학생들이 앱 인벤터(App Inventor)의 기본 사용법을 익히고, 버튼을 이용한 화면 전환OX 퀴즈 기능을 포함한 실용적인 앱을 직접 개발해 볼 수 있도록 한다.

⏱️ 시간 배분 및 주요 활동

시간 (분) 주요 내용 활동 유형 앱 개발 단계
0 ~ 10 (10분) 도입: 앱의 필요성 및 앱 인벤터 소개 강의, 토론 -
10 ~ 30 (20분) 기본 화면 디자인 및 버튼 배치 (Screen1) 실습, 시연 1단계: 메인 화면 구성
30 ~ 50 (20분) 세부 정보 화면 제작 및 화면 전환 로직 구현 실습, 시연 2단계: 화면 전환 기능
50 ~ 70 (20분) OX 퀴즈 화면 디자인 및 기본 변수 설정 실습, 시연 3단계: 퀴즈 화면 구성
70 ~ 100 (30분) OX 퀴즈 로직 구현 (정답 확인, 다음 문제) 실습, 시연 4단계: 퀴즈 기능 구현
100 ~ 110 (10분) 앱 테스트 및 문제 해결 (디버깅) 실습, 피드백 5단계: 테스트 및 개선
110 ~ 120 (10분) 마무리 및 심화 학습 안내 강의, 발표 -

🛠️ 앱 개발 단계별 상세 커리큘럼 (실습 위주)

🚀 도입 (10분): 주제 선정 및 도구 소개

  • 분리배출의 중요성앱 개발 동기 공유.
    • (예시) 학생들이 직접 조사한 재질별 분리배출 정보가 앱을 통해 다른 사람들에게 전달되는 가치를 강조.
  • 앱 인벤터 소개: 블록 코딩의 원리와 장점 (코딩 경험이 없어도 쉽게 앱 개발 가능) 설명.
    • 접속 방법, 주요 인터페이스 (디자이너 / 블록 편집기) 안내.
  • 데모 시연: 완성된 앱의 주요 기능 (버튼 누르면 설명 페이지 이동, OX 퀴즈 풀기)을 간단히 보여주어 흥미 유발.

1단계: 메인 화면 구성 (Screen1) (20분)

✅ 목표: 메인 화면에 버튼(재질별 아이콘)을 배치하고 화면 레이아웃을 구성한다.

  1. 화면 이름 설정: Screen1을 'Home' 등 알아보기 쉽게 변경.
  2. 레이아웃 배치: VerticalArrangement 또는 TableArrangement를 사용하여 재질별 버튼을 깔끔하게 정렬할 공간 마련.
  3. 컴포넌트 추가:
    • Label을 사용하여 앱 제목 (예: '슬기로운 분리배출') 입력.
    • Button 컴포넌트 추가 (최소 2~3개 시연, 예: 종이, 플라스틱, 퀴즈 시작).
    • 버튼의 Image 속성에 학생들이 준비한 재질별 아이콘 이미지 를 넣어 실제 앱처럼 보이게 디자인.

2단계: 화면 전환 기능 (20분)

✅ 목표: 메인 화면의 버튼을 누르면 해당 재질의 정보 화면으로 이동하도록 구현한다.

  1. 새 화면 생성: Add Screen을 눌러 재질별 정보 화면 (예: Screen_Paper, Screen_Plastic)과 퀴즈 화면 (Screen_Quiz)을 미리 생성.
  2. 정보 화면 디자인:
    • Screen_Paper에 Label을 추가하여 '종이류 분리배출 정보' 텍스트와 학생들이 조사한 내용을 넣을 공간 마련.
    • "돌아가기" 버튼 추가.
  3. 블록 코딩 (화면 전환):
    • Designer: Screen_Paper의 "돌아가기" 버튼 클릭 시, Control 블록에서 open another screen name 블록을 사용하여 Screen1 (Home)으로 이동하도록 설정.
    • Designer: Screen1의 '종이' 버튼 클릭 시, Control 블록에서 open another screen name 블록을 사용하여 Screen_Paper로 이동하도록 설정.
    • 핵심: 화면 전환 블록(open another screen) 사용법 시연 및 실습.

3단계: OX 퀴즈 화면 디자인 및 기본 변수 설정 (20분)

✅ 목표: 퀴즈 화면을 디자인하고 퀴즈 데이터를 저장할 리스트 변수를 초기화한다.

  1. 퀴즈 화면 구성 (Screen_Quiz):
    • Label: 문제 번호 표시 (예: 1 / 5).
    • Label: 퀴즈 내용 표시 (빈 칸).
    • Button 2개: O 버튼, X 버튼.
    • Label: 결과 피드백 표시 (O/X 선택 후 '정답입니다' 또는 '오답입니다' 표시).
    • Label: 현재 점수 표시.
  2. 블록 코딩 (데이터 정의):
    • Variables 블록을 사용하여 전역 변수(Global Variable) 3개 정의 및 초기화:
      • Quiz_List: List of Lists 형태로 퀴즈 문제와 정답을 저장 (예: [["비닐봉투는 깨끗이 씻어 버린다", "O"], ["라면 국물은 하수구에 버린다", "X"]])
      • Current_Quiz_Index: 현재 문제 번호 (1로 초기화).
      • Score: 맞힌 문제 수 (0으로 초기화).
    • 핵심: make a list 블록을 사용하여 리스트 안에 리스트를 만드는 방법 시연.

4단계: OX 퀴즈 로직 구현 (30분)

✅ 목표: 퀴즈 문제를 화면에 표시하고, 사용자의 O/X 선택에 따라 정답을 확인하고 점수를 업데이트한다.

  1. 문제 표시 함수 (Show_Quiz):
    • Procedures 블록을 사용하여 함수 생성.
    • 현재 인덱스 (Current_Quiz_Index)에 해당하는 퀴즈 리스트 항목을 가져와 문제 레이블에 표시하는 로직 구현.
    • 문제 번호 레이블 업데이트.
  2. O/X 버튼 이벤트:
    • O 버튼 클릭 시, 현재 퀴즈의 정답과 사용자의 선택 ("O")을 비교하는 로직 구현.
    • 정답일 경우, Score 변수 1 증가 및 '정답입니다' 피드백 표시.
    • 오답일 경우, '오답입니다' 피드백 표시.
    • 점수 레이블 업데이트.
  3. 다음 문제로 넘어가기:
    • 정답 확인 후, Current_Quiz_Index를 1 증가시키고 Show_Quiz 함수를 다시 호출하여 다음 문제 표시.
    • 종료 조건: 퀴즈 인덱스가 Quiz_List의 길이를 초과하면 "퀴즈 종료. 최종 점수: ${Score}" 메시지 표시.

5단계: 테스트 및 개선 (10분)

  • 실시간 테스트: 학생들이 에뮬레이터 또는 Companion 앱으로 앱을 직접 실행하고 테스트.
  • 문제 해결: 작동하지 않는 부분에 대한 디버깅 방법 (컴포넌트 이름, 블록 연결, 변수 값 확인 등) 지도.

마무리 및 심화 학습 안내 (10분)

  • 배포 방법: APK 파일로 추출하여 친구들에게 공유하는 방법 간략히 안내.
  • 심화 학습:
    • 더 많은 재질 버튼 추가 및 정보 화면 확장.
    • 앱 내 데이터베이스 (TinyDB)를 이용한 점수 저장 기능 추가.
    • 카메라를 이용한 재활용 물품 인식 (확장 기능으로 소개).
  • 질의 응답 및 우수 결과 발표.
반응형