목록개발/Android (11)
장군이네집
Serialization 데이터를 저장하고 전달할때자료구조나 객체를 byteStream으로 전환하는것Deserialization은 그 반대. byteStream을 다시 객체로 복원하는 것. Serialization하는 이유는파일, 버퍼 전송네트워크 전송 등 이 대표적인데Android에서는 Intent를 통해 *primitive type 이외의) 데이터를 전송할때 필요하다 http://virusworld.tistory.com/66 Serializable 과 Parcelable의 차이 Serializable 는 java reflection을 사용하여 성능 문제를 야기할수있고 Parcelable는 직접 Parcelable을 상속하여 구현하기 때문에 더 효율적이다 Parcelable describeContent..
https://academy.realm.io/kr/posts/eric-maxwell-mvc-mvp-and-mvvm-on-android/ 기존 MVC모델은 Activity가 데이터를 중개하는 Controller에 해당 코드가 깊게 종속되는 경향이 있다. MVP(Model - Presenter - View)로 (인터페이스로) 분리 View는 presenter로 부터 받은 데이터를 뿌려주는일 Presenter는 View로 부터의 입력을 Model에 보내거나 그 반대 Model은 DB repository로 부터 데이터 CRUD Presenter와 View가 분리되면서 가상 VIew를 mock하여 Presenter내부 로직의 Unit-test가 용이해진다고 함. 그리고 interface이므로 다른 구상클래스로 손..
https://techbeacon.com/how-become-better-android-developer-30-bite-sized-pro-tips
기본적으로 하이브리드 앱을 만드려면 1. 앱안에서 모든 요청이 이루어져야함2. Javascript 함수를 call하거나 / call된 함수를 앱에서 실행할수있어야함(alert등)3. 앱 특화된 행동들과 (backpress, 각종 intent등) 연동 되어야함 1.1) shouldOverrideUrlLoading deprecated 되어서 사용해도 되는지는 아직 더 조사해봐야겠지만,요청을 보낼시 url을 받아와 loadUrl(url)을 해주면해당 웹뷰내에서 이동 2) Jsoup 조금 다른 영역이긴 하지만, 간단한 웹페이지 같은경우는Jsoup를 통해 스크래핑해서 native UI로 뿌려줌 2. 1) Javascript call을 받아옴 WebChromeClient는 onJSAlert 등 기본적인 JS 함수 ..
Android Developers : https://developer.android.com/guide/topics/ui/how-android-draws.html https://medium.com/@britt.barak/measure-layout-draw-483c6a4d2fab View View는 3단계에 따라 그려진다1) Measure2) Layout3) Draw 1. Measure : view의 크기를 결정한다 - child를 포함하며, parent의 동의를 받아야한다. 1) measured W (width) & H (height) : view가 원하는 크기2) W & H : 추후 다시 계산되어, 스크린에 표시될 크기 measure는 top-down traversal parent는 child에게 Mea..
배경 안드로이드 View는 3단계를 거쳐 그려짐 1) Measurement2) Layout3) Draw 1) VIew 크기 결정. root부터 child로 ( widthMeasureSpec, heightMeasureSpec )를 전달하며 반복됨2) 크기 기준으로 View 위치 결정. 역시 root부터 child로 반복적으로 호출3) 그리는 단계. 그릴땐 child에게 measure하라는 메세지가 전달됨 중첩된 레이아웃이 많을수록 측정하는데 걸리는 시간이 많아진다.ConstraintLayout은 flat한 구조를 유지하면서 복잡한 레이아웃 설정이 가능하다. 고로 효율이 좋다 side_constraints LeftOf / RightOf / TopOf / BottomOf + @id / parent 다른 Vie..
http://stickyny.tistory.com/62 페이스북 기준 : keytool -exportcert -alias androiddebugkey -keystore "C:\Users\USERNAME\.android\debug.keystore" | "PATH_TO_OPENSSL_LIBRARY\bin\openssl" sha1 -binary | "PATH_TO_OPENSSL_LIBRARY\bin\openssl" base64 적용 : keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keysotre | openssl sha1 -binary | openssl base64 Java - jdk - bin 폴더 내에서 keytool comm..
https://stackoverflow.com/questions/47285784/firebase-android-auto-login firebase에서는 자동으로 authentication state를 기억하므로 getCurrentUser를 통해 가져오면 된다.
CUstomView 생성 View 클래스의 상속attrs.xml에 resource생성 (declare-styleable) constructor의 AttributeSet을 obtainStyledAttributes()를 통해 가져옴 Custom View의 핵심은 onDraw를 overriding 하는것. Canvas : 무엇을 그릴지 (what)Paint : 어떻게 그릴지 (how) ex) Canvas로 선을 그리고, Paint로 색칠한다. Handle Layout Events onSizeChanged() : 최초 call 또는 사이즈 변경이 있을때 호출. onMeasure() : parent View 기준으로 현재 view의 추천 또는 필수 사이즈 정보 DrawText : drawText() / setTy..
FIREBASE 구조화https://howtofirebase.com/firebase-data-modeling-939585ade7f4Normalization : 관계형 데이터베이스의 설계에서 중복을 최소화하게 데이터를 구조화하는 프로세스를 정규화라고 한다. Shallow data structures { "users": { "user1": { "email": "user1@gmail.com", "transactions": { "transaction1": { "total": "500", "products": { "product1": "paper airplanes", "product2": "tooth picks" } }, "transaction2": { "total": "250", "products": { "pr..