목록분류 전체보기 (54)
Olive Study Room
manifests 환경 설정. 꼭 이름이 'Androidmanifests' 여야 한다. // 추가할 activity가 있을 때 꼭 여기 추가해줘야 한다 // // 최초로 시작할 때 사용되는 코드 MainActivity package calnedarTest4.makecalendar import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.CalendarView import java.util.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { // 일단 첫 UI를 저장 sup..

안드로이드 스튜디오에서는 layout xml을 통해 주로 layout을 만든다. xml 각 컴포넌트에 id를 추가해서 코드에서 연결한다. LinearLayout 큰 컴포넌트를 LinearLayout으로 설정하고 orientation을 vertical 또는 Horizon으로 구분한다. padding, margin padding은 컴포넌트 안에, margin은 컴포넌트 밖에 여백을 추가한다. sp, dp, px sp는 폰트 크기에 사용하는데, 사용자가 휴대폰 내에 폰트 사이즈를 설정한 대로 유동적으로 움직이고 dp는 고정값임.(photoshop에서 px을 쓰는 것처럼) px은 각 휴대폰마다 픽셀이 다르기 때문에 다 다르게 보인다. 하지만 dp는 다 같게 보임! 폰트는 sp, 레이아웃은 dp를 사용해야한다. ..

xcode의 simulator처럼 안드로이드 스튜디오에는 AVD 에뮬레이터가 있다. configure에서 AVD Manager를 클릭한다. 왼쪽에서 간단하게 추가하고 실행할 수 있다. 다만 이 에뮬레이터는 아직 개발자 모드가 불가한데! 이는 에뮬레이터 내 setting에서 About emulated device를 여러 번 클릭하면 팝업창이 뜨고 개발자모드가 활성화된다. 세 번째 사진처럼 system에 가 보면 advanced에 Developer options가 추가된 것을 확인할 수 있다. [ 프로젝트 세팅 ] package name : 플레이스토어에 올렸을 때 다른 어플과 구분하기 위함. Minimum SDK : 지원할 안드로이드 버전을 정함. 누르면 몇 퍼센트의 사용자가 해당 버전을 이용할 수 있는지..

Jet Brains 회사에서 만든 IJ(통합개발환경 툴)를 기반으로 만든 게 Android Studio kotlin은 자바를 보완하기 위한 언어 2017년에 공식 언어로 지정. -> 구글이 kolin으로 하는 안드로이드 개발에 지원하겠다! 현 최신 버전은 4.1.2 Kotlin은 거의 Swift와 비슷하지만 다른 부분들도 있다. 주로 다른 부분을 비교해서 정리했다. [ 함수 선언 ] Swift Kotlin 함수 표현 func fun 반환 -> : 변수 표현 var var 타입 선언 타입추론 가능 타입추론 가능 String 초기화하지 않아도 됨 초기화 필요 다른 타입과 + 연산 가능(string으로 반환) null null을 가질 수 없는 타입도 있음 null을 가질 수 없는 타입도 있음 상수 표현 let..

더보기 오랜만에 깃허브를 다시 보는 김에 정리한다. Git 항상 파일을 지켜보며 변화를 추적하여 기록한다. 같은 파일에 대한 다른 버전을 보관한다. 여러 파일을 한번에 관리할 수 있다. -> 다른 사람과 변경사항 충돌 없이 파일을 같이 쓸 수 있다. GitHub 클라우드에 있는 깃 제공자 컴퓨터에서 깃 히스토리를 가져와서 깃허브 웹사이트(정확히는 원격 저장소-Repositories)에 푸쉬한다. 무료로 사용하려면 저장소를 공개해야 한다. [ GitHub에 올리는 방법 ] 터미널 사용하기 깃헙 데스크탑 프로그램 사용하기 ✔️ 두 가지 방법 중 더 간단한 두번째 방법을 사용했다. 간단히 세 단계로 정리할 수 있다. 1. github 서버 원격 저장소에 New repository ..

문자열 중 가장 많이 나온 char를 출력해야하는 문제! + 나온 수가 같은 경우 ?를 출력한다. 처음에 문자열을 나눠 배열로 만들기는 했으나 각 char가 등장한 횟수를 카운트해야한다. 처음엔 전역 var count: Int로 셌으나 코드가 너무 복잡해지고 1. 같은 char가 있는지 2. count중 가장 큰 수 3. 2의 인덱스를 맞아와 char출력 이렇게 계속 반복해야하는 횟수가 많아져 시간초과가 났다. count와 char를 한번에 처리하기 위해 Dictionary를 만들어보기로 했다. ([String : Int]) dictionary 는 key로 처리하기 때문에 dic을 계속 만들지 않고 이미 key가 있는지 확인하여 count를 올릴 수 있다. Dictionary를 사용한지 꽤 오래돼서 사용..
11654 let line = Character(readLine()!) print(Int(line.asciiValue!)) 11654 - 2 print(Character(readLine()!).unicodeScalars.first!.value) 11720 런타임 에러 let line = Int(readLine()!)! var line2 = Int(readLine()!)! var sum: Int = 0 while line2 != 0 { sum += line2%10 line2 /= 10 } print(sum) 11720 - 2 let line = Int(readLine()!)! var line2 = readLine()! var sum: Int = 0 line2.forEach({ sum += Int(Strin..
예전에는 영어나 몇 특수문자만 사용해서 저장할 때 1byte면 충분했지만, 이후 전 세계 언어를 표현하기 위해 유니코드를 만들었다. ex) '가' -> 'AC00' 하지만 unicode는 언어별로 읽어야 하는 바이트가 다르기 때문에 유니코드 앞에다 UTF-8이나 UTF-16과 같은 것을 붙여 인코딩을 해야한다. UTF-8 (Universal Coded Character Set + Transformation Format-8-bit) 1바이트 8비트. 유니코드로 각 글자가 정의되었지만 컴퓨터가 알아들을 수 있도록(2진법으로) 어떻게 저장할까?(=인코딩은 어떻게 할 것인가) UTF-8은 가변 인코딩 방식으로, 글자마다 byte 크기가 다르다는 뜻이다. 바이트 수 비트 수 유니코드 종류 1 8 U+0000 - ..