APP 11

안드로이드 - SharedPreferences 를 사용한 간단한 메모앱 [Kotlin]

안드로이드에서 데이터를 입력하고 저장하는 방법에는 여러가지가 있다. DB, SQLite, SharedPreferences 등등 .. 그중에서 오늘은 SharedPreferences 는 어떤 용도로 사용하는지 공부하였다. SharedPreferences 는 다른 데이터 저장 방법에 비해 속도가 빠르기 때문에 간단한 데이터를 저장할 때 주로 사용한다. 내부 저장소를 이용하기 때문에 권한 설정도 필요 없고 간단하게 이용할 수 있다. 예를 들면 실제 앱에서 자동 로그인시 사용자 인증이라던지 앱의 상태 정보를 저장하는 용도로 자주 사용된다. 액티비티에서 Intent 로 값을 넣고 빼는 것과 비슷한 형태이다. 아직 사용자 인증까지 해보기에는 공부가 더 필요할 것 같아서 그동안 공부한 LifeCycle 과 Share..

안드로이드 - LifeCycle 정리

PC 로는 여러가지 화면을 띄우고 병렬적인 동시작업이 가능하다. 하지만 스마트폰에서는 여러 앱을 실행하는 것은 가능하지만 여러 앱의 화면을 띄우는 것은 불가능하다. 실제 카톡을 하다가 전화가 오면 전화 앱으로 대체되는 현상을 볼 수 있다. LifeCycle 은 왜 필요한 것일까❓ 이 메서드들은 override 되어 사용된다. ( override 란? 한마디로 재정의 자식 클래스가 부모클래스의 기본적인 동작을 변경하는 것이다. ) 예를 들어, 메인 액티비티에서 동영상을 실행하고 있다면 서브 액티비티로 화면 전환된다면 메인 액티비티에 onPause() 또는 onStop() 메서드 안에 동영상을 정지시키는 코드를 작성해둬야한다. 그렇지 않으면 그만큼 자원 ( 배터리, 네트워크 트래픽 등) 이 낭비된다. 각각의..

Android ListView 와 RecyclerView 특징과 차이점

Layout 과 Container Layout은 위젯의 위치를 다루는 것이였다면 , Container 는 위젯이나 다른 레이아웃에 데이터를 동적으로 표현할 때 사용된다. Container 를 사용하는 대표적인 예로 목록을 화면에 출력할 때 사용하는 RecyclerView 가 있다. 컨테이너는 레이아웃과 다르게 내부 요소의 위치를 결정할 수 있는 속성이 없으므로 컨테이너를 사용할 때는 다른 레이아웃을 컨테이너 안에 삽입해서 사용한다. ListView 와 RecyclerView의 차이 모바일 단말에서 가장 많이 사용되는 UI ⇒ 리스트 안드로이드에서 리스트 형태로 보여주는 것은 ListView 와 RecyclerView 가 있는데 둘의 차이는 다음과 같다. RecyclerView ListView ViewHo..

Android - Manifest 정리

Manifest 모든 앱 프로젝트는**AndroidManifest.xml 파일이 필수적**이다. Manifest는 안드로이드 애플리케이션에 대한 각종 정보를 기술한 애플리케이션 명세서이다. 가장 상위 폴더에 매니페스트 파일이 있어야하며, 이 정보는 앱이 실행되기 전에 시스템이 알아야 할 내용을 정의하고 있다. 1. 태그에 타이틀이나 아이콘, 테마 등과 같은 앱 자체의 정보를 속성으로 지정할 수 있다. 이때 태그는 매니페스트에 반드시 하나만 있어야한다. 안드로이드 스튜디오에서 프로젝트를 만들면 처음으로 볼 수 있는 매니페스트이다. 및 은 유일하고, 다른 태그들은 여러 번 또는 안 나와도 무방하다. 태그가 시작되고 package="com.example.helloworld" 으로 앱 패키지를 정의한다. 태그 ..

안드로이드 레이아웃 : Relative Layout

Relative Layout은 상대적인 레이아웃으로 자식 뷰 또는 부모 뷰 간의 관계에 따라 배치를 적용하는 레이아웃이다. 레이아웃 계층 구조를 평면으로 유지하여 성능을 개선하므로 UI 설계에 유용한 유틸리티이다. Relative Layout 으로 구현하기 전에는 계속 여러 개 중첩된 LinearLayout 을 이용하였는데, RelativeLayout 을 사용한다면 더 간단하게 할 수 있는 것 같았다. Linear Layout 을 여러개 써서 계층이 깊어지는 것을 막을 수 있다. 적은 양의 코드로 뷰의 자유로운 배치를 위해 필요하다. 먼저 RelativeLayout 을 사용한다면 하위 뷰, 상위뷰, 서로 다른뷰를 ID로 구분하고 상대적인 위치를 지정할 수 있다. RelativeLayout 에는 많은 레이..

안드로이드에 파이어베이스 연동하기

파이어베이스는 구글에서 제공하는 Paas 형식 클라우드 서비스로 앱개발을 빠르게 할 수 있도록 도와준다.파이어베이스에서는 데이터베이스, 인증, 스토리지 등 많은 것들을 제공한다. 안드로이드에 파이어베이스를 연동하여 간단하게 DB를 구현해보려고 한다. 실시간 데이터베이스는 기존에 데이터베이스 언어 SQL 이 아닌 NoSQL 형식의 DB 다. SQL 에 비해 NoSQL 을 사용하면 빠르게 반응할 수 있다. JSON 형식으로 저장되고 DataSnapshot 객체 형태로 가져온다. 복잡한 백엔드를 쉽게 도와주는 파이어베이스는 프론트엔드 개발자나 포트폴리오를 만드는데 사용하면 도움이 될듯하다!순서로 간단하게 만들 수 있다 ! 만드는데 10분도 안 걸린다 1. Firebase 프로젝트 생성 firebase.goog..

안드로이드스튜디오에서 Jsoup으로 웹 크롤링하기 (Java)

jsoup 이란 특정 url의 html을 파싱해주는 라이브러리 파싱이란? 컴퓨터 과학에서 파싱((syntactic) parsing)은 일련의 문자열을 의미있는 토큰(token)으로 분해하고 이들로 이루어진 파스 트리(parse tree)를 만드는 과정을 말한다. 안드로이드스튜디오에 build.gradle(Modul: app) 에 dependencies를 추가해준다 → implementation 'org.jsoup:jsoup:1.13.1' manifest 에는 이부분도 http 통신을 위해 추가! 그다음 크롤링하고 싶은 웹페이지에 들어간다. 나는 빨간 부분을 가져오고 싶었다. 네트워크에서 데이터를 받아오려면 별도의 Thread가 필요하다! 그러지 않으면 이런 에러를 볼 수 있다!! doc.select( )..

안드로이드스튜디오에서 위치기반 서비스 만들기 (+ googleMap)

안드로이드 기반 폰 위치는 위치관리자 라는 시스템 서비스가 관리한다. 현재 나의 위치를 확인하면서, 관심있는 장소들을 마커로 찍어주는 것을 해볼 것이다. 이건 완성된 모습! 여기서 기능을 좀 더 추가해봐야겠다! 1. 먼저 안드로이드 프로젝트를 만들 때 Template 를 googleMap 을 열어준다. Settings 에 가서 android SDK - SDK Tools 에서 Google Play services 가 설치되어 있어야한다. 2. 만들어진 xml 파일을 보면 링크가 있는데 이걸 따라 들어가본다. 3. 동의 및 계속하기를 누르고 API 발급받기를 누른 후 받아온 키를 YOUR_KEY_HERE 에 복붙! 4. 실행해보면 지도 마커가 시드니에 위치되어 있다. MapsActivity.class 의 이..