일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 웹뷰
- 레트로핏
- RecyclerView
- 스튜디오
- dart
- 안드로이드스튜디오
- coroutine
- 코루틴
- WebView
- 의존성주입
- Android
- 코틀린
- viewpager
- 유튜브
- MVVM
- Gradle
- ADB
- Github
- build
- 에러
- GIT
- 안드로이드 스튜디오
- 안스
- Kotlin
- studio
- error
- 깃헙
- 안드로이드
- Retrofit
- image
- Today
- Total
목록전체 글 (164)
코딩하는 일용직 노동자
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/CNlUA/btqDRvVYyvs/9wkVKW4WFW9Q1vKA94vso0/img.png)
안드로이드 프로젝트를 Javadoc 처럼 html 문서로 만들 수 있습니다. 바로 dokka 입니다. 일단 project/build.gradle 파일에 dokka 플러그인을 추가해줍니다. ext.dokka_version = '0.9.18' dependencies { classpath 'com.android.tools.build:gradle:3.6.3' classpath 'com.google.gms:google-services:4.3.3' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong // in the..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bA16cu/btqDRxzuead/5AkeNf0gEgFKVvsQzgv1q1/img.png)
# 방법1 res/style.xml 파일 수정. 메니페스트 파일에서 theme 에 설정. # 방법2 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setStatusBarColor() window.statusBarColor = Color.parseColor("#ff0000") }
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bAj71v/btqDSiBPVPc/WCTDSOcsEl4KggJk8ebYv1/img.jpg)
코틀린 안드로이드 웹뷰 셋팅. webView.settings.apply { this.setSupportMultipleWindows(false) // 새창 띄우기 허용 this.setSupportZoom(false) // 화면 확대 허용 this.javaScriptEnabled = true // 자바스크립트 허용 this.javaScriptCanOpenWindowsAutomatically = false // 자바스크립트 새창 띄우기 허용 this.loadWithOverviewMode = true // html의 컨텐츠가 웹뷰보다 클 경우 스크린 크기에 맞게 조정 this.useWideViewPort = true // html의 viewport 메타 태그 지원 this.builtInZoomControls =..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/ckJd6S/btqDQ9Fn3O7/hiuT5BYLixRGLHkd6ak5Y1/img.png)
티스토리 블로그에서 포스팅을 올리다보니 소스코드를 보여주는 코드블럭이 작성중일때는 색깔별로 이쁘게 보이는데 저장하거나 발행하면 코드블럭이 단순한 텍스트 형태로만 보였다. 알고보니 티스토리 관리자 플러그인에서 코드블럭을 위한 플러그인을 적용시켜야 하는 것이었다. #1 작성중일때 (코드블럭의 소스코드가 이쁘게 보인다.) #2 발행을 하고 나면 아래처럼 코드블럭이 흑백 텍스트로 보인다. #3 블로그 관리자 화면 > 플러그인 선택 #4 Syntax Highlight 를 선택한다. #5 코드블럭 테마 적용된것을 확인한다.
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cChL8Z/btqDPYY1czr/klThdSJYOoGMSS27izmtd1/img.png)
SharedPreferences 는 정말 편리한 도구입니다. 아이디, 비밀번호, 이메일, 간단한 설정값 등을 저장하고 꺼내올 수 있습니다. SharedPreferences 를 사용하려면 약간의 코드가 필요합니다. SharedPreferences prefs = getPreferences(context); SharedPreferences.Editor editor = prefs.edit(); editor.putString(key, value); editor.commit(); 때문에 SharedPreferences 를 처리하는 별도의 클래스를 만들어두고 사용하는 경우가 많습니다. Kotpref 는 이런 SharedPreferences 를 간단하고 쉽게 구현할 수있는 라이브러리입니다. https://github...
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/LHNQz/btqDQSRgnj3/UsObBqfd7n1JQnElEPyexk/img.jpg)
#1 어댑터 리사이클러뷰에 사용할 어댑터를 만듭니다. 3열의 그리드 형태로 표시할 수 있도록 속성값을 셋팅해줍니다. Glide 를 이용해 이미지를 표시할 수 있도록 util 패키지 아래에 imageLoader 클래스를 만들었습니다. class ImageLoader(private val context: Context) { fun imageLoadWithResourceID(resID: Int, v : ImageView) { Glide.with(this.context).load(resID).into(v) } fun imageLoadWithURL(url: String, v: ImageView) { Glide.with(this.context).load(url).into(v) } fun imageLoadWithFi..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cVeduC/btqEozYLWNq/DCnzmjzSfOcgYFSjvN6Qq0/img.png)
#1 API 호출 및 파싱. 우선 api 호출 후 결과를 저장할 모델 클래스를 만듭니다. 포스트맨 에서 얻어낸 결과 json 을 이용해 안드로이드 스튜디오에서 DTO generator 플러그인을 이용해 편하게 만들었습니다. hits 를 MutableList 형태로 받도록 수정해줬습니다. #2 API 호출 콜백. MVVM구조에서 ViewModel은 자신을 사용하는 View를 몰라야 합니다. 안드로이드 개발문서에서도 ViewModel에 View references에 대한 참조가 없어야 한다고 강조합니다. 때문에 ViewModel에서 View로 이벤트나 결과를 전달해야 할 경우에는 View가 ViewModel을 observe하다가 상태가 변하면 그에 맞는 처리를 하게 했습니다. api 호출 후 결과를 리턴시키..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/phPWI/btqDPYcDzgW/7PUDwSmNkRoSdK7mVWwk51/img.png)
#1 홈화면 만들기 Pixabay 에서는 검색어를 통해 이미지와 동영상을 검색할 수 있습니다. api도 이미지검색api 와 동영상검색api 가 제공됩니다. 우선 레이아웃을 만드는 것부터 시작하겠습니다. res/layout 폴더에 fragment_home.xml 파일을 생성해줍니다. 홈화면 상단에는 검색어를 입력할 EditText 와 검색버튼, 그 아래 영역엔 RecyclerView 를 배치시켰습니다. 레이아웃파일에는 데이터바인딩을 이용할 수 있도록 셋팅해줬습니다. #2 데이타바인딩을 이용해 이벤트 처리. 되도록 클릭이벤트는 fragment_home.xml 파일과 HomeViewModel 파일에서 바로 처리되도록 했습니다. 데이터바인딩을 쓸때 "@{ }" 와 "@={ }" 이 있는데 "@={ }" 를 쓰면..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/q5eBa/btqDQThqsm3/E87bpXOuDdwgMLECdKDrr0/img.png)
#1 인트로 화면과 메인화면 만들기 우선 앱이 실행되면 인트로화면을 몇초 보여준후 홈화면으로 이동하는 형태로 만들었습니다. IntroActivity 와 MainActivity 로 만들고 홈화면은 Fragment 를 포함하도록 만들었습니다. 그리고 서브화면들을 만들고 각 화면마다 별도의 ViewModel 을 만들었습니다. (일단 쓸지 안쓸지는 모르겠지만 다 만들어줬습니다.) #2 Base 클래스, MyApplication 만들기. 각 액티비티와 뷰모델이 상속받아 쓰도록 BaseActivity, BaseViewModel 클래스를 만들었습니다. Retrofit2 와 Koin 을 셋팅하기 위해서 MyApplication 클래스를 만들고 ViewModel 셋팅도 해줍니다. SharedPreference 를 편하게..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bLkor9/btqDQbiw4Dx/InKoJ2HZbzHtVpvxsmQyEK/img.png)
#0 최근 안드로이드 개발 트렌드 안드로이드 앱을 처음 배우고 개발할땐 디자인 패턴을 이용하지 않고 Activity 소스에 각종 이벤트와 로직 처리를 몽땅 집어넣고 작업했습니다. 그 후에 MVC, MVP 패턴으로 작업을 하는 개발자분들을 많이 볼 수 있었고, 뒤늦게 필자도 MVP 패턴을 사용 해보니 소스도 깔끔하고 유지보수 할때도 더 편리한 면이 있었습니다. 2017년 여름 구글I/O에서 구글은 AAC (Android Architecture Component)를 발표했습니다. ViewModel, LiveData, LifecycleObserver, DataBinding 등을 써서 MVVM 패턴으로 앱의 성능과 유지보수를 높일 수 있도록 했습니다. 최근에는 언어도 Java에서 Kotlin으로 많이 옮겨서 작..