집사람 덕분에 시작한 모바일 앱 프로그래밍 공부 상황을 올려봅니다.
조금씩 조금씩 배우고 알아가고.. 하는 상황을 알 수 있는 추억이 되지 않을까 합니다.
2주일전 집사람이 뜬금없이 아들녀석 영어공부시킨다고 영어단어앱 하나 만들어달라고 하는군요.
모바일앱은 공부해본적도 없고... 대략 난감한 일이 아닐수 없었습니다.
못하겠다고 말하기도 부끄럽고... 이참에 모바일 앱 프로그래밍 공부나 해봐야겠습니다.
일단 안드로이드 스튜디오를 설치하고 이것저것 들여다봅니다.
PC용 개발툴과 많이 달라서 생소하기도 하고 뭐가뭔지 하나도 모르겠습니다.
더군다나 Java라는 언어는 해본적도 없습니다.
일단 Java라는 언어가 어떤 느낌인지 대략 살펴봅니다.
3일정도 모니터가 뚫어져라 쳐다보니 어느정도 대충은 감이 잡히네요.
그렇다고 Java프로그래밍 전문가가 되었다는 것은 아닙니다. >.<
집사람이 요구한 단어장 기능은 다음과 같습니다.
1. 사용자가 단어를 추가할 수 있어야 한다.
2. 단어는 랜덤으로 일정시간(초)마다 출력하되, 시간간격을 설정할 수 있어야 한다.
3. 단어를 클릭하면 단어 내용과 함께 음성으로 읽어줘야 한다.
PC용 프로그램이라면 1-2시간 뚝딱뚝딱하면 만들겠지만, 해본적도 없는 팔자에도 없는 모바일 앱을 공부하게 생겼습니다. ㅠ.ㅠ
윈도우 개발툴에서는 Form이 있듯, 안드로이드 앱은 Activity란게 있네요.
액티비티를 하나 생성하고 시작하면 될 것 같습니다.
처음 프로그래밍을 시작하는 초보들이 그렇듯, 저역시 한 소스에서 모든 기능들을 나열해봅니다.
C++프로그래밍이라면 main()에서 모든걸 작성하듯이요. ^^
버튼도 올려보고, 버튼에 클릭이벤트를 엮어봅니다.
랜덤으로 단어를 보여줘야 하는데, 그냥 텍스트 파일을 읽어오느니 DB를 사용해봅니다.
안드로이드에서는 기본적으로 SQLite3라는 작고 빠른 DB가 지원되니 이걸 사용하면 됩니다.
다만 막상 사용하려고 보니 사용법이 좀 복잡해보이는 군요.
대충 클래스로 감싸서 제가 사용하려는 용도에 맞춰 간편하게 사용할 수 있도록 만들어 봅니다.
TEzSqlDB.java
TEzUtil.java
TEzHash.java
TEzConfig.java
TEzLib.java
자바라는 언어를 모르니, 어떤 기능들이... 어떤 함수들이 제공되는지도 알수도 없고...
일단 직접 필요한 기능들을 몽땅 만들었습니다.
나중에 자바를 좀더 알게되면 자바에서 지원되는 함수로 바꾸면 되겠죠.
버튼을 클릭하면 단어가 랜덤으로 출력되고, 타이머가 없으니 쓰레드를 하나 생성해서 연속으로 단어가 랜덤출력되게 만들었습니다.
이제 남은 것은 환경설정만 남았네요.
아직까진 액티비티에서 다른 액티비티로 값을 주고받는 방법을 모르기때문에, 그냥 레이아웃하나 만들어서 include로 끼워넣었습니다.
설정버튼을 클릭하면 옵션 레이아웃을 보여주고 끝나면 숨기면 되니깐요.
부끄럽긴하지만, 집사람이 요청한 영어단어장이 만들어졌습니다.
저녁때 시작해서 아침에 끝났으니 대충 10시간정도 걸린것 같습니다.
잘하는 분들이라면 몇분도 안되어 만들었겠지만, 전 안드로이드 프로그래밍을 시작한지 3일밖에 안되는 초보니깐요. ㅠ.ㅠ
data1.txt 라는 텍스트 파일을 만든다음
ace
boy
girl
처럼 한줄로 단어들을 입력합니다.
그런다음 카카오톡등으로 보내서 저장하거나, 휴대폰의 download 폴더에 저장합니다.
단어장앱 설정창에서 DB등록을 하면 이후부터 단어장을 사용할 수 있습니다.