일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- Android P
- Django REST framework
- Flutter TextField
- C
- Django REST
- mfc
- Kotlin
- NDK
- C/C++
- 프로그래머스
- 안드로이드
- Android
- livedata
- 안드로이드 구글맵
- android architecture component
- 코틀린
- Django REST Android
- RxJava
- RxAndroid
- FLUTTER
- flutter firestore
- Python
- Java
- kodility
- 알고리즘
- android push
- C++
- UWP
- Rxjava2
- dart
- Today
- Total
목록2018/04 (13)
개발하는 두더지
Cold ObservableObservable 객체 사용구독 시 데이터 발행lazy 접근법웹 요청, 데이터베이스 쿼리등이 사용되며 내가 요청할 때 결과를 받음 Hot ObservableConnectableObservable 객체 사용구독 여부와 상관없이 데이터 발행구독 시점으로 데이터를 받음마우스 이벤트, 키보드 이벤트, 시스템 이벤트, 센서 이벤트, 주식 가격 이벤트 등에 사용
Java8 LambdaJava8에서 Lambda 표현식을 지원합니다.이전 버전에서는 익명 클래스로 구현해야했습니다. build.gradle 설정compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } 예를들어 버튼에 클릭리스너를 달아준다고 했을 때 보통 아래처럼 사용합니다.btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { } }); Lambda를 쓴다면?btn.setOnClickListener( v -> { } );btn.setOnClickListener( (..
android.app.Application cannot be cast to xxxx 에러가 발생한다면 ? Custom Application 클래스를 사용한다면 AndroidManifest.xml 에 반드시 name을 설정해줘야 한다.AppApplication.java 파일을 만들고 Application 을 상속받았다.
DI란?Dependency Injection 의존성 주입구성요소간의 의존 관계가 소스코드 내부가 아닌 외부 설정 파일등을 통해 정의되게하는 디자인 패턴중 하나이다.예를들면, 카페에서 커피를 만드는데 커피 머신이 어떤 부품으로 구성되어있는지 바리스타는 알필요가 없다는 개념으로 보면 될 것 같다.이렇게 분리시켜 놓으면 객체의 생성과 사용을 분리시킬 수 있고, 재사용이 유연해진다. Dagger란?DI를 도와주는 Framework으로 의존성 주입 관계를 annotation을 이용해 표현한다.Dagger1은 Square에서 처음 만들었고 Dagger2는 Google이 관리 @Module + @Provides => 의존성 제공@Inject => 의존성 요청@Component => Module과 Inject 사이의 ..
Drawer Navigation 이란?Hambuger, Sandwich 라고 불리는 보통 왼쪽 상단에 위치하는 메뉴버튼을 클릭하거나 손가락으로 화면 왼쪽을 스와이프하여 나오는 뷰를 말합니다.모바일 디바이스는 화면이 작아서 모든 UI를 담을 수 없습니다. Toolbar, Fragment와 같이 앱의 Depth (Activity 이동 최소화) 를 줄일 수 있는 뷰를 제공하게 되었습니다. 아래에서 Drawer Navigation을 적용하는 방법을 알아보겠습니다. 실행 결과 소스 코드 build.gradle 아래 2개를 추가해줘야 사용 가능합니다.dependencies { ... // DrawerLayout compile 'com.android.support:support-v4:26.1.0' // Navigat..
포스팅 이유서비스 앱 개발이나 토이 프로젝트를 진행하면서 빠르게 초기 스켈레톤 구조를 구성하기 위해 포스팅을 합니다.저는 아래와 같은 상황일 때 코드를 줄이기 위해 사용합니다.1. ActionBar 대신 Toolbar를 사용할 때2. Toolbar를 xml, activity 마다 정의해서 코드가 중복될 때 프로젝트 시작시 자주 쓰는 스켈레톤 구조 style.xmlCustom Toolbar를 사용하기 위해 기본 AppTheme을 NoActionBar로 적용 BaseActivity.javaBaseActivity를 상속받은 Activity들은 toolbar 이름, 뒤로가기 버튼이 활성화된다.abstract public class BaseActivity extends AppCompatActivity { priv..
행렬의 곱셈 Level 2행렬의 곱셈은, 곱하려는 두 행렬의 어떤 행과 열을 기준으로, 좌측의 행렬은 해당되는 행, 우측의 행렬은 해당되는 열을 순서대로 곱한 값을 더한 값이 들어갑니다. 행렬을 곱하기 위해선 좌측 행렬의 열의 개수와 우측 행렬의 행의 개수가 같아야 합니다. 곱할 수 있는 두 행렬 A,B가 주어질 때, 행렬을 곱한 값을 출력하는 productMatrix 함수를 완성해 보세요. 소스package com.example.lib; public class myClass { /** * A가 5 X 5 * B가 5 X 4 * Output은 5 X 4 * A[0][x] * B[x][0] x를 0~4까지 더한 값이 Output[0][0] * A[0][x] * B[x][1] x를 0~4까지 더한 값이 Ou..
좌표 압축 알고리즘 언제사용할까?순위가 중요한 알고리즘에서 입력값의 개수보다 입력값의 범위가 클때 사용한다.예를 들면 캠핑 문제에 적용할 수 있다. ( 프로그래머스 카카오 캠핑 문제 풀러가기 ) 문제에서 좌표는 0 이상 2^31 이하의 값을 가질 수 있지만 최대 입력값은 5000이다.문제의 특성상 대각에 위치한 두 좌표를 이용해 직사각형을 만들고 그 직사각형안에 또 다른 좌표가 있는지 확인해야 한다. 아래와 같은 입력값이 있다고 하자.int pin[][] = new int[][]{{0,0}, {1,1}, {0,2}, {2,0}, {0,3}, {3,2}, {1,4}, {4,4}, {100, 50}, {150, 30}};0,0 ~ 4,4 사이는 1칸씩 차이라 공간적인 문제가 없지만 0,0 ~ 150,30 을..