반응형
SMALL

분류 전체보기 22

Kotlin 클래스와 객체 (4)

이번 주제는 클래스와 객체입니다. C++ 같은 객체지향 프로그래밍 언어에 익숙하다면 클래스에도 익숙하실 것 같습니다. 기본적으로 클래스 선언은 참조 타입(Referential Type)을 정의합니다. 이런 참조 타입의 값은 클래스 인스턴스(Instance)의 실제 데이터의 위치를 가리키는 참조의 의미를 가집니다. 자바 인스턴스는 명시적으로 생성자 호출을 통해 생성되고 객체를 가리키는 참조가 사라지면 가비지 컬렉터(Garbage Collector)에 의해 자동으로 해제됩니다. 클래스의 내부 구조 class Person { // 프로퍼티 (Property) // 프로퍼티에 어떤 계산이 포함될 경우, 호출이 될 때 계산이 되거나, 지연 계산되거나, 맵에서 값을 얻어오는 방식으로 값을 제공한다. var firs..

Kotlin 2024.03.01

Kotlin 함수 정의하기 (3)

2024.02.25 - [Kotlin] - Kotlin 언어 기초 (2)과 같이 기본 개념과 같이 Kotlin 만의 특징을 집중적으로 글을 써보도록 하겠습니다. 이번 주제는 함수(Function)라는 개념입니다. 기본적으로 함수는 어떤 입력[파라미터(Parameter)]을 받고 출력값을 반환(Return)할 수 있는 재사용이 가능한 코드 블록입니다. 함수의 구조를 살펴보겠습니다. 함수의 구조 fun plus(a:Int,b:Int):Int { return a + b } fun(Function) 키워드를 사용하여 선언 괄호로 둘러싸여 있는 콤마(,)로 분리한 파라미터 목록이 존재 괄호 뒤의 세미콜론 뒤에 반환 타입을 선언 함수 본문(body) 는 {} 으로 감싼 블록이며, 함수의 구현을 기술 return 문..

Kotlin 2024.02.27

Kotlin 언어 기초 (2)

2번째로 작성할 내용은 코틀린 프로그램의 기본적인 문법 요소와 변수와 관련된 내용입니다. 기본적인 내용은 C++과 별반 다르지 않습니다. 기초적인 프로그래밍 문법에 근거한 내용에 Kotlin만의 특징이 들어간 부분들을 중점으로 소개해보겠습니다. 주석 한줄 짜리 주석 : // 로 시작 여러줄 주석 : /* 로 시작하여 */ 로 끝 *KDoc 여러줄 주석 : /** 로 시작하여 */ 끝 *KDoc : KDoc이란 코틀린 코드를 문서화시켜주는 언어입니다. 예시로 Kotlin 함수나 클래스의 정의 코드로 들어가보면 볼 수 있는 설명문 코드입니다. 코드의 정의 부분은 안드로이드 스튜디오 기준으로 자신이 원하는 클래스나 함수를 우클린 한 후 Go To -> Declaration Or Usage를 통해 확인하실 수 ..

Kotlin 2024.02.25

Kotlin 개념 (1)

Kotlin을 간단히 소개하고 시작하자면 Kotlin은 안전성, 간결성, 상호 운영성을 강조하는 다중 패러다임, 다중 플랫폼 프로그래밍 언어입니다. 안드로이드 개발과 같이, 데스크톱 애플리케이션, 서버 측 솔루션 등으로 여러 개발 분야에서 유망한 도구로 꾸준히 인기를 얻고 있습니다. 현재는 자바 가상 머신, 안드로이드, 자바스크립트, 네이티브 애플리케이션 등 여러 플랫폼을 지원합니다. 2017년 구글은 안드로이드 플랫폼의 공식 지원 언어로 선택하기도 했습니다. 구글, 아마존, 넷플릭스, 핀터레스트, 우버 등 여러 회사가 프로덕션 개발에 사용하기도 합니다. 안정성 코틀린의 목적은 자바보다 더 안정성을 보장하는 언어를 설계하되, 개발자의 생산성을 덜 해치는 언어를 만드는 것이였습니다. 예를 들면 타입 추론 ..

Kotlin 2024.02.21

Kotlin 시작

Flutter의 Bloc 패키지 관련 포스팅이 잘 마무리는 안되었지만 시간이 된다면 추가로 또 올려보도록 하겠습니다. 블로그의 방향성을 네이티브 앱 개발에 초점을 맞추어 운영해보려 합니다. 처음으로 해 볼 네이티브 앱 개발의 운영체제는 Android 입니다. 최신 트렌드에 맞추어 언어는 Kotlin으로 하고 구글이 밀어주고 있는 Jetpack Compose를 활용하여 UI를 그려보겠습니다. 확실히 선언형 UI 개발인지라 기존에 개발했던 Flutter와의 유사점이 많아서 Flutter와 비교하면서 제가 느꼈던 점을 추가로 다뤄보겠습니다. Android가 끝나면 IOS로 넘어가 Swift도 다뤄볼 예정입니다. Compose 사용 시 알아야 하는 Android 기본사항 과정 | Android Developer..

Kotlin 2024.02.15

Bloc (3) - Cubit과 Bloc 코드로 이해하기

Cubit class Cubit extends BlocBase class CounterCubit extends Cubit { CounterCubit(int initialState) : super(initialState); } - Cubit은 BlocBase를 상속합니다. - Cubit 내부의 클래스로 관리할 상태 유형을 지정합니다. - 위와 같이 코드를 작성할 경우 다양한 초기 상태로 인스턴스화 할 수 있습니다. class CounterCubit extends Cubit { CounterCubit() : super(0); void increment() => emit(state + 1); } - state는 처음에 지정한 상태 유형의 값입니다. - emit을 통해 상태를 변환합니다. - emit은 Cubi..

Flutter/Bloc 2024.01.31

Flutter Image Push Notification 설정 및 오류 정리

이 포스팅을 따라하기 전엔 FCM 및 APNS 설정이 선행되어야 합니다. Push Notification에서 이미지와 같이 보내기 위해선 FCM API Payload에 image 데이터가 필요합니다. 안드로이드에서는 바로 작동하지만 IOS에서는 따로 설정을 해줘야 합니다. Image Push Notification을 설정하는 글이 잘 설명되어 있었지만 글을 따라하면서 생긴 오류들을 어떻게 해결했는지 적어보겠습니다. Image Push Notification(Advanced) in Flutter using Firebase(IOS & Android) I love Flutter as much as anything because it makes our life easier in many ways. But it ..

Flutter 2024.01.24

Bloc (2) - Cubit과 Bloc의 개념

Bloc을 이해하기 위해 Stream의 작동방식을 아는 것이 중요합니다. 간단한 비유를 들자면 물이 흐르는 파이프는 Stream이고 파이프 안에 흐르는 물은 비동기 데이터라고 말할 수 있을 것 같습니다. 순차적으로 값이 들어오는 일종의 For문 같은 느낌입니다. 아래 간단한 코드를 보겠습니다. Stream countStream(int max) async* { for (int i = 0; i < max; i++) { yield i; } } Future sumStream(Stream stream) async { int sum = 0; await for (int value in stream) { sum += value; } return sum; } void main() async { /// Initialize..

Flutter/Bloc 2024.01.23

Bloc (1) - Bloc 이란

Flutter의 상태 관리 라이브러리 중 Bloc에 대해서 알아보겠습니다. Bloc 공식 문서에 의하면 Bloc은 "간단하고, 가볍고, 높은 테스트 성능을 가진 상태 관리 라이브러리" 라고 소개하고 있습니다. 공식 문서 개요에도 나와있지만 Bloc은 Business Logic Component의 약자로 비즈니스 로직과 프레젠테이션(화면 구현) 코드를 철저히 구분하려는 느낌이 강한 라이브러리입니다. 2주 정도 사용해본 결과, GetX에 비해서 확실히 비즈니스 로직과 프레젠테이션이 철저히 구분되어 개발을 진행하는 느낌을 받았습니다. 비즈니스 로직을 구현할 때에도 Event와 State를 통해 모든 상황과 이벤트들을 사전에 기획하고 구현할 수 있다는 완전성과 다른 라이브러리의 의존이 높지가 않아서 Naviga..

Flutter/Bloc 2024.01.21

Bloc (0) - Bloc 배워보기

오랜만에 글을 다시 쓰려 왔습니다. Flutter의 상태 관리의 종류에는 StateFul ValueListenable Getx Provider Bloc Cubit Riverpod Mobx 상태 관리 패키지를 사용하지 않는 것까지 포함해서 이렇게 8개 정도가 있습니다. 저는 Getx를 계속해서 사용해왔는데 이번에 새롭게 리뉴얼할 프로젝트에 새로운 상태관리를 도입하여 관리 및 유지보수를 좀 더 용이하게 하려는 목적으로 공부하려 합니다. 사실 Getx에 대한 좋지 않은 평가가 마음에 걸려서 바꾸는 이유도 없지 않아 있습니다. " 개발하는 남자" 님의 블로그 글을 빌려 단점을 말해보자면 다음과 같습니다. ㉮ Document가 불편하고... 이슈도 많고 대응도 느리고... 상태관리 이외에도 많은 부분을 차지하고 ..

Flutter/Bloc 2024.01.09
LIST