분류 전체보기 80

Kotlin- Activity와 Fragment

Activity와 Fragment는 코틀린으로 개발하려면 필수적으로 알아야하는 기본 개념이다. 예전에 배우기도 했고 그냥 이게 뭐다~ 라고 이해하고만 넘어갔어서 이번 기회에 제대로 개념 정리를 해보려고 한다. Activity란? 안드로이드 앱이 실행되면 화면이 등장하고 UI가 화면 위에 나타나며, 버튼을 터치하거나 스크롤을 하는 등 앱을 사용하게 될 것. 이와 같이 앱의 전반적인 활동을 담당하는 것이 액티비티이며, 액티비티와 xml을 연결해 UI를 표시하고 사용자가 여러 액션을 취할 수 있게 해준다. 액티비티를 생성하고 ViewBinding을 이용해 Layout파일을 결합해준다. clas MainActivity: AppCompatActivity() { private lateinit var viewBind..

Kotlin 2023.06.07

Kotlin 면접준비(2)

1. Kotlin에서 변수 선언 방법은? Immutable variables: read-only 변수. val 키워드를 써서 선언하고 한 번 선언되면 값 변경 불가능 val sample = "interview" sample = "interview2" // compile error Immutable 변수는 constant(상수)가 아님. 상수가 아니기 때문에 compile-time에 값을 알릴 필요 없음. 아래 코드처럼 호출할 때 마다 값이 바뀔 수 있음 var sample = "interview" val newSample = sample // no compile error Mutable variables: 값 변경 가능. var 키워드 써서 선언 var sample = "interview" sample ..

Kotlin 2023.06.04

Kotlin 면접준비(1)

1. 코틀린의 타겟 플랫폼은? Kotlin-Java 간 상호 운용성은 어떻게 가능한가? JVM(Java Virtual Machine)이 Kotlin의 타겟 플랫폼이다. Kotlin은 컴파일 시 바이트 코드를 생성하므로, Java와 100% 상호 운용 가능하다. 따라서 Java에서 Kotlin 코드를 호출할 수 있으며 그 반대의 경우도 마찬가지이다. 2. 코틀린의 변수 선언 방법은? Java와 차이점은? // Java String s = "Java String"; int x = 10; // Kotlin val s: String = "Kotlin String" var x = 10 Kotlin에서 선언은 val, var로 시작하고 그 뒤에 타입이 온다. Kotlin은 타입추론을 사용해 타입을 자동으로 감지할 ..

Kotlin 2023.06.04

Kotlin- 문법1

코틀린의 기능 중 가장 혁신적이라고 여겨지는 것 중 하나가 옵셔널(Optional) 개념이다. 코틀린에서 옵셔널이라는 말을 사용하기보단, 자바에서 사용하던 Nullable(널 가능)과 NotNull(널 불가능)이라는 말을 사용한다. 자바에서 Exception의 상담 부분을 차지하던 NullPointerException을 해결하기위해 @Nullable과 @NotNull이라는 Annotation을 만들었었지만, 널리 사용되진 않았었다. 코틀린에서는 변수에 대한 기본 타입을 NotNull로 정하고 널 값을 가질 수 있는 Nullable 타입엔 명시적으로 표시하도록해 Null에 대한 처리에 강제성을 더했다.(스위프트와 동일한 부호인 '?'를 사용함) 예를 들어보자. 자바에 다음과 같은 메서드가 있다. int s..

Kotlin 2023.06.02

클린 아키텍처(Clean Architecture)

클린 아키텍처는 책 클린 코드를 저술한 로버트 마틴이 제안한 시스템 아키텍처로, 기존의 계층형 아키텍처가 가지던 의존성에서 벗어나도록 하는 설계를 제공한다. 한 줄로 정의하자면, 소프트웨어의 관심사를 계층별로 분리하는 소프트웨어 디자인 철학이다. 그렇다면 클린 아키텍처는 왜 쓸까? 다른 블로그에서 쓴 예시를 가져왔다. [여러분이 A 배달 앱의 개발자이며, 어느 날 A 배달 앱이 B 배달 앱과 통합된다고 가정하겠습니다. 이때 여러분은 다음과 같은 요구를 받게 됩니다. “A 배달 앱 시스템이 잘 되어 있으니 A 앱의 핵심 기능은 유지하고, UI와 DB 쪽만 바꿔 주세요.” 또는 다음과 같은 요구를 받을 수도 있습니다. “A 배달 앱이 너무 잘되니 서비스를 웹으로 확장해 봅시다.” 비즈니스의 로직은 비슷한데,..

Kotlin 2023.06.02

코틀린 컨벤션

코틀린 컨벤션이란? - 어떤 프로젝트를 접해도 쉽게 이해할 수 있고 다른 외부 개발자도 프로젝트의 코드를 쉽게 이해할 수 있게 하는 것 https://developer.android.com/kotlin/style-guide Kotlin 스타일 가이드 | Android Developers Kotlin 스타일 가이드 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 이 문서에서는 Kotlin 프로그래밍 언어의 소스 코드와 관련된 Google의 Android 코딩 표준을 developer.android.com 위 사이트의 스타일 가이드를 따르면 되는데 외우는 게쉽지 않음 그래서 안드로이드 스튜디오에서 스타일 가이드를 지정할 수 있는 방법을 알아보았음 1. File -> Settin..

Kotlin 2023.06.01

깡샘의 플러터&다트 프로그래밍 서평단 당첨 후기

이번에 깡샘의 플러터&다트 프로그래밍 서평단에 당첨됐다. 한참 코틀린 공부하다 프로젝트가 끝나서 플러터를 공부할 생각이었는데 마침 서평단을 뽑길래 신청했더니 운좋게 당첨이 되었다. 이 책을 받기전에 먼저 다트 공부를 조금 해보았는데, 환경 설정에서 문제가 생겨서 진행을 하지 못했다. 환경 설정이 안드로이드 스튜디오, xcode 등등 설치해서 flutter doctor를 진행해보는거였는데, 계속 문제가 생겨서 진전이 없었다. 책을 받고 책의 앞부분의 환경설정 부분을 보고 따라해보았는데, 내가 하루동안 해결하지못했던 문제를 바로 해결할 수 있었다. 플러터가 내가 생각했을 때 아직 정보가 많이 없는 언어라고 생각하는데, 이 책을 보니 내가 구글링을 통해 해결하지 못할 문제들을 해결할 수 있을 것 같다. 반 학..

카테고리 없음 2023.02.22

UMC project 2주차(23/01/11~)

앞에서 해결 못했던 문제들은 계속 찾아보고 있다. 우선, 이번주차에는 홈화면을 구현하기로 했다. 사진을 보면 BottomNavigationView를 사용하고 각 화면들은 Fragment로 구현해야 한다. BottomNavigationView 사용방법이 잘 기억나지 않아 찾아보았다. BottomNavigationView 사용법 res폴더 Resource type을 Menu로 선택하고 bottom_nav_menu.xml 파일 만들기 bottom_nav_menu.xml 파일에 실제로 표시될 항목들 정의 하나의 아이템이 하나의 버튼 역할 android:id는 해당 버튼의 ID라고 생각하면 됨 android:icon 은 해당 버튼의 아이콘이라고 생각하면 됨 android:title 은 해당 버튼을 나타내는 Tex..

카테고리 없음 2023.01.12

UMC project 1주차(23/01/02~23/01/10)

UMC 3기 프로젝트를 시작했다. 안드로이드 프론트(코틀린) 팀장으로 참여했고 우리 팀이 개발할 어플은 '강아지 건강 관련 어플'이다. 우선, 내가 한 주간 맡은 부분은 시작화면과 반려견 등록 화면이다. 첫 화면 구현은 어렵지 않게 해결했다. 레이아웃 디자인은 constraintLayout을 사용했다. 문제는 반려견 등록하기 화면에서 나타났다. 화면의 견종, 강아지 성별, 나이 밑을 보면 드롭다운 형식으로 항목들을 선택하게 하는 스피너를 구현해야 한다. 코틀린 공부하면서 스피너를 접한 적이 없어서 스피너에 대해 따로 찾아보았다. 스피너란? 값 집합에서 하나의 값을 선택할 수 있는 빠른 방법을 제공하고 기본 상태의 스피너는 현재 선택된 값을 표시한다. 스피너를 터치하면 기타 모든 사용 가능한 값을 포함하는..

Kotlin 2023.01.11

UMC 1주차

📚 학습목표 Platform에 대해서 설명할 수 있다. Android에 대해서 설명할 수 있다. Api에 대해서 설명할 수 있다. 공식 문서의 중요성을 이해한다. 핵심 키워드 Platform 이란? Platform의 정의 : 정해진 규칙 안에서 다양한 사용자 간의 상호작용이 이루어지는 공간 Platform의 특징 : 다수의 참여자 존재, 참여자 간 상호작용 O, 참여자 간 상호작용 할 수 있는 공간 O, 규칙 O Platform의 예시 : play store, app store, youtube, 카카오톡… Android 란? Android의 정의 : 스마트폰, 태블릿 PC 같은 터치스크린 모바일 장치 용으로 디자인된 운영 체제이자 수정된 리눅스 커널 버전을 비롯한 오픈 소스 소프트웨어에 기반을 둔 모바일..

Kotlin 2022.12.30