안드로이드

    [Android/안드로이드] 네이버 로그인 서비스 구현하기

    [Android/안드로이드] 네이버 로그인 서비스 구현하기

    step1. 애플리케이션 등록 (네이버 아이디 로그인 오픈 api 신청) https://developers.naver.com/apps/#/register 애플리케이션 - NAVER Developers developers.naver.com 위 사이트에 들어가서 해당하는 정보를 선택하여 애플리케이션을 등록한다. 안드로이드 package명은 Mainfest파일에서 확인가능하다. step2. SDK추가/개발 환경 설정 build.gradle(app) implementation 'com.naver.nid:naveridlogin-android-sdk:4.2.6' sdk추가 https://developers.naver.com/docs/login/sdks/sdks.md SDK 다운로드 - LOGIN 기능 추가 iOS9..

    [안드로이드] JWT 사용하기

    [안드로이드] JWT 사용하기

    https://sodock00.tistory.com/15 [UMC] 8주차 - 사용자 인증 방식(oAuth/JWT) [SignUpActivity] 회원가입 구현하기 [SignUpActivity] DB 데이터 User에 Add [LoginActivity] 화면만들기 [LoginActivity] 로그인 구현하기 [LoginActivity] jwt(userIdx) sharedPreference에 'id' (primary key.. sodock00.tistory.com JWT(Json Web Token)에 대한 전반적인 내용은 위에 정리해두었다. 오늘은 실전편, 실제 안드로이드에서 JWT를 사용하기 이다. 다시 한번 JWT 사용과정을 살펴보자!! * 실제 적용한 부분으로 조금씩 내용 추가할 예정 JWT 사용과정..

    [안드로이드/Retrofit2] No type arguments expected for class Call

    git pull을 받고 내 작업 재시작 전에 실행을 해봤는데.. "No type arguments expected for class Call" 라는 에러가 발생했다. 찾아보니 이 오류는 retrofit2를 import해줘야 하는데 잘 못 import한 경우 발생한다고 한다. 그런데 나 같은 경우는 import에 아예 retrofit이 안뜨는 상황... 머리를 쥐어뜯고 도대체 뭐가 문제인지 한참을 고민하다가 혹시나 하고 build gradle 파일에서 retrofit부분을 지우고 재정의 해준다음 싱크해줬다. // Retrofit2 implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation 'com.squareup.retrofit2:retro..

    [Android] Navigation(네비게이션) 사용법

    [Android] Navigation(네비게이션) 사용법

    내가 보려고 적는 navigation 사용법... 0. Navigation이란? https://developer.android.com/jetpack/androidx/releases/navigation?hl=ko Navigation | Android 개발자 | Android Developers Navigation Navigation은 Android 애플리케이션 내에서 '대상' 사이를 탐색하는 프레임워크로, 대상이 Fragment, Activity 또는 기타 구성요소로 구현되었는지에 관계없이 일관된 API를 제공합니다. 최근 업데 developer.android.com 1. 사용법 1. build.gradle 파일에 navigation dependecy(의존성)을 추가하고 sync까지 완료해준다. 2. 네비..

    [UMC] 8주차 - 사용자 인증 방식(oAuth/Cookie/JWT)

    [UMC] 8주차 - 사용자 인증 방식(oAuth/Cookie/JWT)

    [SignUpActivity] 회원가입 구현하기 [SignUpActivity] DB 데이터 User에 Add [LoginActivity] 화면만들기 [LoginActivity] 로그인 구현하기 [LoginActivity] jwt(userIdx) sharedPreference에 'id' (primary key) 저장 [AlbumFragment] 하트 누르면 User 구분하여 Like Table 업데이트 [보관함 프래그먼트] 리사이클러뷰 및 좋아요 - DB의 클릭한 Album의 isLike 업데이트 사용자 인증 방식 01. oAuth 개념 : 다양한 플랫폼 환경에서 권한 부여를 위한 산업 표준 프로토콜 : 우리가 흔히 보는 구글로 로그인하기, 페이스북로그인 하기 등 장점 : 로그인 과정에서 요구되는 세션관리..

    [UMC] 7주차 - RoomDB

    [UMC] 7주차 - RoomDB

    RoomDB DBMS의 종류(rdbms,nosql) sql 쿼리문법 실제로 모든 데이터를 캐싱처리 하려면 어떻게 해야할까? ERD 설계 ⚫ ERD(Entity-Relationship Diagram) : ER다이어그램 , 데이터베이스 구조를 한 눈에 알아보기 위해 그리는 다이어그램 ⚫ 장점 : 1. 디자인 시간 효율이 증가 : 데이터베이스를 설계할 때 다양한 테이블과 해당 테이블 간의 관계들을 하나하나 그리면서 설계하기에는 시간 효율이 떨어짐 > 이때 ERD를 사용하면 전체 데이터 베이스의 구조를 먼저 잡고 진행할 수 있다. 2. 데이터 수집을 편하게 함 : 데이터의 다양한 특징을 한 눈에 볼 수 있다. > 데이터 수 집 시 데이터의 요구사항이나 흐름에 맞춰 개발을 할 수 있다. ⚫ ER모델 구성 : 요구..

    [UMC] 6주차 - ListView/ RecyclerView / 데이터 렌더링

    [UMC] 6주차 - ListView/ RecyclerView / 데이터 렌더링

    1. [오늘 발매음악 리사이클러뷰 생성] ⇒ 클릭 시 액티비티 전환 with 데이터 렌더링 ListView ListView란? 정의 : 사용자가 정의한 데이터 목록을 세로 방향으로 나열하여 화면에 표시하는 뷰 그룹의 한 종류단점 : 최초 생성이나 스크롤 시 아이템을 생성할 때마다 뷰바인딩을 하기 때문에 성능저하가 일어난다. / VewHolder를 제공하지 않아서 finfViewByld를 매번 호출하여 사용해야 한다. 장점 : 단순하고 ArrayAdapter가 제공되어서 더 빨리 적용할 수 있다. RecyclerView List View vs RecyclerView [오늘 발매음악 리사이클러뷰 생성] ⇒ 클릭 시 액티비티 전환 with 데이터 렌더링 - RecycleView : 동일한 형태의 뷰의 데이터에..

    [UMC] 5주차 - 액티비티 생명주기 / MediaPlayer / GSON,JSON

    [UMC] 5주차 - 액티비티 생명주기 / MediaPlayer / GSON,JSON

    1. [Main] 화면 Seekbar 구현해서 [Song] 에서의 진행시간이 반영하기 LifeCycle Lifecycle Why? Lifecycle 패러다임 1. 활성 상태 : 액티비티가 실행되어 화면에 나오고 사용자 이벤트를 처리할 수 있는 상태 / onCreate > onStart > onResume 순으로 함수가 호출되며 setContentView 함수를 onCreate에서 호출하여 출력한 내용이 액티비티 화면에 나오도록 한다. 2. 일시 정지 상태 : onPause 함수까지 호출된 상태 / 화면 분할 모드에서 확인할 수 있다. (사용자 이벤트 처리 불가능) 3. 비활성 상태 : 액티비티가 종료되지 않고 화면에만 보이지 않는 상태 / 앱 실행 상태에서 홈 화면만 눌렀을 때 onPause > onSt..

    [UMC] 4주차 - Thread(스레드) 개념 및 사용법

    [UMC] 4주차 - Thread(스레드) 개념 및 사용법

    1. splash 화면 구현 2. SongActivity Timer Seekbar 구현 Thread 정의) 프로세스(process : 실행되는 프로그램) 내에서 순차적으로 실행되는 실행 흐름의 최소 단위 개념) 어떠한 일을 백그라운드로 돌려두고, 그 동안 다른 여러가지 일을 하는 것 Handler : 일반적인 Thread간 상호 작용을 위한 클래스: 안드로이드에서는 Main Thread 를 통해서만 화면 UI 변경 가능 > 핸들러를 사용해서 Main Thread 에 접근하여 UI를 수정 : 다른 Thread가 전송하는 Message와 Runnable 객체를 받을 수 있다. runOnUiTread : 현재 스레드가 UI 스레드라면 UI 자원을 사용하는 행동에 대해서는 즉시 실행되고, 만약 현재 스레드가 U..

    [UMC] 3주차 - 다양한 화면 전환

    [UMC] 3주차 - 다양한 화면 전환

    Viewpager 스와이프 이벤트로 화면을 전환할 때 사용 FragmentStateAdapter : 각 항목을 프래그먼트로 작성했을 때 사용 Indicator : 화면 하단에 화면 전환시 몇 번째 화면인지를 표시하는 뷰 step 1 : MainAct ) ViewPagerFragment를 띄워주는 역할만 수행 LinearLayout을 전체화면으로 지정 > 해당 Layout에 ViewPagerFragment를 띄움 class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_ma..

    [UMC] 2주차 - 화면 전환

    [UMC] 2주차 - 화면 전환

    Activity : 화면에 표시되는 UI 구성을 위해 가장 기본이 되는 요소 > 화면에 앱의 UI를 표시하기 위해 사용 : MainActivity가 앱 실행 시 최초로 보여지는 Activity : Activity의 정보 확인은 "AndroidManifest.xml" 파일에서 확인할 수 있다. Fragment (p. 339) : TextView와 같이 Activity 화면을 구성하는 뷰 / Activity처럼 동작한다. : 태블릿처럼 화면이 넓은 기기에서 동작하는 앱을 개발할 수 있도록 제공 : 탭 버튼이 여러개 있는 화면에서 각 버튼을 클릭할 때 나오는 여러개의 화면에 사용 가능 : 화면 분할 시 ) 왼쪽과 오른쪽에 각각의 클래스를 분리해서 작성 > 액티비티에서는 두 클래스를 조합만 한다. : 장점 ) ..

    [UMC] 1주차 - 앱의 기본 기능 구현

    [UMC] 1주차 - 앱의 기본 기능 구현

    1. 뷰를 이용한 화면 구성 - 레이아웃 XML로 화면 구성하기 ( 다양한 View들을 XML의 태그로 명시해 화면을 구성한다. - 뷰 클래스의 기본 구조 : 안드로이드에서 화면을 만들어서 표시하는 컴포넌트는 엑티비티, 이 액티비티가 실행되면서 뷰 클래스를 이용해 화면을 구성한다. : 액티비티 화면을 구성할 때 사용하는 클래스는 모두 View의 하위 클래스 : 레이아웃 클래스에 다양한 뷰를 포함하여 화면을 구성한다. : 레이아웃을 중첩하여 사용하기도 한다. ScrollView 영역이 너무 커서 한 화면에 다 보여주지 못 할 때 사용 특징 : 한 개의 View만을 가질 수 있다. (여러개의 View를 넣고 싶으면 layout 사용해야 함) orientation horizontal : 수평 스크롤뷰 (수평 ..