앱개발 16

내가 헷갈리는 코틀린 문법 한번 더 정리

오버로딩 vs 오버라이딩 오버로딩 : 같은 이름의 메소드라도 매개변수가 다르면 사용가능오버라이딩 : 부모클래스의 메소드 재정의 추상 클래스 & 인터페이스공통점 : 대략적인 설계 명세 구현, 이를 상속하는 하위 클래스에서 구체화하지만 인터페이스는 프로퍼티의 상태를 저장할 수 없음 -> 즉 내부에서 초기화 불가능 object -> 싱글톤 패턴 만들 때 사용 or 익명 객체 클래스 만들 때 hilt에서 인터페이스를 전달할 때 @Binds를 사용하고 Class객체는 @Provides를 사용해 주입

앱개발/코틀린 2022.09.24

보일러 플레이트 코드

보일러플레이트란? 컴퓨터 프로그래밍에서 보일러플레이트 또는 보일러플레이트 코드라고 부르는 것은 최소한의 변경으로 여러곳에서 재사용되며, 반복적으로 비슷한 형태를 띄는 코드를 말한다. Kotlin 사용 Java대신 Kotlin을 사용하는 것 자체만으로 많은 보일러플레이트코드를 제거할 수 있다. 한가지 예로 Kotlin의 data 클래스는 primary 생성자를 선언하는 것만으로 equals(), hashCode(), toString(), copy() 등을 자동으로 생성한다. 라이브러리 사용 Dagger, Glide, Retrofit, Databinding 등 현존하는 인기 안드로이드 라이브러리들은 모두 어노테이션 프로세서를 사용하여 보일러플레이트 코드를 생성한다. 프로젝트에 라이브러리를 적용하는 것만으로도..

앱개발/코틀린 2022.08.26

안드로이드 면접, 신입 개발 지원 질문 리스트 정리

A기업 특징 : 인성 질문 1도 없음 많이 어려웠음 자기소개로 시작 -기술 & cs- 1. 프로세스와 쓰레드 2. 해시테이블 3. 레트로핏 혹은 관련 라이브러리 4. MVC MVP MVVM 패턴 그리고 써봤는지 5. 해시테이블 6. 디자인 패턴 7. 사전 코딩테스트 관련 질문 8. 안드로이드 액티비티 라이프 사이클 설명 9. Rest api 10. 안드로이드 내부 데이터베이스 11. fragment 관련 질문 +α - 인성 & 기타 - 1. 입사후에 무슨 일을 하고싶은지 2. 포폴질문 많음 +α B기업 특징 : 크게 어렵지 않은 편임 자기소개로 시작 인성 관련 질문이 많음 대부분 안드로이드 관련 질문임 -기술 & cs- 1. 안드로이드 context란? 2. 객체지향 프로그래밍 + 꼬리질문 3. 함수형 ..

앱개발 2022.08.07

안드로이드 기본 지식 정리

안드로이드 4대 컴포넌트 Activity, Service, Broadcast Receiver, Content Provider # 컴포넌트란? 앱의 최소단위로 이걸 구성해서 하나의 앱을 만든다 Service는 포그라운드 서비스, 백그라운드 서비스 , 바운드 서비스 로 나뉘어져 있음 Activity, fragment 차이점 프래그먼트는 한 액티비티 안에 종속되어있기 때문에 용량을 적게 차지한다. 하지만 액티비티는 독립적인 속성을 가진다. Intent 인텐트는 컴포넌트 간에 정보를 주고담을 수 있는 메세지 객체이다. PendingIntent는 intent를 가지고 있는 클래스로, 기본 목적은 다른 애플리케이션(다른 프로세스)의 권한을 허가하여 가지고 있는 Intent를 마치 본인 앱의 프로세스에서 실행하는 것..

앱개발 2022.06.10

맥북 m1 pro 칩 안드로이드 스튜디오, 자바 설치 및 환경변수

맥북 m1 pro 칩 안드로이드 스튜디오, 자바 jdk 환경변수까지 끝내보자! 맥북을 샀으니 다시 모든 프로그램 환경설정을 완료해야한다. 내 기준 많은 프로그램중에 처음 깔아야할 것은 안드로이드 스튜디오, 이걸 깔기 위해선 자바 jdk 부터 설치해야한다. 먼저 https://www.oracle.com/java/technologies/downloads/#jdk18-mac 여기서 mac 버전을 클릭 arm이 m1칩 버전이라고 해서 저걸 깔아주면 된다.. 근데 홈페이지에 설명좀 해주시면 안될까요..? 사각 박스 안 내용물을 클릭 정말 다양한 버전이 있는데 이걸 까는게 가장 맞는거 같았다. 2022.05기준 최근 버전은 java 18이라서 그걸 설치했다. 그 다음은 안드로이드 스튜디오 설치하기 https://d..

앱개발 2022.05.30

flutter 공부 4일차 (코딩쉐프 순한 맛 강좌 8 ~)

import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title : "first app", //여기는 프로젝트 이름이라고 생각하면 돼 theme: ThemeData( primarySwatch: Colors.blue ), home : MyHomePage(), ); } } class MyHomePage extends StatelessWidget { const MyHomePage({Key? key}) : super(key: key); @override..

앱개발/flutter 2022.04.15

flutter 공부 3일차(코딩애플 쉬운 플래터)

화면 배율 정하기 container로 바로 정할 수 없다. Flexiable 속성을 이용해야한다. children:[ Flexible(child: Container(color: Colors.blue,),flex: 2,), //배수로 Flexible(child: Container(color: Colors.lightGreen,),flex: ,), ], 그리고 숙제 다시해보기 import 'package:flutter/material.dart'; void main() { runApp(const MyApp()); //앱 실행해주세요!!!! 라는 뜻 } class MyApp extends StatelessWidget { const MyApp({Key? key}) : super(key: key); @override..

앱개발/flutter 2022.04.08

flutter 공부 2일차(코딩애플 : 쉬운 플러터 4강까지)

강의는 코딩애플님의 쉬운 플러터 듣는중 공부 시작! 여기서 analysis_options.yaml에서 rules: # avoid_print: false # Uncomment to disable the `avoid_print` rule # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule prefer_typing_uninitialized_variables : false prefer_const_constructors_in_immutables : false prefer_const_constructors : false avoid_print : false 이렇게 추가한다. lint를 잠깐 끄는 용도라고 한다. 아직은 뭔..

앱개발/flutter 2022.04.06