| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- button
- 패스트캠퍼스
- SizedBox
- 뷰바인딩
- 두 수의 나눗셈
- StatefulWidget
- Flutter
- spacer
- StatelessWidget
- appbar
- Kotlin
- 변수
- 안드로이드 스튜디오
- 빌드 프로세스
- 추상메소드
- 프로그래머스
- 리스트뷰
- margin
- Widget
- 반복문
- 프래그먼트
- 인스턴스
- 람다식
- 상속
- If
- setState
- 액티비티 생명주기
- padding
- expanded
- 지연초기화
- Today
- Total
목록전체 글 (39)
Y_Ding
타이머 구현 기능을 맡아서 진행 중 start with click 쪽을 클릭하면 텍스트가 사라지고 스톱워치가 시작되는 기능을 구현하기로 했다. 코드에는 분명 에러가 없는데 에뮬레이터를 실행하고 버튼을 클릭하는데 스톱워치가 보이지 않았다. 한참을 고민하다가 그 이유를 알아냈는데 진짜 허탈했다. 이유는 start with click 텍스트를 감싸고 있는 circle image view가 white 배경으로 채워져있어서였다..ㅋㅋㅋㅋㅋㅋㅋ 우리는 타이머를 00:00:00 으로 보이게 시작하고 싶었는데 에뮬레이터를 실행했을땐 00:00 으로 보이는 스톱워치가 실행됐다. 구글링 결과! 아래와 같은 코드를 추가해주니 원하는대로 화면에 보이는 것을 확인할 수 있었다. /시간을 00:00:00 으로 보이게 하는 코드 ..
클래스 생성자, 변수, 함수, 클래스로 구성 코틀린에서는 클래스의 생성자를 본문이 아닌 선언부에 작성할 수 있음 그렇기 때문에 본문이 없는 클래스도 의미가 있음 클래스 안에 다른 클래스 선언 가능 객체를 생성해 객체로 클래스의 멤버에 접근 val user = User("Ryu") user.someFun() * User("Ryu") : 객체 생성 구문 * 클래스 이름과 같은 함수로 객체를 생성 생성자(주 생성자 / 보조 생성자) 주 생성자와 보조 생성자를 모두 선언한다면 반드시 생성자끼리 연결해주어야 함 보조 생성자에서 주 생성자를 호출해주어야 함 클래스 내에 주 생성자가 있다면 this() 구문을 이용해 주 생성자 호출 보조 생성자에서 주 생성자 호출 class User(name: String) { co..
도시와 지역을 선택하면 그 지역의 미세먼지 상태를 알려주는 앱 만들기 미세먼지 데이터를 어디서 가져올까? 공공데이터포털(https://www.data.go.kr) 이용 여기서 수신된 JSON 데이터를 가공 검색창에 '미세먼지' 입력 후 '오픈API' 클릭 이번 실습에서 사용할 데이터는 '한국환경공단_에어코리아_대기오염정보' '활용신청' 클릭 후 신청한 목적 등 사유를 입력한 후 승인을 받아야 데이터 사용이 가능 serviceKey 란에 일반 인증키(Decoding) 붙여넣은 후 '미리보기'를 클릭하면 데이터를 미리 볼 수 있음 미리보기로 데이터를 확인했을 때 데이터가 라인별로 정리되어있지 않아서 보기가 어렵다면? https://jsonformatter.curiousconcept.com/# 활용하면 보기 ..
코틀린으로 안드로이드 앱을 개발할 수 있는 이유? 자바의 가상 머신인 JVM에 기반을 둔 언어이기 때문 코틀린으로 작성한 프로그램은 JVM에서 실행 가능 코틀린의 특징 표현력과 간결함 간결한 구문으로 프로그램 작성 가능 안전한 코드 널 안정성을 지원 객체지향 프로그래밍에서 객체는 널 상태일 수 있고, 이때 NullPointException(런타임 오류) 발생 가능 코틀린은 변수를 널 허용과 널 불허용으로 구분해서 선언 / 이 부분을 컴파일러가 해결해줌 상호 운용성 자바와 100% 호환 자바 클래스나 라이브러리 활용 가능 구조화 동시성 코루틴(coroutines) 기법을 이용해 비동기 프로그래밍을 간소화 가능 네트워크 연동이나 데이터베이스 갱신과 같은 작업을 할 때 이용하면 효율적 코틀린 파일 구성 패키지..
GoogleCloud에서 인증키를 만들기 google Cloud에서 새 프로젝트 만들기 검색창에 google maps platform 선택 사용자 인증 정보에서 API 키 만들기 gradle 파일에 소스 추가 implementation 'com.google.android.gms:play-services-maps:18.1.0' implementation 'com.google.android.gms:play-services-location:21.0.1' Manifest.xml 파일에 permission, google-map api 추가 permission google map MainActivity.kt package com.example.googlemap import android.Manifest import..
지도를 이용해서 서비스를 제공하는 앱을 만들 경우 필요 네이버맵, 다음맵 등 다양한 플랫폼에서 제공하는 맵을 사용 맵을 사용하려면 내 단말을 통해 위치를 얻어와야 함 위치를 얻으려면 권한이 필요 사용자의 위치를 추적하기 위한 3가지 권한 android.permission.ACCESS_COARSE_LOCATION : 와이파이나 모바일 데이터를 사용해 기기의 위치에 접근하는 권한 도시에서 1블록 정도의 오차 수준 android.permission.ACCESS_FINE_LOCATION : 위성, 와이파이, 모바일 데이터 등 이용할 수 있는 위치 제공자를 사용해 최대한 정확한 위치에 접근하는 권한 많이 사용하는 접근 권한 android.permission.ACCESS_BACKGROUND_LOCATION : 안드..
안드로이드 구글에서 제작한 모바일 운영체제 (리눅스 기반) 전 세계 모바일 플랫폼 시장의 70~80% 차지 자바나 코틀린 언어를 이용해 개발 구글의 플레이 스토어뿐만 아니라 다양한 방법으로 사용자에게 배포 가능 안드로이드폰은 다양한 제조업체에서 만들 수 있음 개발자는 크기가 다양한 폰에서 앱이 똑같이 보이도록 호환성을 고려해야 함 자신이 만든 앱이 여러 장치에서 제대로 동작하는지를 점검해야 함 운영체제 버전별로 API레벨이 지정돼 있어서 소스코드에서는 대부분 API레벨을 이용 개발자는 운영체제 버전과 API레벨을 함께 알고있어야 함 컴포넌트 안드로이드 앱 개발의 핵심 애플리케이션을 구성하는 단위 하나의 애플리케이션은 여러 컴포넌트로 구성 안드로이드에서는 클래스로 컴포넌트를 개발 즉, 하나의 클래스가 하나..
Room 안드로이드에서 데이터를 저장하는 방법 3가지 중 한가지 데이터베이스는 안드로이드에서는 SQLite라는 것을 사용 SQLite를 쉽게 사용할 수 있게 만들어진 것이 Room 라이브러리 쉽게 Query를 사용할 수 있는 API 제공 컴파일 시간에 Query를 검증함 Query 결과를 LiveData로하여 데이터베이스가 변경될 때마다 쉽게 UI를 변경 가능 SQLite보다 Room을 사용할 것을 안드로이드에서 권장함 Room의 주요 3요소 @Database : 클래스를 데이터베이스로 지정하는 어노테이션, RoomDatabase를 상속받는 클래스여야함 Room.databaseBilder를 이용하여 인스턴스 생성 @Entity : 클래스를 테이블 스키마로 지정하는 어노테이션 @Dao : 클래스를 DAO(..
데이터를 안드로이드에 저장하는 방법에 대해 알아보자 앱을 종료하거나 다시 시작하더라도 어딘가에 데이터가 저장되어 있는 것 데이터를 영구적으로 저장하는 방법 중 하나가 Preference Preference 프로그램의 설정 정보를 영구적으로 저장하는 용도로 사용 예시 : 앱에서 알림을 울리냐 안울리냐, 자동 로그인을 할거냐 안할거냐 등 xml포맷으로 텍스트 파일에 키-값 세트로 정보 저장 (예: 알람-true) SharedPreferences 클래스 프리퍼런스의 데이터(키-값 세트)를 관리하는 클래스 액티비티 간에 공유, 한쪽 액티비티에서 수정하면 다른 액티비티에서도 수정된 값을 읽을 수 있음 응용 프로그램의 고유한 정보이기 때문에 외부에서는 읽을 수 없음 Preference 사용 방법 getSharedP..