본문 바로가기

안드로이드27

[안드로이드] 보일러 플레이트 (상용구 코드) 사소한 기능을 구현하려고 해도 꽤 긴 코드를 작성해야 하는 불편함이 있다. 또 이런 기능을 여러 군데에서 구현하려고 하면 같은 코드를 일부만 변형시켜서 중복 사용하게 된다. 이렇게 반복되는 코드를 보일러 플레이트 혹은 상용구 코드라고 부른다. 안드로이드에서의 보일러 플레이트 코드는 대표적으로 Activity, Fragment, ViewModel, UseCase 등이 있다. 이 글에서는 Fragment 로 예를 들어 설명한다. 마찬가지로 이 프로젝트 코드를 기반으로 설명할 예정이다. 이 프로젝트 또한 프로젝트를 처음 시작할 때마다 설계와 관련된 코드를 작성해야 하는 불편함을 줄이기 위해 시작했다. star 와 fork 해 주시면 감사합니다. class MainFragment : Fragment() { ov.. 2021. 12. 31.
[안드로이드] 화면 전환 - Navigation 이 글은 제가 만든 이 프로젝트를 기반으로 설명하고 있습니다. 제가 만든 오픈소스이니 많은 fork 와 star 부탁드립니다! 해당 프로젝트는 변경될 수 있습니다. 안드로이드 Navigation 에 대해 알아보자. 참고로 공식문서는 여기에 있다. 안드로이드 공식문서는 영어가 가능하다면 영어로 읽는 편이 좋다. 한글 버전이 영어 버전보다 업데이트가 느리고 번역하면 안 되는 것을 번역해서 오해를 일으키는 단어들이 몇몇 있다. 안드로이드 Navigation 은 Jetpack 에 포함된 라이브러리이다. nav_graph.xml 을 통해 구조화가 가능하고 화면 구조를 시각적으로도 확인할 수 있다. 아래는 샘플 프로젝트이다. https://github.com/android/architecture-components.. 2021. 12. 25.
[안드로이드 #6] Fragment, ViewPager2 Fragment ViewPager2 중요과제 2 - Fragment Fragment 는 Activity 보다 살짝 작은 단위로 생각하면 됩니다. Fragment 를 사용하기 위해서는 반드시 Activitiy 에서 Fragment 를 추가해야 하고, 한 Activity 안에 여러 개의 Fragment 를 갖고 있을 수도 있습니다. 또한 여러 Activity 에서 같은 Fragment 를 사용할 수도 있습니다. 카카오톡처럼 Activity 하단에 메뉴 탭이 존재하고 어떤 탭을 누르냐에 따라 보이는 컨텐츠를 다르게 하려면, 이 컨텐츠들을 Fragment 로 구성할 수 있습니다. Fragment 도 Activity 와 비슷한 생명주기를 갖습니다. 기본적으로 Activity 의 생명주기를 갖고 있고, Fragme.. 2021. 5. 27.
[안드로이드 #5] menu, drawer, toolbar menu drawer toolbar 이번 스터디를 위해 새로운 모듈을 만들어서 사용하겠습니다. RecyclerView 때와 동일하게 만들면 됩니다. menu, drawer, toolbar 가 공통점이 있어 한 번에 이야기 하려 합니다. 이 부분은 많이 안 써보기도 했고 특히 toolbar 는 내용이 많아서 제가 싫어합니다. 그나마 가장 좋아하는 건 drawer 입니다. - menu 메뉴를 만드는 방법은 메뉴를 위한 xml 을 만들고 배치하고 이벤트를 연결해 주면 됩니다. 먼저 메뉴 xml 부터 만들어 보겠습니다. 메뉴 xml 파일들을 담기 위한 폴더를 만들어 줍니다. res 폴더에서 우클릭으로 만들 수 있습니다. Resource type 에 보시면 menu 라는 옵션이 이미 있습니다. 이것을 선택해 줍니.. 2021. 5. 23.
[안드로이드 #4] Retrofit2 permission, dependency 설정 api key 와 .gitignore Rectofit (Service Creator) Entity Service interface Service 사용 중요 과제 이번 시간에는 서버와 통신을 하기 위해 Retrofit2 라는 라이브러리를 이용합니다. 서버와 HTTP 통신하기 위해 사용되는 대표적인 라이브러리는 Volley 와 Retrofit2 이 있습니다. Volley 가 진입장벽은 낮지만 Retrofit2 가 성능이 더 좋고 확장성에도 좋기 때문에 대부분 Retrofit2 을 이용합니다. 보통 JSON을 가장 많이 이용하기 때문에 JSON 포맷을 사용하도록 하겠습니다. 옛날 API 나 공공데이터 API 의 경우 XML 을 사용하는 경우도 많이 있습니다. JS.. 2021. 5. 18.
[안드로이드 #3] RecyclerView (상) 이번 강의에 사용된 이미지용 xml 이번에는 RecyclerView 하나만 다뤄보도록 하겠습니다. RecyclerView와 비슷한 역할을 하는 View로 ListView가 있습니다. 하지만 ListView는 커스터마이징이 불가능하고 이미 만들어져 있는 것만 사용할 수 있습니다. ListView는 안 예뻐요. 그 밖에도 뷰를 재사용하는 RecyclerView 의 특징이 있기 때문에 대부분 RecyclerView를 이용한다고 생각하시면 됩니다. ListView의 이름에서 예상하셨겠지만 ListView나 RecyclerView는 같은 형식의 데이터 여러 개를 출력시켜주는 View입니다. 기존의 코드에서 덧붙이는 것보다 새로운 화면에서 만드는 것이 좋아보입니다. 우선 새 모듈을 하나 만들어 주세요. 액티비티는 .. 2021. 3. 31.
[안드로이드 #2] 이벤트 목차 이벤트 Toast Message Activity 생명주기 Intent 지난번 과제는 어떠셨나요? 과제에 대한 피드백은 스터디에서 하도록 하겠습니다. 오늘은 제목을 이벤트라고 지었지만 이벤트를 포함한 여러 개념들을 공부할 예정입니다. - 이벤트 뷰를 클릭했을 때의 이벤트를 지정할 수 있는 방법은 크게 두 가지가 있습니다. 하나는 kotlin코드(혹은 java)에서 지정하는 방법이고 다른 하나는 xml코드에서 지정하는 방법입니다. 1) xml에서 지정 먼저 xml에서 지정하는 방법을 살펴보도록 하겠습니다. xml에서는 onClick 이라는 속성에 클릭 이벤트를 구현한 함수 이름을 넣어주면 됩니다. 여기서 onClick 함수는 매개변수로 View 객체를 받아야 합니다. 예시 코드는 button Click.. 2021. 3. 3.
[안드로이드 #1] 안드로이드 시작 (하) 목차 안드로이드 개발자 페이지 안드로이드 4대 구성 요소 프로젝트 만들기 안드로이드 폴더 구조 Layout View 이 글은 [안드로이드 #1] 안드로이드 시작 (상)에 이어서 작성되었습니다. Layout 중간부터 시작합니다. - Layout Layout에는 여러 가지가 있습니다. 예를 들어 LinearLayout, TableLayout, RelativeLayout, ConstraintLayout 등이 있습니다. 그 중 LinearLayout과 ConstraintLayout 위주로 살펴볼 예정입니다. 프로젝트를 생성하면 자동으로 생성되는 코드에는 ConstraintLayout가 기본입니다. 그 이유는 아마 ConstraintLayout이 대부분의 경우에서 성능이 가장 좋기 때문이 아닐까 합니다. Layo.. 2021. 3. 1.
[안드로이드 #1] 안드로이드 시작 (상) 목차 안드로이드 개발자 페이지 안드로이드 4대 구성 요소 프로젝트 만들기 안드로이드 폴더 구조 Layout View 안드로이드 개인 과외는 문의 주세요... 안드로이드 강의를 시작합니다. 본 글은 스터디 및 강의를 위해 제작했습니다. 예상 소요시간은 (2시간 * 9회)입니다. 안드로이드에 대한 깊은 이해를 원한다면 이 글의 내용이 다소 빈약할 수 있습니다. 제 목표는 안드로이드의 모든 내용을 다루는 것이 아닌 짧은 시간 안에 서비스 중인 앱에 자주 쓰이는 기술들을 다루는 것입니다. 사용하는 언어는 kotlin입니다. 그럼 시작합니다. - 안드로이드 개발자 페이지 구글링하면 나오는 페이지는 다들 아시다시피 Stack Overflow가 가장 많이 나오고 유용합니다. 안드로이드는 참고할 만한 페이지가 하나 더.. 2021. 2. 21.