본문 바로가기

IT 정보 공유방

Swift: array, dictionary, set, tuple, enum Array - [] 를 이용해서 선언 - 개별 아이템 접근시 index를 이용 - index 범위 내에서 잘 처리될 수 있도록 구현 - 0부터 시작 빈 배열 선언 var arr: [Int] = [] var arr2 = [Int]() Dictionary - Key : Value 형태로 저장되는 자료구조 - Any : 어떠한 타입이 들어와도 괜찮다. 빈 딕셔너리 선언 var dic: [String: Any] = [:] var dic2 = [String: Any]() Set - 값을 담는 자료구조인데, 중복된 데이터는 무시되는 자료구조 선언 var primes: Set = [2, 3, 4, 5] var evens = Set([2, 3, 4, 5, 5, 2]) // 타입 선언이 되지 않는다면 (소괄호) 안에 [.. 더보기
문자열 관리 1) 자료형 변환 - 문자열을 Int형으로 변환할 땐 Int()로 변환하면 됩니다. 하지만 문자열 자체가 nil일 가능성이 있기 때문에 옵셔널 변수를 사용해야 합니다. let myString7 = "123" let myStrToInt: Int? = Int(myString7) // nil이 발생할 수 있기 때문에 자료형 선언할 때 옵셔널 변수 둘 것 (?) - Int형으로 관리된 것을 Float형으로 변환하려고 할 때에도 마찬가지로 Float를 넣어주면 됩니다. 마찬가지로 여기서는 myStrToInt 상수가 myString7을 받을 때 nil일 가능성을 염두하여 옵셔널 변수를 사용했으므로 Float로 변환할 때에도 이 상수는 nil이 아니다! 라고 강제 언래핑을 해줘야 합니다. let myFloat: Fl.. 더보기
반복문 스위프트는 기존 for문 구조를 따르지 않습니다. 기존 for문 구조는 for(초기화; 조건문; 증감값)인데, 스위프트는 파이썬과 비슷한 느낌으로 다음과 같이 구현됩니다. 문제1) 1부터 35까지 반복해서 출력하세요 --> ... 로 범위를 나타내고 for - in 구조로 반복문을 구현합니다. for i:Int in 1...35 { print(i) } 문제2) 1부터 35까지 3씩 증가시켜서 출력하세요 --> stride 함수를 사용하고, from, to, by를 입력해서 조건에 맞게 출력하도록 한다. for i:Int in stride(from: 1, to: 35, by: 3) { print(i) } 문제3) 35부터 1까지 거꾸로 출력하기 --> reversed() 함수를 사용하는데, 그 전에 범위로.. 더보기
옵셔널 변수 스위프트 언어의 특징 중 하나인 옵셔널(Optional) 변수를 활용한 널(Null) 체크를 진행하는 법을 확인해보겠습니다. 자바에서 가장 많이 나는 Exception으로 NullPointerException이 있는데 옵셔널 변수를 활용하면 이러한 빈도를 눈에 띄게 줄일 수 있습니다. var myNum1: Int = 10 // 10이라는 실제값으로 초기화 했으므로 nil이 아님 var myNum2: Int? = nil // 명시적으로 null일 수도 있음 --> 옵셔널 변수 선언 앞에 예제는 명시적으로 값을 넣어 초기화한 경우는 널체크를 할 필요가 없지만 구체적인 값을 명시하지 않을 경우 옵셔널 변수를 통해 널 체크를 하면 됩니다. (myNum2 처럼) 허나, myNum2를 출력하면 오류가 날 것입니다... 더보기
카메라/갤러리 기능 자바에서 카메라를 활용한 기능을 사용할 때에는 카메라 사용 권한과 OS 버전에 맞는 이미지 파일 생성 방법을 사용해야합니다. 앱에서는 사용자가 앱을 사용하면서 만든 미디어 콘텐츠(예: 사진이나 동영상)를 표시할 수 있습니다. 이때 앱이 Android 10 이상을 타겟팅하는 한 Android 10(API 수준 29) 이상을 실행하는 기기에서는 READ_EXTERNAL_STORAGE 권한을 사용하지 않아도 됩니다. 앱이 Android 10을 타겟팅하면 범위 지정 저장소를 선택 해제하세요. 이전 기기와의 호환성을 위해 READ_EXTERNAL_STORAGE 권한을 선언하고 android:maxSdkVersion을 28로 설정합니다. 미디어 저장소에 잘 알려진 다음 컬렉션 중 하나에서 파일을 찾습니다. Medi.. 더보기
Firebase Messaging 관리 Firebase를 관리하기 위해서는 다음 절차를 따라서 진행하면 됩니다. 1. Firebase Console에서 프로젝트를 만든다. 2. 안드로이드 프로젝트로 시작을 한다. (프로젝트를 만들고 나서 앱 추가를 누르면 웹, 안드로이드, IOS 등 설정하라고 하는데 이 때 안드로이드를 선택하면 됩니다.) 3. build.gradle(App)에 ApplicationId에 내용을 아래 패키지 이름에 넣어서 만듭니다. 닉네임(임의로 입력), SHA-1 등은 그냥 넘어가도 됩니다. 4. google-services.json을 다운로드 받아서 안드로이드 프로젝트 > project > app에 해당 json 파일을 넣습니다. 5. build.gradle에 plugins { }에 google-services 추가합니다... 더보기
Kotlin 문법2 - Class Data Class - 데이터를 저장하기 위한 클래스 Java Code public class JavaObject { private String s; JavaObject(String s) { this.s = s; } public String getS(){ return s; } public void setS(String s){ this.s = s; } } Kotlin Code data class JavaObject(val s: String) 위에 자바 코드가 아래 코틀린 코드 한 줄로 모두 설명이 가능합니다. data class는 데이터와 관련된 내용을 정리하는 클래스이므로 get, set함수를 포함하고 있으며 model class에서 작업할 때 data class를 사용하게 됩니다. Kotlin에서는 g.. 더보기
Kotlin 문법1 - 변수/Scope 코틀린 문법 변수선언 nullable vs not nullable val variable: Int? = 100 val variable2: Int = 100 --> ?가 되어 있는 변수는 null로 초기화할 수 있지만, ?가 없는 변수는 null로 초기화할 수 없습니다. val - 초기에 값이 할당되면 나중에 변경할 수 없다. (변경시 컴파일 에러) - 초기화만 가능하고 변경은 불가능 (Java => final 변수, 상수) - 타입 선언 후 추후에 여러 상황에 따라 값을 초기화할 수 있음 fun main(args: Array){ val language: String = "Java" language = "Kotlin" // Compile Error val language2: String; val optio.. 더보기

반응형