[edwith] 안드로이드 앱 개발 초급 (1)

2019. 5. 28. 05:18Engineer/안드로이드 앱 프로그래밍

반응형

부스트코스의 안드로이드 앱 개발 초급 강의를 수강하면서, "Do it! 안드로이드 앱프로그래밍" 책으로 공부한 것을 복습하려고 한다. 


부스트코스에 안드로이드 프로그래밍 강의가 3개가 있다. 그 중 1개는 "Do it! 안드로이드 앱프로그래밍"책의 저자이신 정재곤님의 강의이고 나머지 2개는 한동호님의 강의로 초급과정과 중급과정이 있다. 


그 중에서 한동호님의 안드로이드앱 개발 초급 강의를 수강하려고 한다. 2016년에 올라온 강의 자료 (링크)



 Lecture 1 


   Chapter 1. 소개 및 사전 지식 확인


pass



   Chapter 2. 뷰와 레이아웃









   Chapter 3. 기본 기능 이해




layout을 xml이 아니라 JAVA로 해야하는 경우는 잘 없다. activity가 실시간으로 data를 받아서 화면 구성이 바꿔줘야 할때 Java에 layout을 구성하는 것을 고려할 수 있겠지만, 이 또한 별도의 xml을 여러 개로 나누어서 로딩하는 방식이 더 좋은 방식이다. 그리서  JAVA로 layout을 짜는 방식은 거의 안쓰고, 또 쓰지 않는 것이 좋다. 관리가 안된다. 



  

버튼을 커스터마이징 할때 셀렉터 사용하면됨. 


위처럼 설정한 커스터마이징 버튼을 xml에 코딩하고. 아래 처럼 버튼을 만들어줄때 이 디자인 파일을 background로 넣어주면 됨.




  


스피너, 리스트뷰, 그리드 뷰처럼 복잡한 데이터를 보여주는 뷰들은 대부분 Adapter를 이용한다.   



테마를 자주 바꾸는 경우는 없는 편이다. 방법 1이 가장 간단한 방법이다. (지금버전에는 액션바가 아니라 툴바로 바뀌고 사용 방법도 바뀜)




전화가 오거나, 홈버튼을 눌러 앱을 나가거나 하는 경우 기존의 앱 상태를 저장하거나 저장된걸 불러와야 하는 경우가 있으므로, onResume( )와 onPause( )쪽에서 작성을 많이 하게된다.  




아래는  인터페이스이므로 개발자가 구현을 해줘야한다. 


아래에 방법중 1, 2번은 JAVA에서 제공하는 방법으로 문법상의 차이가 있는 방식이며, 3번은 안드로이드에서 제공하는 방식이다.


아래 방법 1에서 뷰들의 변수 선언때 final이 앞에 붙는 이유는, 문법적으로 익명 클래스(onClinckListener와 같은)에서는 변하지 않는 값만 접근 할 수 있다. 변수의 값이 변하는 것일 경우 final을 붙이지 못하므로, 다른방법으로는 edit와 text를 멤버 변수로 선언하는 방법이 있다.

위의 방식은 익명클래스를 setOnClickLIstener에 넣었지만, 아래의 방법은 버튼 리스너를 구현하고 button.setOnClickListener( )를 이용해 구현한 리스너를 지칭하는 this 를 입력하여 버튼에 리스너를 설정


간단하게 작성할때는 방법3이 유용하나 이런 버튼이 엄청 많다면 그런 장점이 없어진다. 띠라서 위의 2가지 방법도 숙지 하고 있어야 한다. 




위의 3가지 이벤트 들이 아래와 같은 코드로 작성 되어있다면 어떤 순서대로 처리가 될까? 


위의 logcat 결과처럼 onTouch가 처리되고, 다음 MyView.onTouchEven 와 Activity.onTouchEvent가 실행된다. 







반응형