본문 바로가기

Android26

SharedPreferences 똑똑하게 사용하기. 예전에 우리가 자바에서 사용하던 방법 SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this); SharedPreferences.Editor editor = preferences.edit(); editor.putString("key","value"); editor.apply(); 코틀린으로 사용하면? private val pref = PreferenceManager.getDefaultSharedPreferences(context) @Suppress("IMPLICIT_CAST_TO_ANY") fun get(key: String, defaultValue: T): T { return when (defaultValue).. 2019. 8. 29.
log 관리하기 우리는 흔히 디버깅을 위해서 Log를 쓰곤 합니다.Log는 디버깅을 하는데에 있어서 치유제가 되지만 때론 독이되기도 합니다.로그를 비활성화 시키지 않으면 배포된 어플리케이션에서도 다양한 Log를 통하여 뜻하지 않은 정보를 유출시킬 수 있습니다.그리고 필자가 이제까지 로그설정에 대해 심각한 오류를 가지고 있었고 바로잡았습니다.보통 우리는 gradle에 각종 설정값들을 입력합니다. buildTypes { release { debuggable false } debug { debuggable true } } buildTypes에 realese와 debug 모드로 나누어 사용하는 모습입니다. 필자는 debuggable이 디버그의 활성화 유무를 설정하는 것이라는 오해를 하였습니다.실제 debuggable의 기능은 .. 2016. 9. 28.
안드로이드 4+버전에서 애드몹이 안보이는 현상 This app is using a lightweight version of the Google Mobile Ads SDK that requires the latest Google Play services to be installed, but Google Play services is either missing or out of date. 안드로이드 4+에서 애드몹과 관련해 안보이는 현상이 일어나서 구글링을 해보니 일종의버그라고 한다. 참고페이지http://stackoverflow.com/questions/37330290/no-admobs-displayed-on-2-3-but-displayed-with-android-4-with-google-play-servic 해결방법이 없는가 싶었는데 해당어플의 캐시.. 2016. 7. 5.
No acceptable module found. Local version is 0 and remote version is 0. No acceptable module found. Local version is 0 and remote version is 0. this problem has due to there is no playstore in phone of user when you using firebase libraryif you guiding to install playstore to user. it is would be solved.if already installed playstore, have to version update 해당 폰에 플레이스토어가 없어서 생기는 문제다.firebase를 적용하면서 오류가 발생했는데 이전의 구형폰들은 안드로이드 마켓이 깔려있기 때문이다.플레이스토어를 설치하도록 유도하여 플레이스토어가 설.. 2016. 7. 5.
RxJava - delay RxJava Delay Observable myObservable = Observable.create( new Observable.OnSubscribe() { @Override public void call(Subscriber 2016. 6. 25.
facebook audience-network 앱을 개발했으면 수익을 창출해 볼 시간입니다.수익을 창출하는 방법은 여러가지가 있겠지만 가장 접근하기 쉬운것이 광고가 아닐까 합니다.이번 시간에는 facebook의 광고플랫폼인 audience-network에 대해 포스팅하겠습니다. https://developers.facebook.com/ 로 이동합니다. 개발자페이지에 가입을 하고 프로젝트를 만듭니다. 만드는 자세한 사항은 다큐먼트를 참조하여도 좋습니다. 프로젝트를 만든 후 프로젝트를 클릭하여 이동하면 좌측 상단에 여러가지 메뉴늘 볼 수 있습니다.앱 이름 우측의 화살표를 클릭하면 테스트를 만들 수 있는 기능도 제공합니다. 우리가 필요한것은 audience-network 이기 때문에 audience-network 를 선택합니다.페이스북 광고플랫폼을 붙이기.. 2016. 6. 18.
Firebase Auth 와 Realtime Database 이번에 급식앱을 만들면서 버전관리를 해야할 필요성을 느꼈는데요.기존의 버전관리는 단순히 playstore에 등록이 되면 그 정보를 가져다 파싱하여 업데이트 비교를 하곤했습니다.여기서 문제가 캐시때문에 실제 서버에 반영되어 가져온 정보와 사용자가 보는 정보가 다르다는 것입니다. 즉, 플레이스토어에는 업데이트버전이 올라가있지만 사용자는 캐시때문에 구버전이 보여 업데이트가 이루어지지 않는다는 점입니다.그래서 서버에서 버전정보를 받아와 업데이트를 해주는게 더 낫다고 판단하여 구현을 생각하게 되었는데 단지 버전관리만을 위해서 서버를 임대한다는 건 500원이라도 낭비라고 생각했습니다. 그래서 알아보던 중 Firebase의 Realtime Database를 써보기로 했습니다. Firebase는 이전에 통계를 붙이기 .. 2016. 6. 12.
모바일 통계 분석 툴 google Analytics에서 Firebase Analytics로.... 우리는 앱을 만들고 그것을 지속적으로 유지, 관리해야합니다.유지, 관리가 없는 앱은 인기가 없어지며 새로운 앱에게 밀리게됩니다.우리는 지속적인 유지를 위해 통계를 이용해 분석하고 더 나은 방향으로 modify합니다. 우리는 지금까지 앱 분석도구를 사용해왔습니다. google analytics, Flurry등이 대표적이죠.제일 많이 사용하는 도구가 google analytics이고 이는 웹 분석 전용 도구입니다.하지만 구글에서 모바일 전용 플랫폼을 내세웠는데 바로 firebase입니다.firebase안에는 realtime database, analytics등이 포함되어있습니다.애드몹도 이번에 새롭게 firebase안에 추가가 되었습니다. 하지만 세분화된 분석은 google analytics가 나아보였습니다.. 2016. 6. 6.
non-zero exit value Multidex Error 신나게 코딩하다 빌드하려하면 with non-zero exit value 가 포함된 에러가 나올 때가 있다. Full Exception은 다음과 같다. Error:Execution failed for task ':app:transformClassesWithDexForDebug'. > com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_65\bin\java.exe'' finished with non-zero exit .. 2016. 3. 8.