드로이드나이츠(Droid Knights)
- 정다은(대덕소프트웨어마이스터고등학교 소프트웨어개발과 2학년)
- 조민규(대덕소프트웨어마이스터고등학교 소프트웨어개발과 3학년)
Kotlin을 통한 안드로이드 프로그래밍 입문. Kotlin을 선정한 건 트렌드 때문이기보단, 타입 추론이나 for-range 등 교육하고/배우는 입장에서 조금 더 직관적으로 배울 수 있어 채택.
만들고 싶은 걸 만들며, 내가 사용해온 앱들을 조금 다른 시각으로 바라보기
★★★☆☆
중학교 2학년 ~ 고등학교 3학년
서울
6~8명
매주 토요일, 1차시 당 4시간, 총 4차시(16시간)
- '있으면 유용한데 굳이 지금 필요 없는 것'들은 확실하게 배제
- 수업이 끝나면 해당 차시의 수업 자료 제공
- 다음 차시에 대한 스포일러
서로를 알아보고, 프로그래밍을 준비하자
- 강사 소개(5분)
- 강의 소개(5분)
- 강의의 목적
- 강의 계획
- 학생 소개(25분)
- 설리번 프로젝트를 하는 동안 가져줬으면 하는 자세(5분)
- 질문은 우리 모두를 위한 것
- 다 외우려는 강박관념 없애기
- 프로그래밍 이야기
- 프로그래밍이란?(10분)
- 컴퓨터와의 대화를 위한 것
- 이런 대화를 위한 수많은 언어들
- 안드로이드 앱을 위한 프로그래밍(20분)
- 안드로이드 아~주 조금 설명
- 안드로이드? iOS?(갤럭시와 아이폰)
- 스마트폰이라는 작은 컴퓨터와의 대화
- 그리고 이 대화를 위한 언어 - Java? Kotlin?
- Kotlin을 선택한 이유
- 프로그래밍이란?(10분)
- 만들고 싶은 거 생각하기
- 브레인스토밍 도와주기(5분)
- 설리번 선생님들이 가장 처음 앱 개발을 시작했을 때 만들었던 것들 + 앱 개발을 하는 주변 친구들이 처음으로 만들었다는 앱 보여주기
- 클리커 게임
- 이항식 계산기
- 등등..
- 설리번 선생님들이 가장 처음 앱 개발을 시작했을 때 만들었던 것들 + 앱 개발을 하는 주변 친구들이 처음으로 만들었다는 앱 보여주기
- 머릿속, 종이와 펜, 문서 등으로 정리하기(15분)
- 발표하고 피드백 주기, 이런저런 이야기하기(30분)
- 브레인스토밍 도와주기(5분)
Hello World, 변수와 조건
- Try Kotlin에 Kotlin을 배울 준비(로그인) 하기(5분)
- Hello World
- 샘플 코드를 붙여넣고, 한 번 돌려보기(5분)
- 필요없는 부분(fun main) 빼고, println만 살펴보기(15분)
- 수학의 함수 vs 프로그래밍의 함수(수학처럼 in-out 구조가 아니라, in-process-out 구조)
- fun main도 하나의 함수
- 자기가 원하는 문자열 출력하기 + 문자열 여러 개 출력하기(부모님께 5줄짜리 편지 쓰기) (10분)
- 변수
- 수학의 변수와 변수의 정의, 우리에게 변수가 필요한 이유(5분)
- 변수 선언하고, 출력하기(var로 선언하며 타입 추론의 도움을 받도록) (10분)
- 대표적인 타입 이야기(15분)
- 숫자
- 문자열
- 알고만 있으세요
- 숫자의 연산(5분)
- +, -, *, /, %
- 조건문
- 조건문이 쓰이는 곳(5분)
- 네이버 지도 : GPS가 켜져 있지 않으면 알림 창 띄움
- 페이스북 : 인터넷이 연결되어 있지 않으면 오프라인 상태라고 알려준다
- 카카오톡 : 프로필을 열었는데 친구가 아니면 친구추가 버튼을 보여준다
- 참과 거짓을 위한 타입 bool(10분)
- 참은 true
- 거짓은 false
- 조건문을 순서도로 표현하기(5분)
- 조건문을 의사 코드로 표현하기(10분)
- 조건문을 kotlin으로 표현하기(10분)
- 조건문이 쓰이는 곳(5분)
- 아~주 짧은 복습시간(10분)
조건문을 더 깊게, 그리고 반복문
- 저번에 배웠던 조건문을 확장하기
- 비교 연산자로 true와 false를 표현하기(15분)
- 비교 연산자의 종류(25분)
- <, <=
- >, >=
- ==, !=
- 반복에 대하여
- 반복의 필요성 느끼기(5분)
- 1부터 10까지 println
- 1부터 30까지 println
- 구구단 println
- 1부터 100까지 짝수만 println
- 반복문 살펴보기(20분)
for i in 1..10
,if(i % 2 == 0) println(i)
- 인간 디버거가 되어 모든 loop를 하나하나 설명하기
- 반복문으로 뭔가 해보기(40분)
- 1부터 10까지 출력
- 1부터 100까지 홀수만 출력
- 구구단 9단 출력
- 반복의 필요성 느끼기(5분)
- 복습 겸 휴식(15분)
- 안드로이드 스튜디오 설치 & 에뮬레이터 추가 & SDK 설치!(시간 외, 설리번 선생님들이)
함수와 Hello Android
- 함수 이야기
- 수학의 함수와 비교하기(5분)
- 인자와 반환이 없고, Hello World를 출력하는 함수 선언하고 호출하기(5분)
- 인자를 가진 함수(10분)
- 반환값을 가진 함수(10분)
- 두 수의 합을 반환하는 함수(10분)
- 안드로이드 스튜디오 세팅 마무리 & 안드로이드에 대한 소개(30분)
- 역사
- android everywhere
- 버전
- 안드로이드 어플리케이션의 구성
- 레이아웃(눈에 보여지는 부분)
- XML이라는 또다른 언어
- 간단한 드래그 앤 드롭
- 이벤트 처리(사용자의 입력에 반응)
- Kotlin!
- 레이아웃(눈에 보여지는 부분)
- 안드로이드 앱 프로젝트의 구성 요소
- Hello Android - 안드로이드 프로젝트 만들고, 바로 에뮬레이터 or 각자 안드로이드 스마트폰으로 돌려보기(15분)
- 프로젝트를 만들면 기본으로 제공되는 TextView에 있는 ID 속성을 설명하고, 이를 이용해 텍스트를 바꿔주기(10분)
- 버튼을 만들고, 이 버튼을 클릭하면 TextView에 몇 번 눌렸는지 보여주기(순서도와 함께) (20분)
- 아~주 짧은 복습시간(5분)
숙제 : 버튼 두 개를 만들고, 각 버튼이 눌렸을 때 서로 다른 문자열을 TextView에 보여주기
여러가지 View
- EditText와 Toast를 활용한 두 수 더하기(순서도와 함께) (40분)
- RadioButton과 ImageView를 활용한 부모님 사랑해요(순서도와 함께) (40분)
- ID/비밀번호 등 특정 조건에 맞으면 화면 이동하기(순서도와 함께) (40분)
내가 만들고 싶은 것
- 발표했던, '내가 만들고 싶은 것'에 대해 순서도를 그리기(60분)
- 순서도 발표하고 피드백 받기(30분)
- 드래그 앤 드롭으로 화면 그려보기(30분)
숙제 : 순서도를 코드로 어떻게 표현할지 고민해오기
만들기 시작
- 기능에 우선순위 부여하기(꼭 구현해야 할 기능, 없어도 괜찮을 기능, ...) (20분)
- 만들어보기(80분)
- 간단히 회고하기(20분)
조금은 급한 마무리
- 그동안 활동했던 사진들 보고 추억팔이(15분)
- 맛있는 거 먹으면서 그동안의 활동을 이야기하기(45분)