반응형

개발 코딩 정보 공유 67

안드로이드 API 26 (8.0 오레오) 대비 하기 - 백그라운드 제한

안드로이드 API 26 - 강제 업데이트 대비하기 안녕하세요. 지난번에도 소개 했었던 안드로이드 API 26(안드로이드 8.0 오레오) 강제 업데이트를 위한 대비 관련하여 상당히 많은 부분을 수정하고 추가해야 하는데요. 하...(벌써 현기증이) 구글은 이미 한참전 부터 공지를 했었죠. 2018년 8월까지는 새로운 앱에 대해서, 2018년 11월 까지는 기존의 앱까지 통틀어서 강제로! 무조건 API level 26 으로 올려야 한다고 권고 하고 있습니다. 이는 이번 일회성에 그치지 않고 이후에 판올림이 일어날때 마다 (거의 매년) 이번일과 같은 강제적 업데이트를 해야한다고 하고 있습니다. 하...(왜 그러냐 너네들) 큰 틀에서는 64bit 지원을 위한 초석 이며 보안성을 높이기 위한 조치 라고 합니다. 6..

함수형 프로그래밍? 그게 뭔데 일급객체 일급시민 고차함수 람다

최근에 트랜드 처럼 퍼지고 있는 함수형 프로그래밍. 맨날 자바만 쓰다보니 다소 생소하였는데... 시간을 들여서 조금 알아보고자 작성하게 되었습니다. 일급객체 다소 생소한 단어인 일급객체는 함수형 프로그래밍을 지원하기 위해 필수 요소 입니다. 그렇기에 함수형 프로그래밍 언어를 쓰기전에 반드시 미리 공부해 둘 필요가 있다고 생각합니다. 많이 쓰던 우리의 자바에는 그런 개념이 없기 때문에 더욱 생소 할 수 있을 것 같습니다. 함수형 프로그래밍에 들어가기 위해 1급 시민(또는 객체) 라 불리우는데 이녀석을 알아야 합니다. 이녀석이 되기 위한 조건은 크게 3가지가 있습니다. " 변수에 담을 수 있다 " " 파라미터로 전달할 수 있다 " " 반환값으로 전달할 수 있다 " 응? 뭘 전달 한다는 말인가? 숫자형, 문자..

코틀린 기초 공부 해보기 3

1. 루프문 사용 루프문의 사용도 뭐 비슷비슷하네요. 1 2 3 4 5 val items = listOf("apple", "banana", "kiwifruit") for (item in items) { println(item) } Colored by Color Scripter cs 여기서 listOf 가 궁금하실텐데요. 이건 java에서 리스트 객체를 생성한다고 생각하면 됩니다. for (item in items) { 여기서 돌리는거죠. 참 쉽죠잉 돌리면서 index가 필요할수 있으니 그럴때 이렇게 씁니다. 1 2 3 4 5 6 7 val items = listOf("apple", "banana", "kiwifruit") for (index in items.indices) { println("item a..

코틀린 기초 공부해보기 2

1. 조건문의 사용 1 2 3 4 5 6 7 8 fun maxOf(a: Int, b: Int): Int { if (a > b) { return a } else { return b } } Colored by Color Scripter cs if문은 뭐. 그냥 보셔도 아시겠죠? : Int 이건 리턴형이 int라는 말입니다. 다음은 when 입니다. 자바에서 switch case 라고 생각하시면 좋을것같네요. 1 2 3 4 5 6 7 8 9 10 fun describe(obj: Any): String = when (obj) { 1 -> "One" "Hello" -> "Greeting" is Long -> "Long" !is String -> "Not a string" else -> "Unknown" } Col..

코틀린 기초 같이 공부하기 1

안드로이드에서 코틀린을 공식언어로 지정해버렸죠. 자바에서 코틀린으로 완전히 넘어갈지 아닐지 그건 알수 없지만 현재로써는 코틀린도 공부해 둘 수 밖에 없겠습니다. 코틀린은 안드로이드 스튜디오의 뼈대인 intelliJ 를 만든 jetbrain 사에서 만들어 배포하고 있습니다. 구글에서 전폭적인 지지를 아끼지 않네요. 나온지는 꽤 되어서 이미 많은 앱에서 쓰이고 있습니다. 코틀린은 환경은 자바와 100% 호환이 된다고 합니다. 그들말로는... 이말은 즉 섞어서 쓸수 있다. 정도로 풀이 됩니다. 코틀린을 적용하더라도 기존의 자바라이브러리와 소스를 버리지 않아도 된다는 말이죠. 이 상황은 마치.. 아이폰 진영의 object C 와 swift를 짬뽕하는 코드를 보는것 같네요. * kotlin 공식사이트의 basic..

안드로이드 프래그먼트 라이프 사이클(생명주기) 알고 쓰기~!!

안드로이드 플래그먼트 라이프사이클 입니다. 최근에는 플래그먼트를 지양하고자 하는 분들도 있지만 어쨋든 우리는 알아야 합니다. 플래그먼트 라이프 사이클은 액티비티와 다르게 조금 복잡합니다. 왜냐. 액티비티에서 시작되어 만들어진 객체이기 때문이죠. 액티비티에서 부터 순서대로 따라가다 보면 이해가 빠르실겁니다. 그럼 최대한 단순하게 로그를 찍어서 확인 해보죠. 우선 액티비티 를 만들어줍시다. 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 31 32 33 34 35 36 37 package com.example.test.mynewapplication; import android.support.v4.app.Fragm..

안드로이드 웹뷰 기초 ~ 알아보기

안드로이드 웹뷰 기초 안녕하세요. 모바일과 웹은 우리 일상생활에서 필수가 되버린지 오래인 것 같네요. 안드로이드 개발시에도 역시나 웹은 필수 요소중 하나 이기도 합니다. 개발시 웹뷰 라는 객체를 활용하여 앱내에서도 기존의 모바일 브라우저 처럼 사용할 수 있습니다. 우리 앱내부에 브라우저를 심는다고 생각하면 편할 것 같네요. 그러나 웹 브라우저들의 막강한 기능을 다 지원하지는 않습니다. 그래도 대부분은 어떤 꼼수를 써서든 구현이 되긴 합니다^^;; 웹뷰 사용법 기초에 대해서 알아봅시다. #웹뷰 #웹뷰사용법 #웹뷰기초 안드로이드 웹뷰의 경우 초기에는 매우 제약적인 기능만 사용이 가능했습니다. 이는 우리가 원하는 하이브리드 웹과 거리가 멀었죠. 그러던 중 반가운 소식이 들려옵니다. 구글은 '안드로이드킷캣' 을..

안드로이드 액티비티 라이프 사이클 알아보기

안드로이드 액티비티 라이프사이클 안드로이드 개발시 기본이자, 제일 중요한 부분일 수 있는 액티비티의 라이프 사이클 입니다. 뭐든것은 순서가 있듯이... 우리의 액티비티가 생성되는 순간에도 내부에서는 여러가지 일이 생기고 있죠. 매우 간단한 예제를 통해 알아보겠습니다. 각각의 메서드에서 해당문자를 출력하여 라이프 사이클 시점을 알아 보도록 합니다. 1 2 3 4 08-30 08:09:04.280 8736-8736/com.example.test.mynewapplication I/TAG: ---onCreate--- 08-30 08:09:04.305 8736-8736/com.example.test.mynewapplication I/TAG: ---onStart--- 08-30 08:09:04.329 8736-87..

안드로이드 API 26 업그레이드 요구사항

안드로이드 api 업그레이드 요구사항 안녕하세요. 이번에 앱 업데이트를 하던중 요딴걸 발견 했습니다. 무려 구글이 날린 경고 였죠. '2018년 후반부터 API 레벨 대상 지정 요구사항' 뭔소리야 하고 알아봤더니 여러가지로 귀찮은 내용입니다. 심호흡 하시고 후우... *2018년 하반기에 Google Play는 새 앱과 앱 업데이트 시 최신 Android API 레벨을 대상으로 지정하도록 요구할 것입니다. 2018년 8월에 새 앱에 대해, 그리고 2018년 11월에 기존 앱의 업데이트에 대해 이를 요구할 것입니다. 이는 보안 및 성능에 최적화된 최신 API를 기반으로 앱을 빌드하도록 보장하기 위한 것입니다. *Google Play는 2019년 8월에 네이티브 라이브러리를 포함한 새 앱과 앱 업데이트에서 ..

안드로이드 런타임 퍼미션 깨부수기

안드로이드 지식 공유 런타임 퍼미션 관리하기 안드로이드는 6.0(API 23) 마시멜로우를 기점으로 런타임 퍼미션이 적용되었습니다. 기존에 사용하던 설치시점에서의 권한 부여 방식은 잊으셔야 합니다. 런타임 퍼미션 적용으로 인해 사용자가 직접 권한을 허용/거부할수 있으며 설정으로 들어가면 언제든 허용/거부를 다시 컨트롤 할 수 있습니다. * 주의 : 런타임 퍼미션 적용은 상당히 귀찮고 피곤함을 야기시킵니다. 안드로이드 시스템의 권한의 경우 두가지로 나눠 볼 수 있는데요. 1. normal 2. dangerous 1은 그야말로 권한 설정을 해도 아무 위험이 없는 경우, 2는 개인정보 등의 이유로 위험이 되는경우 입니다. 1의 경우 메니페스트 설정을 통해 나열하면 시스템에 권한이 부여됩니다. 문제는 2 인데요..