패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기 #Android앱개발올인원패키지Online
안드로이드 [패스트캠퍼스 챌린지 최종 후기]
안드로이드에 대한 지식이 급한 상황이었다 단기간에 배울수 있는 앱개발 프로세스가 필요했다 안드로이드 개발언어인 코들린과 개발 툴인 안드로이드 스튜디오에 기본을 배우기 위하여 한달동안 패스트캠퍼스의 Android앱개발올인원패키지Online을 수강하였다 공부를 단기간에 해야되는 상황이고 동기부여도 할겸 환급챌린지로 신청하였다 해당 강의의 파트를 크게 나누면 코틀린, 안드로이드 기본, 안드로이드 프로젝트로 나눌 수 있다 각 파트에 대한 강의 후기를 작성해 보겠다 1. 코틀린강의 해당 강의에서는 코트린의 기본에 대해 배운다 다른 프로그래밍 언어를 처음 배울 때 처럼 기본적인 문법(변수, 자료형, 메소드, 반복문, Collection 등)부터 시작하여 객체지향 기초(클래스, 상속 등)까지 배운다 강의의 난이도는 ..
안드로이드 - Network [패스트 캠퍼스 챌린지 30일차]
서버와 통신하는 방법 - 해당 url로 요청한다 - 인증정보를 보낸다 - JSON 형식을 사용해서 data를 보낸다 간단하게 서버에 요청을 보내고 응답을 받아서 데이터를 출력해보겠다 먼저 manifest에 퍼미션을 추가해준다 테스트 서버의 url주소를 URL객체에 담는다 요청은 GET 방식으로, 헤더에 Content-Type을 application/json으로 추가하였다 요청이 잘 된 경우 데이터를 받아서 출력해보겠다 데이터를 주고받을 때 json을 그대로 보내는 것이 아니다 우리가 알아들을 수 없는 바이트 형식으로 주고받기 때문에 우리가 알 수 있는 형식으로 변환해 주어야 한다 InputStreamReader으로 InputStream을 UTF-8 형식으로 읽고 BufferedReader로 버퍼를 이용해..
안드로이드 - Async [패스트 캠퍼스 챌린지 29일차]
Async Async를 비동기 처리를 할 수 있으며 주로 네트워크 작업을 할 때 많이 사용된다 간단하게 Async를 이요하여 ProgressBar를 구현해 보겠다 우선 간단하게 화면을 구성해 주었다 다음으로 AsyncTask를 상속받는 클래스를 만들어 주었다 AsyncTask는 3개의 타입 변수를 받는다 차례대로 params, progress, result를 받으며 params는 doInBackground에서 사용할 타입, progress는 onProgressUpdate에서 사용할 타입, result는 onPostExecute에서 사용할 타입이다 doInBackground는 쓰레드가 할 작업이며 onProgressUpdate는 메인쓰레드로 전달할 작업이며 onPostExecute는 작업을 다 마친 후 할..
안드로이드 - Realm [패스트 캠퍼스 챌린지 28일차]
Realm Sharedpreference보다 더 복잡하게 데이터를 관리할 수 있는 관계형 데이터베이스이다 따로 설치를 해줘야 한다 공식 사이트를 참고하자 공식사이트 Project의 dependencies에 classpath를 추가해주고 classpath "io.realm:realm-gradle-plugin:10.8.1" Module에 플러그인을 추가해 준다 apply plugin: 'kotlin-kapt' apply plugin: 'realm-android' 플러그인 순서를 지켜줘야 한다 realm-android가 맨 아래로 가야한다 Realm 사용 Realm을 사용하려면 먼저 init해줘야한다 다음은 Realm을 초기화 할때 어떤 방식으로 초기화 할지 설정해줘야 한다 RealmConfiguration을..
안드로이드 - Sharedpreference [패스트 캠퍼스 챌린지 27일차]
Sharedpreference 안드로이드의 데이터베이스중 하나이다 Key-value 방식으로 데이터를 저장한다 간단한 데이터를 저장하기 위한 용도로 하드한 데이터베이스 시스템과는 거리가 멀다 Sharedpreference 구현 Sharedpreference을 가져와서 만들어주면 된다 Sharedpreference를 여러개 만들 수 있기때문에 각각을 구분해주기 위해서 첫번째 인자로 Sharedpreference의 이름을 설정해야한다 두번째 인자로는 모드를 넣어준다 모드의 종류에 대해 간단하게 알아보겠다 MODE_PRIVATE : 생성한 application에서만 사용 가능 MODE_WORLD_READABLE : 다른 application 사용 가능 -> 읽을수만 있다 MODE_WORLD_WRITABLE :..
안드로이드 - TabLayout [패스트 캠퍼스 챌린지 26일차]
TabLayout Tablayout도 gradle에서 추가해줘야 된다 implementation 'com.google.android.material:material:1.4.0' Tablayout은 tab을 담당하는 TabLayout, 화면을 담당하는 ViewPager, Tablayout과 ViewPager를 연결해주는 Adapter로 구성되어 있다 Tablayout 구현하기 xml에 TabLayout, ViewPager를 추가해준다 먼저 탭을 구현해 보겠다 결과 이제 뷰 페이저를 구현해 보겠다 페이저에 여러 화면을 넣기 위해서는 어댑터를 사용한다 페이저를 위한 어댑터를 만들어 주겠다 FragmentStateAdapter를 상속받고 FragmentManager와 Lifecycle를 사용해보겠다 어댑터 안에..
안드로이드 - Recyclerview2 [패스트 캠퍼스 챌린지 25일차]
레이아웃 매니저 Recyclerview는 레이아웃 매니저를 이용하여 여러 형태의 레이아웃을 만들 수 있다 세로 스크롤이 되는 수직 레이아웃은 지난 포스트에서 했으니까 다른 레이아웃을 구현해 보겠다 가로 방향으로 스크롤이 되는 수평 레이아웃 이다 다음은 그리드 레이아웃이다 다음은 불규칙 그리드 레이아웃이다 뷰의 높이에 따라 타일이 불규칙적으로 배치된다 클릭 리스너 각 아이템뷰에 클릭 리스너를 달아보겠다 뷰 홀더에 아이템뷰가 들어오니까 뷰 홀더에 클릭리스너를 달아 보겠다 간단하게 아이템뷰를 클릭하면 뷰에 있는 내용을 출력하고 싶은데 뷰 홀더에는 리사이클러뷰의 포지션 정보가 들어있지 않아서 원하는 데이터에 접근할 수 없다 포지션 정보를 알아내려면 bindingAdapterPosition을 사용하면 된다 포지션..
안드로이드 - Recyclerview [패스트 캠퍼스 챌린지 24일차]
RecyclerView ListView의 개선판이며 ViewHolder를 포함하고 있다 ListView보다 유연하여 수직 스크롤뿐만 아니라 수평 스크롤도 가능하고 그리드 레이아웃이 가능하다 Recyclerview 만들기 Recyclerview도 gradle에서 implementation해줘야 한다 xml에 Recyclerview추가해주고 액티비티에서 Recyclerview에 넣을 데이터를 간단하게 후딱 만들어 주었다 Recyclerview 어댑터를 만들어 주겠다 RecyclerView.Adapter를 상속받는다 RecyclerView.Adapter의 타입 변수로 뷰홀더 넣어줘야 한다 아직 뷰홀더를 만들지 않았으므로 일단 비워놨다 그럼 바로 뷰홀더를 만들어 보겠다 RecyclerView.ViewHolder..
안드로이드 - ListView2 [패스트 캠퍼스 챌린지 23일차]
View Holder ListView를 좀 개선해보도록 하겠다 ListView에서 뷰를 그릴 때 사용했던 findViewById는 리소스를 많이 사용하는 함수이다 이전 포스트에서 사용한 ListView방식을 보면 아이템 뷰를 불러올 때마다 findViewById함수가 실행되기 때문에 효율면에서 좋지 않다 View Holder에 우리가 사용할 뷰를 담아서 효율적으로 뷰를 재사용해보겠다 View Holder클래스를 하나 만들어 주겠다 이전 포스트에서 작성한 getView 메서드를 모두 지워주고 getView 메서드에 뷰와 홀더를 담을 변수를 만들어 주겠다 만약 이미 만들어 놓은 뷰가 없으면 새로 뷰를 만들어 주도록 한다 마지막에는 뷰가 담겨있는 홀더를 찾을 수 있도록 태그를 달아준다 만약 재사용할 뷰가 있다..
안드로이드 - ListView1 [패스트 캠퍼스 챌린지 22일차]
ListView ListView 만드는 법 리스트로 만들고 싶은 아이템의 리스트를 준비한다 -> Adapter를 이용한다 Addview와 ListView의 차이점 Addview - 리스트의 개수와 상관없이 한 번에 다 그린다 (화면에 보이지 않는 부분도 한 번에 다 그린다) ListView - 보여지는 부분 + 알파만 한 번에 그리고 필요한 경우에 더 그린다 실습 xml에 ListView를 추가한다 리스트에 담을 데이터를 간단하게 만들어 보았다 Person인스턴스를 10개만 만들어 리스트에 담았다 이제 Adapter를 만들어주면 된다 BaseAdapter를 상속 받는 Adapter를 만들어 준다 이제 각각의 추상 메소드들을 구현해주겠다 우선 생성자로 데이터가 담긴 리스트와 context를 받겠다 getV..