전체 글124 GitHub Desktop 기본 사용법 GitHub에 프로젝트를 올리는 방법은 정말 많은데, 내가 사용해본 기준으로 생각정리해보면 1.Git Bash, 2.GitHub Desktop, 3. 각 환경마다 git plugin을 이용한 방법 이렇게 총 3가지가 있다. 이번엔 이 중에서 2번 GitHub Desktop을 사용한 방법에 대해 정리해보려고 한다. 우선 아래 주소로 이동해 다운로드받아준다. GitHub Desktop Simple collaboration from your desktop desktop.github.com 다운로드를 다 받았으면 GitHub Desktop을 실행시켜준다. GitHub.com에 Sign in을 해준다. File -> Options -> Accounts File -> Add local repository Choos.. 2021. 3. 5. 안드로이드 4대 컴포넌트 안드로이드 4대 컴포넌트는 대학에서 안드로이드 기초 시간에 생명주기와 함께 기본적으로 배웠던 개념인데, 그때 대충 듣고 흘려서 안드로이드 개발자로 일하면서도 이런 것을 설명 못한다는 거에 대해 창피해서 처음부터 차근차근 개념을 정리해보려고 한다. 안드로이드 4대 컴포넌트란? 안드로이드 환경에서 각 컴포넌트 마다 독립적인 기능을 갖고 정해진 역할을 수행하는 컴포넌트들을 말하며 각 컴포넌트들은 Intent를 통해 상호 통신한다. 4대 컴포넌트의 구성은 아래와 같다. 1. Activity 2. Service 3. BroadCast Receiver 4. Content Provider 이렇게 구성되어 있다. 1. Activity - 액티비티는 UI 화면을 담당하는 컴포넌트이다. - 사용자와 앱 간의 상호작용을 하.. 2021. 3. 5. String 관련 함수 정리 문자열을 사용할 때 알아두면 유용한 method에 대해 정리해보려 한다. contentEquals() : BooleanCASE 1) String 문자열과 contentEquals()의 괄호 안의 문자열 비교val str:String = "I like Apple."var contentEquals:Boolean = str.contentEquals("I like Apple.") CASE 2) String 문자열끼리 비교val str:String = "I like Apple."var str2:String = "I like Apple."var contentEquals:Boolean = str.contentEquals(str2) CASE 3) String 문자열과 StringBuffer의 문자열을 비교val st.. 2021. 3. 5. 개발하면서 자주 썼던 함수 정리 (maxBy, minBy, groupBy, map, reduce, indices, compareTo) 알아두면 유용한 함수들을 정리해 보려 한다.maxBy, minBy - 배열에서 가장 큰 수와 작은 수를 구할때 사용fun main() { val arrInt = IntArray(10) {0} for(i in 0 until arrInt.count() step 1){ val random:Random = Random() arrInt[i] = random.nextInt(100)+1 } println(arrInt.contentToString()) // val maxNum:Int? = arrInt.maxBy{it} val maxNum:Int = arrInt.maxBy{it} ?: -1 val minNum:Int = arrInt.minBy{it} ?: .. 2021. 3. 5. [Android] 화면 크기 별 Layout 생성 화면 크기 별 Layout이 필요한 이유 모바일 환경에서 layout은 여러 가지 화면으로 변형될 수 있다. 예를 들면 하나의 layout을 스마트폰과 태블릿 두 곳에서 사용하면 분명 layout 객체들의 크기가 달라 보일 것이다. 또한 세로, 가로 화면의 전환에 따라 view가 달라질 수 있기에 귀찮더라도 화면의 크기에 따라 또 화면 모드에 따라 맞춰서 layout을 각자 생성해 주는 경우가 있다. 구현해보기 기본 화면은 아래와 같이 세로 모드 portrait로 생성된다. 그럼 가로모드 landscape 화면을 생성해 보자. New -> Layout Resource File File name을 activity_main(본인이 만들려는 layout 이름과 동일하게) -> Orientation .. 2021. 3. 5. [Android] Serialize, Parcelable, Parcelize 정리 Serialize, Parcelable, Parcelize를 사용하는 이유 기본 자료형과 참조 자료형 객체를 갖고 있는 데이터 클래스를 전달하기 위해 사용한다. 주로 안드로이드에서는 Intent에 데이터 객체 담아 보낼 때 사용된다. Serialize 이름 그대로 데이터를 직렬화 해주는 방식이다. Kotlin에서 구현하면 아래처럼 굉장히 짧게 구현할 수 있다. data class Player(val league: String, val skill: String): Serializable reflection이라는 기술을 사용하여 런타임에서 데이터를 직렬화/역 직렬 화하는 과정을 진행하기 때문에 GC가 할 일이 늘어나 속도가 느리다. Parcelable 기존 java를 이용해 앱 개발했을 때, 사용하던 방식.. 2021. 3. 5. 화면 회전에도 상태 값 유지하기 아래 프로젝트는 8개월 전 Udemy에서 Kotlin for Android:Beginner to Advanced강좌를 통해 공부했던 내용이다. 화면을 회전하게 되면 Activity는 저절로 OnPause -> OnStop -> OnDestroy -> OnCreate -> OnStart -> OnResume을 수행하게 된다. 이 과정에서 당연히 우리가 변수로 저장했던 값들을 null 값으로 변하게 되고 다음 Activity 또는 fragment로 보내려던 값을 정상적으로 보내지 못하게 된다. 이 경우 여러 가지 방법이 있겠지만 가장 쉽고 대표적인 방법으로 OnSaveInstanceState()와 onRestoreInstanceState()를 사용하는 방법이 있다. activity_league.xml.. 2021. 3. 5. 개인정보처리방침(Best Way) 1. 개인정보의 처리 목적 (‘junyoeng.tistory.com/’이하 ‘bestway’) 은(는) 다음의 목적을 위하여 개인정보를 처리하고 있으며, 다음의 목적 이외의 용도로는 이용하지 않습니다. - 고객 가입의사 확인, 고객에 대한 서비스 제공에 따른 본인 식별.인증, 회원자격 유지.관리, 물품 또는 서비스 공급에 따른 금액 결제, 물품 또는 서비스의 공급.배송 등 2. 개인정보의 처리 및 보유 기간 ① (‘junyoeng.tistory.com/’이하 ‘bestway’) 은(는) 정보주체로부터 개인정보를 수집할 때 동의 받은 개인정보 보유․이용기간 또는 법령에 따른 개인정보 보유․이용기간 내에서 개인정보를 처리․보유합니다. ② 구체적인 개인정보 처리 및 보유 기간은 다음과 같습니다. ☞ 아래 예시.. 2021. 3. 4. 개인 프로젝트 Best Way(1) 기존에 졸업작품으로 만들었던 우리학식 앱을 리펙토링하면서 만들고 있는 것이 Best Way라는 앱이다. 기존앱은 Java로 구성되어 있으며 기본 패턴은 MVP로 구성되어 있으며 서버와 OkHttp로 통신하고 있다. 서버는 Cafe24로 구현되어 있으며 Servlet을 이용하여 API가 구현되어 있다. Best Way는 이 앱에서 제공하고자 했던 기능들만 남기고 모든 부분을 다 수정할 것이다. 일단 언어부터 Kotlin으로 수정하고 패턴 같은 경우 MVVM(AAC ViewModel, LiveData, Lifecycles), DI(Koin)를 적용할 것이며 서버와 통신의 경우 Retrofit2과 RxAndroid를 이용해서 구현할 것이다. 서버의 경우 AWS의 ec2와 s3를 이용해서 서버를 구축할 예정이다.. 2021. 2. 27. 이전 1 ··· 9 10 11 12 13 14 다음 반응형