안드로이드: 196개의 글
RxJava Delay Observable myObservable = Observable.create( new Observable.OnSubscribe() { @Override public void call(Subscriber
앱을 개발했으면 수익을 창출해 볼 시간입니다.수익을 창출하는 방법은 여러가지가 있겠지만 가장 접근하기 쉬운것이 광고가 아닐까 합니다.이번 시간에는 facebook의 광고플랫폼인 audience-network에 대해 포스팅하겠습니다. https://developers.facebook.com/ 로 이동합니다. 개발자페이지에 가입을 하고 프로젝트를 만듭니다. 만드는 자세한 사항은 다큐먼트를 참조하여도 좋습니다. 프로젝트를 만든 후 프로젝트를 클릭하여 이동하면 좌측 상단에 여러가지 메뉴늘 볼 수 있습니다.앱 이름 우측의 화살표를 클릭하면 테스트를 만들 수 있는 기능도 제공합니다. 우리가 필요한것은 audience-network 이기 때문에 audience-network 를 선택합니다.페이스북 광고플랫폼을 붙이기..
이번에 급식앱을 만들면서 버전관리를 해야할 필요성을 느꼈는데요. 기존의 버전관리는 단순히 playstore에 등록이 되면 그 정보를 가져다 파싱하여 업데이트 비교를 하곤했습니다. 여기서 문제가 캐시때문에 실제 서버에 반영되어 가져온 정보와 사용자가 보는 정보가 다르다는 것입니다. 즉, 플레이스토어에는 업데이트버전이 올라가있지만 사용자는 캐시때문에 구버전이 보여 업데이트가 이루어지지 않는다는 점입니다. 그래서 서버에서 버전정보를 받아와 업데이트를 해주는게 더 낫다고 판단하여 구현을 생각하게 되었는데 단지 버전관리만을 위해서 서버를 임대한다는 건 500원이라도 낭비라고 생각했습니다. 그래서 알아보던 중 Firebase의 Realtime Database를 써보기로 했습니다. Firebase는 이전에 통계를 붙..
우리는 앱을 만들고 그것을 지속적으로 유지, 관리해야합니다.유지, 관리가 없는 앱은 인기가 없어지며 새로운 앱에게 밀리게됩니다.우리는 지속적인 유지를 위해 통계를 이용해 분석하고 더 나은 방향으로 modify합니다. 우리는 지금까지 앱 분석도구를 사용해왔습니다. google analytics, Flurry등이 대표적이죠.제일 많이 사용하는 도구가 google analytics이고 이는 웹 분석 전용 도구입니다.하지만 구글에서 모바일 전용 플랫폼을 내세웠는데 바로 firebase입니다.firebase안에는 realtime database, analytics등이 포함되어있습니다.애드몹도 이번에 새롭게 firebase안에 추가가 되었습니다. 하지만 세분화된 분석은 google analytics가 나아보였습니다..
프로그램 개발시 디버깅은 필수입니다. 개발시에는 개발자가 디버깅을 하지만 앱을 출시한 후에는 어떤 에러가 났는지 알기가 쉽지 않습니다. 그래서 어떤 에러가 발생했는지 자동으로 리포팅해주는 이슈트래커는 필수입니다. 여러가지 이슈트래커가 있지만, 야후에서 제공하는 페브릭만큼 간편하고 강력한 이슈트래커는 아직까지 못봤습니다. 정확히는 Fabric의 crashlytics입니다. 우선 ctrl + alt + s 를 눌러서 settings 창을 띄운 후 plugins으로 이동합니다. fabric이란 키워드를 입력하고 Browse를 클릭합니다. Fabric이 검색되면 install하고 재시작을 해줍니다. 재시작 후, 오른쪽에 Fabric아이콘이 생긴 것을 볼 수 있습니다. 아이콘을 클릭하여 실행버튼을 누르면 다음과 ..
신나게 코딩하다 빌드하려하면 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 ..
우리가 흔히 사진에 줌 기능을 넣을 때 쓰는 라이브러리가 chrisbanes 의 PhotoView다. https://github.com/chrisbanes/PhotoView 사용을 위해 간편하게 디펜던시에 추가하면 끝 compile 'com.commit451:PhotoView:1.2.4' 사용법도 간편하다 ImageView iv = (ImageView) findViewById(R.id.imageView); Drawable bitmap = getResources().getDrawable(R.drawable.wallpaper); iv.setImageDrawable(bitmap); PhotoViewAttacher mAttacher = new PhotoViewAttacher(mImageView);ImageVie..
이전에 구글맵은 LocationManager를 이용하여 gps와 network를 비교하며 사용했다.이 과정이 복잡하고 처리도 늦어 구글에서 대대적인 개혁을 했으니.바로 GoogleApiClient를 이용하여 서비스 한다. 이전의 처리방법LocationManager locationManager = (LocationManager) context.getSystemService(Activity.LOCATION_SERVICE); boolean isGpsEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER); boolean isNetworkEnabled = locationManager.isProviderEnabled(LocationMana..
1. 구글 개발자 콘솔 접속https://console.developers.google.com/ 2. 로그인 후 우측 상단의 표시부분을 클릭 3. 새 프로젝트 생성 4. 생성 후 이동된 화면에서 api 사용설정 클릭 5. googlmap android api 클릭 6. api 사용 enable 클릭 7. 좌측메뉴의 사용자 인증정보 탭 클릭을 하면 아래의 화면이 보인다.Create credentials 클릭 후 api키 선택 8. Android 키 클릭 9. 이름에는 구분할 수 있는 이름으로 명시해주고 아래 패키지명과 SHA-1 인증서 지문을 적는다.이 때 두개를 입력해야 하는데, 하나는 디버그용 하나는 build용이다. - 인증서 지문 얻는 방법 http://akaisun.tistory.com/admin..
The Way to Scan Wifi List 내 주변의 와이파이의 목록을 가져오는 법 1. WifiManager를 선언wifiManager = (WifiManager) getContext().getSystemService(Context.WIFI_SERVICE); 2. IntentFilter를 선언하여 Receiver를 등록IntentFilter intentFilter = new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION); intentFilter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION); getContext().registerReceiver(receiver, intentFilter); 3. Rec..