반응형

Android/study_til 26

[AOS] Fragment의 생명 주기

1. onAttach() - Fragment가 Activity에 붙을 때 호출. - 아직 fragment가 완벽하게 생성된 것은 아님. 2. onCreate() - 본격적으로 Fragment가 Activity에 호출을 받아 생성되는 시점. - 해당 메소드에서는 UI관련 작업을 할 수 없다. 3. onCreateView() - Fragment에 속한 각종 view나 viewGroup에 대한 UI바인딩 작업. - Layout을 inflate하여 view를 작업한다. 4. onActivityCreated() - Activity에서 Fragment를 모두 생성하고 난 후, 호출. - Activity에서 onCreate() 다음에 호출된다. - 여기서 Activity와 Fragment가 연결되는 시점이다. 5. ..

Android/study_til 2021.05.23

아키텍쳐 디자인 패턴 - MVP란?

이전 포스팅의 MVC에 이어서 MVP 패턴에 대해 알아보겠습니다. MVP란? Model, View, Presenter로 구성된 디자인 패턴입니다. MVP의 핵심 설계는 MVC와 다르게 UI(View)와 로직(Model)을 분리하고, 서로 간에 상호작용을 다른 객체(Presenter)에 그 역할을 줌으로써, 서로의 영향(의존성)을 최소화하는 것에 있습니다. 각 객체들의 특징은 아래와 같습니다. Model - 프로그램 내부적으로 쓰이는 데이터를 저장하고, 처리하는 역할(비즈니스 로직). - View 또는 Presenter 등 다른 어떤 요소에도 의존적이지 않은 독립적인 영역. View - UI를 담당하며 안드로이드에서는 Activity, Fragment가 대표적인 예. - Model에서 처리된 데이터를 Pr..

Android/study_til 2021.05.21

아키텍처 디자인 패턴 - MVC란?

위키피디아에서는 디자인 패턴을 아래와 같이 정의하고 있습니다. 소프트웨어 개발 방법에서 사용되는 디자인 패턴은, 프로그램 개발에서 자주 나타나는 과제를 해결하기 위한 방법 중 하나로, 과거의 소프트웨어 개발 과정에서 발견된 설계의 노하우를 축적하여 이름을 붙여, 이후에 재이용하기 좋은 형태로 특정의 규약을 묶어서 정리한 것이다. 알고리즘과 같이 프로그램 코드로 바로 변환될 수 있는 형태는 아니지만, 특정한 상황에서 구조적인 문제를 해결하는 방식을 설명해 준다. 이러한 디자인 패턴은 코드의 가독성과 테스트 및 유지보수를 간편하게 만들어 줍니다. 만약 반대로 디자인 패턴을 적용하지 않는다면? 무작정 하나의 Class에 온갖 코드를 작성하면서 코드 중복이나 for문, if문들을 남발하게 되고, 제품의 유지보수..

Android/study_til 2021.05.21

[AOS] Activity의 생명 주기

Activity는 메모리에 상주되면서 소멸되기까지 생명 주기(Life Cycle)를 가지고 있습니다. 이에 따라 콜백 메서드가 호출되는데, Activity를 구현할 시에 반드시 알아야하는 내용입니다. 위 이미지는 구글 안드로이드 레퍼런스 API 가이드에 나오는 Activity의 생명 주기입니다. 다음으로 각 메서드에 관한 간략한 표를 가져왔습니다. 메소드 설명 다음 메소드 onCreate() 액티비티가 생성될 때 호출되며 사용자 인터페이스 초기화에 사용됨. onStart() onRestart() 액티비티가 멈췄다가 다시 시작되기 바로 전에 호출됨. onStart() onResume() 액티비티가 사용자와 상호작용하기 바로 전에 호출됨. onPause() onPause() 다른 액티비티가 보여질 때 호출됨..

Android/study_til 2021.05.21

[AOS] 안드로이드의 통신 수단 Intent

Intent란 안드로이드의 컴포넌트끼리 서로 통신할 수 있는 수단이자, 안드로이드 OS와 개발자를 이어주는 중요한 개념입니다. 1. Intent 안드로이드는 컴포넌트 기반으로 개발되어 실행되는데, 이때 서로 다른 스레드와 메모리 공간, 생명 주기를 가지며 동작합니다. 이러한 컴포넌트들을 이어주는 역할을 하는 것이 Intent입니다. Intent의 가장 대표적인 기능은 한 Activity에서 다른 Activity를 실행시켜주는 역할을 합니다. 이미 실행 중인 어플리케이션에서 안전하게 다른 Activity의 스레드를 동작시켜주기 위해서는 기존 Activity를 중지하거나 제거한 후, 안전하게 다른 Activity를 생성해야 합니다. Intent는 이러한 역할을 수행할 뿐만 아니라, 다른 Activity에게 ..

Android/study_til 2021.05.21

[AOS] 안드로이드 4대 컴포넌트

안드로이드의 4대 컴포넌트는 Activity, Service, BroadcastReceiver, ContentProvider로 구성되어 있습니다. 어플리케이션을 만들 때 주요 구성요소로 인텐트를 통해서 상호 통신을 합니다. 즉, Activity에서 다른 구성요소를 호출할 때는 인텐트를 거쳐야 한다는 것입니다. 또한, 각 컴포넌트들은 하나의 독립적인 형태로 존재하며, 고유의 기능을 수행합니다. 1. Activity Activity는 사용자와 상호작용하는 어플리케이션의 단일 화면으로 모든 안드로이드 어플리케이션은 Activity로 구성되어 있습니다. 즉, 사용자와 상호작용을 담당하는 인터페이스라고 할 수 있습니다. 안드로이드 어플리케이션은 반드시 하나 이상의 Activity를 포함하고 있으며, 생명 주기 관..

Android/study_til 2021.05.21

[Android Studio] Http protocol 접속 시, 발생하는 예외발생 조치하기

지난 포스팅에서 공공데이터의 Open API를 활용하다가 아래와 같은 에러코드로 인해 4시간을 해맸습니다. I/System.out: Cleartext HTTP traffic to ws.bus.go.kr not permitted 또한, AVD에서는 아래와 같이 나왔습니다. 처음에는 Unexpected token만 보고 Open API에 응답 결과를 Stream형태로 바꾸는 과정에 문제가 있다고 판단하고 접근했습니다. 하지만 에러코드를 확인하고는 바로 문제를 해결할 수 있었습니다. Permission 해당 문제를 해결하면서 안드로이드는 자동으로 INTERNET에서 접속할 수 없음을 알았습니다. Open API로 요청을 보내거나 서버로 Http Request를 보낼 때, 다음 설정을 Manifest에 추가해야..

Android/study_til 2020.12.30

[Android Studio] 공공데이터를 활용한 버스노선 앱 만들기

다음은 공공데이터 Open API를 활용하는 방법으로 아래 사이트에서 회원가입, 인증키를 받는 과정은 생략하겠습니다. 1. 공공데이터 Open API www.data.go.kr/ 공공데이터 포털 국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제공 및 이용 활성화에 관한 법률(제11956호)』에 따라 개방하여 국민들이 보다 쉽고 용이하게 공유•활용할 수 있도록 공공데이터(Datase www.data.go.kr 위 사이트는 공공기관에서 제공하는 공공데이터로 누구나 쉽고 편리하게 사용할 수 있으며 파일 데이터, Open API, 시각화 등 다양한 방식으로 제공됩니다. 본 예제에서는 Open API의 인증키를 받아 [노선정보조회 서비스]라는 Open API를 활용해보도록 하겠습니다. 1. 검색할 노선번호 ..

Android/study_til 2020.12.29

[Android Studio] XML파싱과 AsyncTask 이해하기

공공 데이터를 활용한 버스노선 앱 만들기를 진행하겠습니다. 버스 번호를 입력하면 해당 버스의 위치와 진행방향을 알 수 있는 앱으로 만들기 전에 필요한 이론들을 살펴보겠습니다. 1. XML 문서 파싱하기 앱을 만들기 전에 공공데이터의 API를 요청하면 응답받게되는 XML문서를 파싱하는 방법을 알아보겠습니다. XML은 HTML과 다르게 사용자 정의 태그를 만들어서 사용할 수 있습니다. 이러한 장점 덕분에 API응답 문서로 유용하게 사용됩니다. Android에서 데이터 파싱 방법으로 DOM(Document Object Model), SAX(Simple API for XML), Pull Parser, JDOM, JSON 등이 있습니다. 여기서는 Pull Parser를 사용하겠습니다. 2. XmlPullParse..

Android/study_til 2020.12.29

[Android Studio] 영어단어 앱 만들기 - 세부 기능

스마트폰 기기의 버튼을 구성하는 메소드로 이를 Overriding해서 활용. @Override public boolean onCreateOptionsMenu(Menu menu) { menu.add(0, 1, 0, "sound on"); menu.add(0, 2, 0, "sound off"); menu.add(0, 3, 0, ""); menu.add(0, 4, 0, ""); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch(item.getItemId()) { case 1: StudyView.soundOk = 1; break; case 2: StudyView.soundOk = 0; break; defaul..

Android/study_til 2020.12.13
반응형